This year, I’ll be writing Off-Topic posts on some Sundays. They’ll always have Off Topic in the title, so if you’re not interested in musings about learning, life, and technology, feel free to skip them. Obviously these posts are not mostly about public transport, but I am sure it’ll come up from time to time.


Background

Growing up, I always had a passion for transport, which developed into a passion for public transit as I grew older. But, I had also always had a huge interest in technology (I did a lot of the usual things young technology nerds do as a kid — including building Lego-based robots, and eventually building computers and a 3D printer when they were first).

That passion was a big part of why I decided to study Computer Science in university (I had previously been very interested in Architecture), which was a pretty awesome experience. In choosing a city to study in, Toronto was obvious: not only did it have the biggest transit expansion in Canada (and I’d argue in the Americas), but it also has one of the best universities to study computer science at (I was really interested in machine learning back in the early 2010s and Toronto was and is quite a hub for it).

The view I enjoyed every day going to school.

While I actually really enjoyed doing my degree, learned a lot, and felt very challenged, I feel bad to say I let my interest in technology and software kind of sit by the wayside for the last 5 years or so as I focused on transit. This was probably not a good sacrifice in retrospect and I think people often let good things fall away when they are focused on life.

As I discussed in my New Year’s Goals post, I got back into reading (I read maybe 2 books in 2022 and 23 in 2023). This was because in retrospect my voracious reading of nonfiction and publications such as Popular Science (rest in peace) — which I would take out en mass from my school library — was a big aid to me later in life understanding science and technology. It brings me back to the idea that certain intellectual investments pay dividends over the long term.

In a similar way, my knowledge of computer science, computer hardware, and to some extent electrical engineering has helped me think about lots of other topics, and I don’t want to let that go. Surprising as it might sound, I think I know about as much about tech as I do about transit as that was probably a big part of why my YouTube channel originally had the tag line “Transit, Technology, and more”.

The Plan

So how do I plan to “exercise the muscle”? (For what its worth, I think this is actually a bit of a good “never studied Computer Science”, but want the knowledge playbook)

Hardware

Computer hardware is something I enjoy so much that I do sometimes regret not going into electrical engineering or computer engineering. I was surprised how much of the Computer Science crowd in university was uninterested and often unaware of hardware (the pinnacle of this was a CS professor I really respect couldn’t get a projector to work properly!).

One of the last computers I built.

One thing I will do this year is build myself a new computer. The last computer I built I sold off (and made money) during the great GPU winter of 2020/21. While I’ve loved using my Apple Silicon-powered MacBook Pro, I quite honestly enjoy building computers and not only understanding how they work, but also the potential for self-repair and longevity when you can invest in good components and take care of them.

A video I quite enjoyed about Linux workstations and one of the reasons why I’m making the switch!

A well-built computer can last a shockingly long amount of time, and warranties for high-quality components often run 5 years or longer, which is way better than even the extended warranties you can get for most consumer technology these days. To be clear, while I do like ARM and Apple Silicon (though I’d love to see Risc-V take off long term), I do not like Apples attitude towards their customers (I often feel like Apple wants me to be grateful that I can buy their products), and I do not like the locked-down and put-everything-in-one-package design direction (which is kind of Apple’s culture to be fair), even if it can allow for incredible optimization and production scalability. There have actually been some really interesting developments slowly progressing in the desktop computer world such as ATX 12V. I am excited to get back to the fun (and the stress) of building a machine and I will likely write an article about the components I chose when I actually end up building it.

If I somehow find the time this year, and manage to get the FPGA I gave to a friend back from them, I might even dabble in some software-defined electronics or other electronics projects this year. Creating small electronics projects has never been my strongest skill, but it’s one that I should be far, far better at especially considering its relevance to things like train and tram electronics.

Software

The bulk of my time devoted to “getting my brain back into tech” will likely be spent on software — it is after all what I spent so much of those years studying doing.

The sort of starting point for a lot of software work is getting back used to working in the command line. I used to be fairly good, but I can count the number of times I have opened the terminal on my Apple Silicon Mac on one hand. Ideally, this time I will record more of my learnings into notes that I can refer back to — something I was not that consistent with in university. I do feel like there should be a command line course in school, because I feel that by the time most people get comfortable with it they are finished their degree. Just thinking about writing code and getting it up on my Github I’m realizing I’ve forgotten almost entirely all of the various git tools and commands…

For data structures and algorithms, I’m hoping some of my old notes come in handy, but the worst case scenario is I crack open CLRS and start studying. While I really enjoyed the data structures and algorithms courses in university, they were not long enough or comprehensive enough to be satisfying, and courses of this type always feel rushed. Actually stretching my logic and algorithm skills will probably just be solving lots of Leetcode problems, which has the extra benefit of letting you practice different languages from problem to problem. Just doing a ton of Leetcode problems seems like a great way of getting back up to speed.

There are also certain subdomains I want to really immerse myself in — things I took a class on in school and enjoyed, but never really followed up because doing stuff your interested in is hard when you’re taking a ton of classes at once and trying to do well in each of them.

One of those topics that was super interesting was functional programming, and not just basic lambda expressions and functions taking other functions as arguments obviously. I enjoyed my functional programming class a lot, and learning Haskell and Lisp was a lot of fun, but frankly there just was not enough time in the class for me to absorb the material and so some concepts didn’t full land with me until it was done. Even more annoying was the fact that we dabbled a bit in parsing and interpreters at the end of the course, which was brief, but very interesting. Diving back in seems like a super interesting idea and an opportunity to really truly deepen my understanding — which excites me.

Operating systems was another class that was super interesting and exciting, but where I just didn’t have enough time to get into enough depth. I really feel like classes like that were called things like “Operating Systems”, but were really just very brief intros to the subject. My hope is to try a few different Linux distros on that computer I mentioned building above.

I also would love to learn a “trendy” new language, since much of my degree was spent in the trenches in Javascript, Python, and Java. Golang has long interested me, but I think Rust might be the language I decide to spend my time trying to learn (I remember being introduced to it when it had just been released many years ago during a visit to Mozilla Toronto).

Proofs

As I highlighted in my New Year’s goals post, I do plan on getting back into writing proofs (that is of the mathematical variety), which I explored a fair bit in university, and which I found incredibly interesting. The issue I think with proofs is they sometimes require a lot more time to understand than you can or are willing to devote to them, and so sinking lots of time into understanding and expanding my knowledge of the topic excites me. I saved (wisely I’m realizing) a lot of the content from my university courses and that will give me some stuff to look at. I’m also thinking about getting “How to Prove It” and going through that. I also want to learn how to prove the basics of Calculus, which my (less advanced) first year Calculus course in university (it really was basically just a repeat of high school Calculus) didn’t cover.

Why like this?

You are probably wondering — why the decision to “get back into” a topic with this torturous barrage of different topics? For me, doing a lot at once makes it fun, but I also find that when I start looking at one part of a topic like this my brain starts thawing the related elements and so just trying to touch all of them in quick succession will (I imagine) help speed things along. It’s a lot like getting back on a bike.

As I mentioned before, it also takes some time for some of these topics to sink in and for my mind to fully grasp them, so having multiple topics I can “round-robin” through helps give me that time.

Truth be told, diving in headfirst is also a mechanism to try and overcome one of my big personal failing, which is that when I feel intellectually intimidated or don’t understand something sometimes I become avoidant and turn away from it. This year I want to do better.

I am often intimidated when I don’t understand something and become avoidant, that’s hard to admit — but this year I am diving in head first to tackle it!

21 responses to “Off Topic: Getting my brain back into technology.”

  1. I was the IT columnist for the Toronto Star from 1998-2001. I understand your love of the hardware. I lived through the great contraction of both Hardware and O/S companies.
    As MFST and Apple took over it became apparent it better to own the tracks of the railroad ( metaphorically) and let other build the cars

    I love to discuss how Kickbacks guarantee that public software programmes are always over budget and filled with bugs

    1. Well perhaps government software programs, but not open source!

  2. You face the problem that many smart people face. The world and the possibilities of technology are so interesting. There is not sufficient time to do everything.

    1. Not enough time truly is the problem! Not enough brain cycles!

  3. I built a computer back in 2018 and it is still going strong without any apparent need of any upgrades yet. I am much further away from my university days to consider going back to any of that; but I have gotten into re-learning fundamental level physics and chemistry as my interest is more in science compared to yours in technology. It sounds like you have a mountain of interests; with very careful planning you may be able to do about half of it.
    Unrelated to your off-topic; a local news article here was about improving significantly the transit offering on 6km stretch of Jean-Talon street here in Montreal with a tram being proposed. One critic says only build a tram if there is a vision for a tram network, otherwise do a BRT. My idea of an initial tram network is to build a rectangle where Jean-Talon is the long part of an east-west side, so to begin it would be a closed loop with trams running in both directions without have to do an end loop to turn around. I’d be curious if you had any thoughts about this (my idea, or the idea of tram vs BRT for Jean-Talon or a whole other tram network). My final point about this is that they are still consulting about it – I so wish you could be there to advise them.

    1. I am always open to talking to folks about transit planning, but they don’t always listen.

      I concur that a very small project probably does not make sense – but I am also just generally skeptical of trams in Montreal because of the capital cost escalation crisis in the city. If 5 metro stations are 5+ billion CAD, whats a 5km tram going to cost?

      1. I cant even get the TTC to run a shuttle from Sheppard to Sheppard w when the close the line 1 from Sheppard to St Clair. With 80 per cent of people going south of Bloor it would save 50 per cent cost and one hour travel time

  4. Several remarks from someone who got his Bachelors in Electrical Engineering:

    1. Unfortunately there’s a lot of gatekeeping at competitve high schools where if you are in the “slow” math track (i.e. you never take Calculus in high school), classmates name-call you and discourage you from pursuing a career in tech/engineering. That was my experience, and as a result I didn’t invest time in exploring engineering in high school–something I regret.

    2. Physical energy is key to learning EE/CS. No matter how disciplined you are, idiopathic hypersomnia plus depression can leave you cognitively unfit to tackle school–which is why I had abysmal grades in upper-division engineering. It’s amazing how much energy you have, keep it up!

    3. Embedded software development is much more about memorization than being able to code. At least that was my job. Hardly wrote any C++; mostly conducted bench tests using in-house, proprietary bench test tools with little to no documentation and bench test setups where ever detail was hidden in a massive excel file in a massive repo (we wrote software for combines, whose complexity makes automotive systems look simple.) It was too much memorization–which is why I’ve re-focused my career on traditional software algorithms, stats, and data science!

    1. 1) I do agree re. the situation in high schools, I also think we pretend stuff is harder than it is. But, we also aren’t honest enough about how much work you may need to put in to “get” things.

      2) I actually have a problem not different from this, or at least I did during university. A medication I was taking at the time meant I feel asleep in probably 10% of my classes . . . yikes.

      3) I feel like CS actually just generally has a lot of memorization in it, I need to go back and remind myself of the time and space complexity of various algos and data structures and how they are implemented!

      1. I think proofs rely heavily on memorization–it’s like being a lawyer with a large arsenal of laws in your head that you use to prove your case. From my limited proof-writing (stopped at Discrete Math) I found that often the seemingly least relevant facts/definitions you could glean from the problem description lead to the solution.

        Algos often resemble everyday situations. For example, hash tables remind me of valet parking in a circular parking lot with a one-way aisle.

  5. It feels like we just got to know you a little better. I’m definitely interested in more Off-Topic posts about technology. Congrats for making plans and taking steps to revisit and rekindle such an old interest.

    1. Thanks – this is . . . great to hear!

  6. If you like CS and EE you might want to look into micro controllers. I think there is a lot of growth there and very interesting uses on the continuum between hw and sw. Even transit will use rely on more sensors and micro controllers.

    1. I agree and have not spent nearly enough time working with them!

  7. […] Off Topic: Getting my brain back into technology. […]

  8. Abdullah Rizwan Avatar
    Abdullah Rizwan

    Have you ever thought of going to study at the University of Waterloo?

    1. Studying what?

  9. I’m currently a first-year CS student at UAlberta, and while I do find tech in general interesting, my favourite thing to explore is operating systems. It’s fun to explore older versions of common operating systems or more esoteric systems. I also like user interfaces in particular, because I enjoy their visual design and interacting with them. Funny enough, those coincide with my interests in transit, which are in how the systems as a whole work, and how people see and interact with them (through system maps and signage designs).

    1. Very cool! I too love operating systems

  10. Starting a journey to reconnect with my love for tech – building computers and exploring programming. Excited to refresh my tech know-how in this learning adventure!

Leave a Reply

Trending

Discover more from Reece Martin

Subscribe now to keep reading and get access to the full archive.

Continue reading