arisuchan    [ tech / cult / art ]   [ λ / Δ ]   [ psy ]   [ ru ]   [ random ]   [ meta ]   [ all ]    info / stickers     temporarily disabledtemporarily disabled

/λ/ - programming

structure and interpretation of computer programs.
Name
Email
Subject
Comment

formatting options

File
Password (For file deletion.)

Help me fix this shit. https://legacy.arisuchan.jp/q/res/2703.html#2703

Kalyx ######


File: 1493891575527.png (33.66 KB, 300x296, 1476701764092.png)

 No.65

Saw this over at the big shot thread and I decided to make it.

How did you get into programming? What sage advice can we learn from your rookie mistakes experience?

I'll start to get things rolling. Middle school had that Hour of code soykaf. I was fairly good at Codecademy so I thought like the idiot middle schooler I was I could do anything with my 133T 5k11l5. I tried to make a simple cipher in Python, and I was stuck at how to shift the letters. Then I decided to read a book and I was finished with the project within 8 days I had school and other stuff that got in the way okay?

Now I'm finally getting into C by creating a password generator based on diceware.

 No.66

I started programming by learning lua in middleschool to use with love2d. From there it just expanded.

 No.67

File: 1493909463131.png (474.8 KB, 602x768, 1316107432438_29543396.png)

I started as a kid because I was bored with the games we had and wanted to make my own. We had no internet yet, but I managed to get a CD full of shareware "Game Makers." However, most of them wouldn't run on our soykafty computer so I ended up trying to write text based adventure games in some BASIC dialect based on the tutorial included in the IDE and some already obsolete books my father found, without much success, but I still enjoyed it a lot. Later in school we learned Pascal which seemed very serious and I tried writing more serious stuff in them, and then I became interested in hacking and learnt python using the official tutorial and would write very 1337 scripts like using proxies to rig online polls and other fun things.

My advice would be to have fun! That's how I learned most of what I know.

 No.69

>My advice would be to have fun! That's how I learned most of what I know.
This.
I had always wanted, to some extent, to program, but I didn't until I took AP Computer Science in high school. It was Java, and it was OK. I also did Project Euler, which was more useful than the class itself. In college I had a intro class in C++ in my first semester, which wasn't useful, but it was something I did.
When my parents forced me to drop out and become NEET, that's when I really got into programming. I had begun using OpenBSD as my desktop during that time: I found a K&R2 pdf and began coding in C for everything I ever needed to make for myself. I also learnt shell scripting while studying system administration.
And eventually, someone wanted me to make an improvement to a userland program, and I was capable of doing it, with the help of man pages.
I'm certainly no pro, but with documentation, I can do anything.
Now I'm reading through SICP. My math is rusty, but other than that, it's a wonderful book. Talks about things I never thought of much before, like algorithms and efficiency.

 No.70

When I was in elementary school, I did a few things in Scratch..

no, when I was in 8th grade I used to write cmd emulators into .bat files to get around the school's restrictions on accessing the command line. I kind of got into hacking at the time, although I only ever did minor stuff like fucking with the registry and getting around the firewall and so on. Then in 9th grade, I read Learn Python the Hard Way and made enough progress into it to have some proficiency - I wrote a basic web scraper so my friends and I could search through the database on an old chatroom we used. After that, I started using linux and really getting into FOSS, as well as web development the experience I had with which (and some good connections) got me a paid internship.

I actually study math now and don't really work in tech, but the skills have come in handy for everything else I'm doing.

 No.128

My best advice to give is to make something useful. You don't have to create the next killer app, it's good to start small, then you can choose to recreate software in the language you are learning. Learning through projects is a good way to get better because you get experience with other programming tools like Git or a text editor like vim or emacs, you have code of your own that you can look back at and reuse for other projects, and the pride of creating your own software is an added plus

 No.209

>My advice would be to have fun! That's how I learned most of what I know.
another vote for this

I started programming on an old TI-83, and absolutely fell in love with seeing what all I could get the little machine to do. mostly games, but found that I had more fun creating them and watching others play them, than playing them myself.

 No.212

>How did you get into programming?
When I was 15 a friend of mine showed me Game Maker. I'd always wanted to write games and so I started using it heavily. It had a drag-n-drop interface but I soon realized that you could enter the logic directly as text. Since it seemed more like real programming than dragging little boxes I started using it and also realized it was a bit more versatile. Eventually, I'd do everything that I could in code, and I had the manual right there with all the features that were not otherwise implemented in the drag-n-drop boxes.
But I didn't have a computer of my own (used the school computers to do this) so I had to wait more than 5 years before I could afford a laptop of my own where I could get serious about programming.

My advice is that you do whatever you find interesting and work on that, use the language that you feel at ease with, and don't let yourself get memed by the memers who'll call your language soykaf and theirs the greates thing that has ever happened to mankind.

 No.268

My parents are both engineers, I grew up playing with chemistry kits and setting many different things on fire.
I used an old desktop my dad dug out of his closet for school that had Red Hat on it when I was ~5 (around 2003), but it wasn't until I was 12 when I was using my mom's Mac that I got interested in programming. I already kinda knew HTML/CSS because my older brother had a website for keeping track of his chats and 4chan threads and soykaf but I wanted to learn JavaScript, I played with it for a few days but got bored once I realized it was only for browsers, some time later I started learning C (which luckily my dad was knowledgeable in because he did some programming work for a school sometime before I was born), but I didn't get far past the basics because I was more interested in how computers actually work.

One of the reasons I actually stopped learning C was because I'm a perfectionist and I realized I'm not as good as I thought, despite being a quick learner. Story of my life.

 No.269

Decades ago, I had a couple machines I picked up second hand and I installed a copy of RedHat on them that I got from mail-ordering a stack of CDs from Walnut Creek. We didn't have Internet access yet and I would write little shell scripts to automate tasks (dialing into BBSes, backing up files, whatever). While reading a man page, I found a reference to perl. Typed man perl and it was all downhill from there. Perl's man pages were (are?) quite extensive and it was enough to get me moving. I played with whatever languages I could find on whatever systems I could get my hands on, even calculators as was previously mentioned. This included TI-Basic, Tcl/Tk, x86 assembly, and a bit of Java. Eventually I picked up C while learning to extend Rivers of Mud (ROM) after we got Internet access.

From there I eventually landed an IT job and learned several languages (C++, Python, RPG, Ruby, Lua, Forth, Common Lisp) while working breakfix and sys/netadmin roles. I romanticized programming as a career and made the leap, bouncing from company to company learning even more languages. I still don't feel quite settled but it's a good enough career. I've spent a lot of time mentoring developers, speaking at conferences, and building garbage for entities big and small. The only personal programming I do now is building little utilities to manage my home network, tinker with things with my kid, and build utilities for a community network.

So some advice:

- If you're going to do this for a living, understand that in most cases you will be building bullsoykaf you care little about for people who understand little about what you're doing.

- If you're not building bullsoykaf, you're fixing someone else's bullsoykaf. Code like the person who inherits your code knows where you sleep.

- If you're going to do this for a living, it's a good idea to keep a small LLC if you're in the US. Side jobs will happen as often as you like and there's good legal protection in an LLC. It's also a decent fallback if you get soykafcanned.

- Write unit tests and learn to love them. I'm not a TDD advocate but unit tests can help you with a lot of things.

- Learn one language from most paradigms enough to be dangerous. Pick up an OOP language, an imperative language, a functional language, and so on. The more you expose yourself to new (and old) ideas, the more versatile you will be. Use your favorite tools often but be a polyglot.

- Avoid impostor syndrome and the Dunning Kruger effect.

- Don't get into holywar mud-flinging fests about the flavor of the week or century. Listen critically to those who are losing their soykaf in these silly fights.

- Document everything and use code tags in your comments (TODO, FIXME, NOTE, XXX, and so on). You can grep for these later and you'll be glad you did. It's OK to be verbose.

- When you start building something, just build it. Forget about perfection, just build it. Even if that means you have 1000 nested conditional logic statements. Build first, then refactor. Always remember to refactor.

- Learn to refactor and learn some design patterns. Extraction, encapsulation, and method composition should be your dear friends.

- Ask others to review your code and don't have thin skin about it. You can always learn from someone else's perspective.

- Pair program if at all possible. Share the joy!

- Release as much free/libre/open software as you can. This, in some cases, is much better than or equal to a stacked resume. If you're not programming for a living, releasing your code for others to work with is just common sense. No need to reinvent the wheel or force others to. There are social benefits, too.

- If you're curious about what happens when you push the shiny red button, just push it. Break things, type nonsense, see what the compiler/interpreter spews out. Learn from it.

- Read the source to the language (and/or tools) you use most often, even if you don't fully understand it. It will enlighten you.

And, as was said before, have fun.

Good luck, Lain!

 No.281

I started around the age of 11 thanks to a family member giving me Game Maker's Apprentice after I made "games" in powerpoint. From there it was a bit of a shaky ride as the book mentioned C++ which I made a text game in but later switched to C as the book mentioned C. Stopped for a while due to exams and not knowing I would later go full speed ahead into the deep end later in life.

At 14 I returned to it with Python… lasted a few days before I retreated to C (didn't like the inconsistent repl) and picked up SICP thanks to a chan we all know. Tried to implement my own lisp in C but wanted my own parser and all I could find on that was in pascal… enter pascal! picked up enough to read but C strings were too much of a pain and the code was a mess by the end of it. Lisp however was going okish but struggled to get past chapter 3 as I had yet to pick up more math than the school was teaching.

There I was on my way to becomming a lisp user when someone mentioned haskell on the technology board. My young mind rejected it as C was clearly the best language there could ever be… did get exposed to it with xmonad but switched to dwm after not understanding a thing. Enter distro hopping, went from ubuntu (15 min), mint (2 days), arch (2 years), gentoo (3 days of installing), to openbsd which I still use today. 5.5 was the first release I installed and it instantly threw me into a world of C, ksh, and DIY solutions instead of "copy from the wiki".This somehow lead to LYAH and picking up haskell over a year and the rest of SICP after being stuck on monads for a month (this is where I realised I should learn math).

Forth came next with APL, prolog, and a bag full of other languages to play with. I slowly lost interest in games over time and started writing toy languages in haskell and lisp.

Between then and now has just been a lot of small projects in all languages I picked up over the years with the latest language being Idris. My interest for games development has resurfaced and I'm now working on a game exploiting 4D (5D if counting time) in idris of all languages. I also teach programming and mathematics so there's that.

My advice? Books! The minute I started on my tower I found it easier to stay on track as I tend to tangent a lot. Distro hopping did help with programming as I ended reading a large portion of C source with OpenBSD in the end plus tried to follow gcc before going with tcc (when on 5.5).

 No.282

>>65
When I was in elementary school took a course making games with microworlds, later at like 12 my dad found out I was using hackthissite and grounded the fuck outta me. Didnt touch code again till Junior year…

 No.286

I just started programming seriously late last year and have absolutely fallen in love with it. Thanks for posting all this advice guys, (particularly >>269) and great thread OP. Really helpful for newbies.

I began dicking around with computers when my stepfather bought me a cheap dell computer when I was 13. I loved to take it apart and look at the motherboard. I remember thinking that all the circuits and chips it was composed of looked like a cityscape. It was fascinating.

After that, I didn't have too many friends so I spent all my time in middle school/high school on 4chan. I learned the basics of programming in high school because /g/ made it sound cool.

It really wasn't cool until I learned how to use the terminal correctly though, and got off of windows and onto linux.

 No.289

I was digging around on my computer and i found some AppleScript files.
I found i could edit them and get them to do other things.

 No.291

File: 1498306230627.jpg (278.32 KB, 1280x960, we are all connected.jpg)

>>65
Long time ago, I did a programming course at high school,

Started out in pascal, went to Java. Lost my mind.

These days I only really script. I'd love to program again, but I am too busy.

 No.436

>How did you get into programming?
My best friend who moved to my school back in 6th grade.
He introduced me to Visual Basic, and tried to teach me to do stuff in it.
I was never really into Visual Basic
Later he introduced me to some C++, which I found hard at first.
Got some of the basics and now we mostly just learn by ourselves.
He is on an entire different level than I am in C++, though.
I can always go to him with quick questions and what not.

>What sage advice can we learn from my experience?

I'm not sure, I have any useful advice, really.
I suppose don't start out with C++ since it's such a massive language that is perpetually being expanded.

 No.446

Messed around with python a bit before going to college. Took some classes, now i'm better. Usually use C#.

 No.456

I was 15 and at school they started teaching us Java, it was so mind numbingly easy, I couldn't understand how most of the class struggled through it. (I'm by no means a prodigy, maybe a fifth of the class was natural) And so I decided that this is what I'm going to do with my life, it was easy, and I was told there's good money in it. I was a very lazy kid. Still am.

I am now 24, work as a programmer, and pretty much hate it.

>sage advice

Seconding (almost) every point here >>269

I still romanticize programming, I'd suggest you'd do the same. It's a great hobby when you're working on personal projects.

 No.460

I toyed around with things like rpg maker as a kid, didn't really go anywhere with that. Then I decided one day I'd make a virus as a prank, so I wrote the script for it (it was just something simple it kept opening command prompts) and stuck it on somebodies computer so it would automatically open and run itself on login. I got in a bit of trouble and had to remove it myself but after that I didn't do much until I got into game modding. I would take paradox and old dos games and I would just toy around with the values with no idea what they really did and as I kept doing it I eventually just started taking barebones functions i had figured out and configured them into new ones. I still had no idea what it was that I did but it worked. Then I got into college and I knew a lot of folks who worked with computers used linux so I got an old laptop shoved linux in it and after getting a crash course in operating systems from that I've been coding out minor little scripts to make my life at a computer easier. I've gotten a pretty decent education on shell scripts and java from this stuff.
My advice is that the best thing to do if you don't understand certain concepts is see an example of what does work, break it down and try to make it so that you comprehend it. If you can't comprehend it thats fine but don't use it because when you program you should always be able to say how what you have works step by step. Right now I'm looking at getting into something like qt or finally doing something in c. The reason computers are helpful is because they allow us to make mistakes faster than we ever could before.

 No.470

I started programming during my last highschool year, I was bored with classes and had no idea of what I could do as a job. I sucked at math and pretty much at everything else (thats still the case heh) but engrish (not my native tongue.).

So I search how to make games since I was interested in that (still am), and found a free online class about making games in C. Thats how it all started

 No.477

I dabbled in basic early in school, followed by writing many scripts for IRC when that came about. We use to share things over BBS which was cool.

Never could get into it.

I have tried to learn languages. My problem is there are no intermediate steps between "print" and defense contracts.

I would love to be active in the package maintainer world, or be able to fix software issues that people see as problems. However, I just can't wrap my head around it. The other issue is a friendly base of people does not exist. If one is not learning the language flavor of the week, then no one will talk to you. I don't want to learn Python, I want to learn C. I don't want to learn GO, I want to learn COBOL. I"m old school and always have been. PERL is on my list of things to learn as well, but I figure with enough C knowledge I can get by.

 No.501

>>65
I picked up a C++ book a while ago and got another copy of that for a friend as well. I haven't cracked into it until today though. I got interested years ago but I'm very, very lazy on the uptake with most things.

 No.526

>>65
Some Intro to Web Design class back in around 2000/2001. Thought it was going to be dumb, enjoyed it enough to pull an all-nighter and had a solid grasp of HTML by the next time I went to class.
I was pretty frustrated with how lame websites were and I wanted to do more so I started modding Quake 3 which taught me C.
Made a jump a couple years later to C++.

Advice?
Keep up with multiple languages. Implement something in one language then try re-implementing it in other languages. Getting stuck focused on only a single language is a sure way to stagnate.
Also, always keep a bottle of quality scotch on hand.

 No.564

Started when I was around 12 or so. Sage advice: Stay away from webdevelopment; don't get a code monkey job, if you think you want to major CS look into majoring math instead (or both).

 No.569

>>564
Totally agree.
Unless you want to do that soykaf. I ended up double majoring, and it's made my life a lot better tbh.

 No.724

File: 1506258746564.jpg (30.02 KB, 318x409, goodreads-1196445.jpg)

>>65
This book when I was ~11 or 12 years old (so around 2010 I guess)
(inb4 Webdev Isn't Programming pls; I made a damn animated greeting card with handmade JS)

I later went on to read about the first third of one of my dad's college textbooks on C, but never actually into compiling anything.

Much much later I started dabbling in Python and stuff

 No.726

>>724
Wow! That's how I got started too! It was around 1999 when I read it though.

Learning a markup language can often serve as a "gateway drug" to general purpose programming. Once you see the code you type translate into web pages you may feel curious about how to turn your code into programs as well.

 No.728

I started programming in university, because I liked videogames, after I dropped out I kept coding and lost interest in games because I was bad at drawing.

I started out with python, touched some other languages like c, never liked the java ecosystem and realized I had more interest in solving hard exercises/algorithms than developing apps.

My main interests are algorithms, cryptanalysis and reverse engineering.
Which I still work on by going to practice websites and participate in ctf's.

The only advice, I could give is read the right books too, instead of only swinging code in the terminal/ide/texteditor, especially math books related to programming, also watch out for the feeling that you know everything, code is endless.

https://www.daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner/

 No.729

File: 1506327966156.jpg (162.86 KB, 1366x768, tp7-1.jpg)

I once went to a Turbo Pascal Class that was offered after school but it happened only like 2 or 3 times and I did not follow up on it. Years later I got into HTML and all the websoykaf and finally arrived at Python at some point.

 No.732

Started writing VisualBasic about 8 years ago to automate boring data entry soykaf at my old job. Liked it so much I decided to learn CS and switch careers. Now I churn out bits for a living. It's alright.

 No.866

i wanted a party hat in runescape

 No.874

found old mk-61 calculator in the closet, and started programming it. after that there was a book about basic, but no computer for it. then i spent some time writing 3d engine in flash, switched to asm, then c.

 No.875

I started with Game Maker and moved onto C++ in middle school. I learned a lot in college. I wouldn't listen to glitterboys who say you shouldn't go to college for CS/CE if you have the opportunity to do so.

My most sage advice is to ignore the arbitrary prerequisites people on the internet set for you. For example, back in middle school and I was learning C++, everyone online said you needed to understand things like polymorphism before you can download SDL and try to make a game. Why the fuck would you need to understand polymorphism to make a game? Most games were written in C until at least the late 90s… You learn more by doing than thinking about doing, and pushing off your goals until you meet some requirement you'll never meet means you'll never reach your goals.

People would have you believe you need to be an expert in C++ to start a big project with it. What does it mean to be an expert in C++, you know? I've been using it for more than a decade and am by no means an expert.

 No.1267

I started learning when I was 13, in the summer between 7th and 8th grade. I ended up starting with a variant of BASIC called Yabasic, which was the only thing I could find that didn't take forever to download on the dialup I had back then. In retrospect I wish I could have picked a different language, because it was 2005 at the time and I'm pretty sure people were starting to move to Python and whatnot as beginner's languages. But, all the (likely then-outdated) info I found told me "start with BASIC", so that's what I did.

I mainly started just because I was bored one day and wanted to see if I was capable of understanding programming yet. My first programs were just whatever dumb things I could think to make with the features I had available in Yabasic. Things like a joke command prompt, a game where you had to press the key shown on the screen within a second or two, and a file archiver program using a custom format that could only handle text files. Later on I picked up Python and C++ and started trying to make games with them, hoping to go into game development. However, my ideas were too ambitious and I never finished anything. I ultimately ended up going into IT, where the only coding I do on the job is writing shell scripts and modding our system for managing work orders and invoices. Outside of the job I like to make scripts that visualize data I find online. Stuff like an imageboard thread analyzer so I can see at a glance who has replied to who.

I don't have much advice to give, other than don't set your goals unrealistically high like I did. If you're going to make a game, don't roll your own engine unless it's for something simple. It took me several failed projects to learn that because I thought I had what it took to roll my own. Even if you do have what it takes, it's just more time spent working on the backend and reinventing the wheel and less time spent working on the actual game. It wasn't until I started running a devblog and noticed how much time I spent on the basics that I realized what matters most when chronicling the development of your game. It's actual game features. No one outside of programmers cares about engine-level stuff, it's what you can do in the game and how it looks that attracts people to follow its development.

 No.1268

>>70
>When I was in elementary school, I did a few things in Scratch..
fuk im old

 No.1279

I normally to lie to people and say my first language was Python. I actually learned to program by writing VB macros in Excel, when I was younger. I didn't really understand how the code worked, but by using the "macro record" feature and copy-and-pasting I was able to build quite a few cellular automata (mostly inspired by old Xscreensavers). From there I moved to Python, where I actually learned how to program properly.

 No.1280

When I was a teen I took some online courses on basic python and C++ but I never made it far given how short my attention span (was) is. I seriously started to program when I joined university for my cs classes and since then it became a daily routine, just writing some lines of code for fun.

 No.1281

>>65
I learned how to program from my mother's student copy of Microsoft VB98 and the included MSDN disc. I spent three years writing VB code. In the beginning I was focused on making games. At some point I decided that I wanted to make a clone of Harvest Moon and so I used my incredibly limited knowledge to make a really basic map editor and included in that editor was a really basic "script" "editor/compiler". It's pretty apparent to me now that it was just a lobotomized BASIC clone with features specifically for manipulating game objects. From there, I went on to C programming through devkitarm and failed to really make anything significant. I struggled for a long time with figuring out what I wanted to focus my time and energy on. I kept coming back to game development and reinvented the wheel time and time again until I realized I was much more content with creating plain old useful software. I've realized over the years that the realm of utilities and general software offers much more to the programmer than the same 5 genres of game development ever could. I think game development has more to offer to artists and musicians, personally. Since coming to that conclusion I've settled on Scheme, C, and Ruby for getting things done.

If I was to give someone interested in programming because of games any advice, it would be this: Unless you plan on dumping a majority of your resources into serious studio-quality game development, don't expect your interest to last. That being said, you can use it as a catalyst if you enjoy programming more than making game assets.

 No.1284

I learned how to program while playing Second Life. The game has a built-in scripting language that taught me basic control flow and callback-driven patterns. The best part about that was that it was a shared, interactive experience, so anything you made you could share/show off to your friends who were playing with you.

I honestly don't really think it matters so much how you first learn programming. If you're someone who cares about what you're doing, you'll be able to identify the bad habits you pick up and work to rid yourself of them. Learning how to unlearn something is a useful skill to have.

 No.1285

File: 1532344036736.png (944.71 KB, 828x1169, ykk.png)

Started using Game Maker in 6th grade and then C++ in 7th grade because… I wanted to make games. I programmed all the time in middle school but didn't do it much in high school. I don't like games anymore, but I have a degree in CS. I also don't like programming anymore and wish I could be normal.

 No.1286

I started writing Batch/VBS "viruses" as pranks in 4th grade, then moved on to casually learning Python for fun, then started writing the frontend trio, C and bash about a year after I started using Linux.

 No.1450

18 years old, because I picked CS major at random. Ended up liking it and programming for fun.



[Return] [Go to top] [ Catalog ] [Post a Reply]
Delete Post [ ]