Press enter or click to view image in full size
I’ve always wanted to be a computer programmer. In 2003, this was part of the plan. During my freshman year in college I found out very quickly that perhaps I didn’t want to be a programmer because I felt that I did not have the capacity. I didn’t really want to take chemistry and biology; I found physics to be too abstract for a subject that was supposed to be about our physical world. I wanted to do creative things that computer programs would allow me to do so I transferred to a community college to pursue Digital Media. I didn’t know it then but I still wanted to be a computer programmer but I thought it was too hard because of my experience during freshman year. I kept finding ways to use programming. From editing xml for Final Cut Pro timelines, to adding simple scripts to After Effects to make objects fly, to creating 3d building structures in Modo, to being able to create a mini program inside Excel. In 2013 I started watching some of Udacity python courses in order to learn backend web programing.
Press enter or click to view image in full size
I would find any excuse to use python at my work so I started working on a web app that would create xml files with pictures embedded in them. Python was one of those languages that I could actually understand. I really wanted to be able to make apps for the iPhone but I could not get my head around ObjectiveC. In 2014 Apple launches Swift and I was literately jumping up and down of happiness because I could actually understand Swift. Swift made sense to me. I started to follow people on twitter in order to learn everything there was to know about Swift. When Swift was open sourced, I followed every proposal to learn every detail about the language. I picked up Java, then I properly learned Objective-c which helped me picked up C++. It was incredible being able to describe C++ templates in terms of Swift generics. I made my first game iOS app in 2014. It was a silly little breakout app but to me it was like seeing a baby crawl for the first time. My first pull request was not even a pull request but me trying to figure out how to start a conversation about issues I was having implementing my game. In 2015 I started to implement exercises for the open source project Excersism. I learned about open source and community there. I had no idea how to use the git command line. I was scared of the command line but Katrina Owen taught me a couple of tricks here and there and she was patient even when I completely messed up a PR .
Press enter or click to view image in full size
Press enter or click to view image in full size
Press enter or click to view image in full size
Udacity came out with their nanodegrees so I started by getting the Beginning iOS nanodegree and six months later I got the iOS developer Nanodegree. I even shipped my first regex bug on a popular swift lint library. I have all these iOS apps and even though Udacity says I am an iOS developer; most companies would never hire me.
Sure I have a college degree but it is not a technical degree. Do I know Agile? Of course, I am a certified scrum master and a product owner but I don’t have the experience so I have never gotten a call back for a scrum master position. Udacity is perfect for people who already have engineering degrees. I think employers see the nanodegree like a concentration for the engineering degree. I owe a lot to Udacity but unfortunately a Udacity certificate does not help me get a job unless I already have a technical degree. I wish Udacity would build a post-graduate B.S. in Computer Science like Oregon State is offering now ; Instead Udacity offers a MSCS with Georgia Tech that requires you to have a lot of classes in CS in order to be accepted.
Press enter or click to view image in full size
Of course there are some schools that offer Master of Software Engineering degrees that are meant for people who already have a tech degree. It is possible to obtain a MSE degree with out first getting a tech degree, but then you wont be ready to pass the technical interview. Udacity could offer a pathway to Georgia Tech’s graduate degree for people who do not have tech degrees. Udacity did try to offer classes for undergraduate courses with San Jose state but that did not pan out. Recently I’ve seen some classes on Udacity that do address the lack of data structures and algorithms education. This content should help the student pass the technical interview but with out a tech degree, most Udacity graduates will not get a call for the interview. If Udacity can convince companies like google to provide the Android education with them, why not ask google to let them create a “techdegree” that is able to convince recruiters that a person is a capable technical developer?
Press enter or click to view image in full size
The techdegree could be like a certification that some colleges offer in order to allow somebody to apply for a graduate CS program. These are graduate level accredited classes that close the gap on a person CS education. Unfortunately these graduate classes are also very expensive. Udacity could either parter up a college to offer a regular post-baccalaureate CS program, offer a remedial CS certificate for people interested in MSCS or make their own techdegree with the backing of Google and Facebook.
Udacity’s techdegree should teach:
- CS 225 — Discrete Structures in Computer Science
- CS 261 — Data Structures
- CS 325 — Analysis of Algorithms
- CS 344 — Operating Systems
Udacity does teach the contents of some of these classes but they are part of the graduate level track for the Master degree. What ever solution Udacity provides, it needs to have the HR backing of companies like Google and Facebook. If these companies do not allow their hiring people to accept these credentials then these are just as good as ITT Tech. I am not alone when it comes to feeling the algorithm discrimination. Udacity can help tech companies change their hiring practices by providing what these companies’ HR departments want. If you are in Seattle and need help with an iOS project, let me know. Perhaps there is hope.