Ask HN: How to train fresh developers
When you hire fresh college graduates as developers, they might have a good academic background, but still have a lot to learn.
What kinds of structured programs for teaching the essential skills have you seen out there? What are the essential skills needed, that one does not learn in school?
11 comments
[ 3.9 ms ] story [ 35.2 ms ] threadI never did it, but this is how I would do it and how I would like people would do with me. If I need help I ask, but otherway I think trying is the best way to learn.
"tsm, you need to make a webapp that does X, Y, and Z in Rails."
"Um...I've never written a webapp before, nor do I know anything about Rails."
"We know. So. tsm. You need to write a webapp that does X, Y, and Z in Rails."
It worked.
(Also, at my average state school, version control was taught.)
> Teaching them the value of well organized source control and good commit notes goes a long way.
This is way too low level compared to what we are looking for. We want to find out how to help people learn quickly the basic values and principles that will enable then to proceed on the path towards learning how to build the right thing and how to build it right.
The question is not so much what to teach (there are great resources on that - Clean Code, Pragmatic Programmer, Effective Java, XP explained, ...) but how. And by how I mean little more concrete than "give them a mentor to help them" (we have tried that - but neither the mentor nor the mentee really know what to do).
For essential skills, I can say programming language literacy, version controls, SQLs, basic algorithms and data structure, and software dev life cycle.
The best thing you can give to a fresh dev is experience. :)
We do that. But we feel it is not enough to help people grow quickly. We are looking for ways to make the learning process as effective as possible.
How to grow great designers? Space does not permit a lengthy discussion, but some steps are obvious:
• Systematically identify top designers as early as possible. The best are often not the most experienced.
• Assign a career mentor to be responsible for the development of the prospect, and keep a careful career file.
• Devise and maintain a career development plan for each prospect, including carefully selected apprenticeships with top designers, episodes of advanced formal education, and short courses, all interspersed with solo design and technical leadership assignments.
• Provide opportunities for growing designers to interact with and stimulate each other.
These are great advices. The question is how to turn them into practice. People do not become great mentors by just becoming appointed :-(