It depends on how you define "The Best Jobs"

I have been in and around software engineering/development for almost 10 years, here is my take.

Looking at money only, then yes, it is a great job. The average pay is above most other professions, but it comes with a cost. The hours are long and stress is high. Creating good software takes a lot of time. Additionally, there is support calls to take and lots of after hours and weekend work. This is usually when server software is loaded, patches released etc.

The corporate "Hamburger Management" mentality doesn't foster a healthy work environment either

Labor is a big issue. Many coding jobs are moving overseas. Those left on U.S. soil are competing against new college graduates eager for experience and imported labor on visa's. These conditions depress wages for the more experienced folks.

On the plus side, it can be highly rewarding creating software used by thousands or even millions of people. If you are a creative problem solver, writing code gives you the ability to create innovative solutions to unique problems.

If you are looking to it as a career my advice is to diversify your skills. Many coding shops only focus on technology. It's a "my techie is bigger than your techie" mentality. Focus on communication, presentation and people skills. In the long run you will be better off.

 
I honestly believe Software Engineering can be the best job or the worst job depending on your situation. I've been a developer for almost 10 years professionally. One of my first jobs out of college ended up almost causing me to change careers because it was such a bad work environment. We had no formal development and we spent an average of 70 hrs a week in the office working on projects. We could never catch up and I barely had time to do anything other than work. It was one of the worst work experiences I've ever had, even though I was doing what I loved.

However, currently, I work from home for a company that I absolutely love working for. They pay well, bonuses are nice, the projects are awesome, but the most important factor is they are extremely flexible in regards to scheduling and family. If I need to take off to spend time with my family or to catch up on errands I need to do I just tell my boss when I'm taking off and when I'll be back. They are 100% for their employees having a "personal life."

So, my vote is "Yes" and "No" depending on your situation

 


Not to mention, programming itself can get difficult and stressful right?? I don't think it's for everyone?

I'm really excellent in subjects such as physics and math's, and in general got really good marks, but yet I suck big time at programming; I don't even know why. I've tried to practice a lot, but it feels like my mind is not for programming somehow.


Quote: Originally Posted by zpivat  Not to mention, programming itself can get difficult and stressful right?? I don't think it's for everyone? When you have to debug something in a very complex system, sometimes it can drive you nuts. So yes, I'd say it can be stressful. But as with anything else, if you love doing it then the occasional hard to find bug isn't a big deal.

Quote:

Originally Posted by zpivat  I'm really excellent in subjects such as physics and maths, and in general got really good marks, but yet I suck big time at programming; I don't even know why. I've tried to practice a lot, but it feels like my mind is not for programming somehow.

Any thoughts?

I don't think being good at math and physics has any relation to being good at programming. I'm personally pretty bad at math, and yet I've always been great at programming and computer science related things in general. Actually, the only maths I was ever any good at were Discrete Math (logic, sets, graphs, probability) and Linear Algebra (vectors, matrices, transformations), both of which have some relation to programming (especially game programming).

 


Quote: Originally Posted by Baltar When you have to debug something in a very complex system, sometimes it can drive you nuts. So yes, I'd say it can be stressful. But as with anything else, if you love doing it then the occasional hard to find bug isn't a big deal.

I don't think being good at math and physics has any relation to being good at programming. I'm personally pretty bad at math, and yet I've always been great at programming and computer science related things in general. Actually, the only maths I was ever any good at were Discrete Math (logic, sets, graphs, probability) and Linear Algebra (vectors, matrices, transformations), both of which have some relation to programming (especially game programming).

Getting frustrated at the occasional hard bug is, in my opinion, part of what makes software engineering so satisfying. I enjoy a challenge, and more importantly I enjoy the satisfaction of overcoming a difficult challenge that took a lot of hard work. If everything about programming was easy, it would quickly get boring.

As far as math and physics relating to being good a programming, it depends on what kind of programming, but in general they are very closely-related. It's not so much that you'll be doing integrals or using Ohm's Law when you write a program--it's about thinking logically. I've seen a lot of kids who think they're good at programming not able to finish their Computer Science degrees because they can't handle the math when they get past their first year of programming.

 


Minishark:

Finding bugs is certainly challenging, but my favorite challenges are things like architecture/system design. It's very challenging, and I find it a lot more fun than debugging. But I agree that finding a nasty bug can also be very rewarding.

As for math requiring logical thinking, maybe this is a subjective thing but I just don't see it. The only math I took in college that required logic was Discrete Math, and I remember our professor telling us that people good in Calc often strugle with Discrete Math because it's completely different. In Calculus we just had to memorize a whole bunch of patterns, and be very good at rearranging polynomials (to a certain pattern) so we could solve an integral. Differential Equations was also about memorizing patterns to solve the differential equations. Physics was largely about memorizing formulas, and knowing which formulas to use in which situation. At least that's what I remember..

Personally I was never good at Calc, and worse at Diff Eq. and I've never used any of those skills since college. So I'm one of those kids who thought he's good at programming, and managed to struggle through four years of engineering school math to get a piece of paper that says that I really am good at it. Maybe I'm an exception, but I doubt it.

 

As for math requiring logical thinking, maybe this is a subjective thing but I just don't see it. The only math I took in college that required logic was Discrete Math, and I remember our professor telling us that people good in Calc often strugle with Discrete Math because it's completely different. In Calculus we just had to memorize a whole bunch of patterns, and be very good at rearranging polynomials (to a certain pattern) so we could solve an integral. Differential Equations was also about memorizing patterns to solve the differential equations. Physics was largely about memorizing formulas, and knowing which formulas to use in which situation. At least that's what I remember..

 

IMO, the best job is no job. However, programming skills are definitely handy to have in this day and age, so is carpentry, design and cooking.

 

Would I choose programming as a career path? Yes. Of all the typical jobs out there, I'd be programming

If I had $7476827929 dollars would I be programming? No. I'd be running a mom and pop bagel and coffee shop on the moon.

Roger that! I programmed for 14 years and just didn't want to work in the corporate arena anymore. Too much "inside the box" when everyone was proclaiming they were outside the box.