Skip to content

WW challenge 1: learning better C by working on XJot

Since the beginning of this month (October 2021), I become officially jobless, after 6 years at YTEC. That’s not so much of a problem for a software developer in 2021—especially one in the Dutch IT industry, where there has been an enormous shortage of skilled developers for years. However… I don’t (yet) want a new job as a software developer, because: in the programming food pyramid, I’m a mere scripter. That is, the language in which I’m most proficient are all very high-level languages: Python, PHP, XSLT, Bash, JavaScript, Ruby, C# (in order of decreasing (recency of) experience. I have never mastered a so-called systems language: C, C++, Rust.

Now, because of the circumstances in which YTEC and I decided to terminate the contract, I am entitled to government support until I find a new job. During my last job, I’ve learned a lot, but almost all I learned made me even more high-level and business-leaning than I already was. I’ve turned into some sort of automation & integration consultant / business analyst / project manager. And, yes, I’ve sharpened some of my code organization, automated testing skills as well. Plus I now know how to do proper monitoring. All very nice and dandy. But, what I’m still missing are ① hardcore, more low-level technical skills, as well as ② front-end, more UX-oriented skills. Only with some of those skills under my belt will I be able to do the jobs I really want to do—jobs that involve ① code that has to actually work efficient on the hardware level—i.e., code that doesn’t eat up all the hardware resources and suck your battery (or your “green” power net) empty; and I’m interested in making (website) application actually pleasant (and accessible!) to use.

If I start applying for something resembling my previous job, I will surely find something soon enough. However, first I am to capture these new skills, if I also wish to continue to grow my skill-level, my self-respect, as well as my earning (and thus tax paying) potential. Hence, the WW challenge. WW is the abbreviation for Wet Werkeloosheid, a type of welfare that Dutchies such as myself get when they temporarily are without job, provided that you were either ⓐ fired or ⓑ went away in “mutual understanding” (as I was). If ⓒ you simply quit, you don’t have the right to WW (but there are other fallbacks in the welfare state of the NL).

Anyways, every month, I have to provide the UWV—the governmental organization overseeing people in the WW—with evidence of my job-seeking activities. Since I decided that I want to deepen my knowledge instead of jumping right back into the pool of IT minions, I will set myself challenges that require the new skills I desire.

My first goal is to become more comfortable with the C programming language. I have some experience with C, but my skill level is rudimentary at best. My most recent attempt to become more fluent in C was that I participated in the 2020 Advent of Code challenge. I didn’t finish that attempt, because, really, I’m a bread programmer. Meaning: before or after a 8+-hour day at the office, I have very little desire to spend my free time doing even more programming. To stay sane (and steer clear of burnout), that time is much-needed for non-digital activities in social space, in nature, and by inhabiting my physical body.

So now I do have time and energy to learn some new skills that really require sustained focus over longer periods of time to acquire. On the systems programming language level, besides C, I’m also interested in familiarizing myself with C++ and Rust. And it is a well-known facts that C knowledge transfers very well to these two languages.

Okay, instead of doing silly Christmas puzzles, this time I’ve resumed my practice by writing an actual program in C that is useful to me: xjot-to-xml. It will be a utility to convert XJot documents to regular XML. XJot is an abbreviated notation for XML, to make it more pleasant to author XML documents—especially articles and books.


2 Comments ( Add comment / trackback )

  1. (permalink)
    Comment by Rowan Rodrik
    On October 25, 2021 at 16:39

    Turns out that my plan won’t fly. Contrary to my understanding based on a previous talk with a UWV employee, today I had a lady on the phone who explained to me that I really am only entitled to WW if I’m actively applying for jobs which match my existing expertise. To postpone job applications is only a valid strategy in the case of “a great distance to the job market”, which doesn’t apply to me at all, because I can get a job for which my high-level language experience is sufficient in the blink of an eye. If I want, which I don’t. So, I’ll continue to focus on my writing (and not my programming) to advance my dreams without government support.

    Too bad that, after all, there’s no opportunity here to get back some of the ridiculous amount of taxes I have been paying (to pay for the jobs of the people whom I was talking to today, among other things which are sometimes useful to me in the small scheme of things).

  2. (permalink)
    Comment by Rowan Rodrik
    On November 24, 2021 at 22:28

    There was a lack of connectivity in my brain. Before Wiebe alluded to this, the circuit in my brain that was aware of the git diff --ignore-all-space option was not connected to the circuit in my brain that gets annoyed that XML diffs are so big when you neatly indent your XML and you change anything about the structure.

    Any other potential arguments to persist with xjot pale besides this now moot point, because ease of reading and writing is ⓐ really just a matter of proper tool support, and ⓑ an alternative syntax will only add to the necessary cognitive load of having to minimally also know XML through and through to understand this alternative, sparser syntax.