I was looking at the programs being offered by the community college today and the course description for Computer Information Systems Diploma caught my eye. The college had linked to news articles (like this), exclaiming: "If you can code, you can get work."
At first glance the diploma they're offering doesn't include very much coding. First you have to muddle through courses on technical writing, circuit boards and understanding an operating system. When you finally get to write code (in your second year) it's going to be in Sharepoint.
I'm not against education, I'm against bad education; especially when it promises career advancement. What we need is education that connects with what's happening right now. We also need to do it as efficiently as possible. Why would we waste a student's time teaching them about circuit boards when all the jobs are in web development?
Right now software companies are desperate for developers. Colleges aren't meeting this need: they're preparing kids for yesterday's jobs. Every software company I know is hiring Python or Ruby on Rails developers, and yet few local colleges teach it.
When I compare the description for Computer Information Systems Diploma (from the community college) with the description for Web App Development (from a school in Chicago called the Starter League) the difference is striking:
The college's program will take you 2 years to finish (Startup League's will take you 3 months).
The college's program will cost you nearly $10,000 in total (Starter League's will cost you $8,000).
The college's program is riddled with outdated requirements, and teaching them on outdated IDEs (Starter League is focused on current, in-demand languages and frameworks like Ruby on Rails)
The college's program is a pre-requisite for other programming courses (more money + more time) (the Starter League gets you coding you right away).
If you're hoping to get a better job, make sure you consider the ROI. How much is it going to cost, and what's the potential pay-off? To find out, you'll need to do some homework.
Want to be a programmer? Go and talk to your dream software company, and ask them what education you'll need. Show them the course descriptions for the programs you're thinking of taking, and ask them if it's what they're looking for.
If you're specifically looking to become a web developer, these are some educational options that could give you a good start, at a fraction of the cost:
Treehouse - learn to design and develop for the web, and for iOS (starts at $25/month)
Code Academy - learn to code, online, for free
Starter League - physical school in Chicago, offering intense 3 month courses for Ruby on Rails (3 month course is $8,000)
Ruby Weekend - weekend crash course in Las Vegas where you'll learn the basics of Ruby and Rails ($100)
Related links and quotes:
"Most of the really top-notch developers I know became passionate about computing in high school or earlier. Unfortunately, for many of them it was in spite of the schools they attended, not because of them." (Source)
"I actually got half a comp sci degree (my bachelor was in biz admin/comp sci), but that wasn’t where I truly learned to program." - DHH, How do I learn to program?
"My university experience did nothing to make me a better programmer, just a better theoretician." - Jamis Buck
Advice on How to Become a Programmer: "College is great for high-level theory, but work experience trounces it when it comes to learning software development."
Learning on the Battlefield: "For a fast-moving field like computer science, the work you're doing is far more relevant than any classes you're taking. If you must choose between formal schooling and work experience, always choose work. If you're in school, aggressively pursue real-world experience that compliments your schoolwork."