Geek, entrepreneur, and AI researcher.

Today’s job market is different than what the majority of the baby boomers have experience in. Retail is dying and the few positions that are available are highly competitive. I know a couple of boomers in the central Virginia area who are looking for 2nd careers. So, with their savings depleted due to prolonged unemployment, I proposed a radical idea: become professional programmers by June 2013.

If you’re over 45 and want to become a developer as well, email me. I’m happy to include you in the project.

Foundational Retraining

They have no technical background, no education beyond high school, and absolutely no experience with programming. They do have a desire to learn to code, get a decent paying job, and work for an employer who cares about them.

Putting MOOCs to the Test

The last year has seen a surge in Massively Online Open Courses (MOOCs). Tons of articles have been written about how MOOCs may enable the stagnant economy to adapt via retraining of the unemployed towards more tech-focused careers. I’m going to test that theory: over the next 6 months, they are going to use 100% free online learning courses to become professional programmers.

The Curriculum

Touch Typing (TypingWeb) – A basic typing class. Productivity gains aside, looking away from the screen to see what you’re typing causes a disruption in your concentration. Consequently, I think touch typing will make you a better programmer. 30 minutes a day for 9 weeks, starting February 4th.

Intro Python (Codecademy) – The ground floor for learning what programming looks and feels like. I love the in-browser coding tutorials and personally think they are a great way to dip your feet into the water. 6 weeks worth of classes, starting February 4th, though I expect they will finish this much sooner. Supplementary material available via the Coursera course on Learning to Program.

MIT’s CS 6.00x (EdX) – A comprehensive intro to Computer Science and programming. The course covers everything from OOP to MC sampling, with a bonus reward of an official MITx certificate of completion. 24 weeks, starting February 4th,.

Princeton’s Algorithms, Part I (Coursera) – The course will cover a lot of fundamental data structures and algorithms that will be brought up in most programming interviews. 6 weeks, starting February 4th.

Intro Javascript (Codecademy) – Learning JS is a prerequisite for most web development jobs, so this is a must as well. Fortunately, once you know Python, this should be easy. 3 weeks, starting March 19th.

Startup Engineering (Coursera) – Hopefully this will bridge the gap between the basic courses and modern web and mobile development. They will build a complex product with a team, giving them a cool project to discuss in job interviews. 10 weeks, starting April 2013. Since I’m a little leery of the start date being pushed back, I have the fallback course of Steve Huffman’s Web Development (Udacity).

Independent Projects (Github) – Every week they will write and push one open source project to Github. The idea is to build a portfolio of increasingly complex examples of their coding ability. 24 weeks, starting February 4th.

Weekly video chats – One of my professors has a great class discussions structure. Every morning, he sits down with the class and starts by saying “Good morning colleagues. Are there any questions?” I plan to sit down with them and ask them that same question every Friday. I’ll try to be helping throughout the week, but this structured time ensures I’m available for in-depth questions before their weekly assignments are due. 24 weeks, starting February 4th.

Job search – The course goes through June, but they will start applying for jobs in April. Worst case scenario is they get no interviews or responses. If they do get interviews, it will either A) lead to a job (yay!) or B) be excellent practice for the next interview. 10 weeks, starting April 15th.

Challenges

This is not an easy task.

The time commitment is around 40-50 hours a week. It requires becoming a full time student.

In terms of conceptual challenges, Algorithms is by far the hardest course. It also requires them to do their work in Java instead of Python. I’m not sure how this will work out just yet; I will probably have them do the algorithms in Python and then help translate them to Java.

After mid-April, the schedule starts to de-emphasize classes. This is intentional. I want them to start working more on projects, maybe learning something on their own like Flask, Backbone.js, or Android. By this time, they should have a good feel for what they want to specialize in, whether it be back-end, front-end, or even mobile development.

Once they have the skills, getting the job will mean overcoming both the lack of a formal degree and the alleged age bias in tech. I always found the “hire the hot young kid” perspective naive. Yes, that kid is probably going to become a great programmer in his life. How long do you think he’ll stick around at your company? 2 years? Maybe 3? Conversely, they are ready to dedicate the next decade to a company that values them. Still, the bias probably exists and they’ll have to convince their potential employer of the long-term value they can add.

Conclusion

This is my first-shot at a curriculum and I’m interested in hearing thoughts from other people:

What do you think about the courses they’re taking?

Is there another class or program they should take?

Is there a better way to go?

Would somewhere be willing to train them on the job?

Is there a dominant technology in the Richmond area they should learn?

What about working from home?

Should they focus more on mobile than web?

Note that all of the courses I outlined are 100% free and available online. That’s important, since they are not able to relocate and up-front tuition is out of their price range.

As far as I’m aware, this will be the first time anyone has ever gone from zero background knowledge to professional developer in 6 months using only free online courses. It’s a huge challenge. I’m confident they can do it.