Software Engineering or Computer Science?

Vepil

Gamja
<Bronze Donator>
5,757
24,089
I currently have a bs in civil engineering and surveying. After 18 years in this industry I hate engineering and surveying. I talked over with my wife how miserable I was and she agree that I should just quit and so I did. We will be fine on her salary with the bills we have so I am not concerned about a new job now right now.

I really am interested in software development, technical support and system analysts. What degree program would you pursue? Computer Science or Software Engineering? What is the down side to each? Would you get a masters? I read that a masters is preferred by more hiring managers than a few years experience. Anyone here do hiring for these fields and can shed any light on as to why? I only ask because I know most of you do this kind of work or at least on the old board it seemed a lot did.

I know lots of questions but I do not have anyone, friend or family to speak to about this industry.

Thanks for any input.
 

Tuco

I got Tuco'd!
<Gold Donor>
45,409
73,480
A few things:
1. Each school is different. Software is such a new science that educators are trying to wrap their heads around what to do. The more conservative educators make statements like "The purpose of computer science programs is not to teach people how to build software" and are mostly mathematicians teaching math-with-computers. The more progressive programs will integrate software development science at the end of the programs. I'm not saying this to denigrate conservative programs, there's pros and cons for both. You can look at the curriculum, faculty and most importantly what students are doing in their capstone projects to figure out where a particular program lies.

2. It's likely that the difference between a CS degree and a SWE degree for a given program is only a few classes at the end. IIRC at my school about 5 years ago the difference between CS and SWE was that CS had a web development class, an encryption class and some other shit, and the SWE had a design patterns (Fancy software bullshit) and one focused SWE class. You can also likely switch majors without headache 3-4 years into your degree..

3. If you have to choose between CS/SWE and want to build software, choose SWE, but it's probably not going to be a huge difference. I chose SWE and am very happy with it.

4. I'd recommend that you figure out whether you hate programming before you quit your job and get a degree. If you want help figuring out the path to learning a few things on your own feel free to make a thread about 'learning programming on your own' and me and others can help.
 

Maroon_sl

shitlord
8
0
As it has been said, learning on your own with practical experience is the best way to start out. One important thing for me was finding a REASON to write code. Churning through tutorials on youtube can be helpful sometimes, but if you have a specific project to work on it, you might find that things make a little more sense. Write a little expense calculator, or make a website with a database for something.

Another really good way to figure out what direction you want to go is to get your foot in the door of an IT department. You're in a pretty optimal position to do temp jobs. If you can do some internships, contract work, or get into an entry level help desk position, you'll become exposed to the various aspects of the IT field and begin to figure out what interests you. This is exactly what i did, and i immediately found myself learning VB script to automate repetitive tasks. This lead me to java and c#, which lead me to SQL and ASP/PHP. Now i write little applications where i see the need, even though its not necessarily my job. Its good experience, and it helps everyone in my department out at times. I'm hoping to move in to more of a developer/analyst role eventually at my company.

I'm going back to college for my bachelors now (only 1 year in), and i'm realizing that the computer science BS program is mostly math and physics. I'm starting to look at theInformation Architect programat Umass Boston now, because its less sciency and seems more practical.
 

Kovaks

Mr. Poopybutthole
2,354
3,142
Pretty much what everyone else said above. Depending on what you want to do in the world of software development world will help determine your path. If you want to get into web development or other forms of more commercial.software dev then you won't get much practical experience from school, no matter what level. On the other hand if you want to work in more theoretical development with say robotics, specific graphics or AI further education may be they way to go. One thing i to think about too is what level are you looking to get into the industry at? The reason i ask is at least at my workplace we are often willing to hire an entry level programmer without any practical work experience if they have their masters, but generally experience, especially in the setting and type of development we use (enterprise web applications) trumps education. For example we just interviewed a phd ex university teacher with little practical experience and a candidate with much more work experiance but only a bachelors and the guy with the bachelors got the job.

As said above cs or se varys school to school your best bet is to decide what you want to do and check out the classes, try to find a program that is more practical than theoretical and make sure you take the database classes eleven if they are not required!
 

Noodleface

A Mod Real Quick
37,961
14,508
Go for Computer Engineering. Then when you get your degree you can be a Electrical Engineer, Software Engineer, Computer Engineer, Firmware Engineer, Software Developer, Web Developer, Systems Engineer. It's kind of crazy.
 

Tuco

I got Tuco'd!
<Gold Donor>
45,409
73,480
Go for Computer Engineering. Then when you get your degree you can be a Electrical Engineer, Software Engineer, Computer Engineer, Firmware Engineer, Software Developer, Web Developer, Systems Engineer. It's kind of crazy.
If you're applying to software positions and have a degree in computer engineering you'll get passed over a lot and every interview you'll have to explain why you have a degree in computer engineering instead of CS/SWE. Programming/software engineering is a very specific skillset and one of the challenges when interviewing is finding out if a person is really into software or just went through the motions in school. If that person is EE/CE then it's much more dubious.

Ironically I'd love it if we hired a person who could spend 90% of their time programming and 10% of their time designing/testing circuits/wiring.
 

Noodleface

A Mod Real Quick
37,961
14,508
I think it depends what path you take in your school and what type of internships you might go for. For instance I loved the FPGA and low-level programming stuff, I'm landing a job in firmware engineering.

I have a friend that loved high-level OS stuff and was really into networking, he's landing a job making some networked application level programs.

Another friend of mine is doing straight VHDL digital design for a company.

Maybe the OP could state specific goals/sectors they want to work in and it would be easier to decide.
 

Xith

Bronze Knight of the Realm
301
21
Regarding software engineering.. I'm probably in the minority, but unless you are going to a top-notch software engineer school, I think you'd be better off just learning from the free online resources (coursera, etc). It will take you a lot of time and money to get a degree, and there is no guarantee of employment once you get it. If you devoted your time instead to open source projects, creating apps, websites, whatever, I think you would learn a hell of a lot more. Open source projects are especially awesome, because you have the potential to make connections with people who could potentially help you get a real job and employers can look at the code you've written. Just my opinion though!
 

Tenks

Bronze Knight of the Realm
14,163
606
The first filter to get a job in development is the HR filter. If you don't have a degree and it says you need one they'll trash your resume. I'm not saying it's right I'm just saying how it works.
 

Kovaks

Mr. Poopybutthole
2,354
3,142
Tenks is right there, we still opt to review all r?sum? instead oh hr, but we have also recently gone to "requireing" a BS in a CS related field. That doesn't mean we don't make exceptions but when we have a high. Number of applicants for a position it can make a difference. Xith also made a good point if you are interested in developing apps get some experience under your belt, coco touch + objective c on your resume will get you call backs as will android app development project, if you release something even better
 

Vilgan_sl

shitlord
259
1
My main suggestion here is don't go get another Bachelors. A bachelor's in CS is 90% stupid hoops that you really don't want to go through again. The only valid classes (for a software dev career) are maybe whatever the intro class is, the data structures class, the algorithm analysis class, and maybe 1-2 others.

As for career, I enjoy being a software dev but it is certainly not for everyone and can be somewhat hard to break into because most companies try to hire people with 5+ years experience. It is also a career path that can be rough on older people because there is a perception that people who are 40+ don't pick up new languages/skills as quickly. A masters in MIS might be a good thing to consider. A good friend of mine did that (with University of Phoenix) after a bachelors in accounting and some time away and had no trouble picking up what she needed and then ended up pursuing a Business Intelligence (database/reporting) career that has gone very well. A business analyst type career might also be worth looking at.. similar to BI but more dealing with people to figure out what they need. If you do like the software dev route, a year of online courses/personal projects followed by a masters of some sort would probably be the best route.

Masters isn't the only way to go, there are probably some training schools/classes that can also prep you for a career. There might be a networking class you can take or maybe you can spend 6 months getting trained as a DBA or something. Just avoid going back to do another bachelors as the benefit derived versus the cost in time/money is probably the worst option out there.
 

Kovaks

Mr. Poopybutthole
2,354
3,142
Generally CS related field would be Computer Science, Software Engineer, MIS, Computer Engineering and Computer Science Degree, Information Systems Degree, we even interviewed a candidate with an Inforrmatics degree the other week, we are not tied to those and good work experience trumps degree any day.

Usually where I see the degree making the biggest difference is when you are trying to break into the field with no real practical experience, kind of that foot in the door, when looking at entry level developers and sometimes even low/mid level without much of a work history we are looking more to see if they can learn and be mentored to become productive developers. If they have a degree in a related field then that is at least a clue that they are interested in the work they will be doing and will probably be able to learn the skills they need.

This statement can be true "It is also a career path that can be rough on older people because there is a perception that people who are 40+ don't pick up new languages/skills as quickly" not necessarily because they can't pick up new languages/skills quickly but because to stay up to date and relevant in your job there is alot of self learning and exploration outside of work that you need to do. I know alot of great developers who after a certain age moved over to Business analyst or even PM positions because they just couldn't or didn't want to spend all that extra time learning new languages and tools.

Again it would be really good to hear what kind of work the OP is really interested in, that would make advice much easier to give. Regardless of that, I am really enjoying this thread and seeing other's experiences in the industry and school.
 

Vepil

Gamja
<Bronze Donator>
5,757
24,089
I am interested in small platform os/program software development such as phones and tablets. Having said that I do not want to back myself into a very small market. I would be happy just working as a programmer on applications.
 

Diazepane_sl

shitlord
484
0
The fact is that the vast majority of what you'll learn in school in either program will have little to no relevance to what you'll end up doing professionally. The majority of your day to day work will involve self taught knowledge bout frameworks, languages, etc. Technology advances at too fast a pace for a university setting to remain up to date.
I disagree. Learning traditionally (from a good source) instills you with a very solid foundation that will most likely enable you to feel empowered as you are confronted with new technologies. Most of the new technology will not be that surprising to you when you have the core concepts idealized in your head.

Computing and mathematics are pretty much the same thing. We secure our data with encryption algorithms based on the same concepts developed 100's of years ago, you will sort your data using the same algorithms as everybody else, and every language has the same primitives.

That said, if youre not up to speed with how human's have been advancing scientifically through the past 500 years or so, you absolutely need to get some education or you risk spinning your wheels in the mud.

If you heed none of my advice, then take this to heart...Learn C.

Read the Bible:http://www.amazon.com/Programming-La.../dp/0131103628
 

Lendarios

Trump's Staff
<Gold Donor>
19,360
-17,424
My major was CS, and here are my two cents there are no practical difference between CS and SWE. They are the same in today's work environment.

I would not recommend Computer Engineering, since you will do a lot classes that are not programming related, IE, circuits design, computer hardware classes. That time is better spend doing more programming classes. Plus I know plenty of CE majors who could not code and just use their friends to complete assignments for their programing classes. CE people tend to be more hands-on builders than hands-on coders.
 

Diazepane_sl

shitlord
484
0
I'm not a spokesperson for the one global initiative, im genuinely trying to help this guy. What it boils down to is pick something, stick your feet in, and crawl your way through the dense fog of obsfucation laid as booby traps on your quest for enlightenment. It just so happens that roots in mathematics and general scientific principles provides a brighter torch than most. Seemingly an unwieldy and bothersome burden at first, invest in that and you'll bypass the bullshit that people love to burden you with because you don't know any better. Teach yourself to fish, basically. So you never have to rely on people for answers, trust me - you don't want to get into arguments over petty things like the order of metasyntactic variables.
 

Tenks

Bronze Knight of the Realm
14,163
606
While I agree with pretty much everyone that what you learn in college won't matter in your day-to-day being a developer, or should I say a good one, requires a certain amount of intelligence. I always saw the high level Calc and Physics classes as a way to filter people out who can simply monkey around in a JVM to pass some classes but truly couldn't grasp more complicated programming concepts. I'm not saying I do rocket surgery on a daily basis but every day I sit in my chair it involves me learning something completely new and figuring out how to do something I've never done before. If I didn't have the capability to learn, and learn quickly, my project would quickly fall behind. It is very easy to figure out who on my team are the people naturally smart and those who just go through the programming motions. I feel college is pretty good for the previous. I could probably teach someone the foundations of data structures and algorithms and they could churn out some working code in a few months but I don't believe that is the main attribute of a good developer in the modern era.

I don't know how many people actually work in the "real world" as developers on this board but I'm always shocked that people simply do not understand OOP/D and we've all been Java developers 5+ years. If someone is refactoring the project because there are no growing solutions in place (ie: if/elseif hell) it is always me. I then have to wiki document all these refactorings even though they are always just using abstracts and interfaces to create a plug-and-play profile driven design because if I don't no one seems to understand it. Then when requirements change everyone looks at me like I'm some super genius who can work at the rate of 10 developers because I've created a flexible environment to code in. It honestly amazes me.