A friend writes:
I’ve been looking into attending a coding bootcamp. Do you have any opinions on them? Any local ones with particularly sterling reputations? Do they seem to churn out somewhat competent alumni?
Thanks in advance for any insight you might be able to lend.
Honestly, I don’t have a good opinion of any of them, but I didn’t look to closely. First, because 90% of them teach Ruby on Rails1 which is a terrible language (Ruby) and architecture (Rails) for learning to program and can have zero application in the area of computing it is marketed toward in order to attract students — for instance, I remember seeing a coding bootcamp for iOS programming that taught it using Ruby on Rails.
For learning general web development (or even general programming) I think some web framework using Python might be the best language because it easy to learn, easy to read, and very logically constructed. If the focus is on mobile app development the only language worth learning is Objective C. If the camp does that (i.e. Python for web or Objective C) they’re already far head of the pack IMO.
As for which ones are best, I’d simply look into which ones do well at placing their students into jobs. The companies/people who run these make the bulk of their money off of placement fees to corporations, even if though those deals are often onerous (for the employer). Though this is a shitty incentive to make the best program, it does show that they must add value somehow: signaling, actual skills learned, some base level of competency, etc. This goes double for those programs focused on women, because the demand on the end of the employer is double. But, in the long run, it doesn’t matter how good or poor the program is if the companies continue to hire from them then they must be worth something, right? This is true even if they use Rails as their teaching language.
Close to zero of these schools have people with true teaching experience or who studied education and learning. My thinking is the success that occurs, when it does, is more due to the format of learning (classroom, labs, intense immersion, applied to a particular end goal) is a style that works for a set of people who previously found that other methods (usually self taught from books, iTunesU or online tutorials) failed for them. So if you’ve tried to learn programming before but it never stuck, then it’s worth a shot to try a bootcamp, and they have a huge incentive (1/4 of your first year salary) to take the extra step of helping place you in a job.
In the end coding isn’t that difficult which is why people can learn it as young as five years old. The issue here is not the difficulty but the combination of initial effort and the continual practice involved. Most people aren’t willing to do this, and this is why good programmers are scarce. If you have the grit to tough it out in intense immersion for a month or two, it must signal something to somebody.
Finally, I’d also ignore any of the stuff outside actual programming and language that they “teach.” There is some truth to the saying, “those who can’t do teach.” A school’s instructors will often teach about software processes like “test-driven development” or “pair programming” because they read in once some “agile practices” book and thought that’s how it should be. But many of that is only used in special circumstances or in enterprise software development. If you just want a job as replaceable IT worker working for a bank in some right-to-work-state like Louisiana — a job that will eventually be outsourced to India, then that crap is useful, otherwise just ignore it and learn proper programming practice and processes on the job you end up in after you are placed based on the coding project you demoed to your future employer.