Let me tell you this straight: don’t waste your time and money for a college/university degree in computer science (or a related major) if your goal is to become a “software developer”.
Before I tell you my reasons, I strongly recommend you to watch these two videos and see why the most successful people in the world believe college is useless and in fact a scam.
I spent eight years of my life at two different universities, one in Iran, where I got my Bachelor of Science in Software Engineering, and the other in Australia, where I got my Master of Science in Network Systems.
So, as someone who is academically educated, I believe that universities are a waste of time/money if you want to work as a software engineer. You would achieve your goal with a fraction of the time and money if you take online coding courses.
You pay for what you don’t need
In my Software Engineering program, I had to take a lot of subjects that had zero connection with software engineering: calculus, 3D math, physics, religious studies, Persian literature, population and family planning (yes, funny, right?), history of Islam etc. I had absolutely zero interest in these subjects, yet I had to take them and pay for them.
Out of 40-50 subjects, only a handful was useful and changed my thinking, including:
- Programming fundamentals with Pascal
- Advanced programming with C
- Assembly language
- Data structures and algorithms
If you take online courses, “you” can choose the topics “you” are interested in. You’re not forced to pay for what you don’t need.
You waste your money on books
As part of taking those unnecessary subjects, I had to pay for thick, heavy books full of nonsense. They filled my space and I had to carry them every time I moved. If we were not forced to buy those books, fewer trees had to be cut. We could save our planet and keep our air clean.
In contrast, with online courses, we don’t destroy our planet. We don’t accumulate stuff that we don’t need.
You put yourself in debt
Unless you’re lucky and can pay for your university education, you’ll have to get a loan of $50k to $100k. That means you’ll be in debt for several years and pay interest on top of the money you paid for the subjects that didn’t matter. All that causes you unnecessary stress. You won’t be able to buy the car or house you want because you’re still in debt.
Online courses cost a fraction of what you spend on a university program. These days you can buy individual courses or subscriptions that cost you only $10 – $30 a month.
If you pay $30/month, within a year, you’ll have all the necessary skills to get a job. That will cost you only $360. Compare that with a university program that costs you $50,000, takes four years to complete and doesn’t teach you the right skills.
You waste your time with outdated subjects
University programs are often 20 years behind what is happening in the software industry these days. Unless you learn things on your own, once you graduate you’ll have difficulty finding a job because you won’t learn the necessary skills that employers are looking for.
Online courses are based on what is happening in the industry right now, not 30 years ago. They don’t have all that fossil theory that you don’t need.
You waste a lot of time in transportation
Unless you leave close to your university, you’ll end up wasting a lot of time in transportation or finding parking. Not only do you waste your time, you also waste other people’s time by creating unnecessary traffic. You also pollute the air we breathe.
With online courses, you can watch them anytime, anywhere.
You don’t get quality teaching
I don’t want to generalize, but quite often, people teaching at the university are either Ph.D. students who do this on a casual basis to make pocket money or full-time academic people who have been on campus forever. Neither of this group of people has enough practical experience in the industry.
Want to hear something funny? Have you heard of ASCII? If not, it stands for American Standard Code for Information Interchange. It’s basically a table that maps characters to numbers that can be stored in the computer’s memory. I had a lecturer who used to pronounce this as ASCI TWO. He thought II was the number two!
I had another lecturer who used to call himself Dr. Rahman. He didn’t even have a Ph.D. He was just a Ph.D student. And I knew that he paid someone to do his project for his Master’s degree. Imagine someone like that being your lecturer. You spend all that money to learn from people like that?
Of course, I’m not saying every university lecturer is like that. I’m sure there are many skilled lecturers out there, but they are often the minority.
With online courses, “you” choose the instructors that you like. The good news is that for anything you want to learn, there are tons of courses out there. You don’t like one instructor? You think he talks too much? Or is boring? Or is unqualified and lacks industry experience? Fine. Pick another online course. Most of these courses have previews so you can watch the first 10-60 minutes to get a feeling for that instructor.
When is university education good and necessary?
University education is not always bad. It depends on what you want to do. If your goal is to become a researcher or a university lecturer, then, indeed you need a degree and the higher your degree the better. But being a computer science researcher has absolutely nothing to do with being a software developer.
Researchers focus on one small topic and spend several months or years, collecting and analyzing data to come up with conclusions. They are not software developers. They don’t know how to build web or mobile apps or do it properly. Even if they do, they’ve learned it as a hobby. It’s not part of their day-to-day job.
The question is: what do you want to be? A software developer or a researcher?
What about getting a software development job?
Fortunately, a lot of companies have realized that having a university degree does not make one a programmer, just like having a driver’s license doesn’t make one a good and safe driver. It’s just a piece of paper and it means nothing.
Self-taught developers are way more common than you think. I’ve also seen a lot of developers who do have a university degree but in a different field than computer science or software engineering.
Your degree and scores do not matter. Read my post You can’t be a developer to learn why.
None of the companies that I’ve worked at ever asked me about my university degrees. I don’t think I was lucky. I think this has been realized and accepted at most companies out there. And if where you want to work, they value a piece of paper more than your brain, you don’t want to work there. Trust me.
Having said that, you and I need to educate those people and companies. Please share this post to enlighten this minority group of people who still think having a degree in software engineering is essential to hire someone.
What’s your story? Drop in the comment box below.