I will not have this be a sequel that I never write!
I say “learn” because the class was largely self-service: the professor put up a website with “lessons” that were to be followed each week. I accept that this is the way that online classes are supposed to work, but it seemed to me that there was a lot of copy-pasting commands and code from one place to another. For example, the first week setup included:
- NodeJS and NPM
- Visual Studio Code and “recommended” plugins
Woah! That’s a lot! And there was no introduction to other concepts related to computing – even questions that most may assume they know the answers to should be answered definitively so everyone is on the same page, such as:
- What is a file? How are files stored on disks? What is the purpose of a file system?
- What is a plaintext file and how is it different from a Microsoft Word document? How can they be edited?
- What is an operating system?
- What advantages does a terminal offer over a graphical user interface?
- What is a Git repository? How does Git store information about the repository?
- What is the Internet and how are web pages made? What is a web server?
To technical audiences, these questions may sound stupid – but I have spoken with many people – some of whom were my peers at UMD – and I think it makes sense to use questions like these as a baseline for beginners1.
In my last post I created a list of criteria for a successful programming learning environment:
- Easily accessible
- Friendly user interface and user experience (UI/UX)
- Quality documentation
- Low effort, high cool
The problem I see here is that virtually anything more complicated than
requires a lot of boilerplate like setting up HTML files to interact with or knowing what a web server is (or at least why it doesn’t work when you send your friend a link to
Visual Basic may have been a clunky language, but the development environment was amazing. In about 30 seconds, I could create a window, add a button, add some code to make a popup when the button is clicked, and start the debugger. And that was a fully-featured program!
Low Effort, High Cool
- One of the best classes I took in college was a Computer Security class that did exactly this: it taught security by teaching computer and programming principles from the ground up. Yes, by that time I had been using Linux terminal commands for the better part of a decade but I still learned a lot, and I am sure the rest of the class appreciated it too!
- Visual Basic solved this problem by, of course, making everything look equally crappy.
- Not at all hypothetical, this happened to me today actually. And yes, I did know that I was using Jest, but I still had trouble finding docs for the exact version I had.