In a wonderfully uncomfortable scene in the 1992 movie Glengarry Glen Ross, a hotshot salesman from company headquarters played by Alec Baldwin delivers the news to the salesmen at a New York City real estate office that two of their number will still have a job by the end of the week. The remaining three or four will be sacked. Who will keep their jobs? The top two in sales, of course. Dollars through the door. Closed deals. Those are the metrics.
In the climax of the scene, Baldwin writes three letters on a chalkboard: ABC. He then delivers the key to the real estate business and, one suspects, the key to all of life. Always Be Closing. If you aren’t closing, you aren’t selling. If you aren’t selling, you’re not going to have a job at the end of the week.
In this post I’m Alec Baldwin. Hopefully not as mean or arrogant. I could be, I suppose, but I hope not.
No, my message to you, while not as catchy as ABC is ABL: Always Be Learning.
I am currently helping to run a local developer meetup and at the beginning of each meeting, I ask the question: What are you learning?
It’s an important question, one we need to ask ourselves and each other with some regularity. It’s important in general because as human beings, learning is almost synonymous with growth. If our learning stops, then we stagnate as people. We are never exposed to new ideas, our own entrenched beliefs are never challenged, and we become one-dimensional and boring. And in our culture, boring is the unpardonable sin.
More importantly for our purposes here, it’s vital for our careers as technologists and software developers. In fact, I would argue that continual learning is the single most important thing you can do to advance in your career.
But Ken, always learning implies you’re never actually doing the work. You don’t get paid to learn. You get paid to code.
Good point. Let’s ponder that.
What does it mean to do the work? If you can answer that question, that means you know something. If you know it, that means, without fail, you learned it at some point. None of us is born with the knowledge to create a REST api or write a left outer join in SQL. I realize there are those that walk among you, whose keyboard you are not worthy to touch, that seem to just know everything. They pick up new skills or make logical connections so quickly that it seems there was never a time when they didn’t know what they know.
But that’s just silly. Of course, even the best and the brightest had to learn exactly what you need to learn.
Moreover, what we are able to do is limited by what we know. If you want to do more, then you must learn more.
Not at all. Fortunately, we learn best when we learn a little and then apply it. Then learn a little more, then apply that bit. It can actually be an impediment to learn too much up front about any particular skill.
This is one of my greatest weaknesses. I tend to think I need to know how a watch works before I can use one. I’m always better off learning enough to get going, trying it out, then going back and filling in the gaps in my knowledge. In this scenario, practice and theory advance together, not in lock-step by any means, but in general.
The goal, of course, is understanding. There is absolutely no substitute for understanding. Without understanding we do things without knowing why, and when something goes wrong…and something always goes wrong…we cannot figure it out. Stack Overflow, here we come.
And we’ve all had the experience of making a change in our code that ‘fixed’ a problem, but we don’t know why. Is it really fixed? Maybe. But then again…
To be fair, much of what we need to know and understand is arcane and beyond our understanding. Whenever we use a new third-party library, for example, we always come in with preconceived notions of how it should work, based on our past experience and on our understanding of its functionality. And we are invariably not just wrong, but not even close.
The insidious thing is that we can become quite proficient using technologies we don’t understand, and this creates an illusion in our minds that we actually get it. Psychologists have discovered a tendency among us humanoid bipeds called the fluency trap. When we first read a passage on something new or complex, we don’t understand much. If we reread the passage, we feel like we get a little more, until after a third or fourth reading we feel as if we understand it pretty well.
Many times, it’s a lie. We don’t really understand the concepts, we are just more familiar with the words and vocabulary used. Want proof? How many times have your read something over and over again, convinced yourself that you understood the material, and then babbled like an idiot when you tried to explain it to someone? Guilty, many times over.
By the way, this is why when studying for a test, reading and re-reading the text is not a good practice. We feel we know material that we don’t really understand. This applies to college classes and in studying for a certification exam or an entrance exam. There are better ways, but that’s for a later article.
One of the most effective things you can do to enhance your learning and gain better understanding of what you study is to do it with another person, or a group of other persons. We are better together when it comes to developing software, and we are also better together when it comes to learning something.
This is not a new concept. Many of us joined study groups in school to prepare for tests. We often form groups around certification exams. Even when we gather around the proverbial water cooler and discuss esoteric technical topics of great import, there is something magical about the confluence of ideas that can develop. We learn from one another. We know that.
What I’m suggesting here is that group learning should be a part of your regular cadence of career development.
The ideal is to find such a group and meet together regularly, say, once a week. For most, if not all, folks, this is impractical. A monthly meetup, though, would be a great second choice You get to meet new folks, you get to hear about some topic or perform some exercise, and there is usually pizza! Win, win, win!
We’ve wandered a bit, but I hope you see that it’s important to Always Be Learning. Learning itself is not the goal. Understanding is what we strive for and what will drive our careers forward. Armed with understanding, we can not only do the work, but we can solve problems, create innovative solutions, and mentor others to do the same.
You will be the coveted unicorn.