The powerful methods for analyzing data and practicing machine learning have emerged from a legacy of traditional and relational databases—but innovations such as this do not catch fire without “legacy skills” being passed on as well. Sharing our knowledge and skill sets with others is critical for modern advancement and to make room for new ideas, especially as our technology stacks become increasingly complex and specialized. Sharing what we know not only helps others in our organizations, it also helps our own careers as well.
First, let's address why sharing knowledge can be so difficult. There are a lot of reasons why technology professionals may struggle to share knowledge and train others, including:
- A lack of free time
- Feeling uncomfortable transferring our knowledge and skills to someone else, and becoming "replaceable"
- Concern that our non-technical colleagues and managers will not appreciate our ideas or understand them
- A belief that our skill sets require committed, specialized training and cannot be learned casually
Of course, all of these concerns may be valid in some situations, but they should not stop you from trying to make an impact by marketing what you know. When you share what you know and give others the means to replicate what you have done, remarkable things can happen professionally as well as personally.
Share knowledge to help yourself
Let's face it: as technology professionals, we work long hours. We work at the office, at home, and in our spare time. A lot of us, including me, do it because we love what we do. When we are not "working," we research new technologies, spend time on GitHub, and read technology blogs and journals. Many of us are passionate about what we do and are excited by it. That is what makes the technology field unique, and I would not trade it for any other line of work.
But at the same time, wouldn’t it be nice to have work-life balance? The IT industry is woefully understaffed and this affects us directly. If only we had help and made time to train others, perhaps we could get closer to a 40-hour workweek. Deadlines would not seem so daunting, and we would have time to research and learn new ideas. Our workload could be shared rather than all of it being burdened to one “expert” individual. Nobody wants to be stuck in “maintenance mode”—constantly putting band-aids on yesterday’s technology and never getting a chance to step back and ask: “is there a better way to do this?” It amazes me how many developers still write code like it is 2004, and the experience of solving today’s problems with yesterday’s tools is too often accepted as the “way things are.” As technology professionals, let’s always be learning and be eager to share what we know so someone can take ownership of our legacy and we can move on to greater projects.
There is another, more subtle way in which sharing your skill set can benefit you. If you attempt to help your non-technical colleagues and managers understand what you do, you create the possibility that they may appreciate your work in a deeper way. Others will see how much effort it requires on your part to have a certain level of technical understanding, and you never know what impact this may have behind closed doors. It, in fact, becomes an effective way to market yourself.
Share knowledge to help your organization
A good organization evaluates metrics and performance based on value contribution. If you are decent at your job, you are contributing value (however, value can be hard to measure). But if you are able to consistently and successfully train others on what you do, you are increasing your value exponentially—and this puts you in a position of leadership. A primary aspect of effective leadership is being able to spread your knowledge to others, increasing yours and others’ positive impact on the organization. And this will not go unnoticed. It also doesn’t mean that you have to go into management to progress; it’s a subtle way to take your role at an organization to a much higher profile.
And while it is nice to be needed, it’s risky for an organization to be reliant on one person. It’s actually common for business leaders to pose the question: "If ___ gets hit by a bus, who is going to maintain this project?" Being the only person knowledgeable about a project or skill set is not necessarily good for you, either, because guess what happens if you want to go on vacation? You become the only person who can answer critical questions, and are called upon whether or not you’re in the office. So, if you’re currently the only person informed on a project or skill set, it’s advantageous for both you and your company to train someone else as well. The truth is, if you are good at what you do, you don’t need to worry about becoming replaceable. If your colleagues excel in an area where you have trained them, you’ve just made a valuable contribution to the organization. Extraordinary leaders enable people’s potential.
Share knowledge to help society: Parallels to the Industrial Revolution
I could give the "to make the world a better place" speech from Mike Judge's Silicon Valley, but I will spare the jocular platitudes. In all seriousness, think about the Industrial Revolution and the uncanny parallel we are experiencing today. When the Industrial Revolution took spark, it changed everything. The problem is the change was so sudden that people had no time to adapt and quickly went out of work. It took decades for the workforce to adapt adequately and develop skill sets for manufacturing and a complex economy.
Today we are in circumstances surprisingly similar to the Industrial Revolution. Information technology came out of nowhere, and within two decades, it overtook every aspect of our lives. People of all ages who are looking for work, find themselves inadequately prepared for this change—even while the IT industry is highly understaffed, with unlimited work to do. See the disconnect?
Closing the gap: Open sourcing knowledge
To remedy the problem, the first step is to realize that not everyone needs to be a certified DBA or a full-stack programmer to work with technology. There is a great need for people who have business savvy with a modest amount of technical know-how. We should not discourage tinkerers and amateurs, but rather encourage and guide them. They should be allowed to make mistakes and learn from them (Alice Zheng wrote a great article on the Imposter Syndrome). After all, it is impossible for one person to know everything about technology. Why not give more people the satisfaction of having some technical knowledge that helps them do their jobs, and encourage innovation and practicality?
SQL for everyone
I wrote Getting Started with SQL for a lot of the reasons stated in this article. I wanted to spread knowledge on a core technology, and make it as accessible as possible—even to people with nontechnical backgrounds. The book is geared toward just about anyone who knows basic computing. The book is intended to be a “primer”—to teach SQL with practical application and hands-on examples. Initially, I wrote the first draft as a form of community service, to help unemployed professionals in the Dallas area. Through an unplanned series of events, this written “guide” became an O’Reilly book. Richard Hipp, the creator of SQLite, even joined the project as a technical reviewer.
The book does not seek to make anyone an “expert” in SQL, but rather, to give readers enough practical knowledge to add value to their organizations. Sticking to its original mission, it was written to help people. I did my best to deliberately leave out complicated terminology and concepts that are not critical for beginner/intermediate level SQL developers. In writing it, my core mission was to help readers improve their professional standing, and of course, “to make the world a better place.”