Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I see a lot of people online advising against taking CS degrees (in europe, where it's not economically impossible to study).

They argue that bootcamps and quick courses are enough, or that chatgpt exists now so programming is a dead profession.

I disagree, I think I've had a lot of use from having had education… but I might be biased. But I've had to explain things occasionally.



The carpenter doesn't need a degree. The architect and structural engineer do.

If you plan to be a programmer all your life, and a journey-man one at that, then feel free to learn-programming-in-21-days.

If you're planning a career in software, then I think understanding fundamentals (database normalisation, the Order of a solution, the ideas of Coupling and Uncoupling, memory usage versus performance, the impact of CPU cache, multi-threading safely, operating system task priorities, compilers, and a good few more things that underpin the science behind building software, then a degree is helpful.

Not because of the books, you can get those at home, but because of the structure (ie the path through the carriculim) the mentorship from professors, TAs and so on, and most of all the exposure to your peers - the wonder of collectively pushing each other to explore beyond the curriculum, beyond just this week's assignment.

Most of all it teaches intellectual curiosity- that spark some people have to see something in code they don't recognise, understand the novelty of it, and go and find out about it. It's easy to keep up because you have the structural foundations to absorb new things all the time.

ChatGPT can't do the things I do, and even calling it ChatGPT is a shallow understanding of why not. Broadly speaking LLMs are a tool I can use to learn new things, which is great, it knows how to weild many kinds of hammer. But it doesn't understand the nuance and context of building a whole building. One which has never been built before.

Precisely because LLMs are good at regurgitating the past, but understand literally nothing, they only replace programmers who are good at regurgitating the past (writing code) but understand very little about what that code -means- (as distinct from what it -does-)

Of course each College is different, and YMMV, but if you gave the time, and resources, and opportunity to do a formal degree, then I think it worth it in the long run. But like most things in life you get out what you put in. The curriculum is just the hint of a starting point to what you learn there, don't go to "be taught", go to suck the marrow from each moment, to actively "learn" from the challenges you set yourself.


The way I like to explain the difference between the two approaches — and therefore the two educational requirements — you are outlining here is the difference between being a software developer and a software architect. A software developer is focused on developing a certain feature or fixing a certain bug within the context of an architecture that's already determined, rarely making decisions about how to structure the overall data or control flow of a system or what abstractions the system uses, but accepting what's already there; meanwhile, a software architect is going to be making those more broad abstract philosophical decisions that form the framework of how further features are implemented.

This is not to suggest that there is a rigid distinction between the two — all software architects are going to also be software developers in the process of building an architecture, or when new architecture is not needed, and many software developers will occasionally act as software architects. Nor is this intended to suggest that the architecture of a software project must be planned out in advance with all of the concepts and data and control flow either — just that there are points in the process of developing software where these large-scale architectural decisions about what abstractions to use and the flow between them must be made. But there do seem to be two somewhat distinct "hats" people who program wear.


does what you’re making matter to people or not? It’s like that no matter what you’re doing. Y’all can sit around here and discuss, “what is a software architect” all you want.


Reminds me of the architect we have at work.

By the time he was done formalizing what needs to be done and philosophizing about the best approach (while actively trying to prevent the engineers from hacking away), the programmers and hardware engineers delivered a production prototype that works just fine and that people want to buy.


I wouldn't say that the outcome is necessarily the same all the time, but the getting-nothing-of-any-value-done architect seems to be a common occurrence. We had one that by proxy stopped development on at least 3 projects I was supposed to be involved in because people wanted to make him part of the process, despite me having 10 or so years more experience and an evident track record of successfully greenfielding projects versus his 0. He ended up being literally the only person ever at our company to effectively get demoted.

Previously the same company had hired one of my previous coworkers as a "software/solutions architect" and he had basically the same trajectory but with him at least I suspect he was just burned out. With that said, seeing someone has the title "Software Architect" is definitely a signal to pay attention to whether this person is even remotely competent and/or produces anything of value. If they give off the impression that they are just supposed to hand off designs to someone else to implement you know you have a complete dud and a moron on your hands.


I think its good to separate function from title here. There are indeed good architects and bad architects - may you get the opportunity to work with the good ones.

Personally I find that those who ultimately build the thing they architect are the best to work with. As the build they gain experience, they bridge the gap between theory and practice, and the feedback loop leads to better architecture and better code.

But again, humans are in the mix, so YMMV.


You're true, my best co-workers have been architects who also where tech-leads and great ICs

Your comment made me think how any full-time uni professor is -suspicious- of not interacting with the real world. Any -good- professor should be doing research or on the private sector half of his time to not be just a bookworm


> Y’all can sit around here and discuss, “what is a software architect” all you want.

I think you're on to something. We ought to hire an architect architect to architect the role of the architect. Maybe we can build an architect factory to abstract that away and have architects set up on demand...


I don't think it's feasible to have 1 decent developer micromanage a team down to the function and data structure definition. At that point it's faster to fire the lot and just let the one developer you have do the job alone.


You have such an idyllic view of the college environment. My experience was struggling to motivate my teammates to do anything beyond the minimum, and an endless barrage of "will this be on the exam?" questions during class.

Looking back it's no wonder I am a self-learner now.


Not all colleges are the same. I had a fantastic time at my college.

For example, in our algorithms course, we needed to implement a lot of small algorithms for various things in Java. (Eg A-star, quicksort, etc). For each algorithm, we were provided a standard API to implement against so they could use automated marking. Well, me and some friends made our own benchmarking harness and web frontend around that api. Before the assignment was due, we would all upload our .class files (and upload test cases), and compete to see who wrote the fastest code.

I think I learned at least as much from doing that as I did from the algorithms course itself.

We didn’t have that much fun in all of our classes. But I cherish a lot of memories from that time in my life. I’m really glad I went to college and wouldn’t trade it for anything.


I guess less idyllic view, and more idyllic experience. I was fortunate to find like-minded folk in my class, and fortunate enough to have faculty that allowed us mere undergrads access to equipment "beyond our pay grade".

Obviously the bulk of the class was there to pass, maybe 10% of us pushed the limits, learning the craft beyond the carricilum. We were probably 10 folk or so from a class of over 100.

It was perhaps easier in my day - we had labs with machines no person owned. So you could spend time in the lab beyond the necessary, and the others would be there too.

I imagine today there's less shared working space like that, but hopefully there are still ways to find like-minded souls.

Self learning is great, and we all do that a lot now, but I've been fortunate to find others in my work community who still enjoy sharing, learning, and teaching. Its a bit less lonely that way, and none of us have all the answers.


In my BS I had just 1 team project, so it wasn't a big deal.

In my master I had more… and yes there were people who didn't do anything, people who did much more than me, people who were good at writing reports but needed intervention because ultimately they didn't even understand what our project was about.

I asked the professor once to dump a guy, because he said we should meet on a sunday morning to do our assignment, then he showed up 2 hours late, I was almost done with it, and he started by reading the 1st slide of the 1st lecture (with the name of the course, the email of the professor and so on).


The best college course coding projects are the solo ones. I consider myself fortunate to have gone to a school where 95% of the code projects were solo (and about half of them were in C, too!).


You either have intellectual curiosity or you dont. Colleges will never give that to you.


True, but seeing others exercise it can release it in you as well.

College does not "give" you anything. It never has. All it has to offer is opportunities for you to "take". You get out of college what you explicitly "take" from it. You can class through taking and passing classes, or you can actively search out every possible opportunity, stretch every boundary, suck every bit of marrow from the bone.

Ultimately college can be a time-passing exercise in fruitless make-work. Or it can be the foundation to an amazing career. Only you can determine which it is though, not yhe College itself.


The carpenter absolutely should have some education, certification, and especially apprenticeship.

A certified carpenter has more trade-specific information than your average dev out of a great Uni.

It'd be positive if there were some degree of institutionalization of software.


FYI, you're shadowbanned. Mail the admins.


The problem is that bootcamps were incentivised to churn out graduates within 3 months to get ISAs.

This contributed to a junior coder market where people are not ready.

I only found a handful of resources out there which are really preparing everyone for a long journey.

Long gone are the promises of a $500k job after 3 months of studying...


Churning out scripters and giving them script frameworks and building whole products and businesses on top of those products has got to be the worst approach to labor shortages ever in the history of work. Oh the single process isn't a good load bearing structure to rest your entire network workload on? Let's create asynchronous abstractions and pack everything in portable process isolation environments and oh now we need a whole distributed OS to orcherstrate these processes etc...


I've done both, degree first, then years later bootcamp, when I needed to update my skills. I liked both. IMO, people should choose what suits their needs best.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: