Is there a Job for Computer Science Graduate that does not do programming?

Is it better to pursue knowledge through taking college Computer Science courses, which may be behind the times, or to learn the languages and technologies that are currently the most in demand in industry?

  • About four months ago, I started taking Stanford's introductory programming course online, and realized that computer science was something I was interested in.  Unfortunately, I am (was) a senior, about to graduate with in a field of study completely unrelated to my new area of interest.  So, I skipped the intro class at my school, and started taking the computer science series, with the goal of eventually learning enough to apply for a masters degree or get an entry level job.  I asked people wiser than myself whether I should stay an extra year to study CS given my new found interest, and the general consensus was that I should.  Now, four months later, I have most definitely learned a lot about objected oriented programming, algorithmic complexity and data structures.  Not only that, I have consistently been at the top of my classes (albeit over a very small sample size, competing with students 3 years younger than myself).  Now I have the opportunity to take upper division courses: Programming Languages, Operating Systems, Parallel Programming, Algorithms, etc... or move on and search for a job.  My question is, are these courses really worth the time and money that I will spend being in school?  Will they truly teach me foundational skills that will be worth their weight over the course of my career? Don't get me wrong, I'm loving the stuff I am learning, and these courses sound riveting. But, time is constantly ticking, and my ultimate goal is not to be an academic.  It's to work at a disruptive tech start-up or established software company.  At this point, I'm too old (nearly 23) to be dabbling here and there for enjoyment.  I know I have to optimize my learning and invest as much as possible into gaining knowledge before I join the workforce.  Unfortunately, I am extremely ambivalent about what course of action to take.  A quick example:  I've only learned to program in C and C++.  A friend of mine is skipping that altogether, and is going to delve straight into Javascript, Ruby, and node.js.  Yes, I know more about how the bits are arranged and can implement a doubly linked list.  But come hiring time, what will that really mean.  He'll be using the library List structure just fine, and will probably have some web applications in his portfolio, to boot.  So who is right here?

  • Answer:

    If you feel like you have the hang of programming, it should be easy for you to jump in to any language/framework/coding technique and learn it proficiently. And computer science courses at a research university are certainly not "behind th times." If you go to a "good" computer science school, you'll learn very little programming. What you will lean it concepts that can be applied to any programming language. Keep that in mind; you may not learn many languages in college, but you learn skills that you can apply to any language. What languages the skills are taught in is trivial.

Nick Anderegg at Quora Visit the source

Was this solution helpful to you?

Other answers

If you spend too much of your near future time in the university, I am afraid you would not be able to nail a job just after. And, if you try to nail a job now, you might be able to find a menial job, perhaps an internship somewhere; but it will be hard for you to advance from there. I would try to dance in the two weddings somehow. Developing for the web is probably your best bet for a future career, since you could get things done quite fast (=without knowing it all), although you will make MANY mistakes along the way, but that's a part of the learning process. Also, web development would allow you to take on some paid projects and learn from them; nobody will hire a green guy to code Java without even a CS degree. Web development, albeit being considered in the past as an easier field (not by me), requires some theoretical knowledge and practical one. Even so, everything I am writing is applicable for another field, if that's where you are going. From your university, you could and need to learn a few fundamental CS subjects. I would see if they have: 1) A decent Java/Objective C (=iOS) course - will first introduce you to a whole new language, which will happen many times in your professional life. You could learn different aspects of application development than in C++ such as: UI design, reusing and researching for existing frameworks, advanced development paradigms and patterns (that are usually not being carried in a C++ class). 2) Data structures' class - for any development language you would need to know what tool to use for the job, be it an array, objects, trees, linked lists, etc. Even though many languages abstract away their implementation details, this course is imperative. You will never pick this topic up from coding small projects and will have a gaping hole in your understanding. 3) If they have a practical Unix course - I would take it, although you can learn it by yourself. Mastering Unix opens many doors and is required or a big plus on many jobs (I develop on a Mac, and HAVE to master its underlying Linux). If your university is not great, I would take this classes from Stanford et al instead. But take them seriously. But university will get you so far; if you want to nail a job, you need to be more than prepared for real-life coding. Remember that learning by practice is a long task. Read a lot and make sure you understand what you are doing - all the time! Start with some projects. Then read some tutorials. Then start a bigger project. Read some official documentation. Code some more. Fix your code with what you've learned. Pick up another task and do the same. As an example of web development, I would start with HTML. Create a small site. Read about layouts. Do some layouts. Read tutorials about structuring your DOM. do that. Start doing some CSS. Read a bit about that. See some examples. Run into Twitter's bootstrap. read their examples. Code using it. make sure I understand everything. Take on JavaScript. code some. Read some MDN pages. then master JS. Then Rails. Or Node. Just an example. This will prepare you for real life problems and solutions. Prospect companies are looking for somebody who knows the basics -- hence some university core classes are required -- and knows how to pick up the rest -- hence some practical experience by yourself. Good luck.

Ohad Kravchick

Ohad's answer is a lot more complete than what I'm about to say, but I just want to remind you of one thing: Never let college interfere with your education. If you feel like you're not learning enough, learn on the side. If you're learning things you don't think goes in line with the direction you're going, change directions. There's a fine line between being well rounded and being unfocused. Also, only you know your pace of learning. If you're not living up to it's potential and could be doing more, you're intentionally not keeping on pace with yourself. was another answer I gave in regards to "how to progress", may help you.

Robert Adler

A college degree (the major doesn't matter) is like a 'license' to think and work independently.  It allows you to get jobs that people without college degrees will have a very difficult time being considered for. If you want to program, you don't need to get a degree in computer science.  learning to program is something that you can (and many say 'should') do independently.  The benefit of taking courses in programming is that it gives you easy access to a community of students and professionals who are very interested in computers, so you can ask them questions.

Jason Miller

In your university courses, you are learning technology. Don't confuse technology with products (often called technology in industry). Products are ephemeral and can always be learned. Real technology (and theory) is the timeless basis for the field. As one of my profssors once said, "Nothing is as practical as good theory."

Richard I. Polis

I say to stick with the university courses. They don't learn you what to do and use, they learn you how to learn new things. At the basis all languages are the same and the algorithms do not change. The way a computer works has never changed from its beginnings. It's just faster and it has much more memory. It good you know c/c++, assembler its a must. It will save you when debugging serious issues. If your friend is skipping the basis, he will problebly never know about memory leaks or why a program runs slowly after a while or crashes with no apparently reason or how a computer works. "Cool" tehnologies: easy come, easy go. When the iphone appeared, they didn't allowed native applications, only html/javascript apps. The pressure from the developers forced apple to open to native apps. Nowadays the html/javascript apps are cool again. The "cool" trends seem to be cyclicle.

Stelian Nicolae

It is certainly better to learn real Computer Science v.s. just knowing a language. If you take the time to truly understand computer science concepts, you could pick up practically any new language in a very short time.

Chaim Peck

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.