Responses: 3
I've long had a mixed feeling about CodeSchool, Coursera, BootCamp, and several others of the new generation of programming "popularizers." If all they do is get people who aren't going to be developers/engineers to be interested in the programming inter-connectedness of our life, then there's no problem.
But if it's being used as an entry-point to an actual job/career in software, that's when I start to worry. These resources are great at mass-market approaches to get basic interest in coding, but they often also teach bad coding practices that can hamper the professional development of the student and lead them in some cases to make critical mistakes. And it has become an increasingly common occurrence for me to be mentoring a new developer only to find out that they don't even have a clue why what they're doing might not be the best way (let alone being flat-out wrong) because they haven't been exposed to the discipline in any depth.
I guess I feel like these kinds of things need a disclaimer on them that you shouldn't skip a more robust learning environment[*] if that's what you actually want to do for a job, but if you just want to dabble then have fun.
[*] I don't necessarily assume that this means a degree in CS. There are many skilled self-trained programmers, and while it's becoming rarer, they don't necessarily have degrees. There's also certification paths available that can demonstrate skills. What I mean is that doing small programming tasks and getting a "congratulations!" message with little to no structural feedback often reinforces bad coding habits and also dissuades an individual from branching out to other languages/disciplines from which they can learn and instead sticking out to that one. It also means that they will lack any meaningful understanding of patterns (and anti-patterns) and when best to employ them, how to detect and correct various code smells, and so-on.
But if it's being used as an entry-point to an actual job/career in software, that's when I start to worry. These resources are great at mass-market approaches to get basic interest in coding, but they often also teach bad coding practices that can hamper the professional development of the student and lead them in some cases to make critical mistakes. And it has become an increasingly common occurrence for me to be mentoring a new developer only to find out that they don't even have a clue why what they're doing might not be the best way (let alone being flat-out wrong) because they haven't been exposed to the discipline in any depth.
I guess I feel like these kinds of things need a disclaimer on them that you shouldn't skip a more robust learning environment[*] if that's what you actually want to do for a job, but if you just want to dabble then have fun.
[*] I don't necessarily assume that this means a degree in CS. There are many skilled self-trained programmers, and while it's becoming rarer, they don't necessarily have degrees. There's also certification paths available that can demonstrate skills. What I mean is that doing small programming tasks and getting a "congratulations!" message with little to no structural feedback often reinforces bad coding habits and also dissuades an individual from branching out to other languages/disciplines from which they can learn and instead sticking out to that one. It also means that they will lack any meaningful understanding of patterns (and anti-patterns) and when best to employ them, how to detect and correct various code smells, and so-on.
(1)
(0)
Read This Next