Hacker News new | ask | show | jobs
by godelmachine 2858 days ago
Would you please provide an example on how one proceed with T shaped learning and expertise?
3 comments

That's a good question. I left that intentionally broad so as not to prescribe a certain type of learning system or self-education.

There's a lot of ways to learn anything, but I would say that the first step is pursuing a variety of subjects that you find interesting, and even some you think are boring. A lot of seemingly boring things I've found turn out to be quite fascinating when it comes down to it. (e.g. database design)

Over time, you will pick things up, and put them back down. You will return to some, and stay away from others, but eventually you will build a repertoire of knowledge and experience in a variety of different fields. I would also bet that at least one subject will interest you so much that you keep coming back and in which you will ultimately develop expertise.

Experimentation is the name of the game!

Thanks for replying, Giles!

I see just dabbling in whatever interests and experimenting with them takes one forward.

What you wrote is profoundly impactful.

I work in cloud, and one of the things I look for when recruiting solution architects -- another role where broad is a pre-requisite and some narrow depth is expected -- is systems design skills. Besides whatever you study and learn how to do as a programmer. these days it's not often commercially applicable unless you know how to make it run well in the cloud, with all the caveats that apply.

Among the things that aren't common knowledge among basement programmers: network configuration (VPCs, load balancing, CDNs, security), security/IAM, non-relational datastores, ML model development & training, and the list goes on and on and on (microservices & containers, devops, serverless, advanced logging/monitoring & problem solving, high availability, HPC/grid, blockchain, and oh so much more.

The point I'm trying to make is that you can become a T shaped programmer by continuing to study and learn various programming skills, but you may want to alternatively consider becoming broad in ways that expand your value beyond just coding.

Thanks. That's valuable info indeed :)
A phrase I came up with that I like more than "T-shaped" is "molecular skillset". A chemist would probably laugh at me but I think of it as developing seemingly independent skills (molecules <--> skills, experience, knowledge...) that end up forming bonds with other skills, sometimes in surprising ways, that together prove really powerful and can bond up even further. "T" and other tree/tendril-ish shapes are then just special cases of different bond arrangements. You can acquire skills haphazardly (though as a serial dabbler I'd caution against actively pursuing the dabbler's path without a ton of introspection), you can also take the efficient road like a university sequence where most skills are visible and have unsurprising connections to the next skills. You might have to take some seemingly unrelated course too, but you can look at those optimistically as another potential source of surprising bonds. Duds are of course possible -- I have some useless things in my brain that I don't think will ever connect with anything useful, at best they might aid in social signaling one day. (A lot of education is just signaling to show you can talk about a lot of stuff...)

Trivial example: at some point around age 17 I installed Gentoo successfully and learned a lot about gnu/linux (and some bsd) in the process. Lots of little skills formed and connected, and they continue connecting with other things to this day. Got my initial hook on vim then. Saw how nicely colorized my terminal prompt was and that opened the door to many bash customizations. One of the skills I had to learn was to understand how hard drives worked (at least to the ability to successfully partition, format, and boot them -- I did accidentally wipe a windows xp partition the first time). Some years later (age 20?) I had accidentally rm'd a couple weeks of java work without having committed it yet. But prior knowledge of the system let me know the data was still there, and I was able to recover it by scanning the disk device partition directly for the bytes. (Ended up using "grope.tcl" referenced here http://wiki.yak.net/592 which was a lot more efficient than what I was making.)

That’s way too exciting !! Really fresh perspectives.

I once tried upgrading my Windows laptop while having very less space in C drive. Windows totally crashed. After that I used live bootable Ubuntu, but would still like to retrieve all of my windows data.

Do you know how can I do that?

https://www.cgsecurity.org/wiki/TestDisk might be able to help you, it helped me once when I tried to resize some partitions and ran into problems.
Many thanks. That’s awesome!!