Home
Starting Up
Tech
Creators
A.I.
Lifestyle
Money
Idea Board
Vibe Coding Tools
Products
Ideas DB
Case Studies DB
Subscribe to IH+
Starting Up
Tech
A.I.
Creators
Lifestyle
Money
Join
15
Likes
2
Bookmarks
34
Comments
Report
The biggest obstacle in the way of entry-level developers is they don't learn enough computer science
by
Zach Ang
https://boot.dev/
Trending on Indie Hackers
I spent $0 on marketing and got 1,200 website visitors - Here's my exact playbook
50 comments
Veo 3.1 vs Sora 2: AI Video Generation in 2025 🎬🤖
26 comments
I built eSIMKitStore — helping travelers stay online with instant QR-based eSIMs 🌍
20 comments
Codenhack Beta — Full Access + Referral
20 comments
🚀 Get Your Brand Featured on FaceSeek
18 comments
Day 6 - Slow days as a solo founder
15 comments
I don't agree. You don't need much computer science to exceed in development.
As you get from an entry-level dev to a senior dev, you should become better at software architecture. That's why biggest obstacle IMO, making sure your code doesn't end up a huge mess as it gets bigger.
i agree. it's not lack of "science".. it's lack of deep level critical thinking and grit & persistence to see problems through. i.e.. sit in front of computer long enough to figure stuff out
Unfortunately I disagree with the quote..
I think the dev that come from computer science are actually worst than the junior Dev that are self thought.
CS background give people a false expectation that they know all that need to be known, but have no idea how to implement it.
I wrote a book on what is is needed for new Devs and there is nothing about CS, as for my opinion (and all the people that have ever interviewed with me during the many years) it is not a needs or requirement at all.
What is really needed for junior is eagerness to learn and an open mind to know that what they know is just a drop in the ocean, not sure where and how CS would fit here.
This is the link to the book for people that are interested.. I have done more than 300 interviews in my career and have helped lots of people to get into tech, so I have some experience on the matter: https://leanpub.com/beyond-coding
Wow... mindboggling. Thanks for sharing.
I think you hit it on the head about some CS educated people thinking they know it all after graduation. When in fact, they now know the basics, and to be a kick ass developer they're going to have to keep learning new things every day. You can't ever stop learning as a developer.
I also disagree. When I began as a junior dev I felt scammed by my university for my CS degree, and felt completely unprepared for a career as a web developer. I have more appreciation for it now, but I felt that I learned everything backward.
I think that's a pretty typical experience. I felt it too 15 years ago when I started my first 'big boy' job. There's not a lot of great ways for schools to teach you what working an actual developer role is like. It's much much different than having a specific list of requirements on an assignment in a class.
In school you learn the basics of development, and I feel like in a job you learn the people/social part of being a developer.
I sort of feel like entry-level developers know plenty of computer science, but not enough software engineering. All my fellow new-grads could prove the big O runtime of anything, but none of use knew how to do unit testing, CI/CD, versioning, clean code, architecture, etc.
Just my personal experience anyway
THIS THIS THIS - I wish they skipped over the theoretical CS stuff in my program and taught me more of the things you mentioned. Save that kind of crap for the people who want to specialize in it.
I can't even tell you how many times I've done interviews and people ask me to write big O notation for an algorithm and I have to tell them I haven't used that crap since college.
Straight up facts!
As a CS student trying to get a graduate job I can agree. Employers want to see an actual evidence that we can use these technologies, however we are not exposed to using them. Furthermore if we don't have a work experience, knowing about CS becomes useless.
A lot of new grads come out pretty good at coding. If they got some good internships and are passionate to learn, they can pass as 2yoe easily and have this stuff nailed.
fair enough
As someone with a B.S. and M.S. in Computer Science... I agree and I disagree.
I think there's three GREAT things about a formal CS education.
However - I think most degrees overdo it with repetition. Once you know the fundamentals of programming languages, there's no reason I need to take classes in Java / python / bash separately. If you know the basics, you SHOULD be able to pick up most high level languages in a snap. Also - save the theoretical C.S. for those who want to go that route.
That being said, I've been in the industry now for 15 years as a developer (now a manager, gross, I know) and I've seen formally trained C.S. majors with my same level of education who can't hack it. And I've seen self taught folks, who are hungry to learn and sharp, who run circles around me.
So yeah, I agree and disagree.
If I had to take a stab at re-wording your thesis it would be:
"The things that separate good from great developers is a hunger to learn, a desire to just dig in and learn things by breaking things, and the self reliance to learn how to solve their own problems."
This.
I'm self taught from a young age but I also have a CS degree. I've been developing software for 30 years now and I've seen the full range of junior and senior devs come and go.
It really has nothing to do with having the CS education or not. If you have it, it'll probably help. If you don't that can work too. Everyone has their strengths and weaknesses and these days you can learn whatever you need to fill the gaps if you've got the drive and desire to do so.
Agreed - I think these days it's more dependent on the person than anything. You can be successful both ways, and you can fail both ways.
i am 7 years into web development, even though i started coding as a kid in python and c++, which would end up to be my main language for years. i never structurally learned about CS but its still no problem. Have I made something wrong? :D
I agree. Conceptually, it's like maths. You can memorize all the formulas and apply them to solve problems. But what happens when you're faced with a problem and you don't remember the specific formula you need? If you understand the basic maths behind the formula, you're more likely to be able to work it out. If you don't you're stuck. Computer science is like the basic maths - it's the foundation that lets you build the house.
Sure, I mostly agree. But I think it depends on who you are and what you want to achieve. If you're someone who's generally disinterested in coding but wants to know enough to build a product that can generate enough income to allow you to hire a developer to take over, learning the depths of computer science might not be necessary. If you're in it for the long run, then, of course, it makes more sense to get stuck in.
A computer science student here. I have to disagree. Everything I learn in CS is surface level.
Up until to my internship I thought I knew a lot. The hands on experience during my internship was a wake up call made me realise everything I learned and keep learning is a drop in the ocean.
I believe there is a disconnection between the pace at which the software industry is evolving and the traditional teaching. Furthermore, it doesn't matter how much I learn in theory, as long as I do not have a hands on experience, I believe it is a volatile information in the memory. If we are talking about the university course, it is even worse. They make students fall into thinking we know enough to be practicing after graduation where all we did was writing pieces of software to satisfy the requirements of academics without paying attention to why we did it or learning everything about the technologies we used to get the work done. Let's not forget the fairy tale modules that waste our times.
Waking up to the harsh reality and the fierce competition in the industry changed my take on computer science courses completely. I am completely against getting a masters and all I want to do is to get a job and start somewhere.
I can reassure you I learned more while doing a summer internship than I learned in 3 years of bachelors degree. And I met actual professionals who knew about how to engineer, rather than a few researches who picked a module to teach for extra cash. Sadly.
At a fundamental level I would disagree, this applies to most professions and not just developers. Coming from finance some of the most valuable skills entering into to the profession was Excel (yuck I know) then I learned much of the needed science and technical skills on the job, sourcing the areas where I wanted to grain experience in by intrigue.
Knowing how Taylor Series approximations applied to interest rates helped me as much in my early days of finance as knowing what a heap or logic gate was when learning software engineering. The most valuable knowledge was what I wanted to do aka intrigue, the technical skills will follow.
I'd say it really depends on the type of software development we're talking about.
Having a firm grasp of CS concepts opens more opportunities for tasking, but without any CS knowledge you can certainly work on a business application or website.
Most development jobs seem to be rather high level, relying on frameworks and libraries to do the heavy lifting. To get started working on a web app nowadays you need to know JavaScript pretty well (with maybe another system level language) and have practiced with a front-end and back-end framework. A "Data Structures & Algorithms" class will inform the developer of concepts of writing performant code, but they won't need to know anything about Computer Architecture or any advanced math.
Instead, with a CS degree the entry-level developer could more easily begin getting tasked with working on firmware, or some lower-level code on some system level application. If they're really studious and proficient they could start working with a team that's developing a new language or framework. Totally different world than creating most apps.
I'd say the main obstacle in the way of entry-level developers is that the people trying to hire them expect them to have a few years of experience already.
I've met some self-taught devs and they were very good developers. It goes always back to the passion and time someone is willing to invest.
The problem is that developer is too wide of label. I develop software, so does that make me a developer.
I believe you need exceptional computer science skills to work in infrastructure and doing "hard core engineering".
However, the space is so large that you don't need much deep computer science to solve human problems. Do you really need a degree for understanding datetime nonsense or tax codes? No, you just need a good head.
The problem relates to blind philosophers touching an elephant, so the space is huge.
Problematically, the type of developer will require to undergo a crucial. If you have a degree, then you need to work in a place to leverage such that you can become humble. For example, working at AWS will teach you very quickly about the limits of your skull, and that's when you become an engineer.
As long as your path allows you to get humbled, you can become good.
Knowing computer science fundamentals don't really help entry-level developers since what you learn at Uni don't match up what you will be working on/with in the beginning of your career. BUT, I would say having some CS knowledge helps a lot once you level up as a developer and become a mid/senior. The bare minimum would be having taken some Algorithms/DS classes and maybe some 1st year math stuff.
As a doctor turned coder,here is my take.I would take someone who has demonstrated the self drive to learn how to code by themselves.That drive is what is really important to me.With that drive,you can learn anything,anytime,you can become anyone.This argument here is lost on someone with that drive.
As someone who has enjoyed a very fruitful 15 year entirely self-taught software engineering career, I will have to respectfully disagree. The CS I've had to rely on throughout that career as a full-stack developer and devops is negligible.
Highly disagree with this take.
While personally I started off with a CS degree before going into the industry, I've helped quite a few non-CS people to get into the industry after.
What you need is not CS.
What you need is someone who trusts that you want to be a developer and gives you a chance without creating artificial barriers (leetcode algo questions, need X experience before they talk with you, etc). Nothing else.
Best example so far was one female developer which I helped to get hired by just introducing her to a bank-affiliated company who were looking for developers and were fine with a novice as long as they were willing to work & learn (a common problem for banks is that no developer wants to work for them unless they overpay a lot)
The biggest obstacle in the way of entry-level developers is information overload and a lack of a map of a learning curve. People are trying to understand everything at once and usually fail with that, so they start to mix together concepts from very different areas.
I would say to every entry-level developers - draw a map of knowledge and start with mental models
Kind of like that most people can say "I've never had any use of math above the level of elementary school".
This is true, but it really depends on what it is you are doing.
Someone once said that with a Bachelor's degree you can use what other people do, with a Master's degree you build what others will use.
Yes you are exactly right.
The biggest obstacle is teacher doesn't have any experience in development, but only in computer science.
You need real experience of this work from people in a company to really understand what this work is about
Really?
True. I am one of those cases