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'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 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 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.
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.
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 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.
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.
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.
[+] [-] wilsonnb2|7 years ago|reply
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.
[+] [-] cakes|7 years ago|reply
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.
[+] [-] tomspeak|7 years ago|reply
[+] [-] bytematic|7 years ago|reply
[+] [-] digitalsushi|7 years ago|reply
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.
[+] [-] peatmoss|7 years ago|reply
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.
[+] [-] ryanchants|7 years ago|reply
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.
[+] [-] anxiouspete|7 years ago|reply
[+] [-] tluyben2|7 years ago|reply
[+] [-] badasstronaut|7 years ago|reply
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.
[+] [-] dronescanfly|7 years ago|reply
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... :)
[+] [-] wilsonnb2|7 years ago|reply
Computers certainly have wide ranging applications but at the end of the day, programming all of those tasks is pretty similar.
[+] [-] sloaken|7 years ago|reply
[+] [-] Topgamer7|7 years ago|reply
[+] [-] whorleater|7 years ago|reply
[+] [-] jl2718|7 years ago|reply
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.
[+] [-] aeternus|7 years ago|reply
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.
[+] [-] tracer4201|7 years ago|reply
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...
[+] [-] p3llin0r3|7 years ago|reply
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.
[+] [-] pasabagi|7 years ago|reply
[+] [-] mrdependable|7 years ago|reply
[+] [-] stallmanifold|7 years ago|reply
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.
[+] [-] beckler|7 years ago|reply
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.
[+] [-] jamestimmins|7 years ago|reply
[+] [-] mighty_bander|7 years ago|reply
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.
[+] [-] unknown|7 years ago|reply
[deleted]
[+] [-] zapperdapper|7 years ago|reply
[+] [-] Buldak|7 years ago|reply
[+] [-] pmiller2|7 years ago|reply
[+] [-] fjsolwmv|7 years ago|reply
[+] [-] kbyatnal|7 years ago|reply
[+] [-] rayalez|7 years ago|reply
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.