We had a guest lecturer at our school he went on a tangent regarding those graduating and not being upto the skill level he expects ie. knowledge of one big-time compiled languague like Java, C++ or C#, one scripting language like Python or Ruby, one web framework. What are some other skills that you guys think should be absolutely critical to graduating student?
|
|
By far, I would say an eagerness to learn. College isn't really intended to give you the skills you need to become a programmer. It's intended to teach you the skills you need to learn those skills. |
|||
|
|
|
New graduates need more than just a desire to learn, they need an obsession of learning, an understanding of how to learn, and a firm grounding in the realities of software. I generally don't care what languages you know, but every junior must:
|
||||
|
|
|
As an employer, I will only employ people as programmers who:
In my experience, less than 5% of computer science graduates applying for programming jobs actually have these skills, at a basic level. These are the minimum skills that are needed to be commercially useful, and importantly, not everyone is capable of learning these skills. Other nice to haves are:
These make their integration with the existing development team easier, but are subjects that can normally be taught on the job. |
|||
|
|
|
I had once a team I "inherited" with mostly newly graduated staff and I had my experience that those who did real programming "next" to there study (to earn some extra money) were the most capable team members. Hence experience is the key and it does only little matter what language. However if you look what recruiters are looking for (at all the common recruiter sites like jobserver.com etc.) it is interesting to observe that there is a lot being asked for the C++, C#, Java but also there are others looked for and also "exotic" things like COBOL is still around. |
|||
|
|
Learning process in this profession never ends. One must constantly learn and improve himself, otherwise, he "flunks out" of the game real fast. |
|||||||||
|
|
The other answers are good, but I would say the #1 overlooked skill in university seems to be actual software engineering. The basic classes to teach OOP and a language like Java are great, but in the 3rd and 4th year why are students (at least at my local university) writing compilers and operating systems instead of learning how to identify and create a good architecture, how to dissect requirements and create from that a list of technical specifications, and perhaps most importantly, what the difference is between good code that works and bad code that works. It's like our universities almost want to churn out coders instead of software engineers. I would never hire somebody who didn't display some skill/talent in engineering. |
|||||||||
|