How does the BLS OOH distinguish between...

<p>Computer Software Engineers and Computer Programmers? I read the descriptions of both but am still having trouble deciphering what's different, and how one has 38% projected growth while the other has 4% projected decline (Sources: Computer</a> Software Engineers , Computer</a> Programmers ).</p>

<p>Also, if I'm majoring in CmpE at a middle-rung school like Virginia Tech, what should I do to be more of a Software Engineer than Programmer? What types of courses should I focus on?* </p>

<p>Actually, the BLS also distinguishes between a Computer Applications Software Engineer and a Computer Systems Software Engineer. Do you need a master's degree to be a Computer Systems SE, or would it make a tremendous difference over a Bachelor's in this field? </p>

<p>Thank you in advance.</p>

<p>*(I don't need to know specific courses, but if anyone would like the link to my technical electives: CPE</a> Technical Electives - Graduating Class of 2009)</p>

<p>Programmers - sticking to the BLS OOH definition - are little better than hack coders with a high-school diploma and a closet full of energy drinks. They have little or no formal education and are employed by people to crank out the code.</p>

<p>Software engineers - sticking to the BLS OOH definition - are higher-level, design and testing oriented professionals. They have formal education and training in computer science or a related field.</p>

<p>For comparison’s sake, software engineers are like architects and programmers are like carpenters. Software engineers make the decisions and programmers to the legwork, just like architects design the building and carpenters put it together. Programming isn’t growing (note that, however, the number of programming jobs will still be an order or magnitude greater than any engineering - except software - even after the decline) because it’s as unskilled as white-collar work can be. It’s cheaper to have programmers throw stuff together in India than it is to have people here do it. Software engineering is a growing field because people need more and more software, and doing software engineering well requires training and expertise, as well as understanding customers’ requirements and interfacing.</p>

<p>You don’t need a grad degree to do systems software. Bachelor’s is fine. It’s just different jobs do different things, and some pay a little different than others.</p>

<p>Looking at the electives you’ve linked to… the courses you might want to take depend on what kind of software engineering you want to do. The only courses that would immediately benefit a general-purpose SE (these jump out at me, anyway):</p>

<p>CS 4254 Network Arch Programming (3C) Prereq: CS 3204

  • if you have not had experience with network programming, this is a must.</p>

<p>4574 Large-Scale Software Development for Engineering Systems (3C) Prereq: 3574 (Design Technical Elective)

  • this sounds like a bona-fide software engineering class… process, quality control, etc. if you’ve not had anything in software engineering proper, this sounds like a must.</p>

<p>CS 2606 Data Structures and Object Oriented Development II (3C) Prereq: CS 2605

  • if you’ve not had OOP, you need this course.</p>

<p>CS 3204 Operating Systems (3C) Prereq: ECE 2504, CS 2604 or CS 2606

  • need this if you’ve not had it</p>

<p>If you have any extra time, some non-empty subset of these courses will make you more competent in your discussions with people coming from a CS background…</p>

<p>CS 4104 Data and Algorithm Analysis (3C) Prereq: CS 2604 or CS 2606, Math 3134 or Math 3034
CS 4114 Formal Languages (3C) Prereq: Math 3134 or Math 3034
CS 4124 Theory of Computation (3C) Prereq: Math 3134 or Math 3034</p>

<p>Other than all this, all I can recommend is perhaps a special topics or independent study course in software engineering. If you want to go down this road I’d be happy to discuss topics with you. Internships are always an option too.</p>

<p>Oh wow, what a reply. Thanks a lot AuburnMathTutor! I feel like all of my questions have been above-and-beyond answered. Thanks for taking the time to look at my specific technical electives as well.</p>

<p>You’ve recommended many CS courses, but I’m kind of averse to taking too many CS courses because I’m not sure how good VT’s CS department is, and VT’s CS program is also ranked quite low on USNews (around the 40’s). I know I will obviously have to take some if I want to be a software/systems engineer though, and I probably will. On the other hand, I know our ECE department is not bad, so I might be taking some technical electives with them, but I’m not sure which ones help me in my software/systems career. </p>

<p>I will keep your recommendations in mind when I’m picking my tech electives Auburn, thanks again.</p>

<p>By the way, lest you get the wrong idea, I did check every single elective in every category, I didn’t just case the CS list.</p>

<p>I wouldn’t worry about the department’s reputation or ranking. The area your degree is in will be all anybody thinks about, and I’m sure you’ll learn plenty at VT’s CS program.</p>