I feel like I've always gotten the most from Exercism. [ https://exercism.org/ ]. It's similar to Code Wars, in some ways, but I like the interface on the CLI, I like that you can get mentoring, I like that there are multiple languages.
As someone who has taught himself how to program - badly at times - I applaud these kinds of efforts, but I wonder if they're subverting the actual problem.
See, companies - I think - need more technology people. And the pool of technology people is limited. The laws of supply and demand say that limited supply and increased demand will drive up the cost.
This is great for individuals, but a losing proposition for companies unless they have limitless resources.
The one thing that Starter League, Code Academy and every other site is that they teach individuals the real rudimentary elements of programming. And while vital, these are not a substitute for battle hardened experiences of crappy code, terrible mistakes or the ability to work as an apprentice.
I think it's more incumbent on organizations to figure out how to build talent from within which is really a more holistic and basically an amalgamation of everything.
- Find motivated individuals.
- Validate that they have the skills to be an apprentice.
- Accept that they're a beginner and commit to training them.
- Learn their strengths and weaknesses and tailor a development plan for them.
- Promote the shit out of them and make them your next generation of software, test and system engineers.
- When they eventually leave - say to yourself 'Mission Accomplished' and hopefully rely on a talent pipeline.
I don't know if this is a teaching hospital methodology or developmental leagues in sports. It's probably somewhere in-between.
So these sites are great. The organizations are great. But transforming people into functional experts in the field can only come about with BOTH training and experience. I feel like Exercism only deals with the training aspect, not the experience aspect.
An entry level software developer with bare bones skills could be worth around $4 an hour outsourced? An individual in the first world, to command a large wage at this skill level is either fooling the employer or is strong in other areas: communications, management, design, etc.
With no data to back up my opinions, I feel like the best developers are very sharp to begin with and also highly self-motivated. They don't just take a course, they end up developing the new technologies and teaching others. If you take someone who isn't particular sharp, and has an average level of motivation, what will a coding class do for them? Will they even recall what they did? If they end up with just the bare bones skills you can't hire them because the market wage is illegal in the first world.
On the flip side, things like Code Academy would be great for grade school and high school. When I was 12 or 13 I tried learning C++. Text editor, no color syntax, b&w print book, it was a total flop.
Code Academy would have been great. Hell, even YouTube would have made a world of difference. (Also learning to use complex software like 3DSMax was a joy reading text descriptions of menus, hardly any screenshots let alone video walkthroughs.) I have little sympathy for people who complain while being hand held through learning a skill today -- programming, cooking, whatever. Such a vast library of free information compared to 15 years ago..
I think these courses are the step right before "- Validate that they have the skills to be an apprentice.". If I were going to train someone, I would want it to be someone with the chutzpah to do self directed learning for a period of time.
Totally agree. It's the great 'sword in the stone' methodology that shows if someone has the skill and ability to become a developer. But this is why I think you need both these kinds of sites/programs but also compliment them with some of your own organization's ethos of developing talent.
you have http://pythonpracticeprojects.com/ for the experience part, not many projects but a good start, especially for python, but it's usable for many other languages
Wow, I've never seen this one! And yes, this is great bridge between "learn how string interpolation works" or "here's OOP." But still, practically applying a static site generator for a business or to solve a particular client or customer problem is where I think the rubber hits the road.
Actually, I do write functional tests and I have been for a long time. However, I'm not a developer ... I'm a failed developer and figured I could best continue to develop if I had a QA title. The ammo that I always could use for functional tests was that they reveal a different dimension of wrong than a unit or integration test. And when you have unit, integration and functional tests development speeds along at a pretty rapid clip.
An interesting aspect of the "different dimension" is that functional tests actually demonstrate that your application works. If your website is down after deploying a well-functionally-tested application, then it's often because of something beyond your control, like an Amazon outage. Functional tests give you the confidence to deploy often, or automatically, even after bold refactoring, because you can prove that the app works, which unit tests or integration tests cannot do.