Education in tech is hard, here’s why.

Calder White
5 min readJul 20, 2019

I’d like to challenge what the world thinks about the talent shortage in tech. Talent is not hard to find, technology is hard to teach. Let me explain.

University of Waterloo’s M3 Lecture Hall. Licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license. (source)

Technology is a field with tremendous breadth and depth. It spans from AI and cryptocurrencies to apps that deliver meals to your doorstep. You can learn about how to make your first webpage or how a Mosfet transistor works. This incredible span of topics creates a problem when the idea of “learning technology” or “working in technology” is presented.

Determining what range of knowledge is required is a constant problem in technology. On top of this, the word “technology” and the topics it covers are changing rapidly. It’s no longer good enough to teach specific concepts or languages. We need to teach students a whole new way to think. Simplification of problems, isolation of problems, problem solving. These are skills that need to be applied no matter what you are working on.

The challenge

Helping others with technology is something I love doing and have deeply integrated into my own life. I enjoy this challenge, but I also believe it presents an issue in the progression of the next generation of developers, researchers, and engineers.

The challenge starts with the task of balancing understanding with practical knowledge. For example, not everyone needs to know how memory management works, but it can be useful when explaining why one’s code produces a buffer overflow. These relations are amplified when expanded to the full range of what technology is all about, creating a massive tree of interconnected topics.

The tree below illustrates the way I think about how topics in technology are all related to each other. The topics spread out in breadth as they split off into more specific groups. Depth represents the level of understanding and in a sense, how close to the actual moving parts of a system you are. For example, programming webpages has a much lower depth than writing assembly code to run on the x86_64 platform. We move horizontally and vertically on this tree in an attempt to balance these two aspects of learning.

It’s in moving around this tree that knowledge is lost when teaching. Students are traditionally taught one specific level of one branch all at once. This would take the form of a course. For example, a course on basic C++. In the real world, you need to understand several different nodes of this tree simultaneously. You need to know how build systems work, understand the basics of different CPU architectures, and how to integrate third party modules like boost. This is just a small list of the many interrelated topics surrounding basic C++ development. Exploring these different subjects quickly can be very confusing for students coming from a traditional academic background. It’s a new way of learning that those who work in tech have come to adopt.

It’s not the fault of the teacher or the student. It’s just that technology in itself is so broad yet interconnected; understanding must be spread throughout the entire subject for one to be productive while retaining some understanding of the underlying processes.

So, what can we do?

Education is a topic that needs to be fixed at the root. When helping others with code, I always find myself backtracking through what they know. I have to figure out how to explain how different systems and technologies fit together while keeping in mind what they already know. If students are taught to think this way from the beginning, they dramatically reduce their time spent trying to backtrack in the future. Students can still learn about one particular topic. However, they must be taught to think in a greater scope than what they are being taught. This greater scope prevents misconceptions in the long run that are spawned by assuming how things work.

Additionally, it’s not just the teacher’s responsibility to expand the scope of what they are teaching. Students must be curious and extend their learning as well! People have a habit of wanting something to “just work”. In fact, it’s extremely prevalent in tech. This is great in the short run but doesn’t scale well as the tasks become more and more specific to your particular project. The reality is, we can always do better to educate ourselves.

Take a second to understand what you are doing. I am guilty of neglecting this too. It’s easy to be ignorant and tell yourself you understand something. In personal experience I have found that the more you want to do with a piece of technology, the more you have to know how all its pieces fit together. Think of jumping in without understanding as “Learning Debt”. Learning debt is my riff on Technical Debt. Over time you build up a pile of things you think you know about, but in reality do not understand enough to use them properly. Don’t try to understand enough to pass the course. Don’t try to understand enough to get the job done. Understand enough that you feel confident in what you are doing and confident in yourself. Don’t treat your side projects as side projects. If you take the easy route in the side project, you have no choice but to take the easy route in real life. In essence, practice how you play.

So in the end, it’s really up to both the student and the teacher to create a meaningful experience when learning aspects of technology. If either one of you slacks off it’s not so simple as catching up. You need to constantly be engaged and willing to put your full effort into understanding, and for teachers, making yourself easy to understand. I think these challenges validate technological research and education. It’s a challenge, and that’s why not everyone’s doing it. As the saying goes,

If it was easy, it would have already be done.

📝 Read this story later in Journal.

👩‍💻 Wake up every Sunday morning to the week’s most noteworthy stories in Tech waiting in your inbox. Read the Noteworthy in Tech newsletter.

--

--