Teaching programming to kids
I am a programmer and in past I have tried to engage kids and grownups with programming. I know for a fact that it is difficult. I also understand that I lack the professional skill sets needed to teach someone. But recently I came across ad campaigns that claimed that they could make children programming wizards, I found their ads amusing at best.
Programming community has a strong culture of documenting their journey. Journey of becoming a programmer, solving a problem, finding a novel way of doing something. And this documentation is very accessible. By accessible I mean written in a way that is conducive. This in turn creates more contributors, people write followup posts, adapt existing post to do something else, share their code, document how to use it. And we have this constant supply of content that ranges from newcomer friendly tutorials to deep dive, highly technical and good quality blogs. In my personal experience of learning to program, this is the version of community that I relate to the most.
All this content is accessible to everyone. Anyone can read these posts, learn from them, and become a Programmer. That's all it takes to be a programmer. To navigate these resources, understand them, use them, improvise, adapt, improve, fix. There is no expectation to be qualified in any respect. Just your computer, access to internet, and a commitment to your pursuit.
Indian IT service sector has thrived on this low hanging fruit. They have successfully proven that anyone can be trained to become a programmer to some level of proficiency. They hire students from any stream of engineering and train them, and at some point even an engineering degree was not required. Here is a quote from an article from 2013:
Companies such as Wipro, Infosys, TCS, Cognizant, ITC Infotech and KPIT Cummins among others are hiring more of science (BSc), computer science (BCA) graduates and even diploma holders for testing, support services and managing IT infrastructure of clients at lower wages.
Today everyone knows what it takes to be considered as a programmer. With projects like Github, Discord, outreach programs by big companies, whole ecosystem is shifting to be more beginner friendly. If we go by Dollar Dreams(movie by Sekhar kammula), all it takes to be hired by a company as a software developer is confidence. My friend Sai teja summed it up eloquently:
So in general there is an awareness now more than ever that programming is skill that doesn't require a degree and easier to teach relatively and has significant impact on future prospects of students who understand programming.
It is safe to say that programming is a skill, just like music, painting, woodwork. They all can be taught. And that's where the ad campaigns from companies that teach programming to kids steps in. They are aggressive, and excessively use hyperbole to amp their appeal. There is no other company running campaigns that tries to makes a pitch to teach children other skills. Why do we have such campaign only for programming skill? Firstly it can be attributed to the domain itself, with tech things can scale for mass and later there is high scope of optimizing for profits. Secondly, I think the analogy between Cricket and other sports would fit here. Just like Kohli is more relatable figure as compared to Messi, now we have local figures who have thrived in technology domain, Pichai(Google), Nadella(Microsoft), Bansal(flipkart) et all. People can aspire for their kids to grow up to such a role or position. And yes, it is not easy and it takes lot of hard work to reach to those top spots. Not every programmer gets hired by Google, Facebook or creates a mobile app that's worth million dollar. But even an average programmer has a shot to be hired by some IT company and can earn a decent living from this skill. Another of my friend Puneeth summed it up like this:
Most things are a skill that can be taught… like playing Cricket to singing. Some people have some quirks that make them special at it, but you can be an average programmer or an average musician or cricketer with training. The lure is much bigger with programming than the other things by the fact that there's a lot of scope for making a living out of it.
The ad campaign we mentioned earlier, firstly, their appeal is to the parents. There message is simple, "Teach your kids programming, it is as essential as learning English, if you don't know it, you will be left out from a lot of opportunities if not all". And parents buy into it. They are inherently concerned about future of their kids. Automation in its new form is eating everyone's lunch, school curriculum moves at glacial pace to adapt to ever changing demands of the market. It makes sense to think in this line of direction, advancements in automation are largely driven by advancements in Machine learning and Artificial Intelligence, so lets be part of the technology industry. But the tech industry itself is noticing huge changes because of this shift and we are not immune of the threat of becoming obsolete. We will have to adjust, pivot, learn new things to stay relevant, often on out own, without a course or personal instructor, just relying on the online resources I was mentioning earlier. Here is the thing, the courses that teaches programming is just one of the gateway into this world where you will have to constantly keep learning and unlearning. This would be a start of the journey. I think the point I am trying to make is, it will become harder and harder to survive as an average programmer, or rather anything average. Any course(paid or free) that triggers genuine curiosity in the kids about the subject, help them understand the domain and they feel confident solving problems, go for them. When I look at ads from WhiteHatJr, I don't feel that. The promises they are selling have nothing to do with programming as a skill.
I am repeating myself, but I want to stress on the point that there are many, many resources, courses that are available for free already. I think they are the best starting point to gauge the interest of the kid. Scratch offers a similar approach to programming, so does blockly, and there are many such projects. They have intuitive user interface that eases the steep learning curve of understanding core concepts of programming. And don't underestimate kids, they can navigate complex situation on their own and learn something from it. Just look at the contemporary popular games, they are hard and complex, they are multiplayer and kids have to work as a team to get through them. Yet with the playfulness attitude and with absence of fear of loosing, they thrive, one stage, one boss, one challenge at a time.
I am personally biased against the specific ad campaigns. They are misleading, dubious and I get reminded of IIPM ad campaign, "Dare to think beyond IIMs" and that didn't end well. They are tapping into insecurities, doubts of parents. I have serious doubts on how much they would be able to deliver on the dreams they are selling. Their methods, their talent pool of house wives turned programmer instructors and their claims of fictitious alumni students doesn't matter.