14 Jan, 2010, Zadious wrote in the 1st comment:
Votes: 0
So this is off topic for MUDs, but as frequenter of these forums I know there is loads of knowledge to be learned from the lot of you. I also feel comfortable with your opinions more so than another forum.

My question is in regards to my College options and how much I should care about Software Engineering over Software development.

A little background first. I work in Distance Learning at a local Community College. I used to be an IT Tech here and I originally obtained my Associates degree from this same Community College. I am looking into my options for a Bachelors degree. Oh, BTW I live in Nebraska.

My first issue is that a majority of my classes at this community College will not transfer to the state schools such a UNL. UNL offers a Bachelors of Computer Science where my AA degree was in Applied Science. (The applied classes are not transferable.) I would almost have to start over at a state school.

My most promising offer is to study Software Development from Bellevue University. Bellevue Software Development
Bellevue has a partnership with my CC where they accept my AA degree as a full passing of all prerequisites. This program is taught online which I am ok with as I have taken several online classes. (I am a decent self starter and self motivator. I figure most things out with a book and my own time.) I also get some financial help going to Bellevue due to the partnership where I am an employee of the CC.

Now is where I get a mental wrench in my gears.

This report by the Bureau of Labor Statistics Bureau of Labor Statistics shows that employment of Software Engineers is expected to rise from now until 2018. This report also shows that employment of Software Programmers is expected to decline from now until 2018. So am I hurting my chances of successful employment by not studying Software Engineering? Perhaps I am worried about nothing but I dont want to flush $15,000 just to find out I should have taken a slightly different approach. Thus my hesitations.

Considering my specific life and my personal finances, it will be easiest to take the Bellevue program. However I am more of a long term kind of person and if spending more elsewhere will provide better options then I almost want to take that route.

As for my long term goals, I would someday like to work remotely on developing software even if I have to spend some years in an office gaining experience first.

So what do the lot of you think about this?

Is software development still a good career choice or would I be more wise to become an engineering student?
14 Jan, 2010, David Haley wrote in the 2nd comment:
Votes: 0
The hardest thing here is slogging through the endless buzzwords. "Software development" sounds reasonable enough, but then here's what the Bellevue site has to say about it (emphasis mine):

Quote
The Computer Information Systems Software Development program is a cohort major that cross-trains mainframe and other specialties to competency in Web-based technologies.


This doesn't sound anything like general software development to me, but rather a fairly specialized program. It sets off several red flags for me. Personally, I would avoid it.

I went to school for 'Computer Science', and am now a 'Software Developer'. But that title is absolutely meaningless when compared to the definitions given by that BLS page. According to them, "programmers" only follow strict instructions written and designed by "engineers". I guess they're using "programmer" as a nice term for what is basically "code monkey". I think that this terminology is a little funky. But, if you take this definition to mean that "computer programmers" are at the "bottom of the food chain" (icky term, I apologize, but it's expedient), then yes, that job sector will likely be in decline compared to higher-level, higher-skilled, higher-educated jobs. (This is a general trend in the country over all sectors, with many lower-skill jobs being outsourced to emerging markets.)

When in doubt, go general. You will be more valuable over the long term if you understand the concepts involved. If you only know how to work on a particular mainframe, and don't really understand the bigger picture, then as soon as that mainframe goes away you have something of a problem. In fact, even if you do understand the bigger picture, but your qualifications say you only understand that mainframe, you have a lot more work to do in terms of convincing employers.

Personally I find all the terminology to be very confusing and distracting ("software developer" vs. "software engineer" vs. "computer engineer" vs. "computer scientist" vs. "computer information specialist" vs. "computer data specialist", etc.). I find it far more useful to ask somebody what they actually understand and know how to do, not what nutty buzzword of the day their school happened to choose for them. Your job as a candidate is to make sure that the program's buzzword and associated documentation doesn't sequester you into a corner of the field, to whatever extent is reasonable.

As a disclaimer, I should perhaps note that I have somewhat particular standards that might or might not be helpful to you. I also don't really know where you're trying to go with this. I don't know if you want to just write code, or how much control you want to have over the code design process, etc.
14 Jan, 2010, Erok wrote in the 3rd comment:
Votes: 0
I've been in the industry for over 15 years, and I have to say I don't understand what the distinction is between software development and software engineering. These terms are completely interchangeable.

I think you will need to dig into the curriculum of both institutions to see what you will get out of them. Since your CC credits are transferable to Bellevue, would a year there get you more than a year of credits at UNL?
14 Jan, 2010, KaVir wrote in the 4th comment:
Votes: 0
Erok said:
I've been in the industry for over 15 years, and I have to say I don't understand what the distinction is between software development and software engineering. These terms are completely interchangeable.

I studied Software Engineering at University, and my first job title after graduating was (Junior) Software Engineer, but I've always used the two terms interchangeably as well (I also worked as a "Software Development Engineer" at one company, so no idea where that one would fit in with the latest terminology fashions). My current job has the title "Softwareentwickler", which translates as both "Software Developer" and "Software Engineer".
14 Jan, 2010, Scandum wrote in the 5th comment:
Votes: 0
KaVir said:
My current job has the title "Softwareentwickler", which translates as both "Software Developer" and "Software Engineer".

Software Engineer would be Software Ingenieur in German, as entwickler directly translates as developer.

In Holland you can call yourself an engineer if you have a bachelor degree in Informatics, which I think is commonly called Computer Science in English speaking nations.
14 Jan, 2010, David Haley wrote in the 6th comment:
Votes: 0
It's probably worth mentioning that the US job market is kind of different from Europe's. A simple example of this is precisely that some terms are regulated by law in many European countries (e.g., "engineer") whereas in the US they are often not regulated.
14 Jan, 2010, Zadious wrote in the 7th comment:
Votes: 0
The major requirements for the Bellevue course are here: Courses
It is almost all Java oriented. I figured it was this way to make cross compatability not much of an issue, but I understand a little better now what David was pointing out about being too specific.

UNL offers two programs.
Computer Enginering - Courses
Computer Science - Courses
The Computer Enginering looks the most challenging to me which is usually a sign that I would learn the most.

As far as where I want to take thiswell…that is a tough question. I find passion in creating programs and having spent lots of time in the Help Desk world I now know that I would rather be creating something on a computer rather than helping others do things on a computer.

Longer Term I like the idea of owning a small business more so then working for a large company. I think I would like to create a small app or game more so than a new operating system. Then again I dont want to limit myself and end up jobless because I didnt develop the skills to work for LargeCompany x.

(I might add that if I must then I must and I will move to another University outside of Nebraska. It's just rough on the pocketbook.)

Its a real pickle that I will eventually have to chew myself. I just really appreciate the replys as this is stimulating my thoughts and now has me soul searching.

Thanks so far ya'll ;)
14 Jan, 2010, Erok wrote in the 8th comment:
Votes: 0
In Canada, there technically is no such thing as a Software Engineer, since it is not officially recognized as an engineering discipline by the national engineering associations.

At most institutions, Computer Science degrees (software emphasis) are offered by the science faculty, while Computer Engineering degrees (hardware emphasis) are offered by the engineering faculty.
14 Jan, 2010, KaVir wrote in the 9th comment:
Votes: 0
Scandum said:
Software Engineer would be Software Ingenieur in German, as entwickler directly translates as developer.

You can use that as well, but "Softwareentwickler" is the usual translation (see the link in my previous post - also, please remember that I work in Germany as a Software Engineer).
14 Jan, 2010, David Haley wrote in the 10th comment:
Votes: 0
Zadious said:
Then again I dont want to limit myself and end up jobless because I didnt develop the skills to work for LargeCompany x.

It's a tough choice. If you go specialist, you will have skills directly marketable to specific companies, which will probably make it easier for you to get those specific jobs. If you go generalist, you will have to work harder to convince the companies that you can accomplish their specific needs, but you will also have a wider array of companies to choose from, not to mention potentially larger growth opportunities as you can transition from role to role within one company. Of course, as a specialist, you can grow as well, but it might be harder because you might be shoehorned into a specific task and perhaps not see much outside of it.

Your job is to develop your skills and figure out how to market that to companies that want to hire you. If you want to start your own business, that is a very different question. I might suggest smaller companies at which you will have more impact as a middle ground between large companies and your own company, at least at first.
14 Jan, 2010, Kayle wrote in the 11th comment:
Votes: 0
Zadious said:
Computer Enginering - Courses


This is more about hardware then software.

Zadious said:
Computer Science - Courses


This actually looks like a more relaxed form of a Comp Sci degree. At least at first glance, anyway. This is the Penn State (Harrisburg Campus) Comp Sci Undergrad schedule for Spring 2.... And this one is the Comp Sci Grad schedule for spring 2010.
14 Jan, 2010, Lyanic wrote in the 12th comment:
Votes: 0
Even though software developer and software engineer are often used interchangeably, I do know a lot of people/programs that define them as separate things. The most common explanation I've heard of the difference is that a software developer is just someone who writes code, whereas a software engineer elicits requirements, and devises the most efficient way to write it while keeping in mind the needs for modularity and maintainability. It's essentially the difference between an architect and a builder. I think a couple people already touched on this earlier in the thread.

Also, what Kayle said is very commonly accepted. Computer Engineering is more hardware oriented than any of the other disciplines mentioned.
14 Jan, 2010, Tyche wrote in the 13th comment:
Votes: 0
Learn Chinese or Indian so you can talk to the masters at the sweatshop.
14 Jan, 2010, elanthis wrote in the 14th comment:
Votes: 0
When it comes to computer science, university quality matters. I would check around to see what graduates of the uni you're looking at have gone on to do. Most smaller universities are java schools that teach some basic application of programming, some basic algorithms, and a bunch of out-dated field-specific techniques for things like web apps or mainframe maintenance.

You either want a school that _really_ teaches programming very, very well, or a school that teaches computer science and math very, very well. And then realize that either way you go, the only way you're going to be worth anything is if you spend a lot of extra-curricular time studying and learning programming and computer science topics that a mere four years of school will just never ever be able to impart on you.

If you're interested specifically in games and not much else, check out DigiPen. Otherwise, I would aim for a big well-known university, and not a smaller uni or college, unless it has a particularly spectacular reputation (according to its alumni, not its recruitment department).

Also, i cannot recommend highly enough that you give up the idea of working remotely on software. It sounds nice, but it very quickly turns into a life-draining, soul-sucking experience that makes you hate being at home five times as much as you might have hated being at an office. Unless you are fantastically good at separating your work from your personal life and have the kind of house where you can set off an entire room as a dedicated office with no outside interference – and can maintain that separation for 40+ years without breaking it – you are far better off working in a real office.

Plus, to be honest, you can do so much better work with people when you can talk to them face to face, sketch things out on whiteboards, etc. Managerial meetings suck but good programmer meetings are outright invigorating and motivational, especially when you're all excited about your work (which you should be, or else you should find a different job). :)
15 Jan, 2010, Lyanic wrote in the 15th comment:
Votes: 0
I rather liked elanthis' post. If you want to go into 'Computer Science' (and you know what that entails), I can't say enough about going to a big well-known university that teaches (ACTUAL) computer science and math very, very well. Then again, I'm a bit elitist when it comes to Computer Science. I actively rebel against the industry standard of shoehorning Computer Scientists into the roles of basic code monkeys.
15 Jan, 2010, Idealiad wrote in the 16th comment:
Votes: 0
elanthis said:
And then realize that either way you go, the only way you're going to be worth anything is if you spend a lot of extra-curricular time studying and learning programming and computer science topics that a mere four years of school will just never ever be able to impart on you.


Very well said. When you interview with companies they're going to be far more interested in seeing what software you've created than what software you've studied.

Going to university is about more than the courses as well. Those students you take classes with will turn into your contacts, and friends of your friends at school will turn into your network. Think carefully about where those otherstudents are going to be five years after you graduate.
15 Jan, 2010, elanthis wrote in the 17th comment:
Votes: 0
I spend most of my paid development time cleaning up after CS graduates from no-name schools. It's sad how people blow four years of their life and tens of thousands of dollars just to be a pain in my ass and cost companies more money in the end than they'd have spent by just hiring a competent programmer to begin with.
22 Jan, 2010, Zadious wrote in the 18th comment:
Votes: 0
Quote
When it comes to computer science, university quality matters. I would check around to see what graduates of the uni you're looking at have gone on to do. Most smaller universities are java schools that teach some basic application of programming, some basic algorithms, and a bunch of out-dated field-specific techniques for things like web apps or mainframe maintenance.


I probed further into the Bellevue software program and interestingly I would not even have taken College Algebra and would be heavily Java dependant after. Not that I am against Java but if there is one thing that I have learned about technology it is that it changes rapidly. I don't know if Java will be huge in 30 years or almost non existant.

Quote
I spend most of my paid development time cleaning up after CS graduates from no-name schools. It's sad how people blow four years of their life and tens of thousands of dollars just to be a pain in my ass and cost companies more money in the end than they'd have spent by just hiring a competent programmer to begin with.


I appreciate this response. When I first went to school I had my head up my ass and wasted my time and instructors time as well. I am a few years beyond all that and already working as a professional. The last thing I want to be is a huge burden on co-workers or to the company as a whole. I am focused and ready to take on a serious education and a serious job.
If I go back to school it will be the last time for me. I can't waste any more time or money on failed attempts. All chips in.

I have done some further research into my options and found the University of Nebraska at Omaha has a Software Engineering program. A BS in Computer Sci. and then a masters in Software Engineering. This requires me to start mostly over with my education but in the long run it is probably my best option. The neat thing is they have an integrated undergrad-graduate program that gets you to your masters in 5 years.

The main CS page.
http://www.cs.unomaha.edu/index.html

The integrated undergrad graduate program:
http://www.cs.unomaha.edu/iugprog/index....

Courses:
Course Credits Title
MATH 1950 5 Calculus I
MATH 1960 5 Calculus II
MATH 2030 3 Discrete Mathematics
MATH 2050 3 Applied Linear Algebra

Course Credits Title
CIST 1400 3 Introduction to Computer Programming
CSCI 1620 3 Introduction to Computer Science II
CIST 2500 3 Introduction to Applied Statistics for IS&T
CSCI 2710 3 Introduction to Digital Design Principles
CIST 3100 3 Organizations, Applications, and Technologies
CSCI 3320 3 Data Structures
CSCI 3550 3 Communication Networks
CSCI 3660 3 Theory of Computation
CSCI 3710 3 Introduction to Computer Organization and Architecture
CSCI 4220 3 Programming Languages
CSCI 4350 3 Computer Architecture
CSCI 4500 3 Operating Systems
CSCI 4830 3 Introduction to Software Engineering
CSCI 4000 0 Assessment


Masters Courses:
CSCI 8000 Advanced Concepts in Programming Languages
CSCI 8080 Design and Analysis of Algorithms
CSCI 8150 Advanced Computer Architecture
CSCI 8530 Advanced Operating Systems
CSCI 8700 Software Specification and Design
Software Engineering Concentration

The concentration in software engineering is designed to address the growing market demand for software engineers. The concentration covers fundamental and advanced principles in all aspects of software development, equipping students with the necessary technical background to quickly adapt to rapidly changing software engineering practices and technologies.
Required Concentration Courses - 12 Semester Hours
CSCI 8266 User Interface Design and Development
CSCI 8710 Modern Software Development Methodologies
CSCI 8760 Formal Methods and High Assurance Software Engineering
CSCI 8790 Advanced Topics in Software Engineering
Elective Concentration Courses - 3 Semester Hours (choose one)
CSCI 8220 Telecommunication Management
CSCI 8256 Human-Computer Interaction
CSCI 8350 Data Warehousing and Data Mining
CSCI 8360 Information Storage and Retrieval
CSCI 8530 Advanced Operating Systems
CSCI 8556 Database Management Systems
CSCI 8970 Independent Study
ISQA 8210 Management of Software Development
ISQA 8380 Managing the Client-Server Environment
Students must take the following required courses for this concentration.
CSCI 8000 Advanced Concepts in Programming Languages
CSCI 8080 Design and Analysis of Algorithms
CSCI 8700 Software Specification and Design

This program looks like a good choice compared to my other options. There isnt a better program anywhere in the state that I have found and I am more excited than I was when just considering Bellevue.

I want to say Thank you to all who replied to this post. You input has provided quite a lot to think about and I feel like I am making a better choice because of it. I still have some time to decide but I am more educated on my choices and what I really want. Thank you.
22 Jan, 2010, David Haley wrote in the 19th comment:
Votes: 0
Zadious said:
Not that I am against Java but if there is one thing that I have learned about technology it is that it changes rapidly. I don't know if Java will be huge in 30 years or almost non existant.

You are correct (IMO, at least) to be wary of specialization. But here's something to keep in mind: if you learn the general concepts, you will learn more languages much more rapidly. When I was at school, we had courses in C++ and Java, primarily, and other languages were mostly mentioned only in passing (sure, sure, you wrote a few toy programs in Lisp, and maybe a tiny amount of ML, and we used Matlab for that sort of stuff, but whatever). The thing is that we were learning these languages only as expression of concepts; in fact we often discussed concepts without having code in front of us.

If you have experience learning (natural) languages, you might find that it's hard to learn your first foreign language, but as you learn more, it becomes easier to learn other languages at least in terms of understanding the grammar rules because you are understanding general grammatical concepts in general. (You pretty much always have to learn vocabulary, though; that's the way it is…) It's similar with programming languages. The syntax is just expression of concepts. If you understand the concepts, the syntax will become nothing more than details to you. You will be writing general thoughts and only just happen to be writing them in Java. This is hard, but it is the best (only?) way to avoid specialization if you only work in one language.

Of course, as many others have said, you should play around with other projects on the side, and get exposure to several languages. It's hard to understand general concepts until you've seen the same concept expressed several ways.

Quote
The neat thing is they have an integrated undergrad-graduate program that gets you to your masters in 5 years.

I have mixed feelings about this. I did something similar (although it took me 6 years, because I lost time transferring, did two bachelor's before my master's…). I haven't found that having a MSCS makes any difference to me. Perhaps it would make a difference if I decide to change jobs – I got this job straight out of school, and signed before having obtained the MSCS.
That said, I would recommend it just because the stuff you tend to do at the MSCS level is quite a lot of fun, and it's always that much more to distinguish yourself in terms of fancy paper. :wink:

Quote
This program looks like a good choice compared to my other options.

Just looking at the course titles, it looks quite a lot better than what we were seeing before. It looks like a pretty good mix of practical stuff with some theory stuff thrown in. I'm slightly surprised that Algorithms is a MS-level course, but if you're taking the joint program I guess it doesn't matter. Anyhow, good stuff.
23 Jan, 2010, elanthis wrote in the 20th comment:
Votes: 0
Yeah, the University of Nebraska at Omaha has a good-looking setup, and I've heard of a few interesting projects coming from their program before. It sounds like a safe bet. Just keep up on your extra-curricular programming activities. :) http://en.wikipedia.org/wiki/Outliers_(b... and the 10,000 Hour Rule.
0.0/58