Subscribe to College...        RSS Feed
-----

Computer Science Curriculum

Icon 3 Comments
Hello everyone. I would have posted this in the lounge but I figured it would be more appropriately suited for a blog, very open to discussion. Please note that this is actually my first blog ever so I apologize in advance for any errors. I read the forum guidelines and don't that any of them are violated here.
First ill begin with a little background about myself as I still have not updated my profile on here.
I'm technically a senior at a university majoring in computer science. I really enjoy the subject and can realistically see myself in a development role some day. BUT here are the issues that I am finding myself in the middle of:

-I have worked full time throughout my entire college career
-I work in customer service which is in really no way related to programming or software development
-Every employer would like a lot of experience and I technically have none in the field-no internships either
-I currently work for a very large corporation that is very much in favor of hiring internally and has a very large technical infrastructure which is only going to grow
-The worst part is that I feel like my university is far behind the times and worry deeply about my job prospects

OR maybe I'm wrong and should just relax...

Nonetheless I am finding myself in the middle of classes which are teaching material that is far outdated. For example, in my web development course we are being forced to use Perl to make cgi scripts and we have been forbidden from including any additional CGI libraries. PHP is forbidden and ASP.net is our mortal enemy. I understand that much of college is purely about learning the fundamentals but how realistic is it to apply for a job and list your state of the art Perl skills? The textbook is dated from 1996 and the class just doesn't seem practical in any way.

We develop all console based programs when using C++ which is fine, however I feel that we should be learning how to use things like the Qt framework to develop nice GUIs or maybe offer courses that specialize in the .NET framework-C# in particular. I also feel like we should be forced to take courses that focus on how to exploit certain languages like Java or SQL. My network programming class has turned into a system programming class/a nice narrative of the professor reading out of the textbook for the duration of the course. This, of course, means that all of us are equally confused as the text is very specific and very wordy not to mention I read the same text before coming to class as it was assigned as homework. While I don't disagree that it's important to understand inter-process communication on Unix, it just doesn't seem all that practical in the age of computing that we're in, except if it were coupled with a parallel computing course. One of the few courses we offer that offers long term value is a course on parallel computing. I would happily sign up for this course but I feel that I won't learn anything as the instructor who runs it just doesn't seem to have a grip on things.

While I feel at times that my education thus far has failed me, I have been subject to things that I never knew existed. It has also made me come to the conclusion that I know nothing about computing or software. Isn't that the point of school anyways?

So now I will finally get to the point. This is not a rant about where my career should take me or how to get hired and I hope that no one out there feels that way. I can get hired at many jobs that are personality based, I understand people and how to control their emotions/opinions about me-customer service does have some benefits lol. I have noticed the job shifts as to what employers seem to be looking for as far as developers are concerned and have spent, and continue to spend a tremendous amount of time practicing code, playing with new languages, researching what's next, and mastering my data structure and algorithm skills. Plus, even though my school may be terrible, Microsoft has set us up with an MSDN subscription which gives me access to all of Microsoft's products free as I am a computer science student so I can actually get some practice with Visual Studio and many other Microsoft products. ALSO note-I am not trying to start a debate with any Unix/Mac/Linux people about why what you use is better than what I use so please don't think that. I still use Code Blocks a majority of the time for all of my homework but will be utilizing Visual Studio for my capstone project.

Finally, to the end of this never ending rant. Am I making a smart decision by reading endless amounts of books about software programming, scrum management, and agile software project management? Do I have any chance of a future outside of customer service? Most importantly, what does it take to be considered a great programmer? Is it code efficiency, time management, great logic, nice comments/coding style, working knowledge of a thousand programming languages? Or are we all forever amateurs never truly mastering the craft of programming?

I am looking for a response from people who are already working in the industry, especially those regarding recent computer science graduates who seem to be knowledgeable of outdated material and ideas.

3 Comments On This Entry

Page 1 of 1

Ryano121 Icon

11 March 2012 - 10:20 AM
Much the same can be said for a lot of degree courses. Mine just like yours was very outdated, but it was still very very helpful. Luckily for me I was programming long before I started my degree and so I was able to do a lot more outside of class anyways. Most of the time the work in class was on the side to larger projects in languages that we hadn't learnt at all.

The good thing about the degree is the experience of learning languages. Doesn't really matter if they are outdated, once you get to grips on HOW to learn, the rest becomes a lot easier.

It should also be noted that the chances are you won't be using the languages you learnt in your degree when you get a programming job. My degree for example focused heavily on C++ and Java and even Pascal, whereas my first job was completely oriented about C#. Of course there are similarities, yet I still had to learn about the language before I started building anything. The experience of learning definitely helped with this.

I think you already know the answers to your questions -

Of course reading books is good. As long as you actually put them into practice in something. Otherwise you will forget them very quickly.

Of course you have a chance of a future outside of customer service. Put the work in, you will get the results.

In my view a great programmer is someone who gets the job done. In business it's not always about writing really good quality code with good design etc etc. You HAVE to get the project finished on time. Sometimes this involves writing crappy code, but the business doesn't give a damn about that. They want the project done so they can start making money out of it. Of course its better if you have nice style that can be easily extended in the future, but that's not always relevant. One of the best qualities is to work well in a team. If you don't have that then for most positions you are screwed.

On the side of experience I was very luck. My degree course included a year in industry in an actual software company. I actually would say that I learnt more about the industry in that year than in all the other years combined. That one year of experience proved VERY helpful in my job search. I haven't been working in the industry for long yet I have friends that didn't have any experience and are still searching for jobs. If you find it hard to get a job afterwards (which is perfectly possible), don't just sit there feeling sorry for yourself, do something. Make a portfolio to show people what you can do. Actually make some big programs. Not just Tic Tac Toe, actually something that an employer would find valuable - something that solves a real world problem and gets results.

Good luck in the rest of your degree.
1

Munawwar Icon

14 March 2012 - 01:34 PM
Curriculum can have a tremendous impact on students. My school taught me the C++ with the ol' Borland 3.1 compiler (this was just a few years back). Even though previously I have complained about the outdated curriculum of my school, I still admit that the *awesomeness* of DOS and BGI was the reason that got me interested in this field. Maybe...maybe I wouldn't have started coding without that initial spark of interest.

Today I feel that the first step towards programming is getting interested in the subject (same can be said for any other field of study). So a good school/college should help their students reach that point.
Once that is done, a good curriculum could boost their knowledge and career.

(I'd say my college was terrible. They couldn't get any beginner interested in coding. There were many with higher IQ than I have...but none were interested.)

With that said, you don't need to worry too much even if your college sucks. There are lots of stuffs that you can do..
1. Like Ryano121 said, start off with some projects trying to solve real world problems. Test languages, frameworks, implement any cool ideas that comes into your mind.
What I did was I volunteered for a project for my college. They got that app for free..but I didn't care, as I learnt a lot as I developed that app. These sort of apps forces you to solve real world problems.

2. Watch some video lecture..like from Berkley

3. Hang around at dreamincode.net, read what people write, answer programming questions, keep a watch on the new technologies/ideas mentioned around here.
0

wizzard1200 Icon

26 March 2012 - 04:18 PM
Thank you all for the input. I felt that I was headed in the right direction at surviving college and I feel better knowing that I am. I currently partake of nicely done university video lectures as well as various talks put together by the people at Google as they talk very much about the future of code. DIC has been a life saver as it's truly a wealth of great information. I would like to post more frequently but I have my hands full with far to much at this time. I really would like to get involved with an open source project or two but I need to wait until my semester is finished so that I have some serious time to dedicate.
0
Page 1 of 1

Trackbacks for this entry [ Trackback URL ]

There are no Trackbacks for this entry

August 2014

S M T W T F S
     12
3456789
10111213141516
17181920212223
242526 27 282930
31      

Tags

    Recent Entries

    Recent Comments

    Search My Blog

    0 user(s) viewing

    0 Guests
    0 member(s)
    0 anonymous member(s)

    Categories