Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

A computer science degree (like any undergraduate degree) does not prepare you to be productive immediately. And my sense is that employers are less and less willing to provide that initial training. (Or at least if you DO have those core skills*, you have a broader selection of "first jobs" to choose from).

What skills should a senior focus on to make him/her self more employable? And how might you get those skills?

*EDIT: I'm not talking about experience/mastery of technology. I'm talking about core skills like Source Control (not mastery of a particular SC, but just being able to use one an understanding the concepts) and Unit Testing (having written Unit Tests using at least some famework), etc.

share|improve this question

marked as duplicate by gnat, Kilian Foth, Jalayn, Jim G., JeffO May 29 '13 at 13:26

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

    
This isn't informative enough to merit its own answer, but: Get a GitHub account and contribute to as many open source projects as you can :-) Having a great portfolio of open source work will put you way ahead of the average joe that's just graduated. –  andy May 29 '13 at 13:21

11 Answers 11

When I interviewed people I always looked at which skills they learned outside of their studies and whether their hobbies/after-hour activities included things like programming or web design. I am not even interested in what specific programming they did, but rather that they show initiative to learn things outside of normal studies/work. Another good thing to show is involvement in the open source community for instance taking part in Open Source Sprints.

Look at skills that will be useful in any kind of environment - like being able to use: Bug trackers(bugzilla), version control(Subversion). Something people lack as well is the ability to write code that handles expected errors and stopping program for just ending with an unhandled exception, practise this.

Also depending on which business you want to go into there are some additional subjects that could be good to take, for instance Management and Finance subjects are soem good choices.

share|improve this answer
1  
try being more specific than "programming" or "web design". Everything on this site is about programming. The OP specified quite well that he wants to know the core skills needed by a CS grad. When you try answering questions, read the other answers and make sure you are adding something that hasn't already been covered, but is still on topic with the original question. –  Rafael Cichocki May 29 '13 at 10:47

One way to set yourself apart from other new graduates, other than GPA and being able to demonstrate good general problem solving skills during an interview, is a presentable breadth of appropriate experience (even if not as an employed professional). There are multiple options, not limited to:

  • Rent a VM in the cloud, install the complete server stack, write and deploy some application, stick it on your web page, and keep it running.

  • Business plan, design, code, debug/test an attractive and functional iOS or Android app, get it in the app store, market it, and provide customer support.

  • Build, program and compete in some robotics contest.

  • Some well written addition to an OSS project that's popular on Github, et.al.

  • Etc.

e.g. Take the initiative, and do something other than schoolwork that an interviewer in your business category of choice will recognize as closer to real work versus homework.

share|improve this answer

What skills should a senior focus on to make him/her self more employable? And how might you get those skills?

Technical skills are not the only ones that you will need in order to succeed in the business world. Social/business skills are very important in order to survive. In another thread, I posted a list of books that I think that folks new to the corporate life would benefit by reading.

Over the long run, maintaining your technical skills will be crucial to a long career in development. Hobby projects at home, reading blogs, reading technical books are all helpful. I frequently pick some certification exams in order to put a structure on some studies.

share|improve this answer

You might want to consider changing your mindset from:

"What skills should a senior focus on to make him/her self more employable?"

to

"What skills should a senior focus on to make sure he/she gets the job he/she WANTS?"

I've spent the last week interviewing applicants and one thing that stood out during the period was how LITTLE of them knew what they wanted. Most just wanted to get a programming job ASAP and ANY type of programming job would do.........

None of them stood out except for the very few ( 1.5 out of 12 ) and non coincidentally, they were the ones that knew EXACTLY what they wanted to do.

It's really hard not to be impressed by someone who knows what he wants to do (hopefully it's in line with what your company is doing) because the resume reflects that clarity.

He made it clear that he:

  1. Only wanted to do Web development. No winforms.
  2. He wanted to use the Microsoft "stack". C#, some JQuery, Ajax and a bit of Javascript/HTML/CSS. No PHP, No Java, etc on his resume.
  3. Had done 3 projects, all with the same stack of tools/languages.

Did we have winform apps? Sure we did. Did we have PHP stuff? Java stuff? Sure.

BUT our main focus was on the Microsoft stack (Customer requirements but that's another story for another day...) and we knew he would fit in quickly.

The last thing I wanted to see was another applicant with 5 different/diverse languages that would/could/wanted to do EVERYTHING and ANYTHING. I swear nothing scares us more than those cos then its really nothing but roulette with human bouncing balls.

At the end of the day, I want to hire someone that really WANTS to do the stuff that he'll be doing, in an industry where turnover is thru the roof, their happiness translates to a longer lasting relationship.

Sure, you won't be very flexible. You also won't appeal to the companies who are from the other camp.

But if its not something you want to do anyway, whats the loss? :P

Aim to get the job you WANT and focus your attention on those specific areas. It will be more enjoyable for both you and the company that you end up with.

share|improve this answer

I'd say there are a couple of big buckets that would be my suggestion:

Networking skills - Who knows you? Who knows what kind of work you want to do? This is an important skill as sometimes it may be through friends or family that you hear about a job and get hired at a company. A couple of other terms here would be communication or relationship skills as this is about using language and getting things done through indirect means.

Problem solving skills - How well can you take a question or problem someone has and resolve it? How well can you figure out what is the root cause and really fix it? How well can you figure it out without pissing off the person who wants it fixed ASAP?

share|improve this answer

Actually, many employers hire new grads. A few reasons are:

  • New grads are cheaper in salary and for billing to clients
  • New grads are a clean slate that can be trained the way the company wants
  • New grads can have more relevant training with newer languages

So, don't go knocking your new grad status. You are in a pretty good position actually. Many companies actually have postings just for new grads.

Now, a better question would be "how do I look more appealing than other new grads?" As you're already in your senior year, I can only hope that your marks are good. Good marks are a good indication that you pick up new concepts well, that you can meet deadlines, and that you are self motivated to study. Most employers will ask to see your transcript for this reason.

Next, some programming experience out side of school. Do you have a pet project that you're working on in your spare time? Have you made any contributions to open source projects? If not, think about doing something like that. If you really don't have time, make sure you know your final project inside out. Maybe create a blog where you outline your process for your final project and provide code samples (after it's submitted of course). Potential employers like to see that you can code, as they won't expect to have to teach you how to do that.

Source control, and ticket tracking. It is pretty much a given you will use these two things at your new job. Make sure you have the basics of each.

Make sure you're resume is the best it can possibly be. See if your school has resume reviewing and writing services. You need a good resume to stand out from everyone else.

Show your passion for programming, and your understanding of basic concepts in the interview, and you should be fine.

Good luck.

share|improve this answer
3  
+1 for everything but the "relevant training in newer languages" bit. It's a complete crapshoot depending on the school. –  Chris Lively Sep 14 '11 at 15:42
    
@Chirs Lively - that's why I said 'can have'. It's not a given but nice when it happens :) –  Tyanna Sep 14 '11 at 17:08
1  
I can attest that a 3.96 GPA does not help that much in getting employment. It is better to have fun and do your own thing. Having pet projects helps too. Even more important is networking with the right people. Don't go and get a 2.0 or anything, but I know people with a 2.5 GPA who have had an easier time finding jobs than people with a 3.5. Still there are employers who will filter out candidates with less than 3.0 so it makes sense to try to do the best that you can. But side projects and networking are more important. Also college is a time to have fun. –  Cervo Sep 17 '11 at 16:12

The most important "skills" are the ability to complete tasks, and the ability to learn. Everything else falls into place after those two. Both are demonstrated through previous projects, so find a project to work on (eg. a smaller open-source project in an area that interests you).

share|improve this answer

I do not expect a CS grad to know anything that directly applies to an industry for an entry level position. I expect them to be smart and to be able to learn quickly.

That said here are some basic things I look for:

Do they know C and/or some OO superset of C (i.e. C++, objective-C)? Do they know basic CS mathematics. Algorithm Analysis, Matrix operations, vector spaces, Big-O and so on? Do they know how a computer actually works w.r.t programs? (i.e. Compilers, Linkers, Assembly instructions)?

I also test to see if they can use both recursion and pointer arithmetic.

However I am not a corporate recruiter, I am a developer who wants competent programmers. Corporate recruiters typically want a load of buzzwords on your resume like, C#, Java, MySQL, SQLSERVER, or whatever the latest craze is these days.

To someone who knows what they are looking for, all of that stuff is irrelevant. If you are a good programmer, you can become competent in a new language in a couple weeks. What a good software company usually wants to see is that you are smart, know computers, love programming, and work hard. The rest is easy.

share|improve this answer
1  
I wish the recruiters share your opinions! –  Emmad Kareem Sep 14 '11 at 16:33
1  
Recruiters can't understand what makes a good programmer--without being one first. –  jpaugh May 17 '12 at 6:12

Programming. Knowledge of a specific technology and know it well. If you work with .NET know all parts of the framework, how it works and what it can offer.

Test Driven Development seems to be a big thing with building high quality clean code the sets you a cut above those who dont develop in such a way.

Examples of work showing fundamental pillars of OOP and some use of design patterns, make sure not to use patterns so heavily that it actually makes your coding seem worse, they are there as a guide not as a rule.

A lot of employer are concerned abotu theory though and if you know how to program well in one language picking up a second or fifth can take a very short time to a CS graduate with proven skills down any avenue.

share|improve this answer

The best way to get a job is to do well in the interview. I found that my CS skills were of little use in interviews. Most of the questions are boilerplate trivia, easily found via Google "%my programming language% interview questions".

You should spend research time seeing what kind of positions are available in your area. Then decide what interests you. If it's C#, then buy a C# book for beginners and read it cover to cover. Do the examples, write a lot of code.

Keep writing tons of code. Offer your code and programs as a portfolio in interviews.

share|improve this answer

Practical experience always helps, even if it's something as simple as contributing to a open source project just to get something on the C.V. (and of course to help OSS). Get some code you're proud of on something like github so they can see your work, that way they know whether you'll fit in terms of code style.

share|improve this answer
    
this is a good tip. working on an Open Source project is a good sign that someone is passionate about their trade. +1 –  Jonathan Henson Sep 14 '11 at 15:06

Not the answer you're looking for? Browse other questions tagged or ask your own question.