I’ve always been fascinated by computers. As a kid, I was the one who aced every ICT class, the one who could troubleshoot family laptops, the one who instinctively understood how technology worked. But growing up in a public school where coding wasn’t even on the curriculum, no one ever pushed me to explore it further. No teacher said, "You’re good at this—you should learn programming." No mentor guided me toward computer science. So, like many others, I stumbled into tech much later, teaching myself how to code out of passion.
And now, years into my career as a self-taught software engineer, I have one big regret: I wish I had just studied computer science.
The Limits of Being Self-Taught
When you teach yourself, you learn what you need to know, not what you should know. For me, that meant diving deep into frontend development—JavaScript, React, CSS—because that’s where the jobs were. And for a while, it worked. I built things, I got hired, I progressed.
But then reality hit: I was pigeonholed.
"You’re Just a Frontend Dev" – No matter how much I tried to branch out, people saw me as only a frontend engineer. Colleagues with CS degrees—even those with less experience—were handed backend tasks, DevOps work, system design challenges. They were allowed to fail, to learn, to grow. Meanwhile, I was stuck in the same role, fighting the perception that I couldn’t do more.
Gaps in Fundamentals – I didn’t fully understand data structures, algorithms, or how computers really worked under the hood. When faced with complex problems, I had to work twice as hard just to catch up. CS grads had a structured foundation; I had scattered knowledge from tutorials and Stack Overflow.
Shitty Startups & Stunted Growth – Because I lacked a degree, my early career was a grind through exploitative startups—long hours, toxic cultures, zero mentorship. These companies didn’t invest in my growth; they just burned me out. Meanwhile, my peers with CS degrees walked into better-structured companies with real career paths.
The Harsh Truth About Self-Taught vs. CS Degrees
Yes, you can succeed without a degree. But you’ll always be fighting an uphill battle:
- Gatekeeping in Hiring – Some companies (especially big tech) still filter resumes by degree.
- Lack of Depth – Without formal education, you might miss critical concepts that become important later (networking, concurrency, compilers).
- Career Ceilings – Moving into senior roles, architecture, or specialized fields (AI, security, distributed systems) is much harder without foundational knowledge.
If You’re Young and Have the Chance—Just Study CS
If you’re still in school or early in your career, and you love tech, go to university for computer science. It’s not just about the degree—it’s about the structured learning, the mentorship, the exposure to concepts you’d never stumble upon alone. It’s about having the credibility to move freely in your career instead of being boxed into one role.
If, like me, you’re already deep into the self-taught path, it’s not hopeless—but you’ll have to work harder to fill the gaps. Study algorithms, take online CS courses, force yourself into unfamiliar areas of programming.
But if you have the choice? Don’t make my mistake. Just study computer science. Your future self will thank you.
Top comments (4)
I am lucky version of that road of you because I started by video games and with hand drawed computer keyboard on my note as young around 1980s. I just see computer in shop. At that times we have fare less information, just a few books. No internet. I don't want to write a whole story, but I also skipp the computer degree. Also get a title of Frontend Developer, plus hard to get a better and better job. But I continuously interest the technology - and lot more things also,so at least I keep myself active.
My advice is: Take a challange or competition is a great source of energy.
Well to be fair at least I am not in debt :D
@itamartati
I can relate to it to some extent.
I have had crazy career journey. Graduated with Civil Engineering, then did masters in Water Science in Europe, and finally decided to come back to India and appear for some administrative govt exams (4 years in a row).
After this almost decade of studies and jumping around, I decided to go in Computer Science related jobs (since had long gaps after my degree, and wanted to pursue a fast growth field, open to people from all educational backgrounds).
Even as a child, 7th standard, I loved making an HTML website, with quite a thick HTML reference book as the only resource (not internet for me then). But to test it now as a career option, I started making a game. Upon liking only the coding part of it (as I also did 3d animation, modelling, texture painting, game design for it), and having built an end to end product, I felt conviction in this field. Dozens of good Pluralsight programming courses only increased my interest further towards coding.
But I felt lacking in knowledge (how could I make this multiplayer, how would i store and show a leaderboard across diff mobiles). These inquiries led me to find things like databases, caches, and the whole world of backend. And I realised, I dont know a lot, to make a functional app still, and just wanted to know more.
So joined 2 fullstack coding bootcamps. 1 of them was really good, learnt about DSA, system design, LLD, HLD, etc. and got my first job. Wasn't a developer role, but was a break in the industry.
While in my company, doing my usual tasks, I made some tools (out of my own initiative) for improving efficiency in our organisations (some data validations in a nice UI, accessible cross teams). It was received very well, and brought me to attention of Engg team. As soon as they had a vacancy, they changed my team and now I became a Backend engineer. Now I am involved in making some of the most crucial components of the company, as part of core engg team in a backend role, while receiving decent promotions.
Have appreciated the fair team and the organisation I got a chance to work with, various mentors at my coding bootcamp, so many good book authors, youtubers, udemy instructors and bloggers. With their support and a keen interest in learning and making things (with self-initiative) and not getting confined in roles (I think backend role is very confining too, I consider myself just an engineer, who can also solve many frontend and backend problems among other things).
Here are some of my publicly running websites:
I don't have a CS degree yet. I might feel a need for it someday, but I definitely feel a need for learning, taking initiative (creating dependency on me for others), and growing every day.
Wishing the best for all non CSers in this field.
Your journey is honestly impressive. You’ve taken a path that a lot of people wouldn’t have had the patience or courage to follow, from civil engineering to water science, then government exams, and finally landing in software engineering. It just shows how adaptable and determined you are.
And I completely relate to that feeling of discovering coding through something creative—like making a game—and then realizing how deep the rabbit hole goes. That curiosity, that need to understand how everything connects, is what separates people who just code from those who really love engineering.
The way you took the initiative to build tools at your company and naturally transitioned into a backend engineer role is proof that skill and effort eventually get noticed. It’s a great example of how taking ownership and solving real problems can open doors, even if you didn’t originally start in that field.
And yeah, backend can feel confining sometimes, but at the end of the day, an engineer is an engineer. The best ones don’t limit themselves to one role or stack; they just solve problems wherever needed.
You’ve built and launched real products, and that speaks louder than any degree. But like you said, there’s always more to learn. Whether it’s through bootcamps, books, or just making things, the key is to keep growing.
Unfortunately, though, we live in a world of perceptions. If you’re old, people think you resist change. If you’re Black and not quirky, they assume you don’t know tech. If you’re a woman, they question if you should manage. Having a science degree helps, but the real struggle is for those without one or without a prestigious university name attached to them. Even among CS grads, perception plays a role—someone from Harvard or Oxford will always be given more trust.
That’s just life.