PDA

View Full Version : software engineering job




uaecasher
Mar 29, 2009, 03:01 AM
Sorry if this was the wrong forum

hello,
I'm a high school student that want to take software engineering as a career path, i already know some scripting languages like PHP and javascript and considering to go to a university for education however some people tell me not to go to software engineer path as they claim that nowadays anyone can read some programming and system analyses (analyses, design, implementation , testing and documentation) books and be able to develop books. i don't think that these books can make real software engineers do you agree and what university teach that books don't?

my other concern is that my teacher say that software development is not as profitable and telling me to go to hardware engineering path, is it true?

thank you



MrFusion
Mar 29, 2009, 04:08 AM
There is a difference between programming for fun (working on your own projects), understanding how computers and software work and doing it for a living. Imagine having to program someone's idea of a software the entire day long. it will take the joy of it quickly.

On the other hand, if you are technically inclined and like to program as a hobby/passion, you could chose something more engineering like. You will still do enough programming (if you want to), but not so much as to take the joy out of it. Being able to program well will get you noticed in such environments.

Despite all the advice of your teachers and us here, do want _you really want_ to do in college. Between beginning and end, there is a long time. You have to keep your motivation high, so you need to do something you really like and write down a few reasons why you are doing something.

Simply reading a book doesn't make you good at anything. It might make you believe in that illusion, but in reality it could take a decade before you start to excel at something. Also do something in which you can really shine. Everyone wants to be in the top 10%, make sure you can get there. It's much more fun at the top of the pyramide.

uaecasher
Mar 29, 2009, 05:01 AM
Thanks for the answer.

MrFusion
Mar 29, 2009, 05:46 AM
Thanks for the answer.

yeah well. you better wait for some more replies, from people who actually did computer science (CS).

I choose physics over CS. I like programming, but I couldn't do it the entire day. For me, it's more a tool to do other stuff.
Also keep in mind that many people start studying something, only to find out after 4 years and a degree that it's not what they wanted or expected. So pick something that you are good at, that you really want to do and that will give you options to do something else if needed.

On the other hand, maybe you are so passionate about computers and good at it, that you end up being a professor someday.

Or it will be just a job that just do to enjoy a life outside of work.

It all depends on you, on your motivation and your willingness to work (intelligence only will not get you far in college). You will learn so much in college it will be difficult for you to guess what you will (want to) do after 4 years. You could start doing game programming and end up in ..euh... artificiel intelligence or you will hate it so much you will do ...euh... fixing antique (analog) clocks (I don't know).


Know yourself, choose yourself and choose wisely.

miles01110
Mar 29, 2009, 06:02 AM
I choose physics over CS. I like programming, but I couldn't do it the entire day. For me, it's more a tool to do other stuff.

Depending on your area of physics, this is exactly what you'll do all day :-P

macsmurf
Mar 29, 2009, 06:33 AM
There is a difference between programming for fun (working on your own projects), understanding how computers and software work and doing it for a living.


This is certainly true, but it's true of many jobs.


Imagine having to program someone's idea of a software the entire day long. it will take the joy of it quickly.


This is not an objective truth. For me, it's still a lot of fun even if I do it every day. I even do it in my spare time. However, I accept that not everyone is like me (thankfully :) ).

To uaecasher:

Software Engineering is a craft. That is not something everyone can learn by picking up a book, no more than you can learn to be a cook by reading a cook book. Whoever said that don't know what they are talking about.

What does university teach that books don't? They teach you to read those books critically, and they critique your work. They also teach you the theory which is an important part of software engineering IMO. In addition, they make you do stuff that you would be unable to do yourself. For example, I recently wrote a compiler for a rather large subset of Java 1.3. I would have never been able to do so on my own (or, at least, it would have taken me years), and I learned quite a lot from it.

I do completely agree with MrFusion that you should do what you really want in college. A first-rate software developer can make a lot of money, but a first-rate lawyer can probably make more. For me, it's not about the money.

uaecasher
Mar 29, 2009, 06:38 AM
I like programming, but I couldn't do it the entire day.

On the other hand, maybe you are so passionate about computers and good at it, that you end up being a professor someday.



That's what motivated me to go for software engineering rather hardware because i tried it and like it and unlike you I'm sure i can sit all day in chair and work lol, it's like my dream job to put 3 screens in front of me and work all day.

and the thing u said about doing what people tell me is part of any job if you are an employee, and i don't think it as a problem as I'm a good follower and like to listen to people and i think i will do my own business after working some years for experience

MrFusion
Mar 29, 2009, 07:38 AM
That's what motivated me to go for software engineering rather hardware because i tried it and like it and unlike you I'm sure i can sit all day in chair and work lol, it's like my dream job to put 3 screens in front of me and work all day.

and the thing u said about doing what people tell me is part of any job if you are an employee, and i don't think it as a problem as I'm a good follower and like to listen to people and i think i will do my own business after working some years for experience

What did you try about hardware? Assembling a computer from components? That is not hardware, that is factory work or computer repair work. Working with hardware is designing for example the CPU, perhaps building a prototype (probably from components the technician made), and testing it. I doubt you did anything like that in high school.

I am in experimental physics (not computational, lucky me) and I spend roughly 70% of the time behind my computer.

Many things are possible in life, and most things turn out to be different than you thought.

Don't be a follower, or you will be doing things others want you to do for the rest of your life. Follow your own path and carve it out of hard rock if you have to. Not doing something is easy, saying something is not possible is easy. Following your dream is hard, but worth it.

pilotError
Mar 29, 2009, 07:46 AM
Get yourself a good business degree instead... Or after finishing CS, go get an MBA.

Depending on where you live, software engineering is mostly a dead end. You will have a good job that you love, but the older you get, the harder it is to find and retain a job. Age discrimination is rampant in this industry.

Having your own business is easier said than done. I've been in business for myself for the last 9 years and I'm about to give it up. The business side is where there is more opportunity and if you ultimately want to run a business, your better situated.

About half of the developers I know (if not more) left software to do other things. Two folks that I know their own bar/restaurant. Two others left to become stock brokers. Another is doing financial planning. Each of them where some of the best developers I know. It's really what the business does to you.

Not to say that there's no money in software, but it's getting harder all the time. If your looking to spin off your own business, IT support is a nice little business, installing and supporting software, networking, etc.

If you really want to open up your opportunities, get a Law Degree. It doesn't matter if you practice a day in your life, having that degree opens up options in so many areas of business.

MrFusion
Mar 29, 2009, 08:08 AM
If you really want to open up your opportunities, get a Law Degree. It doesn't matter if you practice a day in your life, having that degree opens up options in so many areas of business.

It's unfortunate that a law degree or a job in the financial sector could make you more money than a technical orientated job. After all, it's the engineers and scientists who build the world and invent the future.
A law degree will give you many options later on, but so does physics and most kinds of engineering degrees.

uaecasher
Mar 29, 2009, 08:30 AM
What did you try about hardware? Assembling a computer from components? That is not hardware, that is factory work or computer repair work. Working with hardware is designing for example the CPU, perhaps building a prototype (probably from components the technician made), and testing it. I doubt you did anything like that in high school.

I am in experimental physics (not computational, lucky me) and I spend roughly 70% of the time behind my computer.

Many things are possible in life, and most things turn out to be different than you thought.

Don't be a follower, or you will be doing things others want you to do for the rest of your life. Follow your own path and carve it out of hard rock if you have to. Not doing something is easy, saying something is not possible is easy. Following your dream is hard, but worth it.

Get yourself a good business degree instead... Or after finishing CS, go get an MBA.

Depending on where you live, software engineering is mostly a dead end. You will have a good job that you love, but the older you get, the harder it is to find and retain a job. Age discrimination is rampant in this industry.

Having your own business is easier said than done. I've been in business for myself for the last 9 years and I'm about to give it up. The business side is where there is more opportunity and if you ultimately want to run a business, your better situated.

About half of the developers I know (if not more) left software to do other things. Two folks that I know their own bar/restaurant. Two others left to become stock brokers. Another is doing financial planning. Each of them where some of the best developers I know. It's really what the business does to you.

Not to say that there's no money in software, but it's getting harder all the time. If your looking to spin off your own business, IT support is a nice little business, installing and supporting software, networking, etc.

If you really want to open up your opportunities, get a Law Degree. It doesn't matter if you practice a day in your life, having that degree opens up options in so many areas of business.

@ MrFusion:

i chose the wrong words what i wanted to say is that i tried SOFTWARE that's why I'm confutable with it. and the part when i say a follower i mean by that I'm open minded and listen to advices and learn from people who have more experience than me but not to take their advice with out thinking or checking with someone else and ya i know my dreams are hard to get but i think it worth the effort..

@ pilotError:

I will study and work in US, about the age thing why will it be harder as i get older because i need to keep up with tech ? I think a person can learn and keep up with his job until the age of 65 or even more (my grandfather was working as a doctor until he aged 75), why the people u know left software? and what do you think about hardware engineering.

the part of opening a business, i know how hard it is, i had my own business 2 years ago (selling game currency) i know it's not such deal but at that time i was 15 and i got around 15kUSD in 5 months also my father run 4 companies and i learn a lot from him in managing his business.

about other degree's i like other engineering field i.e architect (like my father), civil engineer or maybe medicine (this was my 1st choses but after reading the biology and chemistry books i left it the last lol)

thank you

It's unfortunate that a law degree or a job in the financial sector could make you more money than a technical orientated job. After all, it's the engineers and scientists who build the world and invent the future.
A law degree will give you many options later on, but so does physics and most kinds of engineering degrees.

these kind of degrees (law or financial sector) don't make the money for the person it's the person personality and how hard and smart he work in my country UAE (DUBAI) 1000s of people take MBA because it require less studies but they end up taking little money to job less because they not good business man for example a good business man need to work a lot and in holidays which some people can't stand.

IMO it's wrong to link job with education of course it is good but not necessary for e.g :

1) the richest man in the world bill gates: he drop out from harvard (he was honorary degree in 2007).

2) google founders: they was studying for their PhD at stanford but after founding google they drop out.

here is a Microsoft video telling people to take CS for career path:

Make the Future - A Career in Computer Science
(http://www.youtube.com/watch?v=nvhYDTh9T2A)

here is an article with title:

Is software engineering still lucrative? (http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=5171)
note: that this article was published on Friday, March 22, 2002

pilotError
Mar 29, 2009, 08:58 AM
@ pilotError:

I will study and work in US, about the age thing why will it be harder as i get older because i need to keep up with tech ? I think a person can learn and keep up with his job until the age of 65 or even more (my grandfather was working as a doctor until he aged 75), why the people u know left software? and what do you think about hardware engineering.


The business world doesn't want old workers. They don't want to pay pension (if there is such a thing anymore), medical or the higher salaries. There are laws against it, but there are loopholes too. People bitch about unions, but at least they don't cannibalize their old in the name of profit.

The politics in the US almost demands that companies outsource or apply for H1B status to bring people in. It's not that there isn't any talent here, they just don't want to pay for it. I see it every day. My last 3 or 4 assignments were managing offshore resources. These guys would sacrifice their mothers to make an extra 10k in their bonus'.



the part of opening a business, i know how hard it is, i had my own business 2 years ago (selling game currency) i know it's not such deal but at that time i was 15 and i got around 15kUSD in 5 months also my father run 4 companies and i learn a lot from him in managing his business.

about other degree's i like other engineering field i.e architect (like my father), civil engineer or maybe medicine (this was my 1st choses but after reading the biology and chemistry books i left it the last lol)

thank you

Seriously, you have a foot in the door with your father. I would seriously consider it. You do ultimately have to be happy with your decision though.

these kind of degrees (law or financial sector) don't make the money for the person it's the person personality and how hard and smart he work in my country UAE (DUBAI) 1000s of people take MBA because it require less studies but they end up taking little money to job less because they not good business man for example a good business man need to work a lot and in holidays which some people can't stand.

IMO it's wrong to link job with education of course it is good but not necessary for e.g :

1) the richest man in the world bill gates: he drop out from harvard (he was honorary degree in 2007).

2) google founders: they was studying for their PhD at stanford but after founding google they drop out.

I agree with you on the personality part.

Your examples are the exceptions, not the rule.

uaecasher
Mar 29, 2009, 09:23 AM
The business world doesn't want old workers. They don't want to pay pension (if there is such a thing anymore).

These guys would sacrifice their mothers to make an extra 10k in their bonus'.



your first point is correct for all jobs not only CS.


it's 100% true, here in dubai a labor (from india) will work 70 hours a week under the burning sun (around 50 degree C) and get only 160$ per month and he have to pay around 1600$ for his visa fees. so he will basically will work 10 moths with no salary and start to get almost nothing and they are happy with it.

drain
Mar 29, 2009, 10:00 AM
i have degrees in computer science and i can tell you reading some books doesn't make you a software engineer. most of the books out there are complete trash written by amateurs and others wanting to make a quick buck; for example, pick up a book on the unified modeling language (UML) and you will see the author(s) copy most of the book directly from the specification freely available and published by the object management group (omg.org); they even use the same examples.

you go to a "university" for a complete education; a diverse understanding of math, science, business, art, etc. you learn to work with others, how to present and share ideas, etc. all these come into play in a career. going to a "tech school" just to learn how to program in a closet makes you one-dimensional.

your teacher is completely wrong in saying that software is not as profitable as hardware engineering; i recommend you look elsewhere for guidance.

software engineering is more than programming. i have experience in software architectures, CASE tools, operating systems, development environments, modeling & simulation, command & control, artificial life, artificial intelligence, database management systems, human-computer interfaces, etc. this career requires constant education else you will fall behind quite quickly; this means tons of reading and even taking additional evening college courses.

the average career length for a software engineer in approximately 10 years; many leave for new professions. the older you get, the less opportunity exists. corporate america wants young cheap labor that they can work to death and nowadays corporate america is outsourcing more and more jobs to counties like india. i expect software engineering, in the pure programming sense, to become a low-income job. there are very few old people in my profession.

i recommend just about any other profession; i personally feel one should go where the money is. if you want to do something you enjoy; do it as a hobby or when you retire. i'm not sure where the money is now; it seems here in america we're moving to a more "service-oriented" economy... healthcare, accounting, etc. we don't seem to make "real" things anymore.

macsmurf
Mar 29, 2009, 10:01 AM
Here is Denmark there seem to be a lot of jobs for CS majors. I donīt know how it is in the US. The superstars (Bjarne Stroustrup, Anders Hejlsberg, David Heinemeier Hansson, Rasmus Lerdorf etc. (of which only Bjarne has a master's in CS)) seem to go get jobs in the US, but for us mere mortals there is still work to be found. :)

I still think the best advice is to study what you're interested in. Nobody knows how the job market will look 5 years from now anyway.

uaecasher
Mar 29, 2009, 10:22 AM
the average career length for a software engineer in approximately 10 years; many leave for new professions. the older you get, the less opportunity exists. corporate america wants young cheap labor that they can work to death and nowadays corporate america is outsourcing more and more jobs to counties like india. i expect software engineering, in the pure programming sense, to become a low-income job. there are very few old people in my profession.


hmm the part (the older you get, the less opportunity exists. corporate america wants young cheap labor that they can work to death and nowadays corporate america is outsourcing more and more jobs to counties like india) applies to all jobs or only software engineering ?

and i thought people will get more job opportunities as they get older because they have more experience lol?


I still think the best advice is to study what you're interested in. Nobody knows how the job market will look 5 years from now anyway.

true, but what i think is that the software market might increase as everything nowadays is getting computerized and we are still a lot of new things to come like robots and AI softwares

by the way, how much is a good salary (can buy house, car, marry have kids etc..) in US hmm let's say in CA,San Fransisco

drain
Mar 29, 2009, 11:31 AM
hmm the part (the older you get, the less opportunity exists. corporate america wants young cheap labor that they can work to death and nowadays corporate america is outsourcing more and more jobs to counties like india) applies to all jobs or only software engineering ?

and i thought people will get more job opportunities as they get older because they have more experience lol?

let's go through an example. fresh out of school with a degree in software engineering, you get a job developing java software systems. as time progresses, you become a great java developer; also your salary increases. at some point, "corporate" realizes that you could easily be replaced with a someone fresh out of school with a smaller salary (or outsourced for 1/10th of the salary); after all, anyone can write java code. you are told that someone with your experience cant be developing software anymore, you need to be a manager. manager's do schedules, go to meetings, and do paperwork; manager's aren't software engineers. as more time progresses, technology passes you by; no one develops in java anymore or utilizes object-oriented techniques; now they use a new language called XXZ and develop on quantum computers. there's a downturn in the economy and "corporate" realizes they don't need all these "managers" and you get laid-off. now, try to find a job... technology has passes you by; no one wants a 60-year old java programmer in a quantum world; you end up selling insurance (it kind of a joke around here that washed-up engineers end up selling insurance).

now, consider the career of a brain surgeon. the more surgeries they do, the more experience they accrue; the more in demand they are. if you needed brain surgery, would you prefer a surgeon with 20-days experience or 20-years experience? i assume you would choose the surgeon with 20-years; corporate america doesn't think this way, they would choose the 20-day surgeon because its cheaper and if brain surgery was like software systems, most end in failure anyhow, so they go the cheap route.

drain
Mar 29, 2009, 11:45 AM
by the way, how much is a good salary (can buy house, car, marry have kids etc..) in US hmm let's say in CA,San Fransisco

salaries vary from state to state, region to region. there are several websites that can provide average information.

san francisco is one of the most expensive cities to live. your salary will not be enough to buy a house; you'd be lucky you can afford a tiny condo after working several years.

california is generally very expensive. i know california people in their 40s still living with roommates because they cant afford a house. even with the downturn in housing, its still too expensive. oddly enough, several of these people drive $70,000 automobiles.

a few technology areas where you can get a decent salary and be able to live a "normal" life would be the washington d.c./virginia area and seattle. most of the washington jobs are government/defense and it does nothing but rain in seattle.

macsmurf
Mar 29, 2009, 12:34 PM
let's go through an example. fresh out of school with a degree in software engineering, you get a job developing java software systems. as time progresses, you become a great java developer; also your salary increases. at some point, "corporate" realizes that you could easily be replaced with a someone fresh out of school with a smaller salary (or outsourced for 1/10th of the salary); after all, anyone can write java code.


Sure, anyone can write java code. Fewer can write good java code and even less can write great java code. A master has pride in his work and a keen eye for detail gained through years of experience. I can tell you there is a difference between java code written by someone with 30 years in programming and fresh out of (or in) college. If corporations really behave this way in the US, there must be an enormous pool of experienced developers ripe for the picking. Why wouldn't these master craftsmen go together and start their own companies?


you are told that someone with your experience cant be developing software anymore, you need to be a manager. manager's do schedules, go to meetings, and do paperwork; manager's aren't software engineers. as more time progresses, technology passes you by; no one develops in java anymore or utilizes object-oriented techniques; now they use a new language called XXZ and develop on quantum computers.


So this example relies on a paradigm shift that has not been seen since Alan Turing? By the way, many programmers I know dabble in several other languages than the ones they are paid to write in. IMO, that's one of the ways you grow as a developer.


now, consider the career of a brain surgeon. the more surgeries they do, the more experience they accrue; the more in demand they are. if you needed brain surgery, would you prefer a surgeon with 20-days experience or 20-years experience? i assume you would choose the surgeon with 20-years; corporate america doesn't think this way, they would choose the 20-day surgeon because its cheaper and if brain surgery was like software systems, most end in failure anyhow, so they go the cheap route.

It seems that your point is that software developers gain no value as they become more experienced. I respectfully disagree. Anyway, all I want is an interesting job and the pay is way down on my list of requirements. In my country there has always been a demand for CS graduates (although I'm told the way the teach it is different from the US) and I see no reason for it to change.

Now, I'm not in a position to offer any informed opinion about working in the software industry in the US. I recognize that there are problems (such as the cost of health insurance) that is simply not an issue for an employer in my country.

uaecasher
Mar 29, 2009, 12:51 PM
Sure, anyone can write java code. Fewer can write good java code and even less can write great java code. A master has pride in his work and a keen eye for detail gained through years of experience. I can tell you there is a difference between java code written by someone with 30 years in programming and fresh out of (or in) college. If corporations really behave this way in the US, there must be an enormous pool of experienced developers ripe for the picking. Why wouldn't these master craftsmen go together and start their own companies?



So this example relies on a paradigm shift that has not been seen since Alan Turing? By the way, many programmers I know dabble in several other languages than the ones they are paid to write in. IMO, that's one of the ways you grow as a developer.



It seems that your point is that software developers gain no value as they become more experienced. I respectfully disagree. Anyway, all I want is an interesting job and the pay is way down on my list of requirements. In my country there has always been a demand for CS graduates (although I'm told the way the teach it is different from the US) and I see no reason for it to change.

I agree with you, and i don't know at what bases he get his info most of big companies i.e (Microsoft, Apple, Intel, Google, Yahoo) require 5 to 10 years experience for software engineer even more for Sr. software engineer.

the other thing is i think he should change the world take a programmer to a manager to (take a programmer to a Sr. software engineer or VP engineer)

one example of that is google:

here is their management team page link:

http://www.google.com/corporate/execs.html

most of them have 20 years+ in software engineering (for engineering team). in your case these people will be know selling hotdogs lol

macsmurf
Mar 29, 2009, 02:14 PM
I agree with you, and i don't know at what bases he get his info most of big companies i.e (Microsoft, Apple, Intel, Google, Yahoo) require 5 to 10 years experience for software engineer even more for Sr. software engineer.

the other thing is i think he should change the world take a programmer to a manager to (take a programmer to a Sr. software engineer or VP engineer)

one example of that is google:

here is their management team page link:

http://www.google.com/corporate/execs.html

most of them have 20 years+ in software engineering (for engineering team). in your case these people will be know selling hotdogs lol

Well, I'm not prepared to discount the opinion of someone who has real experience as a developer in a country where I don't have any. On the other hand, I don't take the opinions of anonymous people on the internet too seriously.

Google can pick and choose so it's not really a good indicator for the business as a whole. When they were looking for employees here in Aarhus they considered a ph.d. in CS an "advantage" :)

I consider it a great luxury not having to be motivated by the amount of money I make. I think making software is interesting work and I consider myself fairly good at it. If there were no jobs available I probably would still be doing it.

trule
Mar 29, 2009, 04:08 PM
The business world doesn't want old workers.


There is a demographic time bomb in the western world, you can be sure that business will want every worker they can get, yes perhaps even in the USA.

Mature workers fall into two categories IMO; been here for 20-30 years and just pushing the buttons until my pension, or highly skilled reliable and wise contributors. In the US unfortunately the former is a bigger problem than the opportunity of the latter to most large organisations so they tend to cut indiscriminately (think IBM).

But that trend will probably change in the next decade or two, off-shoring is a trend that has played out, the benefit is not as great as it used to be - sometimes there is no benefit at all.

sbauer
Mar 29, 2009, 08:01 PM
I'm sorry, but I disagree with most of the anti-CS advice here.

I've been developing software for a while now. I've worked at various companies and have had many different experiences.

I love what I do. I take pride in developing quality software. Our industry is filled with people that signed up to make a quick buck. They probably heard a commercial on the radio stating that you could make N dollars a year if you get XYZ certification. They have no real interest in software. It shows too.

Before you decide to get into the software development industry, you have to be committed to it. You must be willing to take responsibility for your own career. Continuous improvement is the key. If you expect to take your college education and float through the rest of your career with it, you're underestimating it a bit.

sud
Mar 30, 2009, 06:06 AM
In my experience coming from an IT management background and working in 3 different countries there is no substitute for experience, no offense intended to any under grads or anyone interested in CS. I'll say it again you cannot compare an undergrad to an experienced person no matter what field you work in.

I have employed people from both backgrounds and will always choose the one with actual industry experience.

my 2c

lee1210
Mar 30, 2009, 08:51 AM
In my experience coming from an IT management background and working in 3 different countries there is no substitute for experience, no offense intended to any under grads or anyone interested in CS. I'll say it again you cannot compare an undergrad to an experienced person no matter what field you work in.

I have employed people from both backgrounds and will always choose the one with actual industry experience.

my 2c

Of course experience is important, but everything else being equal (experience, relevant domain knowledge, etc.), would a candidate with a degree have no advantage over one without in your eyes?

-Lee

drain
Mar 30, 2009, 02:12 PM
I agree with you, and i don't know at what bases he get his info most of big companies i.e (Microsoft, Apple, Intel, Google, Yahoo) require 5 to 10 years experience for software engineer even more for Sr. software engineer.

the other thing is i think he should change the world take a programmer to a manager to (take a programmer to a Sr. software engineer or VP engineer)

one example of that is google:

here is their management team page link:

http://www.google.com/corporate/execs.html

most of them have 20 years+ in software engineering (for engineering team). in your case these people will be know selling hotdogs lol

a career lasts approximately 35 years. count the number of job opportunities for *software engineers* with 1-5 years, 6-10 years, 11-20 years, and 20+ years experience. As the years increase, opportunities decrease.

your google link lists presidents, vice-presidents, and fellows; none of these are software engineers. some have software backgrounds, but not every software engineer transitions his career to such a level; what happens to the 90% that don't become vice-presidents? they are the ones selling hot dogs (and insurance).

understand what i'm saying; a software engineering job is rarely forever, i.e. 35 years, most make career changes, i.e. management, vice-president, hot dog vendors, etc. and they cease to hold the title of software engineer or do software engineering work.

i've worked for and with various small, medium, and large companies in the united states; government, research, military, nasa; the story is always the same. i've avoided the commercial sector as conditions there are even worse.

uaecasher
Mar 30, 2009, 02:32 PM
what you say is true if in the way that in a company it need only X number of Sr. software engineer and and it decreases as the level get higher which happen in all jobs. you may have 50 general doctor but only 5 brain surgeons. if that what you want to say then i agree with you

fishkorp
Mar 30, 2009, 02:55 PM
however some people tell me not to go to software engineer path as they claim that nowadays anyone can read some programming and system analyses (analyses, design, implementation , testing and documentation) books and be able to develop books. i don't think that these books can make real software engineers do you agree and what university teach that books don't?


From my experience, most companies (at least around this area), won't even look at you if you don't have a college degree in Computer Science (or equivalent). Many require a Master's Degree. Google, for example, prefer candidates with a M.S. or PhD. Unless you are truly exceptional, you'll have a hard time getting a job there with only a B.S. So learning something from a book on your own is in no way the same thing. It's a very good supplement though. Sure, a dedicated person can actually learn just as much, if not more, but a company won't hire them just because they're lacking that piece of paper.

If you love programming, go for the Comp Sci/Software Engineering degree.

savar
Mar 30, 2009, 03:02 PM
I'm a high school student that want to take software engineering as a career path, i already know some scripting languages like PHP and javascript and considering to go to a university for education however some people tell me not to go to software engineer path as they claim that nowadays anyone can read some programming and system analyses (analyses, design, implementation , testing and documentation) books and be able to develop books. i don't think that these books can make real software engineers do you agree and what university teach that books don't?


You are correct; those books do not make real software engineers. A lot of people get those jobs anyway without any real formal training or experience.

Books are a great resource, but a lot of "self-taught" programmers are actually quite horrendous. I would never hire one of them even if they had professional experience, because software engineering is done very badly at many large companies.

I should point out that school's don't really teach you how to program; in fact, if you show up to school and don't know how to program, you may find yourself behind the curve.

Good curricula actually focus on the underlying problems of software engineering, such as data models, algorithms, and time/space tradeoffs. Understanding these fundamentals leads to a well-rounded engineer; most people are ignorant of these fundamentals, and most software projects end disastrously because of it.

It's unfortunate that a law degree or a job in the financial sector could make you more money than a technical orientated job. After all, it's the engineers and scientists who build the world and invent the future.

I agree totally, but I don't know why this is. Maybe engineers just aren't very entrepreneurial?

I was watching a show on Discover about the Global Positioning System and how they have to take the effect of relativity into account when transmitting time codes to earth.

The amount of complexity that has been solved and simplified to be mass-marketable is simply astounding. And yet many engineers don't get paid as much as accountants who have fairly brain dead jobs.

sud
Mar 30, 2009, 03:23 PM
Of course experience is important, but everything else being equal (experience, relevant domain knowledge, etc.), would a candidate with a degree have no advantage over one without in your eyes?

-Lee

All being equal, as far as experience and relevant knowledge of-course I would take the candidate with a degree, however would I choose and undergrad fresh from uni over or a candidate with 3 - 5 years solid on the job relevant experience with no formal degree, I would take the solid 3 - 5 years experience.

While having the uni degree does show the ability to commit which is very relevant to any employer, having a few years of experience usually comes with an employee that has commitments eg: family car payment, house payments those to are important to an employer and are rarely over looked in favor of a fresh grad student.

Having said all that, I would encourage anyone passionate in cs to "just do it", last thing you want is to delay it and find out you would have been better off with it rather then without it later in life.

sbauer
Mar 30, 2009, 03:28 PM
Books are a great resource, but a lot of "self-taught" programmers are actually quite horrendous. I would never hire one of them even if they had professional experience, because software engineering is done very badly at many large companies.


Oh come on. I call BS. Have you seen the students coming out of most colleges now? It's pathetic. Software engineering is done badly because most software developers are not very good. Yes, that includes a lot of CS graduates.

You're telling me that you wouldn't hire a solid developer with 10 years of experience because they don't happen to have the CS degree you're looking for? Why are you knocking self taught experienced developers? Did one steal your lunch money when you were a kid?


Good curricula actually focus on the underlying problems of software engineering, such as data models, algorithms, and time/space tradeoffs. Understanding these fundamentals leads to a well-rounded engineer; most people are ignorant of these fundamentals, and most software projects end disastrously because of it.

Most projects fail because most developers have zero idea how to write quality code and they're entrapped in a development process from hell. It goes beyond data models, and algorithms.

I go from company-to-company working on software projects. Most code that I see is horrible. It doesn't matter what type of degree someone may have. I see tightly coupled, untestable code everywhere I go. Hell, a lot of them don't even know how to properly use their revision control system. No daily builds, no continuous integration, no automated tests. It's a nightmare out there.

iSee
Mar 30, 2009, 07:19 PM
I think the anti-CS info in this thread is overblown.
Based on my experience (~20 years in professional software development) I have the following comments:

(1) There are a lot of good software development jobs around. I expect that to continue. IT is going to continue to become ever more central to every kind of business. One way or another, that's going to equal jobs. And not just for Indian programmers (the specter of outsourcing as always been exaggerated. It is not that easy to do successfully, and is often not actually that cheap, even in the short term.)

There are jobs for both new and experienced developers. There are advantages and disadvantages to both for employers. Depending on the employer, most should have some mix of both.

The most important thing you can do is to excel, both in school and in the jobs you will have. It comes through on your resume and in interviews if you are the type of person to do the minimum needed to get by, or you try to do the maximum possible in the time allowed. If you are the second type of person and have even basic aptitude for the work, then you will be able to get jobs.

You do need to be wary of tying your career down to one specific technology because they do come and go. But a great C++ programmer is also a great Java programmer and a great .NET developer... after they learn the syntax, conventions, and fundamental APIs of the new environment.
Most employers don't understand this and anyway they expect you to have experience with their development environment on day one. So it's important that once you have a job, take whatever opportunities arise to learn new technologies. Don't push to use inapprorpriate technologies, but keep an open mind and eye. When you're prototyping something else anyway, it's often a good time to try out a different language or tool, too.

(2) A degree is quite important. There was a time when that was much less true (in fact, people of my mother's generation didn't have CS degrees--because they did not really exist when she went to school!), but that day is past. As a young job candidate, you have very little chance to get past the resume evaluation stage of obtaining a job... unless maybe you want to move "offshore" to become one of those super talented $10/hr programmers I hear so much about ;)

Also, whoever those people were that thought anyone could learn programming by just reading books has absolutely no idea what they are talking about. OP, rest assured that those people cannot give you any useful advice in this area. IMHO, you need both practical experience and an understanding of theory and principals to become a good software developer (plus a natural aptitude for analytical thinking, which I assume you have or you probably wouldn't even like programming). A good CS program will give you a great start on the theory and a little experience, too. If is very difficult to get the theory from just reading book and they give you no experience. What good book do is help you learn certain specific technologies.

(3) Don't go into "hardware" or the law or get an MBA if you are interested in software development. People fail as with law degrees MBAs, etc., just like they do in every other field. The #1 thing you can do to have a successful career is to excel at your work. You can't do that if you don't have an interest in it. I think you said in one post that your ideal job is to sit at a computer with three screens and program all day. That's a good sign, because that's exactly what you'll have to do all day every day to be successful. (Well, depending on what you're doing you may or may not need all three screens!)

Well, I could go on and on, but if this is what you are interested in, then this is what you should do.

uaecasher
Mar 31, 2009, 12:03 AM
I think the anti-CS info in this thread is overblown.
Based on my experience (~20 years in professional software development) I have the following comments:

(1) There are a lot of good software development jobs around. I expect that to continue. IT is going to continue to become ever more central to every kind of business. One way or another, that's going to equal jobs. And not just for Indian programmers (the specter of outsourcing as always been exaggerated. It is not that easy to do successfully, and is often not actually that cheap, even in the short term.)

There are jobs for both new and experienced developers. There are advantages and disadvantages to both for employers. Depending on the employer, most should have some mix of both.

The most important thing you can do is to excel, both in school and in the jobs you will have. It comes through on your resume and in interviews if you are the type of person to do the minimum needed to get by, or you try to do the maximum possible in the time allowed. If you are the second type of person and have even basic aptitude for the work, then you will be able to get jobs.

You do need to be wary of tying your career down to one specific technology because they do come and go. But a great C++ programmer is also a great Java programmer and a great .NET developer... after they learn the syntax, conventions, and fundamental APIs of the new environment.
Most employers don't understand this and anyway they expect you to have experience with their development environment on day one. So it's important that once you have a job, take whatever opportunities arise to learn new technologies. Don't push to use inapprorpriate technologies, but keep an open mind and eye. When you're prototyping something else anyway, it's often a good time to try out a different language or tool, too.

(2) A degree is quite important. There was a time when that was much less true (in fact, people of my mother's generation didn't have CS degrees--because they did not really exist when she went to school!), but that day is past. As a young job candidate, you have very little chance to get past the resume evaluation stage of obtaining a job... unless maybe you want to move "offshore" to become one of those super talented $10/hr programmers I hear so much about ;)

Also, whoever those people were that thought anyone could learn programming by just reading books has absolutely no idea what they are talking about. OP, rest assured that those people cannot give you any useful advice in this area. IMHO, you need both practical experience and an understanding of theory and principals to become a good software developer (plus a natural aptitude for analytical thinking, which I assume you have or you probably wouldn't even like programming). A good CS program will give you a great start on the theory and a little experience, too. If is very difficult to get the theory from just reading book and they give you no experience. What good book do is help you learn certain specific technologies.

(3) Don't go into "hardware" or the law or get an MBA if you are interested in software development. People fail as with law degrees MBAs, etc., just like they do in every other field. The #1 thing you can do to have a successful career is to excel at your work. You can't do that if you don't have an interest in it. I think you said in one post that your ideal job is to sit at a computer with three screens and program all day. That's a good sign, because that's exactly what you'll have to do all day every day to be successful. (Well, depending on what you're doing you may or may not need all three screens!)

Well, I could go on and on, but if this is what you are interested in, then this is what you should do.

thanks for sharing your thoughts

Sander
Mar 31, 2009, 04:34 PM
a career lasts approximately 35 years. count the number of job opportunities for *software engineers* with 1-5 years, 6-10 years, 11-20 years, and 20+ years experience. As the years increase, opportunities decrease.

If you use this metric, you will get very skewed results. I think it would be tough coming up with any job vacancy requiring 20+ years experience. Especially in software, we are in a fast-moving field. I rarely send a job description to our HR department with "K&R C" in its requirements. If I want someone new, it's because we don't have the time ourselves to jump on all the new stuff.

I think the reason you don't see many engineers (not just SW) with 20+ years of experience on the job market is that they have probably settled into a job they like, or have expanded their jobs towards (system) architecture, perhaps some group leadership or project management, etc.

However, when I'm interviewing someone who asks "how quickly can one become a manager in this company" it's instant-reject. If you are trying to get rid of this work before you even started it, why did you pick this career in the first place?!

McGiord
Mar 31, 2009, 05:21 PM
My 2 cents of advice:
- You don't know what you really like and what you really want until you try it, you may have an idea of what it is and how it is, but it will be better, the same or worse than what you thought after you are actually doing it. Just try it before, get a flavor of it.
- Check this website for current job openings: www.indeed.com
There you can see real current job openings, and what they pay, what kind of experience and knowledge the employers want.
- If you have the opportunity go to the real workplaces and see for yourself, ask the actual workers what they do, how they do it, and what they did to get there.
- During your academic studies and while working do as many things as you are interested in, then you can later decide what path to take.
- The important thing about your decisions is that you can make them, no your boss, or your teacher. Some of them will give you good advice.
- Nothing is final: you can change your mind later on based on your discoveries

I studied ME.

Initially in my career I wanted to work only on techincal stuff, after some years I realized that not only the technical stuff was important for what I wanted to do but also many other things like developing other skills: communication, leadership, project management, languages. Then I realized that what I wanted was: more money. The I realized that I had more moeny but no time, then I wanted to move to other line of work to have more free time + more money with less responsabilities. I managed to get this thanks to years of experience + additional training and certifications + HARD WORK!

What you want today, maybe not be the same thing that you want tomorrow.

Besides a formal CS degree, many open positions demand for a specific technical certification. In some cases your employer will paid for your training to get them, in other you are on your own.

uaecasher
Apr 1, 2009, 05:13 AM
what do you guys think about outsourcing and how does it work? and is it really a problem?

McGiord
Apr 1, 2009, 02:24 PM
what do you guys think about outsourcing and how does it work? and is it really a problem?

Outsourcing like all things have its positive and negative side.

I believe that each company should dedicate to its main line of business, therefore they can outsource some non essential things to other companies.

Some companies do this to the extreme that their service and support is outsourced to mediocre companies and therefore that hurts the quality of service and support for the end customer.

Specifically IT outsourcing is the most common practice in the business world.

For example, a Dentist office doesn't make any money by hiring for his staff an IT support person, the Dentist outsources this work to a consultant or a well known company.
Similar thing it's done by corporations: outsource their IT department.

uaecasher
Apr 1, 2009, 03:14 PM
ok but if it's cheaper to work in India why don't google or apple or microsoft take all it's staff to India?

from my experience with Indians (as i live in dubai) these people get greedy real quickly, once you treat them well or give them money, they will want more and at point employing in US will be cheaper, here in Dubai we got Indians riding BMWs

iSee
Apr 1, 2009, 03:49 PM
ok but if it's cheaper to work in India why don't google or apple or microsoft take all it's staff to India?

from my experience with Indians (as i live in dubai) these people get greedy real quickly, once you treat them well or give them money, they will want more and at point employing in US will be cheaper, here in Dubai we got Indians riding BMWs

Careful, you're getting dangerously close to sterotyping all Indians (which I'm sure you don't mean to do--I'm just warning you so you don't get flamed).

Anyway, I see it differently. Maybe this is just because I'm thoroughly American, but I believe people (Indians or not, ha ha) should get paid fair market value. I would only consider someone greedy if they were trying to get paid more than fair market value. It's easy to handle that--just don't pay them more. Of course, you need to have a realistic understanding of fair market value. If someone leaves because you won't pay them more and they get another job making what they were asking for, by definition you weren't paying them at market value.

To answer the first part of your question -- why doesn't everyone take there work to india if it's cheaper -- the answer is simple: Quite often it isn't cheaper.

McGiord
Apr 1, 2009, 03:56 PM
Outsourcing to a low wage country is a different scenario, and depends on things like:
- Location
- Language and Cultural differences
- Low wages
- Customs duties + taxes

:apple: outsources all their manufacturing operations to chinese companies.
But its key work activities are still done in the USA, design, research and development, engineering, etc...

I don;t know about the other companies.

India is a very interesting country with a huge amount of people.

Because they are indians why can't they drive a BMW?
A person's citizenship doesn't make him/her different from others. And in my opinion sometimes the immigrants have better disposition to do more, and because of their knowledge of how is the live in other country they can make things better or easily when dealing in an international environment.

uaecasher
Apr 1, 2009, 04:05 PM
that's what I'm trying to prove that if your good at something it won't matter if your Indian or US. I think the difference will be there in easy/ low paying jobs

YMark
Apr 1, 2009, 05:04 PM
I used to work for a company that outsourced many projects to India. Everyone one of them came back to the states screwed up.

However, I've also worked with engineers from India here in the USA. Most have been very sharp.

McGiord
Apr 1, 2009, 05:05 PM
that's what I'm trying to prove that if your good at something it won't matter if your Indian or US. I think the difference will be there in easy/ low paying jobs

Just keep in mind that to work in the USA, or most of other foreign countries for you, unless you are a citizen you will need to go through an immigration or temporary work visa process in order to be able to legally work.

And many times the hiring company would need to sponsor the candidate, and this may be a difficulty that will prevent you to easily get the job.

If you study in an USA University, also you need a student visa, and depending on how the program is you can get a co-op/internship work permit that will allow you to get experience there and get a serious job offer.

If you are good on what you do, you will be successful.

Good luck, and remember to have fun while working toward your goals.

uaecasher
Apr 1, 2009, 10:06 PM
i Already applied for green card and have been approved and will be issued within 1 year, and my Uncle is a US citizen so i guess i have solved this problem

McGiord
Apr 5, 2009, 08:09 PM
i Already applied for green card and have been approved and will be issued within 1 year, and my Uncle is a US citizen so i guess i have solved this problem

Why do you want to leave Dubai?
I heard that it's a great country whose government really managed to spread the oil wealth to their citizens, is that right?

uaecasher
Apr 8, 2009, 02:06 AM
Why do you want to leave Dubai?
I heard that it's a great country whose government really managed to spread the oil wealth to their citizens, is that right?

very true, UAE citizens are so spoiled but the case is I'm not UAE citizen i only live there, if i was a UAE citizen i wouldn't leave because they would directly make manager of big company or minister of technology etc as there is very few educated (no offense) locals