This book is for informational purposes only. Except when an external source is cited, everything in the book is the author’s opinion. The author makes no guarantee about the correctness or accuracy of any content in this book. Furthermore, you may disagree with and/or find certain content offensive.

Read at your own risk. Do not continue reading if you do not accept full responsibility for all actions you take as a result of reading this book. The author is not liable for any damages including, but not limited to, academic failures, career path mistakes, financial loss, feeling upset, and physical/mental injury.

Chapter 3
Do I Have What it Takes?

“What if I wasn’t born to do it?” That’s the biggest fear for anyone committing to a degree that stays with them for a lifetime. Here’s the short answer: it doesn’t matter; you can do anything if you set your mind to it. This chapter is for anyone who fears being unable to do the work for the computer science degree.

People do many things they weren’t “born to do.” For example, I spent a day painting a picture of a lion statue and hung it up in my apartment, but I don’t have the intuition for color that Monet had. I play classical piano for enjoyment now and then, but I don’t have Chopin’s technique. I cook my own meals, but I mess up a lot and I’m several lifetimes away from my first Michelin Star. Similar to how I’m not amazing at painting, piano, or cooking, you don’t have to be amazing at programming to write code.

There are countless average people in tech firms who weren’t born to do computer science and are only in it for the money. If you don’t think you can program “well,” there’s no need to worry because lots of software engineers in the industry don’t program “well” either. I’ve interviewed scores of people who still don’t understand fundamental computer science concepts and that’s okay; they eventually pass some interviews and snag a nice, stable job. In the majority of the software industry, you don’t have to understand everything and you don’t have to be perfect: you only have to create an average piece of software — just like I created an average lion painting without understanding color, played average classical music without understanding piano technique, and cooked average dinners without understanding flavor.

 Some people confuse difficulty understanding computer science with inability to understand it. All people reading this book can understand computer science because they have a brain; it comes down to putting in effort to understand, which is easier for some and harder for others. As discussed earlier, there are plenty of “average” software engineers who have gaps in their understanding and aren’t perfect. What separates them is willingness to stick through the struggle and displeasure anyways.

For those reluctant to pursue computer science because you don’t think you can do it, your decision reduces to if you are willing to put up with some displeasure for an immense reward. If I offered you $150 an hour to scrub floors would you take it? You probably would — that’s a $300,000 salary if you work eight hours every Monday through Friday! Even though scrubbing floors isn’t pleasurable, it makes sense to take the job because it pays so much better than other available opportunities. Software is no different: although you may not find programming pleasurable because it can be difficult to understand, it often makes sense to enter the software industry because it has strictly better outcomes among the three job dimensions than other industries.

For people hesitant about pursuing computer science, this is the delayed gratification dilemma: do I spend four unenjoyable years wrapping my head around something difficult to understand in order to enter an industry with high pay, high potential impact, and later opportunities to improve personal enjoyment? Your job will have normal work hours. You’ll get evenings, weekends, and twenty to thirty days off per year to enjoy stress-free. You’ll be able to afford your hobbies and ten or twenty years down the line, you may have even saved up enough to retire. The second half of your life might be entirely yours to focus on whatever it is you want!

I have yet to see any equally-good alternative so I believe the answer to that question should be a resounding “Yes, I should study computer science!” At the end of chapter 1, I presented my view on why one should attend college:

The correct reason for attending college is to pick up skills necessary to live a successful and fulfilling life after you graduate. Unless your parents are immensely wealthy, that means you have to get a solid job after graduating.

The software industry is the perfect place to target your “solid job after graduating.”

Finals Words on the Motivation for CS

I’ve been selling the idea of majoring in computer science to you for two entire chapters like a salesperson. I promise no more pressure after this chapter. If you are still unsure, then take some time and think about the three job dimensions again and what you imagine your best, realistic, future life is like. If jobs seem disconnected and too far into the future, then have a discussion with your parents or other adults close to you. What you study in college will likely affect the rest of your life, so take plenty of time to think through this enormous decision.

What Lies Ahead

Should you choose to proceed, in the next chapter, I’ll provide the big-picture perspective of software in today’s society so that you understand the gravity of the industry you aspire to enter. Then, we’ll move onto the second layer of the pyramid of college success: the general life skills you need to maintain direction and progress to your goals.