First off, good luck! I would pick a language like Python or Javascript, and start reading code. diveintopython is very good.
Once you are familiar with little bits of code, pick something big that you want to make. My first big program was a metasearch engine (given a search query, issue queries to several search engines, parse the results, and combine them into one set).
Once you are happy with it, maybe 5-6 months in, write the same program in another language, say Ruby or Javascript. This is now called a "kata", I think. I wrote the same metasearcher in 5 different languages over the course of about 14 months. Attacking the same problem gives you a good vantage point from which to compare languages and techniques.
I am planning on focusing on CSS/Javascript and I have a simple browser extension that I want to make at some point and will be focusing on learning the skills necessary to make the add on.
I will definitely take a look at other languages as well and I already know some basic Java but in the beginning I plan on focusing on Javascript.
Spend 9 months working on something and learn via the work. Don't spend 9 months simply studying programming information. ( Bonus points if you are getting paid by someone else while you are learning... but be clear about that upfront. )
Pick a problem, a tool set and get experienced. You will not gain as much if you simply read across multiple applications and disciplines.
For a focus on the academics, and not the practical, I would not suggest going it alone unless you are really that strange type of person that gets math intuitively.
Its very easy to learn the syntax of any language, you can probably do 5-10 a day. But to really learn a language, you must use it. Try to solve problems and try reinventing the wheel a couple of times.
Make sure whatever you work on is something you are passionate about. Something you think is the coolest thing ever. Doesn't matter if it is useful or if it is something people will pay for. It could also be something really ambitious; don't limit yourself by what you think you can do.
If you don't pick a project you really really care about then learning programming and finishing your project is going to be twice as difficult.
Good luck! Check back in in a couple months to let us know how it went!
Do whatever it takes to program every day. Either build a few apps for yourself, work on a new app/business you plan to launch, or try to extend open source projects. The important thing is trying.
Like an writer or a painter, the best way to learn programming is to learn by doing.
It does help to work with others, so find a friend and work on a project with them and try to learn as much as possible if you can.
Regardless of how you do it, you will be blown away by how much your skills improve after 270 days.
It would help us immensely if you tell us why 9 months and what you hope to be able to accomplish after 9 months. That will help us point you in the right direction.
Start writing code as soon as possible. The earlier you start writing it, the earlier you'll actually understand what you're doing.
Even typing in examples verbatim from books will force you to start paying at least a little attention to what the code is doing. If that's too boring, try re-implementing examples without referring back to how they did it in the book.
May I please suggest that your question fundamentally mistakes the journey. Programming is applied thinking--it is not about the tools. Maybe you already know how to think in ways useful to programming, or maybe you don't. Either way, nine months out of a lifetime is not much.
If you already know how to program, then nine months might be a decent timeframe for adding a new tool (or two) to your toolbelt. If you do not already know how to program, then nine months will be just enough to make you dangerous.
13 comments
[ 4.0 ms ] story [ 35.9 ms ] threadOnce you are familiar with little bits of code, pick something big that you want to make. My first big program was a metasearch engine (given a search query, issue queries to several search engines, parse the results, and combine them into one set).
Once you are happy with it, maybe 5-6 months in, write the same program in another language, say Ruby or Javascript. This is now called a "kata", I think. I wrote the same metasearcher in 5 different languages over the course of about 14 months. Attacking the same problem gives you a good vantage point from which to compare languages and techniques.
I will definitely take a look at other languages as well and I already know some basic Java but in the beginning I plan on focusing on Javascript.
Here is his rant about it: http://oppugn.us/posts/1272050135.html
Here is the hn discussion of his rant: http://news.ycombinator.com/item?id=1289186
Pick a problem, a tool set and get experienced. You will not gain as much if you simply read across multiple applications and disciplines.
For a focus on the academics, and not the practical, I would not suggest going it alone unless you are really that strange type of person that gets math intuitively.
I really want to focus on the practical aspects of "web development"
Do you have any advice on what type of "environment would be ideal for learning programming?
Its very easy to learn the syntax of any language, you can probably do 5-10 a day. But to really learn a language, you must use it. Try to solve problems and try reinventing the wheel a couple of times.
If you don't pick a project you really really care about then learning programming and finishing your project is going to be twice as difficult.
Good luck! Check back in in a couple months to let us know how it went!
Like an writer or a painter, the best way to learn programming is to learn by doing.
It does help to work with others, so find a friend and work on a project with them and try to learn as much as possible if you can.
Regardless of how you do it, you will be blown away by how much your skills improve after 270 days.
Even typing in examples verbatim from books will force you to start paying at least a little attention to what the code is doing. If that's too boring, try re-implementing examples without referring back to how they did it in the book.
If you already know how to program, then nine months might be a decent timeframe for adding a new tool (or two) to your toolbelt. If you do not already know how to program, then nine months will be just enough to make you dangerous.