I still have quite a lot of other programmer’s advice so here is the 4th post about it.
I do hope that you find this serie (other people’s advice) useful and that you can learn from it. Because previous answer was too long I am posting the second part of the answer here, which makes it advice No. 4 already.I started with Project Euler and did 50 problems on it.
The wonderful thing about Project Euler is they have discussion forums where programmers from around the world post over 200 solutions to the same problem, in 20+ languages, from 20+ countries. You may only go into the discussion forum for a problem when you get the right answer. After you do that, you learn SO MUCH from seeing how other people solved your same problem in much better, faster, and more efficient ways than you, in multiple languages. Then you rewrite your solutions to incorporate those coding and algorithm tricks you learn from others.
Spending weeks solving Project Euler was extremely frustrating but incredibly stimulating for my mind and really valuable later on. Those are some of the toughest problems you can do, and you can use any language you wish (or multiple languages). The specific languages DOES NOT MATTER. What matters during job interviews is HOW YOU THINK AND ANALYZE PROBLEMS. That’s what companies seek—people who can adapt quickly, in any language, to any programming challenge a job throws at you. You can hone your coding skills by doing tough programming challenges like those sites I listed above.
Once you can do tough challenges like Project Euler, everything else in programming (building websites, etc.) will seem easier to you. It’s like doing pushups for your mind. Or running a marathon. Once you can do that, then running a kilometer is easy.
How this guy used Project Euler to learn how to code:
The problem with bootcamps is they don’t focus on hard coding challenges, which teach data structures and algorithms. Those skills are the toughest parts of software job interviews, where people will ask you to code on a whiteboard with a marker. No computer or Internet. Just using your brain and standing in front of some engineers, talking about your code solution extemporaneously.
Bootcamps are good at teaching you limited skills about how to make specific kinds of websites, but they aren’t good at teaching how to deal with fundamental computer science (data structures and algorithms), which teaches you how to respond to completely new challenges you’ve never seen before. Doing problems from code challenge websites teaches you that. Also, post all your solutions on GitHub. Your GitHub will become your resume for software jobs.
Ooh, I just saw your blog: http://teacod.com/. Wonderful! Many of my Flatiron classmates also wrote blogs about their learning experiences. Nisha Batra wrote one of my favorite, detailed blogs about learning to code: http://nishacodes.tumblr.com/archive
This guy in LA, Daniel Greenfield and his wife Audrey Roy are Python/Django experts. They travel around the world giving talks on these subjects. They wrote the book “Two Scoops of Django”: http://twoscoopspress.org/products/two-scoops-of-django-1-6
Ask me if you have any technical questions.