I know that this question is a bit vague; there are a multitude of reasons.
For the same reason some people like strawberry ice cream.
Ha, that’s how we answer people in the engineering forum when they ask, “Which engineering field is best?” We start talking about different flavors of ice cream.
Nice.
It is financially lucrative, and seems like puzzle solving (so fun) for some people. Some people find computers easier to deal with than people. It is a very useful skill in today’s business world.
It’s fun! It’s creative and you feel so powerful when you master a language. You can make a product people can use just by sitting and playing all day. You can geek out on details and word subtleties, there’s tons of work involving numbers and data analysis which is great if you’re a data fiend! Lots of logic for math types. It’s the best career ever! EVERYONE should get into computer programming… unless you don’t like it. Then don’t.
When i was in college, majority of my friends were getting into programming and computer science simply because it might be a perspective job with really decent salary. Some people are into it because “being a nerd” has become a popular phenomena over the last 6 years, i assume. Maybe 20% are actually think world of programming and computer science and these guys are actually top developers, as far as i know.
Programming seemed really boring to me and despite i have lower salary than a dev, i don’t regret my choices at all. Some people are actually jumping from company to company in order to find a sweet spot and this is just sad. What makes development even more sad is that project managers are often restrict you and stuff. There is almost no room for imagination and new incredible solutions - just raw already-well-known code and reinventing the wheel.
Pretty much that my opinion. I am no dev myself so i can tell you only rumors from my mates. I think people who are actually devs could tell you much more.
Software engineer here.
I can’t speak for people in college who studied computer programming as I studied mathematics and I have yet to begin my master’s degree in computer science.
Programming is just like speaking in a different language, like math. It’s not all that difficult if you can tie logic together.
Jumping from company to company is how you play the game now. You don’t leave too early, but you don’t leave too late. That’s about two years. Employers show zero loyalty to you. I went from a small company to a huge company in my last jump and I’m doing less work than I was at my old job but making 30% more. I plan on leaving in two years for at least another 20% bump.
I never had any problem with project management or anything restricting solutions. A lot of software engineering is just getting the thing to the finish line and trying to write clean, maintainable code along the way. Most solutions are original.
Here’s how my salary went:
Came in with salary. Got a 2.5% bump at review time. Got a % bump at review time. Transitioned job internally for 45% bump. Got 3.5%. Got 3%. Moved companies and took 30%.
It is a very lucrative profession, but I don’t think you should do it if you don’t like it. Don’t waste your life sitting in a cubicle for 8 horus a day if you don’t want to do it.
If you don’t want a career that requires building relationships over the long term (and maybe these are a thing of the past, sadly) or working with children…
As someone who often manages software developers in my work, I would dispute that you avoid children in this line of work. The man-child is alive and well in my workplace.
Computer programming (like math, and science) is straightfoward in school.
You take the inputs, do the right processing, and you get a known answer.
Either the program figures out the right bank balance or it doesn’t. The equation is right or it isn’t. The velocity of the ball rolling down the ramp is right or it isn’t.
In english/history, it is more subjective. Is the hat a symbol of death? Why did the British end up being dominant in North America? There is no one true correct answer.
@NorthernMom61 Still sounds appealing to me!
Nothing wrong with that. Best of luck with it.
You also don’t avoid building relationships over the long term, either. I work in software and every successful person I know in this field - especially the ones who climb the career ladder - has been able to build and maintain relationships. Even early on in your career, you’ll still be in plenty of meetings every day. The myth of the computer programmer sequestered off in their office, coding away alone for 8 hours a day is…just a myth.
(I once told a CVP in my company, with 20+ years of experience, that I’d commonly heard people advise students who didn’t want to interact with people much to go into software development. He literally laughed out loud.)
This is also a commonly repeated misconception, but the truth is that there are objective and subjective things in most fields.
There are historical facts, for example. What year did Christopher Columbus land in the Americas? What were the major catalysts of the outbreak of World War I? What impact did the Black Death have on Europe? There are answers to those questions, and we know them. There are also things in writing and literature that are factual as well and on record.
But there’s subjectivity in math and computer science as well. For example, if you’re building a statistical model - or choosing one of several existing ones to run - there might be several that could be decent choices with trade-offs to each. You have to justify why you built/chose the one you did and the drawbacks and benefits of it. Often in programming, there’s more than one way to program a specific feature or set - some are more “hacky” than others, some are more elegant than others. It’s not just about getting it “right,” but also about the underlying code architecture you leave behind for the developers behind you, how it works with other parts of the system, etc.
And sometimes you are programming models/algorithms for systems that don’t have a concrete answer yet - you are literally discovering new knowledge or on the cutting edge. There was a news item the other day that Amazon’s data scientists created a hiring algorithm that was biased against female candidates, and they haven’t yet figured out how to tinker with it to fix it. There are developers right now building artificial intelligences, virtual reality headsets and interfaces, and other cutting-edge technology who are trying and failing and trying and failing every day. They don’t necessarily know if they’ve gotten it right.
And that’s not even including all the tricky human problems associated with making software for actual human beings.
Interesting question…
I’ve got one son (freshman/CS major) who has been coding since 4th grade. I think he coded in scratch back then. I thought it was a drag and drop graphics program (Photoshop for kids?) until he showed me his code for some game he wrote. The graphics were rudimentary but the code had loops, conditionals, and assignment statements. Since then he moved on to a bunch of different languages and has been coding in Java for about 5 years. He has played around with a raspberry pi and audrino but he eventually drops that and goes back to whatever software only project interests him.
The other son is into math and data and programming is a means to an end. He programs in python mostly just so he can work with data.
Personally when I was an application programmer in the dark ages, I liked the challenge of solving a business problem and coding was kind of fun. Now I’m in IT (systems and infrastructure) and only write little scripts for very specific tasks. Its still fun when I can get something automated. It beats the heck out of spending 8 hours in meetings.
@juillet
Since you have mentioned your employer in the past, ask that VP if you guys can get out monthly updates that don’t break my stuff…I spent my entire day trying to track down a TLS/SqlSvr issue…still not done… ugh!