Becoming a Software Developer Part 1 — Is Computer Science Degree Required?
I finished my undergraduate degree in computer science from University of Houston in 2005. I spent most of my time attending frat parties and playing beer pong.
To be honest, I was never really invited to any of the parties. I worked my ass off and made sure I graduate with ZERO debt. I was always working. Always.
I cannot recall a moment in four years of my college where I was not working. I had a day job, I had a night job, I was writing blog articles, I was actively taking part in online forums. I was a machine, a stallion, a workaholic… and most importantly, I was poor.
Now a decade has gone by and I have developed into a mature wise man. These days I spend most of my time teaching full stack development to bootcamp students. I have been very fortunate to have amazing students who have landed jobs at Apple, JP Morgan, EOG Resources etc. After teaching hundreds of students with different backgrounds, through a span of 3+ years, I started to see a pattern of successful students. Keep in mind, most of my students are college graduates and some even have computer science degrees. Not to my amazement, computer science degrees played almost no role in their success.
Did you read that correctly! I meant that all those $60–$100K you spent on buying guacamole was not worth it. A college education has little or nothing to do with your success. This does not mean that you should NOT go to college. If your sweet grandma left you $100K then go ahead and use it. But don’t ever believe that since you don’t have a $100K diploma saying “I wasted 4 years of my life” that you cannot become a software developer.
Software development is one of few fields where you don’t need a degree to be successful. You can learn most of the stuff online by watching videos, reading books, working on open source projects or understanding high rated answers on online programming forums.
It is true that when you are learning on your own you may write crappy code. But that is just part of the process. Trust me, the crappy code you write in 4 months will be 100 times better than the code written by a 4 year college graduate. I have read a lot of code written by college grads and when you see the 42nd if-else block to find prime numbers you loose hope in humanity.
But what about those jobs that require college degrees! Well in those cases you can always buy fake degrees online and use as real ones.. NO don’t do that, I am just kidding. Yes there are few jobs that requires a college degree but there are a lot more jobs that do NOT require a college degree. Even my friend Tim Cook and 14 other big companies agree that college degree is not required to be proficient in programming.
But wait! What about O(N), O Log(N), binary search, inverted trees, quicksort etc. Don’t I need to go to college to learn all that! NO you don’t. You can learn from books, online videos etc. To be honest I am programming for 10+ years and I have never written a binary search or inverted a tree at my work. All those things are good to know, but they hardly ever come up when you are implementing business applications.
Having said that you may need to learn algorithms because some companies love to ask algorithm related questions in interviews and white boarding sessions.
So, there you have it! Go to college if you can afford it, else learn on your own. In the next post I will discuss resources and ways for self learning.
You can follow me Twitter at @azamsharp
PS: I graduated with a computer science degree with a GPA of f74466fd69c52847f087f5a2d9a6b26f8024c31a3e2f446b01531b9014d4ba78