Ask HN: 0 - 6 months of programming, what milestones should I be accomplishing?
I am looking to start LPTHW and would like to set tiny milestones from month 0 to 6, to keep me motivated...something similar to http://www.whitakerblackall.com/blog/first-six-months/ I'm really new to programming so I don't know the different branches, or what the possibilities are, I assume they are endless :P!
4 comments
My first piece of advice is to ignore what everyone tells you and find a path you're comfortable with. :) What's been hard for me is deciding when to explore and when to exploit. With a full time programming job that's mainly applying my knowledge, not doing real research, I have much less time to explore, but back in high school and the summers in between I had lots of free time to learn a little of this and that and play around a lot. I started with a PHP+MySQL book and for the first couple of months or so just plowed through it, typing in the examples manually or doing my own variations of the topics. When I learned about the "ternary operator" I made a web page that just printed out alternating rows of color.
My second piece of advice is to find a problem, ideally a bunch of problems, that you want to solve and that programming can help you solve. Solve them. Definition of problem: something to solve. ;P e.g. a program that prints the Bottles of Beer lyrics out, increase the start number until you can crash/slow down your computer or server, build a blog website, image gallery, video game with PyGame, or in text, native QT app calculator, project Euler math problems, robots, whatever. The key is you have to have a desire to work on whatever you're working on. When you lose that desire for your current project, procrastinate by switching to a different project.
My third piece of advice is to learn how to use the git source control manager and interfacing with GitHub. Then troll some Python repositories ( https://github.com/search?type=Repositories&language=... ), find some with an open issues list and an issue that isn't assigned to a particular person, fix the issue if you want/can, and submit a pull request. Now you can say you've contributed to open source software!
Edit: if you really have no ideas of your own, which I'd find hard to believe, you can do a small project I've been meaning to get around to for a while so I can blog about it. (I blog mostly to my past self.) Implement a clone of the game Pong three times in an imperative, Object-Oriented, and functional style of programming.
My second piece of advice is to find a problem, ideally a bunch of problems, that you want to solve and that programming can help you solve. Solve them. Definition of problem: something to solve. ;P e.g. a program that prints the Bottles of Beer lyrics out, increase the start number until you can crash/slow down your computer or server, build a blog website, image gallery, video game with PyGame, or in text, native QT app calculator, project Euler math problems, robots, whatever. The key is you have to have a desire to work on whatever you're working on. When you lose that desire for your current project, procrastinate by switching to a different project.
My third piece of advice is to learn how to use the git source control manager and interfacing with GitHub. Then troll some Python repositories ( https://github.com/search?type=Repositories&language=... ), find some with an open issues list and an issue that isn't assigned to a particular person, fix the issue if you want/can, and submit a pull request. Now you can say you've contributed to open source software!
Edit: if you really have no ideas of your own, which I'd find hard to believe, you can do a small project I've been meaning to get around to for a while so I can blog about it. (I blog mostly to my past self.) Implement a clone of the game Pong three times in an imperative, Object-Oriented, and functional style of programming.
Six month milestone: still be interested in programming and having fun.
I'm not trying to be flippant; I don't think spending the huge amount of time learning how to hack code is for everyone, especially if you don't have professors, TAs or bosses breathing down your neck to get stuff done.
If you're really motivated, ship something (anything!) that is used by someone other than you.
Good luck! :)
I'm not trying to be flippant; I don't think spending the huge amount of time learning how to hack code is for everyone, especially if you don't have professors, TAs or bosses breathing down your neck to get stuff done.
If you're really motivated, ship something (anything!) that is used by someone other than you.
Good luck! :)
Interesting question. I've been programming for 10 years and I want to see what I've missed. I suspect that if you picked good milestones and executed them well you could be in the top quartile of all developers at the end of those six months.
It would be nice if I could intern for someone and just do simple tasks, I'm a college dropout and I don't really know how to go about finding something like that...
How about volunteering for the Khan Academy? Also try asking your question on programmers.stackexchange.com. I bet they'll like it, with the ambitious tone and the good book reference.
The most important things for you to learn in the first few months are actually pretty language agnostic (e.g. what a variable is, what a function does, basic logical statements), but the big one that you should be looking for is a basic understanding of how programs work. The idea being, when you look at Facebook, iTunes or whatever, you should be able to start thinking about the high-level decisions that the program makes, even if you don't know how to actually implement that logic programmatically.
Everything else will naturally progress from there, but you can't progress as a programmer, until you start thinking like one.
Everything else will naturally progress from there, but you can't progress as a programmer, until you start thinking like one.