Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Would you still do software engineering/dev if you could do it all over?
39 points by react_burger38 8 months ago | hide | past | web | favorite | 57 comments

I would still do it but I would also do something else.

I didn't realize this until after college, but outside of a CS 101 class you can't be just a programmer. Programming doesn't happen in a vacuum - it must be applied to a domain.

For some people, a lot of whom are on this website, the domain can be computer science. Writing a compiler, database, or operating system would fall into that category. Things on the cutting edge like VR or AR would also fall into this category. This particular kind of programming has never appealed to me personally. I don't much care for programming itself or even computer science itself.

However, there are a lot of interesting problems to be solved in other domains that require programming. Economic models, biotechnology, digital synthesizers, etc.

Unfortunately, without the domain knowledge required in those fields, it's pretty hard to find a job solving those problems. All that's left is CRUD work where the domain is opaque business logic that requires little to no expertise but is dreadfully boring.

So I would go back and treat programming as a tool to be applied to problems that I care about instead of the main focus of my education.

This makes sense and I agree. You will learn some about the domains you write software in but often you are in those by force and not by choice and you will only ever be so interested in the problems you face/software you build. I once got to write a compiler for financial formulas and that was very interesting but that was the exception and not the rule for most of my professional work.

Maybe you get lucky and have a hobby/personal interest that can fulfill this need to some degree (this partially has happened to me, apparently people who write software don't often overlap with people who cross stitch).

I do enjoy writing code but I much prefer writing code for problems or in domains that interest me.

This resonates with me. Although I did not get into programming for money, I have come to hold the belief that I could make significantly more money as a programmer in a non-programming field. Money aside, the problems can take you far out of your comfort zone. I recently worked for a fashion start-up and the number of interesting problems that did not resemble at all what you are used to in the CRUD world was fascinating.

So can you not shift into this work? I imagine for something like economics, not all the programmers behind banks or quants have a high level of economics knowledge? I would have thought they want someone with a major CS background to fill the gap they have in that regard?

I'll be the guy who ruins it by asking a clarifying question. If I can do it all over, does that mean, that I keep the wide mental aperture I have forced open over the past 20 years, by learning how people work, learning how general process works, folding probable outcomes and recognizing corner cases, into my personal toolkit? And forget the software engineering? I'd have to go with a hell no. I'd be someone else.

If I lost everything except the notion that I kinda love this stuff? Yeah, I'm sure I would.

Do I go back to 1998 or do I start over now? It's becoming more obvious to me that the closer you can warp back to about 1950 for these start-over fantasies, the better a time you're going to have. I would be in a full panic if I had to start over right now, a fresh 22 year old undergrad with a 2018 degree in software. Yikes. Maybe that's just a me-getting-old thing peeking through. I sure hope it is. And am worried it's not, for younger folks on here.

I was an undergraduate journalism major. If learning about people and the world is your want, then you’d be hard pressed to beat journalism.

That said, I fell back on my computing hobby even before I graduated. When I started college, print journalism still seemed like a plausible career. By the time I graduated, I saw the writing on the wall.

As long as we’re talking what-ifs, I’d take the well paid journalist job in a heartbeat.

I cooked in fine dining for 5 years. Then did 5 years in the military. Now I'm coding.

If I had to do it all over, I'd probably still do se/dev, just earlier. Sucks being behind my friends when it comes to money/homeownership/etc.

After having two careers where money wasn't great, I'm all about the money now.

I'm kind of the opposite. I have a very good salary now at a young age, but I feel that I'm losing my youth. In many ways I would half my current salary to not be stuck in an office writing CRUD - but then I think about all the flexibility my salary provides and go the other way. It's a hard choice

I've been struggling with a parallel problem recently. I'm on track to go into engineering management, which I'm very interested in doing. But part of me wants to take a remote job even if it means a pay cut and moving somewhere cheap and traveling more and working more flexibly.

I have been coding for around 35 years now and I love it as much as when I started. Although I do other things (professional brewing for instance), devving is the thing I like the most. Only thing I guess I would change is less focus on money and more on research when I was uni and shortly after. Money seems to, usually, make programming boring in my experience. Outside firmware that is, but only the kind that has to run in 20kb, not the kind where embedded means just a full ARM system with megabytes of memory. So that's what I do now (among other things).

I think development is one of the coolest jobs out there. With dev skills, you can do everything from building websites to physics models to game development to data science... I'm not saying all you need is coding, but you can't do most of these things without code!

I'm not 100% sure I would be a software engineer, but I can't imagine myself on a career path that didn't involve writing tons of code.

I personally support your point 100%.

If you asked my wife she would reply: “Meh, in the end you are sitting in front of a screen all day and just typing on your keyboard for 40 years“

Perspectives... :)

Interesting perspective. I don't see much difference between building websites, physics models, game dev, and data science.

Computers certainly have wide ranging applications but at the end of the day, programming all of those tasks is pretty similar.

I have a similar but different viewpoint. Software products can be distributed to a old rural minority in africa and to a rich man in the heart of a city atthe same time. For many applications they can be catered as well, mobile/desktop, zoom in for bad eyesight, etc. You just can't do that with, AFAIK, anything else.

I took a programming class when I was 15. At that point I knew what I wa doing the rest of my life. 40 years later, I still love it. I do not know if I will ever retire.

The question what do you want to do after high school was never hard for me, started programming at 12. Still going at 26, sometimes my drive wanes, but I find that due to the project, not programming in general.

No, I would've tried harder in school and tried for med school instead

Med school just seems like cheat mode now. I didn’t want to be a doctor because I was certain that computers would replace them. And they did. The work of doctors is 95% obsolete in the advent of better diagnostic tests and internet health information, with ‘AI’ taking the last scraps of relevance.

Doesn’t matter. Doctors are a government-protected class, with wages held high by regulation, insurance subsidies, and immigrant labor restrictions. This causes massive social problems, and cannot end soon enough.

It seems to me that the amount of work it takes to be a good systems programmer, over an entire career, absolutely dwarfs the demands of medicine. There are many coders in bioinformatics that are more competent at medicine than most MDs and get paid a fraction for much longer working hours. There are also MDs that do both, and consider the medicine part their well-paid hobby.

MDs are limited in quantity due to regulation, as you point out, but that also means the competition to become one is rather brutal. Long schooling, residency, work hours and then most specialities end up with only upper middle incomes.

Doesn't sound like cheat mode at all to me.

Hitting a boot camp and then pulling $100k+ doing web dev is the cheat.

>The work of doctors is 95% obsolete in the advent of better diagnostic tests and internet health information, with ‘AI’ taking the last scraps of relevance.

This seems like a hugely strong claim. Could you elaborate?

GPs don't make a ton of money anymore. Most are replaced by PAs. Specialists still have important skills. And all those bioinformatics and medical automation projects rely on MDs.

Grass is always greener I guess. Most of the doctors I know work tough hours and envy the engineer lifestyle.

There also isn't a huge gap in pay unless the M.D. is specialized, but then you have quite a few years of low-earning vs. engineer's almost instant earning power so probably comes out about even.

I see doctors as being more stable in later career than engineering. I don't really have any data for it; that's just my gut impression.

Also you can be a doctor anywhere. Being an engineer in tech feels like you're geographically stuck unless you're willing to make other (career) trade offs.

Yeah, you definitely don't hear about ageism being a concern for doctors.

Family & internal med doctors can work pretty much anywhere, but specialists don't have a ton of choices when it comes to geography. Positions in desirable cities can actually be very competitive and hard to find.

The difference is doctors basically "keep moving up".

Unless you screw up massively, once you get in it only gets better.

For engineers, you get "used up and thrown away".

The default pathway for software engineers is not that great for a large portion of people.

I went to a private college in the Midwest, worked as a software engineer at one of the big tech companies, left to get an MBA, then went back as a product manager and now manage software development managers in my org.

If I could start over. I would have still done software engineering. Would I have gotten a CS degree? Probably not.

I would have likely gotten a pure math degree because I find it far more interesting.

My CS program was math intensive, but in hindsight, data structures, algorithms and operating systems are the key CS classes I needed. Maybe throw in compilers and networks...

I would be a indie game maker if I could start over, so I guess I would still need the programming skills.

But I would also gain skills in art, music, level design, etc. on top of it.

I would avoid corporate life and carve out a happy little niche in a funky little community like Portland or somewhere similar. Save, live within my means, pay off my student loans. Work as a hard working, humble little dev and pursue my passions on my fiercely guarded free time. Volunteer some of my spare time for environmental conservation and human rights organizations. Have a garden, two cats in the yard... wait that's exactly how I live now, except I'm a sysadmin instead of a game developer.

Overall I have an amazing life and a really bright future so I can't really complain. Choosing to study Computer Science in college is what lead me down my current path. And when I look around at my options, I feel like I made a really great decision. Happiness comes from within. Keep your eyes peeled, always be learning, and don't be nobody's sucker. Don't get left behind.

Really my biggest regret is under-valuing and not believing in myself. It's amazing how great things can go when you just commit to something and make realistic and well-thought out choices while pursing your desired path.

ALTHOUGH, I'm only 29 so I can still do a LOT to change my life and work towards my goals.

Hey, would you be up for a skills exchange? I'm pretty good at fine art, both traditional and 3d stuff. It's definitely stuff you can learn.

Probably not. I've been doing it since I was a kid, but never meant for it to be my career. That happened out of necessity. There are definitely aspects of it that I enjoy, but my days are way too sedentary and I'm basically just expected to be a coding machine. Project requirements go in, finished product comes out, and apart from that managers and other departments don't want to hear anything from you. At least, that's been my experience.

I would still do software engineering if I could do it all over. I came into SWE from the EE side. I studied both mathematics and computer (hardware) engineering, with a hefty CS minor in undergrad. I think EE/CE is a tremendously intellectually profitable (if somewhat unconventional) preparation for a career as a developer. You get an intimate understanding of how computer hardware and low-level stuff works that is hard to get in a CS program. I still find it gave me a toolkit for thinking about software problems that most of my colleagues don't have.

I echo the sentiment that programming doesn't really exist on its own. Most great software engineers really have two skillsets: the programming skills and domain knowledge. Rich Hickey remarks on this in one of his ClojureCon talks. One thing I think I would do differently is to find one or more domains to apply programming to sooner in my life. I'm about eight years out of school and only starting to figure out the answer to this question myself.

Honesty, I think I would enjoy electrical engineering or computer engineering more than computer science. I just didn't really have those other choices at the university I attended.

If I could do it again, I would probably go with electrical engineering all the way. I find electronics fascinating and I enjoy learning about them in what little spare time I have.

I would, but would have started earlier. Now that I'm working my main focus is building on my hirable skills. If I had started 5 or so years earlier (high school) I would potentially have more time to play and learn the things I'm more interested in (languages, embedded systems, etc.), rather than focusing on marketability.

Ugh. I know a lot of people who went to electrical or mechanical engineering and wound up doing software, and the pay's better.

I might focus on embedded work, or math maybe, because this web dev world full of bright-eyed, bushy-tailed youngsters repeating the mistakes I made in 2002 is getting pretty old.

Nope. Would have studied history and then worked as a labourer on construction. Did that for a year before going to uni - still the best job I ever had.

I want to say no, because I don't especially enjoy or excel at it. But I don't have a strong sense of better alternatives, either.

I don’t know, but if I did, I’d get a CS degree and skip grad school, probably ending up with 1/3 the student loans.

What loans? Grad school in CS is free, and undegrad is easily financed by internships in software developer.

> Grad school in CS is free

In the US it's not free unless you are a thesis student.

A non-thesis degrees defeats the purpose of grad school and is only used by departments to subsidize those who do research.

Absolutely. The feeling of building things from scratch that people actually use - it never gets old.

Absolutely! I love it so much, and I have more and more fun every year.

Well, to be fair, I didn't just "fall into" this profession since I was a kid, I started coding at around 20, when I knew that was what I wanted to do.

Although, if I could start over, I'd love to start much earlier(when I was 10-15 years old), and I'd learn fundamentals of math and CS properly, and I'd spend a lot more time on AI/ML, so I'd be much better at this than I am now.

Now I'm 27, and I really want to catch up on proper math/science of it all.

Also I need to mention that I don't consider myself a "programmer", I'm a startup founder and my goal is to build successful SaaS tools. That's way more interesting and exciting, I get to think of ideas, design products, do full-stack dev, marketing, make all decisions on my own, etc. If I'd just be working as a programmer for someone else, it would probably feel less exciting.

Absolutely, though it worked out really well for me so that colors my opinion.

I love working on the edge of the future, and in my lifetime the Internet was it.

In another time it would have been aviation, space race, radio/television, or the railroads.

Sure. Tried a lot of others, still the best. Just avoid toxic communities.

Probably so. Seems like the right choice still once you actually make the question make sense by removing all of the, well I would have bought Google stock and retired conditions.

Yes, but I will start earlier. I think I could be in a better place if I would start coding before college instead of getting the hook of it on my last year of studies.

Yes, because I'd then actually get a BS in CS instead of a BA in a humanities and would have been able to start earlier, get to be an intern, etc.

1000x yes. I live my dream life because of it - can travel anywhere in the world and never have to worry about going broke.

No, I would have done EE/Math instead.

I did math, graduated at the dotcom bust where all the jobs were actuarial (not my interest). Went back to school for EE, and I've found there are more jobs, more interesting jobs, and better pay writing software than being an EE.

I think this is extremely common. Problem is that CS101 coding interviews are common now, and EEs are just not prepared to speak that language.

That's not true at all. I've rarely been turned down after an interview.

I feel the same way - although we probably both would have ended up being programmers anyway.

Nope I would probably have gone with chemistry/biochemistry. Maybe even philosophy

No. I would be a poet. But this would only be a different mistake.

yeah, but i would have aimed for the FANG level companies from the get go rather than settle for various startup companies

Absolutely. It's the best job.

no i would join online university or go for self study

Applications are open for YC Summer 2019

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