Over the last couple of weeks, I've been teaching my brother how to program. This has been an interesting and powerful experience for me, as I've had the chance to reflect on how far I've come and how far technology has come since I started.
However, when it comes to applying those skills to an actual project, in many ways he hasn't learned a thing -- and that's not his fault. I distinctly remember how overwhelming it was to start poking around my first WordPress themes and plugins after I had taught myself the basics. There were variables and code snippets floating around everywhere. Even if I knew exactly what I wanted to do, finding the best place to implement my changes often took far longer than actually writing the code itself. Plugins and themes I would look at to try and improve my code seemed to pull the variables and functions they needed out of a magic hat. I had no clue whether the logic I was seeing belonged to PHP, WordPress, or the theme I was using, and I had no clue how to find out.
I knew that I had a solid understanding of the basics. I just didn't know why none of those skills seemed to help me when it came to actually getting things done. Without the platform-specific knowledge and without a broader understanding of how web pages were made and what functionality was available to me at any given moment, I felt powerless to actually implement what I wanted.
In my case, I overcame that barrier with stubborn persistence and lots of trial-and-error. I was fortunate in that, in addition to being a fairly quick learner, I had lots of experience with computers and a decent knack for Googling the right things to get the right answers. But watching my brother work through these same problems drove home for me how intimidating this process is to those starting out their dev hobbies and careers.
I know that I'll be able to walk my brother through these challenges. But what about everyone else? How many people give up on development because they couldn't apply the skills they learned to the platforms they were building with? I know I was in danger of this happening to me a couple times, and I had lots of innate advantages. What could I do to help create opportunities for those who don't share those advantages?
So, my question to you is: what platforms would you like to see included in this class? At this point, I know for sure that I'm going to include sections on WordPress and Shopify, as those are the two most popular web platforms I know of that allow for developer extensions. I also know that I'm going to cover React in some way, shape or form, as it's a ubiquitous UI platform that is, in my experience, very intimidating for newbies.
But beyond that, what else would you like such a class to cover? Are there any platforms you use often but don't quite understand, or any major platforms that allow developer extensions I haven't thought of? Any concepts that are/were particularly confusing to you?
I've so far considered including sections on Twitch, Squarespace, and a static site builder like Jekyll or Gatsby. But ultimately I want this class to be useful to new developers, so I'm open to covering any and all platforms that devs might use as they begin to apply their skills to real-world scenarios.
Thanks so much for your help! I'll be keeping everyone posted on the class as it's being developed. So stick around -- you might even get some free stuff out of it :)