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?
views:
649answers:
17What are the top three most important skills new software development graduates tend to be missing?
- Soft and communication skills
- Pragmatic approach
- Team work ability
- Ability to think as a customer who is not technology-proficient
- Ability/willingness to think of costs/benefits and ROI
- Ability to think strategically: architecture, extensibility, later maintenance efforts, code quality do matter
- Ability to think of non-technical aspects of software, UI, usability, user psychology etc.
- 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.
- basic experience
- advanced experience
- long-term experience
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.
Knowing how to name things (variables/methods), testing, documentation.
In addition to @New in town's comments, or maybe to edit point 2:
- Communication skills
- Everything you learned in school was great: now here's how the world ACTUALLY works
- Teamwork
- 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
- Should Understand the requirements exactly
- Should find out the code
- Should couple the existing codes to deliver the solutions
- Listening.
- Not taking himself / his code too seriously.
- Just doing it.
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.
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?"
Understanding the difference between what people say they want, and what they really want.
I always feel lucky in the interviews when he (or she) shows the ability to organize his daily work.
Besides Version control, Putting Run-time Settings in Config and Properties files.
Interns never do this until you tell them to.
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?