views:

148

answers:

7

Let me quick introduce myself. I work as architectural technician (and it is not system architecture). After surviving second wave of redundancies in my office, I have decided that it is a time for change, and I don’t want to be in the same position in the future. As I was always interested in computers, software, etc., I figured out that IT is the right place for me. However, it will be difficult to begin new career without previous experience. I’m very new to programming, but I found web development, server side application and GUI very interesting. I definitely would like to go in that direction (JavaEE,Swing,Ajax). So I applied for postgraduate MSc Software Engineer course at Westminster University in London. Now I’m a bit concern if I made the right decision, because the main focus on the course is C++. Here is the course description:

Course Description

A modular course for non-computing graduates which aims to provide the skills necessary for a Software Engineer. The course is strongly focused on the fundamental aspects of object oriented software development using C++, Java, and UML The course consists of seven taught modules and a (double) project module.

Course Modules

Object Oriented Programming: using C++. Including objects of primitive types, provided classes and own classes, inheritance and polymorphism.

Systems Architecture: introduces system architecture components necessary to support the software engineering process. These include operating systems e.g. UNIX, tools and utilities, language processors, and networks.

Data Structures and Algorithms: using C++. In particular linear data structures, tree and graph structures, the use of standard libraries, algorithm design and evaluation, and selection and use of data structures and algorithms within typical applications.

Software Engineering Context: overview of a professional software engineer's activities. For example, software engineering lifecycles, requirements engineering, user interface design, software quality assurance, testing and selected professional issues.

Event Driven & Internet Programming: using Java introduces web applications and GUIs. Covers browser scripting languages, applets, database connectivity, servlets, JavaServer Pages (JSP), JavaBeans, XML and Model-View-Controller (MVC) design.

Object-Oriented Development: using the Universal Modelling Language (UML) examines the techniques and methods appropriate for the development of object oriented software.

Database Systems: covers database system technology, data modelling and database schema definition and querying, focusing on the industry standard SQL.

Software Development Project: under the guidance of a member of staff a student undertakes an extended, individual piece of work on an approved topic, which unifies and extends the theoretical and practical knowledge of software engineering by applying them to develop a software application.

As you can see, there is a Java module, but the course main focus is C++. Do you think is it worth taking this course, and learn C++, knowing that I probably won’t use in the future, or I should take Java Programming SCJP Certification . I’m pretty sure MSc Software Engineer looks better on CV and there are other quite interesting modules, but I’m not sure if I will have enough Java skills to secure a job. I’m really going crazy thinking about it, because it will cost me some effort (I’m going to work full time and study full time), and I would like to be certain that this course will help to secure a job as a 30 years old graduate.

+1  A: 

I have found that it doesn't really matter what languages you learn. If you are a good developer, you can learn the language/ide/framework necessary for the job at hand. I prefer to focus on learning how to program and then get familiar with the technologies that I will need.

Topher Fangio
A: 

There is still a lot of work that is being done in C++ and most of the skills you will learn/refine in the degree program are easily transferred to Java or C#. I would not be concerned about the language you are learning. At least it isn't in Pascal. :)

Lucas B
A: 

I’m very new to programming

and

A modular course for non-computing graduates

Indicates that this is a GREAT place to start. My CS courses in college were almost all C++ and Java. In fact, there is very little .NET being taught in and or around here (Cincinnati) as far as .NET.

The overall idea you need to wrap your head around now is that the basic principles of Computer Science apply throughout the industry regardless of language or platform. When you get to the basics (this is the EE speaking) of a computer, you see 0 (voltage off) and 1 (voltage on). That's it. There's nothing else.

The language you learn does often dictate the style of programming you will gravitate towards in the future however. Case in point, most VB6 programmers tend to gravitate toward VB.NET and most oldschool C guys tend to gravitate toward C#.

I think you'll find that if you're choosing a new career, the best choice for you is to start with a great OOP type of language and grow with your knowledge. I know MANY career programmers with no academic experience in .NET that are currently employed as .NET programmers. The beauty of Software is that because it is constantly changing, you must be constantly learning or else you'll not stay long in this profession.

EDIT: and just for funsies, I would suggest creating a blog. You learn basic HTML, (possibly) CSS, and rudimentary JavaScript. Who cares if someone reads it, you can use it as a learning tool. Then, you can create your own family, work, or hobby website that you use as another learning tool. Use it to host a resume, a portfolio, and a collection of test scenarios you play out for yourself. Not only do you get to learn in a harmless (to a corporate bottom line) fashion, but you can re-use it later when you go job hunting.

Jonathan
Thanks. Creating a blog is exactly what I'm thinking about.
A: 

Java skills are a totally irrelevant consideration. The language used is not an important part of what you should be taking away from a graduate degree.

Also, I wouldn't be betting the house that you won't "use [your C++ skills] in the future" if I were you. C++ is not exactly a niche language, and I doubt it's going anywhere.

mquander
A: 

Language-wise, I'd say learning C++ is a great start - C++ is that much closer to the machine than many managed languages (C#, Java) and yet shares many of the concepts. There's nothing worse than a Java programmer who has no concept of why memory management is important, and both C# and Java are easy jumps from a strong OO/C++ background.

As for Java certification, having done it I tend to ignore it on CVs. It's a memory test and demonstrates nothing of your technical abilities. I'd certainly give a lot more consideration to someone who has gone to the effort of a MSc and learned the concepts than underpin the area.

James
A: 

I think this will be a good course for you. There's a recent article by Bruce Eckel where he begins by trying to answer the "should I learn C++ or Java?" question as well as a nice response by Maxim Porges. I highly recommend both to help calibrate your future.

If you want to be a good programmer, learning C++ will be an essential part of your training and will provide some insight into lower level programming that you will miss in Java. Even if there were no Java in this course, I'd recommend it since the general principles you learn are the important part. The specific language is very secondary as a good programmer can pick up one more language quite well in a couple months. If the first job you you wantout of the education is in J2EE programming, it won't be the hardest to find.

You were planning on being a good programmer, right?

Stephen Johnson
Thanks. From Maxim Porges response:“Early on, decide if you want to focus on application development or software engineering. “I would be more interested in application development , but if I'm not mistaken an Event Driven and Internet Programming Module on MSc Software Engineer course is related to application development,isn't it? I think I'm getting a bit confused.
A: 

What I great forum!! I just want to say thank you all for such a quick response and advice.