You have just read a blog post written by Jason McIntosh.
Thank you kindly for your time and attention today.
Four years ago, I wrote of the strange place I found myself with Perl. Among other observations, I lamented the enormous effort required to re-achieve my complete mastery of Perl in any other language—Python or otherwise.
Two years after that—in a move that my 2018 self never saw coming!—I reset everything, hopping career tracks. As a tech writer, mastery of any programming language no longer seems crucial to me, while familiarity with several languages has become a desirable trait. This has opened the door to better understand Johnicholas’s suggestion of “learning to hold languages loosely”.
It’s time. I started learning Python at the start of the month. I’ve used it before, mind you—Barbetween was written in 2014 using a Python-derived scripting dialect—but this marks my first efforts at learning how to write general-purpose programs in this language.
A few week-one observations:
Perl is my hometown, and Python is the big city. I’ll always be from Perl, in the same way that I’m from Maine. I lived with Perl for so long that it has irrevocably shaped me, personally and professionally. For the rest of my life, I will always view every coding task or challenge as a Perl programmer.
I learn Python not to “leave Perl”, but to grow into the new opportunities for connection and learning only available through Python’s ecosystem, where so many of my friends already live and thrive.
In October Amy and I flew to Bangor to check in on my brother, who alone remains there after all the rest of my immediate family has passed on. On an early-morning walk through the beautiful and rugged city forest, we came across two chickadees romping around in the brush by the path, not minding us a bit. “State bird!” I whispered ecstatically, grasping Amy’s arm. “It’s on our license plate,” I continued. You see, in my joy, I had momentarily forgotten that this statement had not been true for me in well over 20 years. In that moment, I was a Mainer once more.
I expect that I will return to Perl now and again and this is what it will feel like.
Oh my god web results for popular programming questions are terrible. The top hits for every search phrase with
python in it lead to pages that technically contain the information I seek, but which clog up the browser window with animated ads, subscription pop-ups, and sliding survey pitches. Squinting to see past them, I machete my way through whole screen-lengths of meandering opening paragraphs to grab the single line of example code I want and flee. It’s been a long time since I’ve had to use the web this way, and I don’t remember it being this bad!
There is the Hints from Heloise-style tip I learned this year of adding
!python to restrict my results to Stack Overflow and the official Python documentation, respectively. That helps! I just… ugh. It makes me feel bad knowing how awful the “untreated” search experience must be, for most people.
Learning with friends via Advent of Code is great. That I began this trek on the first of December is no coincidence. For the first time, I am participating in Advent of Code: a collection of 50 programming puzzles, with one pair released every day through Christmas.
Six days in, I’ve found the puzzles so far small and pleasant. Each day presents a relatively simple data-processing problem, with a large input file and two whimsically worded scenarios describing a way to process that file into a single number or short text string. The website has an answer-checker, but doesn’t prescribe how you arrive at your answer, and doesn’t particularly care how long you take to get there. (There is a time-based “leaderboard”, which I ignore.) Reading about a chapter a day of the official Python tutorial in parallel, I find this an ideal setting to meaningfully learn a new language at a comfortable pace.
I started an Advent of Code channel in a freebie Slack instance that I inhabit with friends. A half-dozen of us have been playing along since the start, sharing and discussing our solutions with each other. I admire my experienced Pythonista friends’ elegant and educational techniques, and I have a great time horrifying them by starting every script with
import re and solving every problem by shredding it beyond recognition with regular expressions, in the proud tradition of my people.
I will always be a Perler.
To share a response that links to this page from somewhere else on the web, paste its URL here.