views:

649

answers:

17

I am trying to get a handle on the skills gap between software development graduates and the requirements of real world software development companies. What are the top three skills that you have found graduates tend to lack and need to be taught or acquire in your experience?

+5  A: 

IMHO just one: Real world experience.

klez
+8  A: 
  1. Soft and communication skills
  2. Pragmatic approach
  3. Team work ability
  4. Ability to think as a customer who is not technology-proficient
  5. Ability/willingness to think of costs/benefits and ROI
  6. Ability to think strategically: architecture, extensibility, later maintenance efforts, code quality do matter
  7. Ability to think of non-technical aspects of software, UI, usability, user psychology etc.
  8. Openness to accept that university teachings may have little to nothing to do with real world. Understanding that the learning process never ends. Readiness to constantly learn and better oneself.
Developer Art
Top 3, isn't it ?
e-satis
This is a Douglas Adams style trilogy.
JasonTrue
"soft skills"?What are they
Pod
+1  A: 
  • basic experience
  • advanced experience
  • long-term experience
Michael Krelin - hacker
A: 

New graduates tend to forgot that most important things in software development is time, cost and risk. They rather go for an easy method increasing risk and maintenance time or overuse design patters or OO methods increasing time and cost.

Cem Kalyoncu
+1  A: 

Knowing how to name things (variables/methods), testing, documentation.

Rock and or Roll
+13  A: 

Version control.

Joonas Pulakka
A lot of my classmates used Ctrl+Z as their version control.
Matthew Jones
when I didnt have 'real' version control available, I'd start my session with `mv source.cpp source.cpp.<date>`. Simple - but better than nothing :)
warren
I know it is embarrassing..I didn't know what version control is until I started coding professionally
Naveen
+2  A: 

In addition to @New in town's comments, or maybe to edit point 2:

  1. Communication skills
  2. Everything you learned in school was great: now here's how the world ACTUALLY works
  3. Teamwork
warren
1 and 2 are too general to be useful ...
reinierpost
I disagree - the lack of communication skills on the part of pretty much all techies I've run into coming out of college is scary
warren
+6  A: 
  • The code smell sense
  • A pragmatic approach
  • Unit testing experience
  • Big project experience (more than one developer)
  • SCM system experience
  • Afraid to ask questions
  • Documentation
  • Coding guidelines
  • ...

Just a few that I notice

Dejan
"Big project experience (more than one developer)" - will it count if a programmer has developed multiple personalities?
Developer Art
Actually could be useful. But what I am talking about is that the developer can function in a goal oriented team.
Dejan
+3  A: 

How to talk to women.

Evernoob
Genius,..but you make the assumption it's not a female graduate!
Stimul8d
Actually most men don't. This is not a computer scientist sutff, and has nothing to do with age.
e-satis
Interesting: I think that's more of a stereotypical geek thing than a developer/graduate deficiency, I for one was *much* more sucessful in that department than either of the civil engineers I lived with at university, and I bet a good proportion of the people on this site had similar experiences.
Ed Woodcock
Sadly, that is a skill not needed in most IT jobs.
Larry Watanabe
+1  A: 
  1. Should Understand the requirements exactly
  2. Should find out the code
  3. Should couple the existing codes to deliver the solutions
Sri Kumar
+3  A: 
  • Listening.
  • Not taking himself / his code too seriously.
  • Just doing it.
e-satis
+3  A: 

I can give you my top one:

  • Not understanding they don't know anything yet. It often takes quite a while to realise that the degree just taught you a way of thinking and didn't actually teach you any of the knowledge you need to know.
Russell Troywest
+1  A: 

That would really depend on the graduate.

Most gradudates do leave University without sufficient experience, and so lack even basic software development (notice I didn't say coding) skills.

However, some graduates, those who have coding jobs outside of university, or who took a year out in industry, should not be grouped into the same category, I for one found that even with a year's experience recruitment consultants assumed complete lack of ability, simply after hearing the word graduate.

This kind of question only serves to reinforce this rather odd assumption, so perhaps a better question is "What are the top three most important skills inexperienced software developers tend to be missing?"

Ed Woodcock
+3  A: 

Understanding the difference between what people say they want, and what they really want.

DanSingerman
A: 

I always feel lucky in the interviews when he (or she) shows the ability to organize his daily work.

ur
A: 

Besides Version control, Putting Run-time Settings in Config and Properties files.

Interns never do this until you tell them to.

sal
+1  A: 

These would be my choice of 3 that graduates probably don't realize they really need:

  • Adaptability - If we do it this way this week and that way that week, how well would you accept that? Do you understand how our methodology will likely change so that what you understand now and in 6 months will probably change a lot?

  • Communication - How well can you ask for expectations and agree on what you'll do so that we both understand what is to be done.

  • Humility - You do realize there are millions of programmers around the world and that you probably aren't that special, yes?

JB King