I was just reading yet another Twitter thread from someone1 trying to get started with programming without any prior experience, and documenting the extensive trials and tribulations they went through in the process. As a software engineer, I understand the value of being able to get up and running quickly and easily with new tools and projects; making it easy and pleasant for new developers to contribute saves time and money, improves morale, and is just the right thing to do. These same benefits apply when novices are able to pick up programming as a skill to help them solve their problems.
Keeping programming and the concerns of programmers in the mainstream can also guard against incompetent accusations (like nitwit Missouri Governor Mike Parson) and fend off possible dystopian scenarios by giving more people the knowledge to immediately understand how wrong they are. Gatekeeping doesn’t benefit the profession and serves only to stoke the egos of insecure people. Programming tools that are accessible to novices are therefore beneficial and important.
But, and this is the part that I don’t see discussed often enough, critiquing every programming tool or language based on its accessibility to novices is not valid. Programming is a skill everyone should have access to take up, but software engineering is also a profession that people dedicate their careers to. It is entirely acceptable for tools and languages to have a particular audience in mind, and that audience might be “professional software engineers with training and experience.” Consider some examples from other areas:
Anyone can dig in their garden, but nobody hates on CAT for not being able to use a 500-ton mining shovel with no training. Anyone can look at a watch and tell time, but nobody complains that it’s more difficult to set up a network time server synchronized to GPS satellites with a roof-mounted antenna. The size and/or cost of these tools makes it obvious they’re intended for professionals. But with programming tools, we’ve almost become victims of the success of the open-source model: literally anyone can download and install Visual Studio Code and .NET or Node.js or Python and start using the same tools that experienced professionals at billion-dollar enterprises use for major projects.
Unfortunately, people think that because programming tools are so easy to obtain, that demands that they must also be easy to use, and that’s just a false assumption. When tools are designed and built for use by experienced professionals, accessibility to novices is simply not even relevant, and trying to make that happen can compromise utility or productivity for the very professionals they were supposedly made for in the first place.
Ultimately, people need to think about programming in similar terms to other DIY fields: anyone should be able to put together some furniture from Ikea, but building furniture from raw lumber takes some more effort and planning and if you try to just plow through it having never used power tools before, you’re in for a learning curve. This isn’t being elitist, it’s not gatekeeping, it’s just the reality that things are complicated.
I will not name the person or link to the thread because I’m critiquing the general argument, not the particular individual. ↩
It may not be obvious, but I’ve actually done a lot of work and made a lot of progress on the site over the weekend.
First, there’s actually some new content. Original Wadny band member Dick Hull provided the story behind the name―which used to be hosted on his website, but went offline when he switched ISP a while ago―as well as a few additional pictures. I also brought my blogroll and the colophon up to date, although I should do a deeper dive on how the site is built and deployed.
Second, I made a few more tweaks to the layout and design. This was mostly detail work to a few pictures, but the most visible change was making the seasonal header/navigation theme change happen automatically in JavaScript. It will need a little more work in the future because I don’t have pictures and colors picked out for summer and fall, but we’re a while away from that at the moment.
Finally, I went back over basically all of the content pages on the site, including all the old news posts, and converted most of the source material from HTML to Markdown (technically Kramdown, which is the Markdown variant used by Jekyll, which is the tool that powers this site). That may have been a little overkill, but it made it easier to read and maintain the code behind the site, gave me a chance to proofread and correct some typos and bugs, and provided a few improvements. For an example, the old post on comment sanitization now has syntax highlighting in the code samples. More importantly, all the links to different parts of this site now use link tags in Jekyll which get validated when the site builds, so I can ensure I don’t break links going forward.
Some of this was pretty tedious, but hopefully most of the tinkering is done now, and I can feel comfortable using the site as an outlet for ideas again when they strike me instead of feeling like I have to fix the site first.
For probably the first time in its history (mostly because its active history predates the mobile web), wadny.com now
has a usable mobile design. It’s not very exciting—the normal menu just gets overlaid on top of the content, and there’s
a button to toggle it—but it works. It also has the convenient side effect of solving some layout issues that happened
in a narrow window at high zoom levels, because it just automatically transitions to the mobile layout once the space
becomes sufficiently cramped.
There’s still some work to do (as noted at the top of the index page), but the site should hopefully now be usable for
everyone, regardless of how you browse the web.
It may not be the splashiest website resurrection ever (it may even be thoroughly mediocre), but at least things are
back on the air now. I even had a great idea for a real actual post! Then I forgot it. Maybe it will come back to me.
In the meantime, I ditched the over-engineered AWS scheme I had planned and switched to
Cloudflare Pages, which may not be quite as infrastructure-as-code-y,
but was considerably simpler to set up. I’m not quite sure I like that Cloudflare is running the build now instead of a
GitHub Action, but at least it works.
I’m also playing around with some of the source and converting some pages from HTML to Markdown to make them easier to
edit in the future, and using Jekyll’s link tag to help
maintain at least internal referential integrity. I don’t think I have the stamina to go back and fix every broken link
(I don’t even know how many there are), but at least a few of them are fixed now. Hat tip to
Jeffrey Zeldman for having blog posts from 2004 that still have the same
URL. I also changed the front page to show the full post contents instead of just excerpts; I realized it was not at all
obvious that there was more content to look at for longer posts, and even a page full of long posts is not overwhelming
enough to bother truncating them anyway.
There’s still some cleanup to do and improvements to make, and it remains to be seen how much I have to write about in
the first place, but it’s finally in production.