Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Year old CS student. Should I continue?
43 points by ShouldIPivot on March 21, 2023 | hide | past | favorite | 97 comments
Hello. I'm 17, I've loved computers since I was 5. I'm a pretty decent programmer, I've done some big projects, worked with teams on extended projects, and have a pretty decent understanding of programming/linux/networking/security/etc. I generally write C, Rust, Python, and TS. I attend a STEM school that specialises in CS and engineering, and I'm in my first year of A Levels (UK) studying Maths, Further Maths, Physics, and Computer Science. I'm on track to get As and A*s.

The plan 6 months ago was - get good grades, go to a good uni, get a CS degree while doing programming to pay for uni/do a degree apprenticeship, and go into a CS career. Without LLMs messing the world up, I think it's a pretty good plan. I'm a good programmer for my age and I'm academic.

However, with recent developments, that seems borderline foolish. I'm interested in physics and engineering, I think I could enjoy a career in either, and I've still got time to pivot to either. I might be able to write better code than GPT-10 - might - but there would surely be increased competition. I also just don't find asking a LLM in the "correct" way and having it spit out code trained on millions of other programmers interesting in the slightest. I worry that actually knowing how to write code without a LLM will go the way of knowing assembly and having intimate knowledge of a computers internals.

I'm frankly tired of hearing about LLMs, but I know that I can't just pretend they don't exist. I have less than a year to make a decision on which uni courses I apply to and I don't know whether I should abandon a sinking ship or hope it's alright and it stops here, as an aid but not something which ruins programming.

I've seen people saying "But we'll still need to translate client requirements to prompts" - 1. I doubt that'll pay well, and while that's not my primary motivation it is something to consider before committing myself, 2. I'm not interested in being a human-bullshit to AI-bullshit translator.

And yes, there's more to CS than programming, but not in a way that pays the bills. If I pivoted I'd still write code "The old fashioned way" for fun.

So: What do I do? I'd appreciate some advice.

Thanks :)




My advice as an older programmer who has a son in engineering school (who is asking similar questions) … stay in CS. The world will change as a result of LLMs, of course, but new opportunities emerging will be one of those changes, and a CS background will help you prepare for such opportunities. My $0.02.


Programming in the 2010s was nothing like programming in the 2000s, was nothing like programming in the 1990s, was nothing like programming in the 1980s , was nothing like programming in the 1970s... etc..

I personally experienced the paranoia of the "end of programming " when VisuslBasic was first released, and when UML code generation ('member Rational Rose?) Tools arrived.

I'm still doing a good living with my programming skills.


"('member Rational Rose?)"

I see some of the people involved in that are heavily dunking on GPTs.

While they have a valid point not to get carried away and ascribe capabilities that aren't really there, it seems to me GPTs have perhaps already, in a few months, had more positive impact on code and coding than those methodologies and tools have, ever.


> 'member Rational Rose?

oh boy I do. Had a whole course in engineering school on it. Never touched it since.

LLMs will just be another programming tool to help us be more productive, at most.


A meager defense of the Rational Rose universe, which I never touched, but kind of liked in principle some of the ideas/aspirational-vibes I was getting from... Having higher-level views & tools that can portray & show the abstractions of computing sound so interesting. Having higher-order control over code sounds so compelling & interesting. In practice it seemed impossible to have a two-way relationship between ideal & real code, but that never seemed like a "real" limitation, like a set-fact, just happenstance that the tools all kind of blew chunks.

Different subject, but in some ways, I think what would flip the bit for me in believing in machine-learned code-working is systems that can do really great refactoring things on instruction. Taking some human instruction & spitting out some html or js doesn't really impress me, to be honest. But if machine learning can take my code, create a builder pattern based off the current constructor, make a config file that allow programmatic defaults, that's a huge time saver of manual labor, not at generating boilerplate, but at helping me shift around what I have. Rational Rose & it's ilk were never particularly great at helping folks refactor systems, but ideologically they suggested that good code had graphical representation & that there was a bi-directional relationship; bringing out that promise doesn't take machine learning, but if machine learning got good at helping juggle code, could open the door to those ideas again, that would be powerful.


Prepare to be blown away very soon.


Doubt it. Thanks for writing.

Maybe actually say something, next time? There's literally nothing to agree or disagree with in your content-free position.

Ok, latter, bye!


> But if machine learning can take my code, create a builder pattern based off the current constructor, make a config file that allow programmatic defaults, that's a huge time saver of manual labor, not at generating boilerplate, but at helping me shift around what I have.

I encourage you to try this in ChatGPT. Give it some code and ask it to refactor out a builder pattern. It won't be perfect, but if it's like anything I've tried, what it gives you will save you some time, and may offer you an insight or two.

---

On an entirely unrelated note, I also encourage you to keep your frustration in check -- an aggressive response to a perceived contentless message says more about you. Equally effective without being condescending or aggressive would have been "Could you say more?"

I chose to interpret your message in this way; others may not be so kind.


> an aggressive response to a perceived contentless message says more about you.

disagree, thanks again. if you just show up to blindly dunk on my actual-contentful talking without saying a single thing, it's you whose being aggressive. i'm fine with aggression too, but i expect it to actually present a form & not just live in shadows. like you did. ultimately i think i contributed to reason, shared perspective, and if i ruffle feathers in negative people who won't build their own stances, i have zero bones about it.

could i do more to coax them into saying something useful? perhaps. should i? meh. apologies, but vacuousness is it's own clear counter-argument & i don't lament pointing that out.

there's some legitemacy to telling me to fuck around and find out. frankly i'm not really sure how i'd get access, and i dont think these systems can actually understand & rewrite my code at all, right now, can't read a github repo. so it seems like an impossible ask to even try to do the very basic long-term co-partnership i'd asked after, at all. and again i don't really have access, as far as i can tell, cause they're all fairly guarded inaccessible experiments. i really don't think we'd find much of hope or promise, if we were somehow able to get these systems to try to start working on our existing code-bases. does anyone have any starting place at all to start re-believing against my objections?


Good news! You can literally go to chat.openai.com and sign up.


Agreed. There will be even more need for humans who understand CS to direct the LLM-based systems.


A tool that makes programmers 10x more efficient does not make programmers less valuable.


In fact, the opposite!


My cynical take is this: if you are worried about LLM taking programming jobs away, why do you think your alternatives are safe?

Not gonna lie, as an experienced engineer I'm also worried and anxious about ChatGPT (combined with the economy, tech layoffs, inflation...). But what else can I do? If my job disappears due to LLMs, I can't think of anything else I could do to pay the bills that wouldn't also be at risk.

So being pragmatic the best thing to do is to continue doing the best job I can. If that involves using LLMs to increase my productivity, so be it.


I think that the next few years will be very interesting where we will see many new companies being created by prompters and many "oh crap" moments when they will be about to hit or start hitting production and just not working, especially if the tests are carried away by the same prompters. Then the hiring pace for programmers will pick up again and we might see a new 2020-2021 boom.


What does your day-to-day work involve? I don't really know what day to day engineering looks like, I just assumed engineering would be more difficult to replace.


If programming can be replaced, then everything can be modelled on a computer will be as well.


Why are you interested in CS in the first place? Computer _Science_ will not be affected by LLMs and other technologies at all. I friend of mine once said that if all computers were wiped off the face of the Earth, her Computer Science research would be unaffected (except that she would have to use typewriters for her papers). One can reason that - barring development of AGI - that improved AI capabilities won't affect the basics that much. Until they can prove P = NP, create entirely novel algorithms or solve the halting problem, we don't have to worry on the science front.

Now, if you want to go to CS just to get a programming job at some company and you are doing this for money, I would indeed ask you to reevaluate. If you like programming as a hobby, a good way to kill the passion is to turn it into a boring 9/5 job. Physics and engineering may use programming as a tool and that may be more interesting to you?

That said, LLMs will not make a dent anytime soon. Yes they will plagiarize code and spit it out in a way that's similar to what you have requested – and for this very reason, have been banned at my Fortune company (Intellectual property is tricky). But they have no reasoning capabilities, there's still demand for solving actual problems. These days, writing code is a fraction of what I do, a lot of work goes into syncing with other teams and figuring out _what to write_. When I actually sit down to write code, that usually takes just a few days. That pales in comparison to all the architecture and coordination work that had to happen to reach that point.

Even if we assume that computers will write the code for us and it's no problem, that would only save a few days for most of my tasks. And any task where it would save more than that probably isn't worth my salary at all.

This might heavily affect pure programming outsourcing companies that only write code and require detailed specifications. That might be a true concern for them. Everything else will just adapt to the use of a new tool.

Like you mentioned, few people program in assembly these days (although some still tweak and plenty more read assembly) but I don't really see anyone complaining about that.


> I friend of mine once said that if all computers were wiped off the face of the Earth, her Computer Science research would be unaffected (except that she would have to use typewriters for her papers

Somehow I think having no computers on the planet might affect the funding for her CS research.


I think the opposite - if all the computers currently disappeared, computer scientists would be in high demand to help develop new ones.


Thanks for your in-depth response.

> Why are you interested in CS in the first place? Computer _Science_ will not be affected by LLMs and other technologies at all.

I haven't really had a chance to try out pure CS. In my own time I work on practical applications (though a current project involves lots of boolean algebra), and the curriculum at school is mostly things I already know (Sorting algorithms, and we'll do big-O at some point). The practical part of the school curriculum is heavily-OOP C#.

> Now, if you want to go to CS just to get a programming job at some company and you are doing this for money, I would indeed ask you to reevaluate. If you like programming as a hobby, a good way to kill the passion is to turn it into a boring 9/5 job. Physics and engineering may use programming as a tool and that may be more interesting to you?

I'm certainly not doing it for the money - I genuinely love it - but when I'm a 17 year old making pragmatic decisions about my future, "Can I get a job" is a pretty important one. I hope that programming as a job doesn't kill my passion, but that's certainly a concern. How frequent is that?

I'd be interested in programming within other industries, but I'm not sure on a path to doing that. I've had a lot of comments suggesting I take physics/engineering courses at uni in addition, but I'm not really sure how much of an option that is in the UK. I'll ask.

> That said, LLMs will not make a dent anytime soon. Yes they will plagiarize code and spit it out in a way that's similar to what you have requested – and for this very reason, have been banned at my Fortune company (Intellectual property is tricky). But they have no reasoning capabilities, there's still demand for solving actual problems. These days, writing code is a fraction of what I do, a lot of work goes into syncing with other teams and figuring out _what to write_. When I actually sit down to write code, that usually takes just a few days. That pales in comparison to all the architecture and coordination work that had to happen to reach that point.

Yeah, I did a week's work experience with Microsoft research about a year ago. I definitely got that impression - I, the work experience kid with no internal access, given some small projects they hadn't had time to do, programmed far more than the actual programmers on the team because I was in less meetings. I enjoyed the meetings and thinking about how to make the tool practically useful, but I'm not sure if that would continue into a decades-long career. I'll probably be doing it again, so I'll have another opportunity to consider that.

Part of my motivation behind going to uni is that I've had a pretty bad time at school due to bullies, violence, and a serious, ongoing concussion from an attack on me. Going to university and finding a good tech job appeals to me because it would (in theory) mean being surrounded by intelligent, motivated, decent people.


I have been a professional programmer since 2004. I have two degrees, both in Electrical Engineering. I worked in the semiconductor industry for over a decade, then pivoted to programming when the semiconductor fabs seemed to all be going overseas (they are now being brought back).

All of which says: 1) you don't need a CS degree to work as a programmer 2) you aren't going to be able to predict the future well enough to know what's happening ten years from now anyway, but... 3) you don't need to, you just need to keep being able to learn new things and adapt

Many people who got physics degrees in the early noughties ended up working in finance. Many people who got engineering degrees ended up working as programmers. If you get a technical degree of some sort, it demonstrates that you can handle technical work, but you shouldn't expect it to turn out to be the "right" major, regardless of which specific one you pick. Things change too fast, and rarely in the predicted way.

We might end up using LLM's a lot in programming, although this sounds a lot like lots of previous hype, both around "AI" and around various other methods of programming without programmers. But I wouldn't advise choosing your major based on your ability to predict whether or not it will pan out, and if so whether or not that will increase or decrease demand for CS majors.


Thanks for your reply. A lot of my concern is because I feel I need to make a decision soon. I'm taking A levels that allow me to easily change to other STEM subjects, but my impression was that a CS degree would limit my options. It's good to know that that isn't the case.


Ignore all the hype about LLMs. They will automate a lot of jobs, and become critical to others, but it will be a very long time until there is no need, or even declining need for computer science majors.


It's disruption from below. It radically drops the cost of doing simple/forumlaic things, probably/possibly.

But so far, to me, these are all cool amazing demos, but none of them at all mirror the real challenges of working significant & interesting systems. There's a real chance that means significant job loss. Maybe this is a "I never thought the leopards would eat my face" mistake, and it has some ego to it, but I personally cant imagine wanting to do any of the work these systems have done.

Code tends to be kind of long journeys, iterative, and we've seen from ML what, so far to me, look mostly like boilerplate-generators and modest-tweakers. I cant imagine spending months building product with one, it being a coworker. We're in a new day, but I've been preaching a book that meant so much to me, After the Internet: Alien Intelligence (2001), which is pretty wild & course & miscellaneous & not super gripping, but sold an interesting core message to me of expert intelligences that are in their own realm. That have incredible powers, but which are unintelligble & vast & distant. Right now these coursely trained ML systems have a lot of embedded expertise, but whether they can show up again and again and become a useful ongoing part of workflow, can work with existing systems & ideas, is very much unknown & tbd.

So, yes, I agree:

> it will be a very long time until there is no need, or even declining need for computer science majors.


"translating client requirements to prompts" (specifications until recently) is exactly what business analysts do and it is amongst the best paid IT jobs. Project managers and security consultants typically earn even more.

In my experience, in both business and academia, bullshit intolerance is a severe career limiting trait.

With your aptitude for physics and mathematics, have you considered some other field of engineering? In all fields of engineering strong programming skills are a strong form leverage for your core work. A friend of mine was in a similar situation to yours many years ago. He choose surveying and he is now the owner of a substantial company, making a comfortable living.


> In my experience, in both business and academia, bullshit intolerance is a severe career limiting trait.

How very well said.

I've craved a book describing the alienation of the engineer, how strange it is to be so well connected to such self-speaking details, to be such a hyper-critical beast on the hunt for issues, a monster at scoping out problems & understanding their bounds, at evaluating possibility. And being trapped in a world where so much around us can feel like bullshit, like a removal of information, only making things vague. Where so many goals & intents seem detached & decoupled.

This simple phrase rather puts a pin on some of the difficulty of life as a developer.

I don't have many recommendations to explain or explore The Most Important Life Aspect Of Being A Programmer, which you've so very really captured imo. Ellen Ullman's Close To the Machine (`97) is a relatively-early memoire that has some very nice capturances of this weird world, of the life of being a machine-speaker, a truth-finder, apart from the rest of the adrift weird world. Haven't picked it up but her new book (Life In Code, `17) yet. I really crave a lot more discourse on this. This is the most undersung reality. Programmers & would-be/could-be programmers should know. The world should know.


Thanks for your response.

I have considered other engineering fields. My school also specialises in engineering, many of my friends are studying it, and many areas of it interest me. Nuclear, electrical, and aerospace all interest me. I'd like to learn more about them, and I'm planning to talk to some of the engineering teachers about it.

This isn't the first comment saying that programming can be useful as part of another field. What would the route be into that kind of work? Would it be a normal engineering route and adding "Proficient at xyz" to your CV?


If there are any career nights with invited engineers from those fields, then I suggest you attend them and ask questions. If not, then discuss with your careers advisor (I think UK schools have them. It's a thing in Australia) and find out whether such invitations could be extended or even field trips organised.

During your university education you will be required to solve many problems and some might be better done with some programming skills. You might need to use MatLab, etc for simulations. During this time you will gain experience with the sorts of problems that programming / CS / data science even AI could assist with. These days every field of engineering is a heavy user of computers and requires a wide variety of programming skills.

As for your question about what to include on your CV. I recommend the structure of: have solved xyz problem for abc using plx. That is, the CS aspect is the least important. The most important is the problems you have solved and the benefit / value generated. This is a far better way to demonstrate proficiency than listing a bunch of acronyms.

Good luck with your university experiences.


Study as much math and physics as you can. Study business, accounting, finance, and marketing. Study the classics and philosophy.

Once school winds down and life picks up, you'll have less time to sit down and deeply read anything.

Build your mental toolkit while you have the luxury of time.

At least, that's what I'd tell my younger self.

I'm not saying not to study computer science, but a lot of it is free and its applied foundations are in the open (free and open-source software).

Novel ideas come from the synergy of thinking and implementation.

Mathematics is the baseline.


This sounds pretty interesting, and not something I'd considered. I've got other interests (geopolitics, military aviation, history) that I've put on hold due to the level of schoolwork. You say to "Build your mental toolkit while you have the luxury of time." What would you say your mental toolkit consists of? Where does classics and philosophy come into it? What do you typically apply that toolkit to, and how does it help you?


> What would you say your mental toolkit consists of?

Not much! In place of the ideal hard science stuff, for a while it's been Stack Overflow, tenacity, and a nose for useful solutions.

I feel if I had educated myself in rigor, I could implement that paper, prove solutions, and have an assortment of physical phenomena at my disposal.

All the books I have and not read speak to the need for knowledge, and while applications abound, words can only be consumed one long tape at a time.

> Where does classics and philosophy come into it?

It's your secret weapon: it's the quote or phrase or context that comes to mind, to flower one's thoughts amid numbers and process, that inspires and renews.

> What do you typically apply that toolkit to, and how does it help you?

Programming, of course! Mostly in pattern recognition for solving problems.

Whatever you decide, I hope you end up owning "something that is yours." It's hard to describe. It could be a business, or a codebase that is maintained a long time.


Is my understanding of GPT's "coding" ability wrong?

From what I've seen, GPT isn't architecting systems. It writes code snippets--basically the stuff you can copy/paste off stack overflow. The only difference is now instead of Googling and searching for the code snippet, GPT will sometimes just give it to you. But once you need something unique, or something that's not just one little piece of the puzzle, it can't do it.


Probably GPT could give answers about architecting systems when prompted right. But I think it still needs an experienced programmer to discern hallucination from useful answers. In other words, dig shit for gold nuggets. Still useful, though.


They’re pretty good if you know what you’re asking and what they’re giving you as a response.

They’re pretty bad if you’re asking them about something you have no idea about.


The thing is... we've only seen a few months of these LLMs. And it is not unknown in the world of software for the early versions to seem laughably primitive a few years later.


LLMs have scraped the internet for their "knowledge". Asking it to go from copying/pasting a code snippet that's more or less found elsewhere on the internet, to architecting a unique system is a massive leap. More breakthroughs are needed before there's any real significant threat to programmer jobs.


Take a class on machine learning first.

I suspect once you know how the sausage is made, you'll understand how short sighted this question is.

Also if you want to make the most money, get the heck out of CS and into finance.


Caveat for finance advice. Investment Banking, trading (quant or otherwise), drastically different pay-grades than corporate finance, intern first to consider quality of life.


All the roles you mention can also be affected by LLM’s


Both of us are assuming OP will figure out his concerns are overblown, so “affected by LLMs” is not a category to avoid.


If you're good at math and know how to program, your major doesn't matter. You'll be fine. And if you're not, it won't be due to your major.

Decide based on what interests you most.


Thank you.


My advice: if you major in physics and keep getting A’s, you can still easily get a programming job, and probably in areas that are more AI-proof than webdev. The opposite is not true.

IMO, taking programming classes in college is a waste. It’s nearly all the type of thing you can learn on the job or in an online course. The real reason to take CS is if you’re interested in applied math, because most math departments lead you into pure theory, but this depends heavily on the school.


I agree there's many courses in a college where you can learn almost as much on your own or through some other mechanism, but I'm not sure that qualifies as a "waste."

there's been other threads on this site where people talk alot about how much they learned in either or both their compilers or operating systems course. This rings true for me -- the value of my first few semesters of CS was that it prepared me fully to tackle a short list of really helpful courses. Honestly finishing the major wasn't all that much more helpful (in terms of what I learned), but the degree itself has worked out fine.

One last thing, but for me there was a sort of retrospective signal -- I did have a second major and other areas of study, but eventually I realized that I had always saved my computer science homework for last because i found it the most fun, and gosh, maybe that was a hint of where to build my career. So to make it more general, the other "use" of a bunch of mediocre CS coursework is that you can gauge your own interest level. We're all built differently, but honestly taking a wide variety of courses to learn what you're interested in while in your late teens / early 20s isn't such a terrible thing (if you can do it without too much debt).


> My advice: if you major in physics and keep getting A’s, you can still easily get a programming job, and probably in areas that are more AI-proof than webdev. The opposite is not true.

Thanks, I'll consider this.

> IMO, taking programming classes in college is a waste. It’s nearly all the type of thing you can learn on the job or in an online course. The real reason to take CS is if you’re interested in applied math, because most math departments lead you into pure theory, but this depends heavily on the school.

Yeah, I'm near to a few good unis that run what seem to be high quality courses with lots of optional courses on ML/maths/etc. I would avoid doing CS at an average uni due to its reputation.

I'm alright at maths, but I really have to work at it - it doesn't come as naturally as physics and compsci. I'm not sure I could succeed in a pure maths degree.


> taking programming classes in college is a waste

my algorithms class definitely helped me pass interviews like Microsoft. I know many people learn this stuff on their own, and many people don't, but i can't call it a waste by any stretch of my imagination.


I'm twice your age. I wouldn't worry. Will things change? Of course. When I was your age the software world couldn't shut up about how programmers would be replaced with UML diagrams. XHTML was gonna be the next big thing for the web, and a social feed was a collection of RSS XMLs.

So, as someone who was also unsure of things once, and also have an interest in physics and engineering at your time: Chances are, even if you pivot to one of those focuses, you'll end up in programming anyways. A lot of physics majors end up in programming, many computer and electrical engineers end up in programming. There's just more of those jobs available. I should know, I was a computer engineering major, I worked in embedded firmware for 2 years before I was pulled back in to web development. I wanted to design processors.

Don't worry about GPT. It's like saying VSCode is going to replace software engineers because it has autocomplete. It's going to make you more productive, it's not going to replace you.


LLMs automate the uninteresting part of programming, which is the physical typing of code. They are not capable of reasoning or logical induction, so the job of being a programmer is still safe. They're basically just fancy codegen.

A lot of the articles you see floating around about "the end of programmers" are written by people who think software is designed by managers, which is only true in workplaces that you would not want to be in. If you can independently design and implement software, then you can work at a company that treats programmers like craftsmen, which is more rewarding both mentally and monetarily.

That said, the tech industry tends to move faster than undergrad currriculae. It's likely that any specific technologies you learn in school are already obsolete[0]. Focus on the fundamentals (CS as a subdomain of mathematics) and you'll find your knowledge has a much longer shelf life.

[0] When I was in university, the more "vocational" classes offered by the CS department tended to teach libraries and languages that had already fallen into disuse outside. Things like OpenGL immediate mode when the world had moved to shaders, or CVS when everyone used SVN and Git had been just released.


Thanks, that's good to hear. I haven't got much exposure to programming as a career other than a week's work experience at MS, so I think I've overestimated how much it can automate. I personally haven't used it much when programming, though I've used copilot since release as the reduced typing massively helps my RSI.


Do what you like, follow your curiosity.

Go broad, things are changing fast it’s better to hedge your bets.

AI, computers science and robotics will completely change our world in this decade.


Right now, no one knows. I think we are all exactly as shocked as you are. These LLMs have been a toy for so long that it’s hard to really know where we are going to end up in 5 years.

But personally, if CS is your passion and top choice, go for it and don’t doubt yourself. It’s true the field could be changing, but someone is still going to need to understand something, even if the LLMs do a lot of the lifting. And if you think programming is at risk, there are 100 other roles in the office that are much worse off. The Office 365 demo from this week has got to scare the pants off middle management and anyone who’s job is responding to emails, attending meetings, taking notes, interpreting simple data in excel and summarizing a project status in a PowerPoint deck. And by the way, that tends to be most people in most offices. Actual knowledge work is rare and usually rests on a few shoulders.

Personally, I am betting that the impact is large, but will be spread out over 15 years and create a ton of work for technical folks in the meantime.


The crux of your question is whether LLMs will replace programmers. I’m prepared to stake my career on the prediction that they won’t.

GTP3 was a breakthrough. We’ll figure out how to integrate this level of AI into our lives, and there will be incremental improvement, but who knows when the next breakthrough will be. What you’re predicting, with GTP10 being able to write large amounts of code is just not possible with incremental improvements. GTP has no internal representation of the world, and so it struggles with novel problem solving that would be trivial for a human.


1) yes, if you find something more interesting, go do that

2) no, LLMs are not taking dev jobs anytime soon so you shouldn't worry about that. I know this is probably boring to hear to the point you don't believe it, but LLMs don't and can't replace actual good devs, and yes, someone still needs to translate requirements to code. You may not understand this until you get into some real projects with some real dumb people at a position higher than you for a while to realize that.

You seem to have the same misunderstanding most CS/programmer students have - Your job and your skill is likely not going to be writing code. Writing code is the easy part.

I would love to see a test where a company hires fewer devs and the managers/product teams try to supplement using AI to write the code. It'll never ever ship.

You won't be a "human-bullshit to AI-bullshit translator"... you will be a problem solving human. It's up to you if you want or find value in using AI to help get you past some boilerplate code, but that is a small part of the job.

If you don't think it will pay well, that's maybe a fair gamble, but not one I would take that bet having been in the field for 20 years... even face to face human interactions struggle to do this job well, this IS the job in many ways, not the code itself. AI is pretty far off from filling any gaps besides giving a good answer to a great questions IMO. I have used it in my day job, and it kinda sucks, you have to know what to ask and have to recognize what are bad answers based on experience. It's basically just stackoverflow++ right now.


I think you are worrying yourself about LLMs for no real reason. Dispite what the large LLM investors and irrational fanboys claim, it won't displace _skilled_ workers that evolve themselves like I'm positive you are. That said, you should specialize to some balance of what pays well and your interests.

You should consider majoring in something other than CS, not because of LLMs or anything like that but because there is tremendous value in having an intersection of trades that you are good at. I went for Electrical & Computer Engineering in school for this reason (and the fact that I didn't want to waste my time&money taking formal classes for the vast majority of things I've already learned before entering college).

Electrical/Computer Engineering is a sweet spot because you get to learn hardware very intimately but also usually take upper-level CS classes. Learning the hardware also makes much better software engineers. I've yet to run into a single employer in the tech space that doesn't treat the degree as the same or better than a CS degree.


Thanks, I'll consider it and take a look at the available CS+EE courses.

What would you recommend for learning some electrical engineering before committing myself with a degree in it?


EE is a pretty big field with a lot of different areas so its somewhat difficult to give general recommendations but if you are looking to see what your intro courses will look like you might take a look at MIT's open courseware or edX for intro to circuit analysis or digital logic. Many schools also publish which textbooks they use for most courses which may be helpful if you want to check them out. If you want to get hands on with some circuits, you can make some cool projects pretty quickly with an ardunio (or similar cheaper knockoff) (it uses a subset of C for programming).

If your considering the textbook route, I have some resources in a google drive from my undergrad I can share if you send me an email to add (my email is in profile).


I'm an incoming freshman to college for CS and I've thought about this a lot. Here's some of my thoughts:

1. There has always been competition in CS. If not LLMs, there are international developers and bootcamp people and just regular engineers. However, good software engineers from universities are still finding good jobs. Generalists are common, specialists are hard to find and companies will pay the specialists what they are worth.

2. Modern software engineers reply on networks similar to LLMs all the time. Think StackOverFlow or google. LLMs will just be able to generate better responses that will be quicker to find.

3. If there is a LLM that can program as good as a well educated SWE, many more jobs will be replaced besides programming. I reckon a LLM will have a much easier time understanding physics, which changes a lot less than CS.

4. Don't concentrate all learning in one place! You could do a double major with physics or a minor. You could do computer engineering or you could do a business minor with CS. Nobody knows the future, we can only guess. However, in the case that CS becomes totally replaceable by LLMs, it will be good to have other skills.

5. Remember that your major does not define you! I know many people who studied physics in college and ended up in the banking industry. Many others who studied engineering ended up in a software development role. Just because you chose a major now does not mean it defines you for the rest of your life. You can always pivot careers, go to grad school, or shift departments within your company!

It is more about becoming a specialist in a subset of CS where

think you may be thinking about it

1. Programmers will always be needed for maintaining and upgrading LLMs.


You’re 17 - don’t just think about paying bills. Not yet. If this interest stems from money and ambitions then you’re trying to build your foundations in sand.

It’s not really about what you choose but how you do the thing you do. How well you can apply yourself to it. You want to find work that gives you flow state.

My 0.2c as a cinema studies/filmmaker turned PM - there are so many soft skills I acquired pursuing a totally different dream. And yet they all turned out being exactly what I needed.

HN is filled with squares hyper-optimizing for sensible logical choices. Advice is older folks give each other is more conservative and about capturing trends because that’s the safe thing to do. We have kids, deteriorating bodies and brains. At 17 you should do opposite: maximize risk for the next few years - you will regret not taking advantage, not developing character, not using your youth to it’s full potential (especially spectacular failure).

If building things on computers is what you want, no new trend will change the fact that you will build great things.


> maximize risk for the next few years - you will regret not taking advantage, not developing character, not using your youth to it’s full potential (especially spectacular failure).

In what way? This sounds like pretty good advice, but I'm not sure how to practically apply it.


Sorry I haven’t come back around to it.

I meant every type of risk - how you practically apply this sort of advice is 100% your part. You know yourself best, you are at the center of your universe etc.

In a way what you choose will then become an integral part of your identity.

Coming back around to this AI stuff - I think there will be plenty of need for smart people to be doing CS stuff. If that’s who you are - lean into it hard.


You've been duped by the LLM hype. Naive people (imo) are losing their minds and the rest of us are just left wondering: wtf is wrong with all of you. You don't hear the sober takes ("neat chatbot, who cares, it seems cool but won't be useful for most work, certainly not for decades") because they're not freaking out so they're not as loud.


We always overestimate the impact of a technology in the short term and underestimate it in the long term.

When I was young, people told me that if I didn't study engineering or medicine I risked a life of poverty or suffering in dirty, dangerous, or degrading jobs. So I studied computer science (and was lucky to find I do enjoy it).

Well now that LLMs can write code I can tell you that if you study CS you might still end up unemployed. I doubt it, but the possibility is there and it's real.

If I was 17, I would want someone to tell me the field that is so challenging and in demand that no AI could ever master it and my future will be secure. I don't have know any off hand.

So I think you need to look inward and read more about these fields you are considering, reach out to current students and/or professors, and see which one will make you want to get out of bed in the morning and be your best self even if you had to do it for minimum wage because AI has destroyed the labor market.

(But I don't think will happen for a couple decades at least.)


do what sounds the most fun to you. there's no clear pre-planned path with all of the answers, so enjoy what you can


> If I pivoted I'd still write code "The old fashioned way" for fun.

This, to me, is all the information you need (even though you are making this statement as an argument for the opposite viewpoint). You are studying an in demand field that you love. That makes it highly likely that it will pay your bills and then some.

The field will change. So will the tools. Possibly interfaces. You might leverage LLMs as your trade tools. They may replace google search for finding answers to well-formed queries the way google search replaced comp.lang.x . But unless humans stop having ideas we will always need human engineers that will transform them into an actual thing.

As a last thought, I would pick a decent knowledge in an adjacent domain that sounds fun (aerospace, biology, chemistry, mechanics, economics, EE, whatever). This will make your core CS skill even more in demand. My 2c.


This is possibly my favorite PG essay, the metaphor about gliding seems very relevant to your question: http://www.paulgraham.com/hs.html

My two cents: If you’re interested in engineering and physics, you should explore that. Does your university have a CompE or EE program? At mine a lot of the classes between different eng programs overlapped so it wasn’t difficult to switch.

But you could also just pivot because no one in the tech industry really cares if you have a CS degree, and it sounds like you’d still enjoy coding anyway so you’ll keep learning on your own. The CS curriculum is going to feel painfully old fashioned compared to what you’re learning on your own, though there are some useful fundamentals in there.


Thank you for the recommendation. I just read it, and I think it's really what I needed to hear: Work on difficult problems for the purpose of self improvement, find intelligent people, and keep my options open - "Stay upwind". This thread has some really great advice, and that essay is a significant part of it.

My university has a Compsci+EE program that I'm going to look into.

If you're already competent, are CS programs less time consuming, or are they easier but still as time consuming? I'm wondering how much time at uni I could spend working on difficult problems in my own time.


You might get something out of Profession, by Isaac Asimov: https://www.abelard.org/asimov.php

You could also take some classes in AI in addition to the run of the mill CS stuff.


> I'm interested in physics and engineering, I think I could enjoy a career in either, and I've still got time to pivot to either.

> And yes, there's more to CS than programming, but not in a way that pays the bills

I'm curious what bill paying career you think is readily obtainable with a physics degree.

Moreover, while the GPT/LLM stuff is very exciting, it is coming out of the CS field. If you truly think it's transformative, that shows you the potential of CS and programming and is all the reason to pursue a CS degree.

Stick with CS if you like it—the career prospects aren't going anywhere. However, if you're just trying to get paid, there's always finance.


Even if AI takes over, we will still need people to run it. And stupid people won't be able to do it, just as now they can't use Excel, smart toasters, or understand internet scams.

So even in that pessimistic world view we will need smart problem-solvers, and CS is as good a training for this as any. Enjoy!

And if we don't not even need people to run it, then I hope we enter the glorious future where we don't need to do anything thing anymore. AI will build and run our powerplants and our farms, provide healthcare and brew our whisky, and we can all collectively retire. Somehow I don't see that happening.


Remember AI still cannot prove whether P=NP or not . So folks like Sienna (algorithm design manual) and their way of thinking will still be in high demand. If anything (thankfully?) Jobs where you write yet another crud service fronted by an app may go away so you can actually focus on hard problems instead of wasting prime years on crud problems.

Edit: another thing to remember. To be able write code better than gpt10 you need lot more rigor than going to a coding boot camp so folks like you will be even more valuable!


Most of what we do in business is figuring out requirements and breaking down a big project into manageable tasks. The code winds up feeling like an easy afterthought once that's done.


...and patiently explaining why one requirement interferes with or contradicts another...


I've had some success asking ChatGPT to write some simple Terraform for me. That's useful.

I asked it to do something a little more complex. In three tries, it got about 75% of the way there, then just...ground to a halt. Each time I asked, it took a completely different approach. I mean completely, ranging from wrapping native APIs to spawning a process to run commands.

If you like to write code, keep going with it. I look at ChatGPT like Jarvis from Iron Man, or SolidWorks for mechanical engineers.


When it comes to developing simple CRUD applications with simple shopping carts and such, there are still gaps to be closed but those gaps will close.

Schmidhuber says that between one key innovation to the next, the time interval is divided by 4. We have entered the most noticeable part of the exponential growth where each year from now to 2040, you will be seeing very noticeable progress.

By 2030 your life as a software engineer will be very impacted.


One way to look at it is if programming is largely automated, then this implies that any thing that is reducible to programming(as in could be modelled on a computer) is as well. This includes all engineering fields that I know of.

So if you want to stay in engineering there are not many options.


My prediction is that in 20 years, we’ll have a shortage of programmers. Most of the hype seems to rest on the assumption that LLMs will eventually stop hallucinating falsities. But what if that doesn’t come to fruition?

I subscribe to the law of contrary public opinion: if the man on the street is saying one thing, bet the other way.


I like this advice from PG: http://www.paulgraham.com/hs.html

It's very hard to say what fields will be less affected or will be affected positively by AI. I will say some of the best programmers I've known didn't study CS.


If it makes you feel any better, I started my career in the '90s and the same vibes were around then. Back then it was all RAD (Rapid Application Development) tools were going to replace everything. After that is was outsourcing. After that it was something else again.


Wait until it automates even customer service or insurance claims processing. The great employment apocalypse of AI has been just a few years away for a decade now. More likely it will be slow and gradual.

People used to say that computers themselves were going to cause mass unemployment.


Now we get to say they’ll cause mass extinction.

And, to be fair, they did end a bunch of jobs but also created more new ones so people didn’t really notice all that much. How many companies still have typing pools?


Stay. What you will bring to the table is the ability to reason about the problem that needs solving, and crafting a solution. Whether that's through directing a LLM or writing it yourself - it's not something your typical "suit" is able to do.


Are you in CS just for the money or for the love/enjoyment/fun of CS?

If you don't do CS what would you do?

If for some hypothetical reason you were forced to do something for the rest of your life for 8 hours a day without getting paid, what would that be?


If you like writing code, CS is the most sensible option regardless of LLMs.

If you want to make money, the picture is less clear - hopefully LLMs will reduce the demand for code monkeys which is skewing dev salaries to such absurdly high levels (though admittedly this is less of a problem in the UK).

If you want to feel some sense of pride or accomplishment in your working life, I'd advise engineering instead. I work for a FAANG company but my friends all have real jobs like "teacher" and "engineer". I'm much wealthier, but they are much happier.

For now, don't worry about it and just go to a good uni and enjoy the 4 years (definitely do an undergrad-masters course, not just a BSc). Keep an eye on the economic climate in years 3 and 4 - if you think you have it in you and no obvious better options are available, do a PhD with the intent of ducking out of academia immediately afterwards.

Good luck!


Get a job, finish CS, learn product/marketing/cloud architecture. In any order but the point is you have to remain competitive while others fall behind. Sticking to HN over the years will teach you good lessons btw


Agree with other comments. LLM will make it possible for programmers to automate even more things. LLM cannot write itself; that is hyperbole.

In practical terms, LLM will open more doors for programmers. Not less.


Pivot or double major but not for the reason you mentioned, if you are already a descent programmer you will easily pick what you would gain from a bs in cs.


LLMs are to programmers what calculators are to mathematicians. I think LLMs will augment programming skills, not make them obsolete.


Stay in CS and finish your degree. If in doubt, get more mathematical. The main thing is to finish the degree, whatever you do.


Stay and ride out a potential economic problems. This is assuming the cost isn't too high.


Your choice should be whatever makes you happy!


if you enjoy it, definitely.

if you are in it just for easy faang money, maybe not.


lol it's just a tool, chill out.

https://twitter.com/ID_AA_Carmack/status/1637087219591659520

nothing stops you from enhoying both industries though.


> I also just don't find asking a LLM in the "correct" way and having it spit out code trained on millions of other programmers interesting in the slightest.

Think broader.

Right now our only interface to these powerful models is prompts, but this is an artifact of how we discovered them.

Future you will not be (paraphrasing) "finding the right prompt to have an LLM spit out the right code" nor "translating client requirements to prompts".

Instead you'll be letting an LLM fill in the basic details of code, syntax, systems, and propose algorithmic approaches that you pick and choose from, while you think bigger and write programs with with substantially more complexity and capability.

How this could become a less-remunerative activity I have no idea!


> Instead [...] you think bigger and write programs with with substantially more complexity and capability.

I fear that this is true, but that the complexity will be accidental rather than incidental. Humans are capable of understanding architecture and design patterns - as far as I've seen so far, Copilot and the like do not.


I think...that's my point?

You program at the level of architecture and design patterns, and Copilot and the like fill in the details. Do you need to keep a watchful eye on the details? Of course.

The complexity will either be necessary for the great things we build, or unnecessary but time-saving, or just bad all around -- but that's true as software grows independent of LLMs.


Yeah, I use copilot quite extensively to help my RSI (though I always know what the expected output is, it doesn't solve problems for me) and that doesn't ruin my enjoyment. If what you describe is how programming ends up, I think I'd enjoy it.

(And my wrists will appreciate it :) )




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: