Mac Forums

Mac Forums (http://www.mac-forums.com/forums/)
-   OS X - Development and Darwin (http://www.mac-forums.com/forums/os-x-development-darwin/)
-   -   software engineering (http://www.mac-forums.com/forums/os-x-development-darwin/60554-software-engineering.html)

jakeroberts 04-25-2007 09:14 PM

software engineering
 
Hello, I am considering software engineering as a career. I am curious about what education it takes and what a person could expect to earn and how satisfying a career people who do it find it to be. I would like to get into developing apps for Mac or Linux or both.

mathogre 04-25-2007 10:24 PM

Quote:

Originally Posted by jakeroberts (Post 379960)
Hello, I am considering software engineering as a career. I am curious about what education it takes and what a person could expect to earn and how satisfying a career people who do it find it to be. I would like to get into developing apps for Mac or Linux or both.

I develop s/w in a research and development environment, specifically air traffic control. I'm biased. You'd do well to study math, and learn the basics of programming. While I code in Python primarily, my first programming language is mathematics. Programming languages come and go, but math will stay with you for life.

For programming languages, Python is very good to learn. It's transferable across the major environments - Linux, the free BSD families, Unix, OS X, and Windows.

You won't go wrong getting down and dirty with a Linux distro. Custom roll your own kernel, play with a bunch of distros, get familiar with the normal Unix and Gnu tools (sed, grep, awk, for instance), and become conversant on the command line. This will help you in an overall *Nix world.

For the Mac environment, I could comment but I'll defer to others. My Mac programming experience to date is nil, having just switched in January.

How much can you make? Here's my company, one of the best 100 places to work:

http://money.cnn.com/magazines/fortu...pshots/60.html

From the page, here's what someone could make writing software with some experience:

Quote:

Most common job (salaried):
Lead Information Systems Engineer $112,656
Is it satisfying? Okay, my job is more than just writing code. I've run research projects. I've influenced how air traffic operates in this country. Yes, it's very satisfying.

In closing, I'll emphasize that a degree (BS) in math is a good way to go.

mathogre 04-25-2007 10:30 PM

Here's some additional info, the best 100 list:

http://money.cnn.com/magazines/fortu...007/full_list/

Google had over 1,000,000 people apply to work for them last year.

Microsoft pay?

Quote:

Most common job (salaried):
Software Developer $118,500
Again that's probably for someone with experience, but that's good money.

Hope this helps!

jakeroberts 04-25-2007 11:13 PM

I don't think I could stomach working for Microsoft. What I am hoping to do is develope for Unix/Linux/Mac. I like the principles behind Linux and Apple. I think its a noble profession to assist in the conveyance of information. I'd do it for free if I could, but since the wife and kids think they have to eat every day I need to make a good living at it. Back when I was Linux-Only I often thought "this stuff could be really nice with a good company and a little money behind it." Then I looked at a Mac.

xstep 04-26-2007 05:47 PM

I have a pet peeve regarding the term 'software engineer'. Perhaps another time.

The minimum education is the U.S. is an associate degree I think that a company would recognize for a person having proper training in software development. You'll have to look up the exact available titles.

To make it more likely to get to the high end of the money, you may need at least a full computer science degree with perhaps a minor in math or engineering. If I was starting out, I'd look at software engineering degrees recognized by the engineering community, what ever they may be called. I'm sure the universities that have that available will make it clear.

If your intent is to be an independent Mac or Linux developer, then perhaps some intro courses in programming, including analysis and GUI design, would kick start you on that path. The thing I like about live instructor lead courses is your (hopefully) learning from someone with experience which leads to real world discussions, which leads to learning about some of the grey areas of the subject.

As for the money factor. Searching for such jobs on Monster or Dice or even Craigslist can give you a decent indicator.

The career can be satisfying. Especially if you can see that your users have gained something positive from your work. As with any job, you're likely find areas not too exciting to you. I coding and really enjoy it when particular puzzle grabs my attention. There are many different facets in the business, so there is a good chance you'll find an interest.

jakeroberts 04-26-2007 06:52 PM

Hello, lets hear about your pet peeve. Also, I don't know about being an independant developer, I would rather be a contributor to a nice project.

technologist 04-26-2007 06:55 PM

Quote:

Originally Posted by xstep (Post 380573)
I have a pet peeve regarding the term 'software engineer'. Perhaps another time.

Please share.

Quote:

you may need at least a full computer science degree with perhaps a minor in math or engineering. If I was starting out, I'd look at software engineering degrees recognized by the engineering community, what ever they may be called. I'm sure the universities that have that available will make it clear.
That's a good place to start.

rman 04-27-2007 10:57 AM

www.payscale.com will give you salary ranges.

xstep 04-28-2007 05:26 AM

Quote:

Originally Posted by jakeroberts (Post 380621)
Hello, lets hear about your pet peeve. Also, I don't know about being an independant developer, I would rather be a contributor to a nice project.

I'm leaving out my pet peeve because I don't need an argument right now. My week has already been disruptive. There was a small hint in my original response.

Building a career in this business pretty much demands the expense and time of formal training. If for no other reason, because employers like to know you have at least covered the formal methodologies and have a basic understanding of the underpinnings of how systems really work. There is a core of knowledge that is taught in both short term college programs and 5 year computer science degrees. With this core, a talented individual can go on to build most applications you see today. Of course it should be mentioned that a talented person without formal training can be just as productive.

I don't know what the percentages are, but most of the computer science talent is working on corporate applications. Both the people and applications are not usually known to the general public. Also note that much of that talent are also working on applications that run on a Microsoft OS, and having to use said OS during for development.

It is likely easier to get your foot in the door of that 'cool' company if your name is recognized. A common way to do that is to work on a popular open source project, or create your own applications. A few key issues here is that you should be interested in the application, show that you are reliable and work well with others, and the application should be using much of the technology that company uses.

Given what everyone has said, I hope you realize it is likely going to take you years to "be a contributor to a nice project". If you already have some the required skills, then perhaps that will get you there a little sooner.

jakeroberts 04-28-2007 06:47 AM

I see what you mean, its probably tough to get somebody to look at a person without much education behind them regardless of the real world work they have done. I'm fairly passionate about open source or more to the point free an open exchange of information which computers are far and away the best means to.

xstep 04-28-2007 02:01 PM

Your interests are mostly conflicting. First you say you want a software career where payment is involved so that you can support the family. You then say your intestests are to work in the open source community. There are exceptions, but mostly, the open source community doesn't have funds for 9-5 type employment.

Do you have any background now that you could apply to a target application? The open source community is more about results than formal education. If you can contribute and they like your code, then you have a chance of becoming a formal contributing member of a team.

jakeroberts 04-28-2007 02:16 PM

Its true open source typically doesn't pay but there are exceptions and companies like Ubuntu are gaining market share. I kind of hope the next tech surge will have to do with open source. Can you imagine working at Apple in about 1981? I guess to some up I hope to pick a career thats puts me in a good place when the next big thing in computing comes. The empire in Redmond is faultering, The current Ubuntu is really great, it took a big leap from the last release, Apple is strong and getting stronger, people are really responding to the Intel switch. People in this country are starting to shake the "herd mentality" that has gripped them for quite some time. Openness to new ideas paves the road for a better everthing including computing. I think its an exciting time and I want to be involved in that but I still have to feed everybody too.

mac57 05-05-2007 01:40 PM

It seems obvious to me - I am not sure why no one has mentioned it to date - to work as a software engineer, you should get at minimum a Bachelors degree in software engineering! As mathogre correctly points out, a math degree is pretty good as well - a GREAT deal of overlap between the two.

The work can be VERY satisfying. It all depends on what you like. I am passionate about technology and I LOVE working with it. As a software engineer, you can work on everything from embedded real time systems (my personal fave) to huge on line transaction processing systems.

Like any job, a software engineering job has its share of annoyances, but it also has immense opportunities for fun, gratification and helping others. I would strongly recommend it.

BTW, I didn't follow my own advice - Software Engineering was just getting started in the mid 70s when I got my degrees. I have a B.Sc and an M.A.Sc both in Electrical Engineering - I did a strong focus on software through both degrees though.

slashd0t 05-09-2007 09:19 PM

I'm sure xstep's pet peeve is with the use of Engineer in "Software Engineer". I tend to also have a pet peeve with this. As a "Network Engineer" I often feel that the title of Engineer was handed to me too easily. Keep in mind real Engineers go to school for 8 years + to earn this title. It's almost like calling myself Dr. Soso when I didn't really obtain a doctorate.

Also, anyone can call themselves a "Software Engineer" when in fact they simply wrote some code :)

Brown Study 05-09-2007 10:43 PM

1 Attachment(s)
"Also, anyone can call themselves a "Software Engineer" when in fact they simply wrote some code"


All times are GMT -4. The time now is 05:51 AM.

Powered by vBulletin
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.