4 ms·
Start doing it. Pick a project. Don't spend time agonizing over what sort of project it should be, you'll find out if you like it or not once you've started do
by aalleavitch 9y ago
Start doing it.
Pick a project. Don't spend time agonizing over what sort of project it should be, you'll find out if you like it or not once you've started doing it, and if you picked the wrong project or language you'll better internalize the reasons why by actually ramming your head against those things yourself.
I'm going to disagree with the majority here and say don't pick a small and manageable project. Pick a project that inspires you. As long as you can maintain the motivation and actually put fingers to keyboard over and over again, that's all that really matters because even when you fail you'll learn. More importantly, you'll be forced to realize how large projects must be broken down into smaller projects and tackled piece by piece, and you'll gain a much deeper appreciation for the sheer amount of work the things you want to do really take. If you're anything like me, you're going to fail your first project, and your second, and many after that, but you will learn something invaluable every time.
Consume the opinions of programmers voraciously. Not just one programmer, read as many conflicting opinions and ways of tackling problems as possible. Read HN. Read stackoverflow. Read github comments. Programmers are deeply passionate about various aspects of programming, and understanding why is an important part of growing as a programmer.
Realize that everything you could possibly seek to understand is publicly available on the internet, if you know where to look and who to ask. Everything.
I have more opinions on this, but since it seems we all do I think I'll cut my advice short there :P.
- retube 9y ago> Pick a project that inspires you That's all very well, but until you have experience of languages and associated tool chains, libraries etc plus knowledge of OS stacks, networking and so on its difficult to know what is possible and how you'd go about achieving your goal
- aalleavitch 9y agoThe point is that you don’t. You’ll only know after you’ve done the legwork and rammed your head against the problem. Maybe your first project is impossible; mine definitely was, but that’s not the point. The point is to learn.
- lhuser123 9y agoYeah, that’s what worked for me. Just like that awesome toy that made you curious... what did you do ? Brake it, let’s see how it works !
- natalyarostova 9y agoI'm on my fourth or fifth personal project, first four or so failed. Now as I'm learning design patterns it gets a little easier each time. Just keep writing bad code every day, and each time learn why it was bad lol.
- gravypod 9y ago> its difficult to know what is possible I'll save everyone some time. Everything software related is possible. > how you'd go about achieving your goal Find some code where someone did something similar, look at it, write your own implementation that does what you want. The way I got into this field was by writing mods for games. Very narrow scope you can play with so it keeps things simple for beginners.
- mandeepj 9y ago> read as many conflicting opinions Not at this point for OP. These conflicts can also cause a lot of confusion
- majewsky 9y agoTemporary confusion is better than repeating the same mistakes over and over again because you followed a wrong trail.
- majewsky 9y ago> Pick a project that inspires you. As an inspirational story, I built my first programming language at age 12. It was closer to Brainfuck than to C, but I built a compiler (in Visual Basic) that transpiled to 16-bit x86 assembler (I learned just enough from assembler tutorials on the internet) and ran that through NASM. I remember that I worked an entire afternoon (possibly longer) on a program that was the equivalent of if (getchar() == 't') { puts("you typed 't'"); } because the language was so ridiculously limited, but getting it to work (and an actual .exe file to show for it) was immensely gratifying. Thinking about it, that language was actually the only one that I ever finished. As I learned more about language design etc., my designs grew much more grandiose than my freetime permitted.