Thursday, September 18, 2014

Initial decision on how to learn programming

Once I made the decision to switch careers, the first plan of action was to start learning to program. One of the things that I really admire about the computer science field is that it doesn't seem to care about convention. You don't need a four year degree to get a position, you only need to demonstrate that you have the skills for the job. Potentially, this could work in my favor. I wouldn't necessarily need to go back to school to enter the field (go back to school, I guess I haven't left yet :-) ). A lab mate of mine did exactly this after graduating. He spent about six months learning the skills and building a portfolio of mainly javascript projects and landed a job at Menlo Innovations, which by the way sounds like a great place to work. It's easier than ever to learn to program with all the great resources out there, particularly interactive sites such as codeacademy.comteamtreehouse.com, and codeschool.com. Self-learning is one viable way to teach yourself to program.

Relatively, I am a very disciplined and motivated person. That being said, I thought a program with more structure than the self-learning route would help me learn faster. Additionally, I liked the idea of building a community of classmates and teachers, even if it was only online. This lead me two other options, developer bootcamp or an online CS degree from a brick and mortar school. I found it difficult not to get sucked into the developer bootcamp hype. Here's a quote from skilledup.com, "100% of Hack Reactor alumni are now software engineers with average starting salaries over $100,000." It seems almost too good to be true, but after researching it a bit it seems like Hack Reactor has a very good application pool. I noticed that several of their students had very impressive backgrounds and they seemed like the type of people destined to succeed with or without Hack Reactor. Some of them even had CS degrees. Certainly the bootcamps offer several advantages such as learning in a setting that is more similar to an actual job setting. At Hack Reactor, students work on real projects in a pair-programing paradigm. More than that, student's reviews of several of the bootcamps are eerily stellar. However, I feel like there are potentially some drawbacks to the developer bootcamps. While I think you could take many of the web development skills and apply them to other areas, I worry that I might be pigeon-holed into a specific area of technology. If you're a newbie like me, it seems slightly unwise to choose to study web development when you have yet to be exposed to multiple areas of programming. Secondly, with web developer bootcamps popping up everywhere, there are bound to be differences in quality. I'm not sure if I am ready to travel to California where bootcamps are required by the state to accurately advertise their student's success rates. Most bootcamps have little to no oversight regarding their claims of past student's average wage and percent employment. Lastly, my biggest issue with the developer bootcamps is that they are ten weeks long. It may seem that I have a very negative view of bootcamps. I don't and I may end up choosing this route in the future. I think for some people they are the perfect solution and they have some very attractive advantages. To see a list of popular bootcamps go to, http://www.skilledup.com/learn/programming/the-ultimate-guide-to-coding-bootcamps-the-exhaustive-list/. For myself, I wanted a little more foundation in computer science theory. This is something that I don't think is feasible in ten weeks. Past experiences have proved to me that difficult to grasp concepts, or just new concepts, take time to digest and necessitate re-visiting to truly master them, even for the disciplined and motivated student.

Here we are, the last choice, the online CS degree. Here's a pretty good list of several of the options, http://www.bestcollegereviews.org/top/online-computer-science-programs/. Eventually I settled on OSU's accelerated post-bac online degree. I liked it because it was something that I could simultaneously do while finishing my PhD. I could take one or two classes right here in my home. It would give me enough structure so that I would feel compelled to keep going, even as my doctoral studies took their toll and sapped my motivation (this could be broadly applied to anyone with a full-time job). It would also expose me to subjects that I might not necessarily be interested in pursuing on my own, such as discrete mathematics. The cost is reasonable given the current price of undergraduate degrees but unfortunately it is the most expensive option under consideration. Unlike some other online programs, this is a post-bac program so it consists of only CS related classes, no fluff. So far, I am happy with my choice and I think it's a good fit. However, here's the best perk. Ironically, OSU is my and my mother's alma matter. My mom received her CS degree in 1989 with honors from OSU. I can further entertain myself by trying to beat my mom's GPA. That alone is priceless.

No comments:

Post a Comment