Engineering vs Programming?

Started by
19 comments, last by cadjunkie 8 years, 10 months ago

Hey,

I'm a pretty young kid, aspiring to become a software engineer. My parents, however, recommended that I not do programming as:

1. The salary can't support a family (Indian, so arranged marriages and kids in the late 20s are usually expected)

2. You sit and stare at computers all day

3. You'll get bored of computers

4. You don't socialize with other workers as a programmer

They suggested I go after aeronautical engineering, or something similar (even though the salaries are usually lower :P).

I understand they're both engineering, but what're the differences between programming and general engineering (Base concepts used in all engineering jobs).

Also, what is the best path to take in order to get a good salary as a programmer? (120k+)

I'll definitely be going to college, so what classes to take?

What're the highest paying programming jobs?

What will you make?
Advertisement

1) Average programmer salary in the US is $80k, which AFAIK is enough to be a financially comfortable family. Not rich, but definitely not at all poor. Yep, the starting salary could be half that though...
2) Personally, I try to stand at mine. It's bad for your health to sit too much tongue.png
3) Computers are a tool. Does a draftsman get bored of pencils? Oh wait, they also use computers these days anyway laugh.png
4) I can't say how true that is. I have a large group of "work-friends" that I socialize with. Maybe that's an Australian thing though -- forming social bonds by drinking beer in the office on a Friday...

Also, what is the best path to take in order to get a good salary as a programmer? (120k+)
What're the highest paying programming jobs?

Either - the ones that take 10 years of practice and continuous learning and improvement to get to (senior, team-leader and specialist roles of any kind), Or, ones where your clients have a lot of money and responsibility -- finance, defense, aerospace, mining, etc... anything where lives or billions in profits are at stake. Hell you can earn $120k+ doing laundry for a mining company if money is your only concern in life.

To address your points:

1. nonsense. There are plenty of people who support a family on a software engineers pay. As for arranged marriages and kids, that's up to you, but this is 2015... if you don't want to get married or have kids, tell your family to get stuffed.

2. Yeah, there's a lot of that, but there's also design meetings, working together on problems, etc.

3. You might. Plenty of people don't and haven't.

4. Also nonsense. I socialise with plenty of people I've met at work.

The difference between programming and engineering? They're pretty different fields. In general, you will need a much greater understanding of physics, materials, etc in real world engineering. You can easily go your entire programming life without every needing to know any math beyond simple arithmetic/logic and no physics at all, or you might end up writing an incredibly complex physical simulation or some crazy financial wizardry.

if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight

As for arranged marriages and kids, that's up to you, but this is 2015... if you don't want to get married or have kids, tell your family to get stuffed.

There's benefits to clan-like cultures and even arranged marriages. This may be harder to understand if we're coming from a typical american family structure, or in the Disney culture of choosing a mate based on emotions that wax and wane. Arranged marriages can also end up being bad, but we shouldn't assume that that's always the case. Plus, we already have evidence that Ovi's parents aren't forcing him do what they want in terms of occupation, only giving their 'recommendation' and 'suggestion' (in Ovi's wording), not a hard command for what career to take.

While, yes, Ovi definitely does have free will to make his own decisions, we shouldn't bash his culture or advise him to give his culture and family the finger just because we're unfamiliar with it. Not everything "modern" is necessarily better - we shouldn't use unfounded claims of enlightenment (which I'm inferring from the "this is 2015" statement) as excuses to act impulsively.

Giving cross-cultural advice is risky business. smile.png

I graduated as a mechanical engineer and programming is a hobby for me. According to my experience, the main difference is that programming is quite one-dimensional compared to mechanical engineering. That's a fundamental difference, there are obvious differences (such as materials science, mechanics, math, physics, whatever) too.

By one-dimensional I mean usually in programming (especially nowadays) you don't have to worry about the size and strength of things, how totally unrelated things have to be packed in the same place (unless you write horribly messy programs), you don't have to worry about manufacturing, materials, reproducibility etc.

EDIT: in programming, you don't have to worry about backlash+hysteresis, friction and deformation. If an algorithm's logic works, than it works, even if it's not optimized. May be slow as a snail, require huge memory, may give imprecise results (ill-conditioned calculations may be analogous to backlash), but works. In mechanics, if something logically works, but it's not optimized, the mechanism may end up not working at all. Or sometimes working. Or working 95% of the time, depending on the environment in ways sometimes it's impossible to understand ("the machine has soul").

The building blocks and how they interact with each other is much easier in programming, but the end product is usually much more complicated than a machine. The building blocks and how they interact with each other in Mechanical engineering is much harder, but the assembly itself is usually not that complicated.

So in my opinion, it's much easier to jump into programming and programming is much more tolerant to hacking, but in the end, a high-end product may require the same effort/level of expertise. Machines "have souls", if a program "has soul", you really screwed something up, or working with a buggy driver.

Wake-up post...

There's also a lot of difference between being a programmer, and being a software engineer. Just like there's a lot of difference between being an assembly worker and being a mechanical engineer.

In smaller companies, or with smaller projects, the roles of software engineers and programmers are often merged, but with large pieces of software, it's not uncommon for the lead engineers to not write a single line of code, nor is it uncommon for many of the programmers to know how the different parts of the software fit together, or why some of the conditions placed on them are necessary.

Just as it's uncommon for mechanical engineers to make final products, and it's uncommon for the people putting the products together to need to know anything about why the product is designed the way it is.

Indian here, so I get a little more of where you're coming from culturally. Don't think my family is as conservative as yours, though.


1. The salary can't support a family (Indian, so arranged marriages and kids in the late 20s are usually expected)

It's easy to find 80k jobs, and 100k+ is common in major tech areas that have higher living costs. Wall Street finance will get you in the 200k+ range. There's not a lot of jobs out there that pay better.


2. You sit and stare at computers all day
3. You'll get bored of computers

I've been waiting twenty years for this to happen and it hasn't happened yet. In any case, if it does you simply transition to a management role as none of the techies want to do it anyway. And then you make even more money. Middle management at IBM, HP, etc can easily do 200k+.


4. You don't socialize with other workers as a programmer

This is 1) incredibly false and 2) kind of a plus point. But I have a word for programmers who aren't interacting with their colleagues: fired. This is a team sport. Honestly at some jobs, I found it tiresome how often people wanted to continue socializing after work.


They suggested I go after aeronautical engineering, or something similar (even though the salaries are usually lower ).

Which... involves sitting in front of a computer all day. It's not as if you go and build the damn rocket/aircraft/missile/whatever. You sit on a computer building CAD models and running simulations all day. Same goes for most other engineering. These are not hands-on careers. You'll have maybe the occasional day of dealing with physical objects, but it's not the norm and it's probably not applicable at entry level.


1. The salary can't support a family (Indian, so arranged marriages and kids in the late 20s are usually expected)

It's easy to find 80k jobs, and 100k+ is common in major tech areas that have higher living costs. Wall Street finance will get you in the 200k+ range. There's not a lot of jobs out there that pay better.


2. You sit and stare at computers all day
3. You'll get bored of computers

I've been waiting twenty years for this to happen and it hasn't happened yet. In any case, if it does you simply transition to a management role as none of the techies want to do it anyway. And then you make even more money. Middle management at IBM, HP, etc can easily do 200k+.


4. You don't socialize with other workers as a programmer

This is 1) incredibly false and 2) kind of a plus point.


They suggested I go after aeronautical engineering, or something similar (even though the salaries are usually lower ).

Which... involves sitting in front of a computer all day. It's not as if you go and build the damn rocket/aircraft/missile/whatever. You sit on a computer building CAD models and running simulations all day.

Hmm. What jobs involve making tons of money, socializing with people constantly, and yet not sitting in front of a computer at all? I think you're quietly being pushed towards med school. Probably as you get closer to making decisions, the idea of studying basic sciences or math and doing pre-med will come up. Watch out for that.


Also, what is the best path to take in order to get a good salary as a programmer? (120k+)

Master's degree.


I'll definitely be going to college, so what classes to take?

Master's degree classes.


What're the highest paying programming jobs?

Finance. Easy to head out to NYC and do this work for 120k a year at entry level and up from there. Sure living expenses will be 50k/year but it still works out pretty well. Do not go into games or other entertainment industries if money is a concern.

I'm also surprised that the outsourcing thing hasn't come up, or maybe you just didn't mention it. There are a number of responses to this, my favorite being that thanks to India's brain drain (which is kind of a problem for them), anyone who is still there is actually pretty damn terrible at software. Remember all those big Indian software companies? Yeah, me neither. But a more ... polite response is to suggest establishing US citizenship if you haven't already, get security clearance, and work in computer security. Can't be outsourced, pays well, and there's tons of demand and will continue to be for a long time. Living expenses in MD/DC/VA are actually great too and there are even some nice places to live.


1. The salary can't support a family (Indian, so arranged marriages and kids in the late 20s are usually expected)

Years away at college, and then a well paying job, will do wonders for dealing with family expectations. Don't sweat this for the time being. However, white born-and-bred American people will invariably try to give you (sometimes loud) advice on how you should be interacting with family. Ignore them, it will not help and they don't know what they're talking about.

SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.

Computer guys are more born than made. I don't suggest to go into it unless you feel like you are very drawn to it. It could work out fine if you are not, but many people are not really that happy with it.

This is my thread. There are many threads like it, but this one is mine.

1. The salary can't support a family (Indian, so arranged marriages and kids in the late 20s are usually expected)
2. You sit and stare at computers all day
3. You'll get bored of computers
4. You don't socialize with other workers as a programmer
5. What're the differences between programming and general engineering (Base concepts used in all engineering jobs).
6. What is the best path to take in order to get a good salary as a programmer? (120k+)
7. What classes to take?
8. What're the highest paying programming jobs?


1. Salaries are local things. At present computer programmers around the globe are frequently paid well above the local average wages. Sometimes 2x the average, 3x the average, 5x the average. Also, you can move to other locations around the globe. I don't want to speak bad about it, I've known several people who have moved (temporarily and permanently) out of India and they describe how some homes have 3+ generations in them, where the 30-something couples has their young children and also has his 50-something parents and 70-something grandparents. Around the globe that level of extended family is a fairly rare situation; even with moderately large families only one or two children remain with the parents, and one one of the cousins houses the grandparents. All through human history people have branched out from their atomic families on their own, left their families, sometimes with their blessing and other times against their parent's will. Figure out your passions. More on that in answer 7.

2. Many people have standing workstations, although they are uncommon. It seems over the past few workplaces, about one in thirty use standing desks that I have seen, although many of those sit a portion of the day. Nothing says you must sit all day, and many developers pick up sports or athletics of some kind. 2-3 decades ago martial arts were the athletics of choice, it seems these days many different field sports tend to be more common.

3. These days, people hold jobs for about 4.5 years and on average people change careers 3 times in their lives. You may very well decide to follow different interests later in life, and that is fairly common. More on that in answer 7.

4. Nonsense. Most software developers work in offices with many people and have frequent meetings. Yes there is less social interaction compared to fields like sales and marketing, and there are extremely rare individuals who avoid all socialization, but on the whole most software developers are as sociable as any other cross-segment of humanity. Some are more introverted, some extroverted, that's okay.

5. Position names are a cultural thing within companies. The term "engineer" in some places is legally regulated when it comes to topics of civil engineering or architectural engineering. As a broad generalization, "programmer" or "coder" often implies less skill. A person who takes a design made by others and translates it into computer code. A "software engineer" or "programming engineer" or "systems engineer" often implies more applied science, more thoughtful design and analysis, and perhaps less writing of code, or writing more broad systems rather than single-use stuff. Some companies use terms interchangeably, others have a strong difference.

6. I hope that isn't all you are looking for, but sticking with your question, it depends on the region and the marketplace. If you live in a region with little money, no matter how expert you are in the field you won't bring in $120K because no such jobs exist there. If you live in an expensive region then $120K may be barely enough to keep a roof over your head. From about the 1960s to the 1990s the best paying software development jobs are as database development for emerging businesses, but that has been changing as markets and products change. Non-database server backends have also had high pay over that time frame. Banks and financial systems tend to also be financially dependable. In the early 2000's it was all about "big data", being able to efficiently mine existing data and generate statistics and trends rather than develop the business software. In the past decade there has been a strong transition over to social network programming. I have no idea what the best will be when you reach adulthood in a decade. It could easily be that a decade from now the market has dropped out of today's high-money software development businesses.

7. What classes to take is best discussed with your school. My recommendation there is that you take courses that support your main passions. Many people on the forums recommend that you "follow your passions". Do the things that you enjoy. I <b>STRONGLY</b> recommend a book called "What Color Is Your Parachute?" which is updated every year. A large section of the book has you build a diagram, called "the flower diagram", that helps you identify what passions you have in your life. They include things like what you enjoy (and what you dislike), what fields you are passionate about, what geographic locations you are interested in, what skills you are most passionate about using, and what other attributes are part of your current personal mission through life. The answers change over the years (I'm reworking my own flower diagram presently) but simply having a clear statement about what you are deeply passionate about can be life-changing. I've known several people over the years who have switched careers after discovering that their passions have moved and they lie elsewhere. Once you have identified your passions, following them is much easier. Work over the book, identify your passions, and act accordingly.

8. As mentioned in answer 6, the actual pay levels depend on location and the prevailing market. Does it matter if you have the highest paying programming job? Would it bother you if you had the third highest paying programming job? Or fifth highest? Most people are content with a reasonably high wage that we can live comfortably on.

Computer guys are more born than made. I don't suggest to go into it unless you feel like you are very drawn to it. It could work out fine if you are not, but many people are not really that happy with it.

I don't feel I was born into programming, and when I got into it, it wasn't because I was drawn to programming - I was drawn to videogame level design, and the programming was only a means to an end. But I've come to enjoy it immensely, after the first year of stubbornly pressing through it.

I'm not saying everyone would enjoy programming if they gave it enough time, but I am saying not everyone who has come to enjoy programming was drawn to it from the beginning. But I agree that if you don't like it, don't make a career out of it. smile.png

This topic is closed to new replies.

Advertisement