Personal Lessons from Growing as a Software Engineer - Part 2

This is the second part of my post on some lessons I’ve learned growing as a software engineer.

Favor ‘just-in-time’ learning over trying to learn everything at once

This is a big one for me because I feel like I wasted a lot of time due to trying to learn everything at the same time. My mentality was to learn as much as I could in any area I found interesting so that I would be able to hold my ground better in the event that I had a project to tackle, or something like that. Also, I just really wanted to know and understand how stuff worked. I suppose this could be considered ‘noble’, but I quickly found out that spending time learning and filling my brain with things I wasn’t practically using did more harm than good in several ways. For example, it produced a false sense of intelligence and knowledge, while simultaneously producin frustration when I saw people whom I felt I knew more than getting opportunities I felt I also deserved.

I think that if I were to start over, I would focus on learning a few things and learning them well–just enough to hold my ground and probably get a job. I have found that most knowledge is best gained in the context of work, solving real problems that impact users. The benefit of this is that there’s often a trickle down effect: as you encounter problems at work and attempt to solve them, you will have to carry out research that eventually goes beyond Stack Overflow :) to figure how things actually work. Because technology is interconnected and built on a couple of fundamental principles, you will find that you are able to apply what you have learned in several different occasions.

Also, technology is just really vast, and a lot of software engineering work is really about using a solution that does the job (at first) before improving it and making it perfect. Be ‘Agile’.

As I write this though, I can’t help but think about how the barrier to entry actually increases on a daily basis. The things one needs to know just to land an entry-level role these days just keeps increasing, so one definitely needs to keep abreast with technological trends. But in all things, balance.