This guide looks decent to me. I’ve heard that programming bootcamps like AppAcademy, etc. are already doing a lot to increase the number of entry-level Rails developers in the market. I haven’t really heard of any non-web-development focused bootcamps, though. So it might not be a bad idea to focus on building skills in mobile development (supposedly iOS is really hot right now), data science, computer security, etc. instead of Rails and JavaScript. For someone taking this route, I would recommend Learn Python the Hard Way to gain a foundation in programming (Ruby tends to be used for web development only; Python is used for all sorts of stuff) and then choose a specialty and focus on it.
Edit: this guide seems to confirm my intuition that most bootcamps are web-focused. Additionally, I would argue that the web application programming model is a fairly inelegant one and might be a relatively bad place to start learning programming conceptually. Here is a salary guide for various computer programming specialties; you can also do searches like this. By the way, I’ve heard that White Hat Security is a good place to get an entry-level application security job, even if you don’t have any programming experience.
The fact that most bootcamps focus on webdev is probably not for any theoretical reason, but just that the practical uses of what you do are very apparent and you will see visible evidence of skills for which there is market demand very quickly and very often.
What would your ideal of a good place to start learning programming conceptually? I think phone app dev tends to be less elegant than webdev. While understanding C and pointers has value, imo, being able to do something useful with it is not within the reach of a bootcamp and learning it just for theory is nice, but only if you can afford to spend essentially several unproductive months on it.
I am probably a bit biased though (I’m planning on doing a coding bootcamp, and prefer ruby syntax to python), and what you’ve provided does seem like real alternatives for anyone who doesn’t want to go the web dev route.
What would your ideal of a good place to start learning programming conceptually?
Solving Project Euler problems, writing command line apps, creating games using Pygame or some JavaScript game development framework (or just a command-line hangman)? Or, even better, some programming project you are interested in for its own sake.
what you’ve provided does seem like real alternatives for anyone who doesn’t want to go the web dev route.
You mean doesn’t? Yeah, I agree, my suggestions are not nearly as fleshed out as Peter’s. I certainly don’t mean to discourage folks like you. I think learning Ruby on Rails is a great idea. I wouldn’t suggest that someone who’s partway through the path Peter outlined retool for a different set of skills. And once you’ve mastered one model of programming that will give you a leg up for learning others. It may be that learning Ruby on Rails is currently the best way to master programming just because of the existence of beginner guides like Peter’s and coding bootcamps.
If someone is having significant trouble following the route Peter outlined, however, I think I might have something useful to say. If you’re using Ruby on Rails to write apps, you’ll be using a lot of different technologies (HTML, CSS, HTTP, a database, maybe JavaScript, and Ruby) that interface with each other in weird ways. And Rails is full of magic and shortcuts that make things faster when you know what you’re doing but make it harder to form a mental model as a beginner. I think I remember reading that Sinatra was used instead of Rails by at least one of the major coding bootcamps for the majority of the course because it’s better for developing a mental model. Rails can be pretty hard for even experienced programmers to master because of all the magic. Point being, if you’ve having trouble (especially if you’re not understanding things as thoroughly as you might like), you could still make a great programmer, and I’d recommend programming some command line games in Ruby, using Sinatra instead of Rails, and mastering technologies one at a time without shortcuts.
Project Euler is a really good tool for getting the hang of a new language, imo. Strongly recommend it to anyone who wants an interesting project that will teach basic skills.
I actually did mean does :) Sinatra is definitely easier to understand than Rails and I agree that if the first code I had worked on with ruby was Rails instead of Sinatra I would have been pretty fucking confused (note that, at least in App Academy’s case, the precourse work involves a fair amount of pure ruby). The real benefit of the bootcamps (I hope, anyway) is taking someone from saying, “okay, I can comfortably write a program, but what else do I have to know to do a real job?” and teaching the rest of the production environment and techniques, not just concepts of programming.
I think I agree with your core point, if I’m reading it correctly, that that if you aren’t in a huge hurry (and ideally, even if you are), taking the time to really master the basics and understand your toolchain one piece at a time is very valuable.
I feel like I can only focus on so much and keep it coherent and useful. The intro is very heavy on there being no one right path, so hopefully that defrays some of this criticism. And most of the textbooks do teach concepts some of the time in addition to direct coding.
However, if you think there is an appropriate place in the guide to insert information on some language or concept, and have a good resource or method handy for learning it, I’d be happy to seriously consider it.
This guide looks decent to me. I’ve heard that programming bootcamps like AppAcademy, etc. are already doing a lot to increase the number of entry-level Rails developers in the market. I haven’t really heard of any non-web-development focused bootcamps, though. So it might not be a bad idea to focus on building skills in mobile development (supposedly iOS is really hot right now), data science, computer security, etc. instead of Rails and JavaScript. For someone taking this route, I would recommend Learn Python the Hard Way to gain a foundation in programming (Ruby tends to be used for web development only; Python is used for all sorts of stuff) and then choose a specialty and focus on it.
Edit: this guide seems to confirm my intuition that most bootcamps are web-focused. Additionally, I would argue that the web application programming model is a fairly inelegant one and might be a relatively bad place to start learning programming conceptually. Here is a salary guide for various computer programming specialties; you can also do searches like this. By the way, I’ve heard that White Hat Security is a good place to get an entry-level application security job, even if you don’t have any programming experience.
The fact that most bootcamps focus on webdev is probably not for any theoretical reason, but just that the practical uses of what you do are very apparent and you will see visible evidence of skills for which there is market demand very quickly and very often.
What would your ideal of a good place to start learning programming conceptually? I think phone app dev tends to be less elegant than webdev. While understanding C and pointers has value, imo, being able to do something useful with it is not within the reach of a bootcamp and learning it just for theory is nice, but only if you can afford to spend essentially several unproductive months on it.
I am probably a bit biased though (I’m planning on doing a coding bootcamp, and prefer ruby syntax to python), and what you’ve provided does seem like real alternatives for anyone who doesn’t want to go the web dev route.
Solving Project Euler problems, writing command line apps, creating games using Pygame or some JavaScript game development framework (or just a command-line hangman)? Or, even better, some programming project you are interested in for its own sake.
You mean doesn’t? Yeah, I agree, my suggestions are not nearly as fleshed out as Peter’s. I certainly don’t mean to discourage folks like you. I think learning Ruby on Rails is a great idea. I wouldn’t suggest that someone who’s partway through the path Peter outlined retool for a different set of skills. And once you’ve mastered one model of programming that will give you a leg up for learning others. It may be that learning Ruby on Rails is currently the best way to master programming just because of the existence of beginner guides like Peter’s and coding bootcamps.
If someone is having significant trouble following the route Peter outlined, however, I think I might have something useful to say. If you’re using Ruby on Rails to write apps, you’ll be using a lot of different technologies (HTML, CSS, HTTP, a database, maybe JavaScript, and Ruby) that interface with each other in weird ways. And Rails is full of magic and shortcuts that make things faster when you know what you’re doing but make it harder to form a mental model as a beginner. I think I remember reading that Sinatra was used instead of Rails by at least one of the major coding bootcamps for the majority of the course because it’s better for developing a mental model. Rails can be pretty hard for even experienced programmers to master because of all the magic. Point being, if you’ve having trouble (especially if you’re not understanding things as thoroughly as you might like), you could still make a great programmer, and I’d recommend programming some command line games in Ruby, using Sinatra instead of Rails, and mastering technologies one at a time without shortcuts.
Project Euler is a really good tool for getting the hang of a new language, imo. Strongly recommend it to anyone who wants an interesting project that will teach basic skills.
I actually did mean does :) Sinatra is definitely easier to understand than Rails and I agree that if the first code I had worked on with ruby was Rails instead of Sinatra I would have been pretty fucking confused (note that, at least in App Academy’s case, the precourse work involves a fair amount of pure ruby). The real benefit of the bootcamps (I hope, anyway) is taking someone from saying, “okay, I can comfortably write a program, but what else do I have to know to do a real job?” and teaching the rest of the production environment and techniques, not just concepts of programming.
I think I agree with your core point, if I’m reading it correctly, that that if you aren’t in a huge hurry (and ideally, even if you are), taking the time to really master the basics and understand your toolchain one piece at a time is very valuable.
Zipfian Academy is a bootcamp for data science, but it’s the only non web dev bootcamp I know about.
I feel like I can only focus on so much and keep it coherent and useful. The intro is very heavy on there being no one right path, so hopefully that defrays some of this criticism. And most of the textbooks do teach concepts some of the time in addition to direct coding.
However, if you think there is an appropriate place in the guide to insert information on some language or concept, and have a good resource or method handy for learning it, I’d be happy to seriously consider it.
I didn’t mean my comment as serious criticism, just a remark. Thanks for all you’re doing for the EA movement :)