Software Engineering!

<p>Hi everyone. I've been planning on majoring in CS and eventually becoming a Software Engineer. I'm not 100% sure though, and would like some more information. Could you guys please tell me what it's like majoring in CS in college/grad school, and eventually what a software engineering job is like? I basically wanna know everything about software engineering :D</p>

<p>Thanks so much!</p>

<p>Software engineers take the role between management and programmers, though sometimes they are themselves the programmers. SE’s tend to work on the future, ongoing and past development, maintenance and operation cycles of the software. Very rarely do SE’s actually program, though they sometimes do. They spend much more time ensuring that the project is staying cost effective and that dates will be met. They choose the best methodologies for the different tasks, and make sure they have people to carry out those tasks. </p>

<p>The SE’s meet with clients, and are given preliminaries and requirements, which form a document known as the System Specification. The document consists of lots of detailed data like requirements, proposed solution, objectives and goals. The SE’s take the system specification and then go back and find the most profitable way to deliver the product. They then meet back with the client or mail another document which shows their approach. Once everything is agreed on, it is basically the SE’s job to keep to those documents, which by doing so will keep the company profitable. </p>

<p>Some people have the title SE and they program. There are not really software engineers and are just programmers.</p>

<p>^ Thanks very much! The job outlook for a software engineer is really good isn’t it? And isn’t it better to be a software engineer than a computer programming, because, like you said, SE’s often program themselves.</p>

<p>The answer to all your employment questions and more can be found at the BLS OOH (just google that). Then look up computer software engineer and check it out.</p>

<p>Majoring in CS/SE is pretty cool. You start off with some programming-intensive courses, just general problem-solving type stuff. Then you usually hit the big ones… algorithms, operating systems, architecture, discrete math, networks, and software engineering. There’s usually a pretty good amount of leeway, and it’s not uncommon to take a laundry list of CS electives OR to double major in another subject, like math, biology, etc.</p>

<p>The material is pretty interesting, although the chances you’ll love all of it are pretty bad. There’s a pretty healthy mix of hardware, software, and mathematical material, usually, but the more you get of the one you’re less interested in the more palatable it becomes (usually).</p>

<p>Projects range from trivial to brutal, but they’re usually pretty interesting. I don’t think I’ve ever had a project I patently was not interested in. Coverage is broad…</p>

<p>

</p>

<p>The problem with SE is actually finding a SE job. Many companies hire within, from a pool of already employed programmers. Ive actually yet to see a posting on-line for a actual software engineer, though I am sure I just haven’t been looking hard enough. As for the job outlook, BLS says every job has a good outlook. It really depends on you and how well you know your stuff. Programmers really aren’t directly tied to profits but software engineers are, so the job is a bit more stressful. You have much more responsibility as a SE than you do as a programmer, which is why they get paid more. Simple mistakes in a projects planning cycle, can end up costing more than the entire initial project estimate. SE’s always want to spend much more time in the theoretical world than in the practical world, its much more cost effective. As an example, lets say MS with its upcoming release of Windows 7 ships with a network stack error, which in effect does not allow proper updates to occur as users cannot connect to windows update. Such a problem is likely either caused by bad initial planning or poor testing. the programmer’s and testers aren’t likely to get in trouble as mistakes happen, though the SE will be responsible for the problem. That problem will likely cost MS millions to rectify, simply because of a slip in the operation. Such problems while they do happen are unlikely because big companies implement a hierarchy of command and multiple levels of risk assessment to ensure the company doesn’t look silly and they remain profitable. </p>

<p>There really isn’t only one way to make software, so you need to learn them all and be good at assesing the customers needs. Sometimes a waterfall method is great and other times it is disastrous. Sometimes a Agile or XP method is very cost effective and other times it leads to nowhere and ends up costing 5x what it could have been. </p>

<p>The de facto texts on the subjects which give a general sense of the material but not specifics are </p>

<p>Code Complete
The Pragmatic Programmer
Books by Joel Spolsky</p>

<p>Ok, thanks guys! Do software engineers also design/program video games, or do you need a different degree for that?</p>

<p>SE’s deal mostly with the design and are the glue of a project. Certainly some do go onto make games and no there is not a special degree for that. Any basic CS or SE degree will enable you to work in all fields. You may need some speciality training, in the fields like finance but other than that you will be well prepared. </p>

<p>Programmers are usually the people who program, though some SE do also program. It really all depends on the company you work for and their politics. Some SE never even touch code, others only code, it all depends. </p>

<p>While a SE degree is great, I feel and my professors all felt that a CS degree is a better value. You need to know both CS fundamentals as well as SE fundamentals to be a good SE and you likely should also know business fundamentals also.</p>

<p>Something I feel hasn’t been stressed enough is that while SEs may not program nearly as much as programmers (although they still program, and depending on the company could be doing a lot of programming), SE’s design a lot of algorithms, the step-by-step instructions witch a computer executes in order to complete a certain task. Designing algorithms is much harder than programming them and takes more skill and education, witch is why SEs typically need a four year degree in computer science and programmers only need a two year degree. </p>

<p>Job prospects in SE are frankly ridiculously good. Over the next 10 years, software engineering will experience ~30% growth, witch is way high. Combine this with the fact that the amount of people declaring majors in CS is very small and getting smaller every year, and you’ll get a good idea of why computer science is one of the highest paying degrees right now. If you go to a pretty good school and do well in college (3.5ish GPA, some internships), you can expect to make 60-70k and possibly (although not probably) even more, right after college. </p>

<p>One more thing; don’t get a job in the games industry. You’ll be paid crap, and treated like crap (work much longer hours for much less pay)</p>

<p>^I heard CS enrollment has actually gone up.</p>

<p>BLS:</p>

<p>Computer programmers write, test, and maintain the detailed instructions, called programs, that computers follow to perform their functions. Programmers also conceive, design, and test logical structures for solving problems by computer. With the help of other computer specialists, they figure out which instructions to use to make computers do specific tasks. Many technical innovations in programming—advanced computing technologies and sophisticated new languages and programming tools, for example—have redefined the role of a programmer and elevated much of the programming work done today.</p>

<p>

</p>

<p>

</p>

<p>Yeah, I have read somewhere that one of the reasons computer programmers are losing their jobs are because software engineers can program just as well. Anyways, I plan on majoring in CS anyways, but taking classes that specialize in software engineering.</p>

<p>Thanks for the info guys, keep more coming!!</p>

<p>I have another question lol. I’ve always wanted to minor in Astronomy, but would it significantly help me to minor in some type of business if I’m going to major in Computer Science and be a SE?</p>

<p>employment of computer programmers decline slowly but if you look up software engineers on the same site it says huge growth.</p>

<p>And the decline must be taken with a grain of salt. Even after the decline, there will be more programmers than there will be in any engineering discipline listed on the BLS OOH site.</p>

<p>And, as has already been pointed out, programming != SE, SE is harder, more interesting, better paying, etc.</p>