There is a certain kind of joy that comes from creating something out of nothing. For the whole human history, this was what pushed painters, writers, and composers forward to paint, write, and compose. To me, there’s even more joy and pride in the process when it feels like bringing something to life. It doesn’t matter if I know the algorithms inside-out, and fully understand the mechanism behind all decisions being made. The sole fact that something seems autonomous or having a sense of humor will always feel like magic and bring me lots of delight.
This is probably the least practical argument for why anyone should code, but it is the one that speaks to me the most. For the most people, there’s usually a certain job to be done, and they need coding to have this job solved, automated, or to figure if it’s feasible at all. Be it for magic or for practical applications, everyone can learn some coding basics and solve simple problems on their own in much less time than they think. All they need is a text editor, a web browser and Internet connection.
Some folks – mostly those who’ve never tried programming – believe it requires some secret black sorcery skills, incomprehensible for mortal humans. This could have been true a generation ago, but now that programming languages have become much more intuitive, it’s more similar to cooking than it’s to rocket science. Personally, I find coding a whole lot easier than cooking. If something goes wrong, I can always undo the last action or even restart the whole thing from scratch, which is kinda difficult when you’re dealing with a burnt pie.
As a mentor teaching the class I got to learn even more. Even though we’ve crafted the course with a total beginner in mind, not every concept or metaphor were as clear to beginners as we thought it would be. Browser compatibility issues came out in few unexpected places. We’ve overestimated the difficulty of our course (some participants finished it well ahead of time). Launching it early with a small group helped us collect a ton of valuable feedback on how we can improve the future editions.
Observing our students – their motives, learning styles, and challenges – was very educational for me as well. Some of them signed up for the course cause they were considering a future career change. Some others came for the freedom to get their websites working in any way they would like, without having to ask others for help. There were some looking to understand their developers better, so that they can improve communication in their projects. Every one of them had her own unique learning style, her own unique pain points, and all the right skills needed to solve the task.
I’ve always believed that everyone can learn how to code, and everyone should learn how to code, even if they never plan to code for a living. Nobody doubts the benefits of learning how to write without becoming a professional writer, or learning a foreign language without becoming a professional interpreter. Similarly, algorithmic thinking is a tool that greatly expands our understanding of the world, and gives us the power to shape it with our hands. I’m proud we created Girls.js out of nothing and can’t wait to see where this adventure will take us. From our first course we learned there’s a huge need for projects like this.