Are you curious what it takes to be the expert in the room? As a software consultant, I’ve had the good fortune of working with Fortune 500 companies, startups, and everything in between. Experience has taught me that clients hire consultants when they need someone they can trust who has been through their situation before. Someone who can provide battle-tested guidance on a technology or strategy they are implementing. They are looking for an expert in the room.
Becoming an expert at anything requires a lot of time and practice. Malcom Gladwell famously said in his book Outliers:
Ten thousand hours is the magic number of greatness.
Malcolm Gladwell, Outliers #ad
So, let’s do the math! If you take his number at face value, even with 4 weeks of vacation, I can become a software expert in a little over 5 years in the work force:
10,000 hours / 48 (work weeks in a year) x 40 (hours in a week) ~ 5.2 years
That sounds like it make sense. I mean, job posts for senior developers usually require 5 years of experience. Senior equates to expert, right?
As Gladwell’s book points out, how you’re practicing is just as important as the time spent. The tips I’m giving here are what worked for me. What type of expert you want to be you have to decide for yourself.
Find a Mentor
I’ve had the great fortune of having multiple mentors throughout my career. By simply working with industry giants, I was pointed in the right direction time and time again. A mentor doesn’t have to be a formal relationship. You can seek advice from someone senior to you by simply setting up a meeting over coffee or lunch.
Take note of their advice and use it to drive your own studies. What books do they recommend? What technologies should you be looking at? Do they see any blindspots in your career that you need to address? What steps led them to success? If you need some help, don’t be afraid to contact me, comment, or just follow me for free advice. Like those who helped me, I have a passion for helping developers succeed in their career.
Don’t just follow tutorials, read books
You need a base of knowledge to build on. Books are treasure troves of information. Books can distill a lifetime of experience and wisdom into 300 pages you can consume in a week or two.
Tutorials are great for accomplishing something specific, but they only guide you toward a technical solution. They often gloss over the reasons why you would do something. Books are filled with the author’s reasoning and best practices based on their years of experience. You can find plenty of articles with great book recommendations to get you started on your journey.
Study and contribute to open source software
Open source software is just as valuable as books. Instead of embedding experience and wisdom into words, it’s embedded into actual code. Design decisions and coding best practices are all distilled into production-level software. All you have to do to learn from it is download the source.
Open source projects are born out of lessons learned and the best projects have significant documentation to guide you through your journey. I recommend you even take the next step and get involved by submitting patches, new features, and/or documentation. Getting involved is the best way to ensure you truly understand the code underneath the covers.
Work in different domains
Different domains have different problems to solve. If you’ve developed Finance systems for years, why not try Retail? By trying to solve problems across a variety of domains you’ll be exposed to new design patterns, architectural solutions, technologies, and programming languages.
Contract work is a great way to gain experience across different domains. In fact, this is how I got my start. I worked for placement firms for a couple of years before breaking out on my own. But, this isn’t a requirement. If the organization you work for has different product lines, see if you can transfer between groups after a period of time. You can also take on passion projects on the side. Find problems you think could be solved by creating an open source product (see above) or even a side business.*
* Be sure to check the contracts you signed with your employer. Some employers try to own everything you do, even if you do it in your spare time.
Become a “full stack” developer
Understanding how systems are built from front-to-back is a skill many developers lack. When talking to a team, I’m always surprised how many times a developer will say, “I don’t know how to do that, I only work on the [insert frontend / backend here]”. Why? Don’t you understand the technologies you’re integrating with? What’s holding you back?
You should know how to build a system from scratch. Whether you’re a frontend or backend developer, you can easily get started building your own full stack system with any of the leading cloud providers. It takes time, but once you understand all of the components, it’s easier to understand and make architectural decisions.
Learn to write more than just code
Writing is an underrated skill with developers. Writing forces you to organize your thoughts. While you may think you have a deep understanding of a topic, writing will challenge that. By having to put your ideas on paper for someone else to comprehend, you really have to think it through. Anything that’s unclear in you mind becomes immediately obvious. You find the holes in your knowledge.
The best way to get started is writing a blog. When you’re getting started with learning new technologies, you can write simple tutorials that can be useful to others. Writing documentation for the software you’ve built is also a way to sharpen your technical writing skills. When the Agile Manifesto said you should value:
Working software over comprehensive documentation
Agile Manifesto
They didn’t mean you shouldn’t write documentation. It’s simply a statement that working software is the first priority.
Once you have some experience under your belt you can write articles for a publication or even publish a book. Publications are a great way to build a reputation of expertise in your field.
Learn to be a “People Person”
Wait, I want to code! They never told us in college we would have to talk to people! If you love coding, that’s great news, but the more you grow as a software professional, the more you realize coding is only part of the job. The expert in the room must not only be good at communicating with machines, they must be good at communicating with people. They work with users to discover requirements, participate in teams, present their solutions to others, and more. Does this sound like your stereotypical IT professional?
Many developers are introverted and struggle with this. They find it easier to communicate with a logical machine than emotional beings. You can find ways to build your social skills in Coder to Consultant: 5 Steps to Build Social Awareness.
Speak at user groups and conferences
Speaking not only builds notoriety, it builds your confidence. The expert in the room is able to present ideas to a group effectively.
Standing in front of your peers and presenting anything, even a topic you are intimately familiar with can certainly rattle your nerves. Remember, the nerves will pass and everyone in the crowd is rooting for you. Everyone wants to learn something from the presenter. Why else would they have shown up!
Presenting also requires you to dive deep into a topic. In order to teach something, you have to truly understand the topic yourself. Presenting provides similar benefits to writing and can help you become more of a “people person” at the same time.
Master the art of diplomacy
I hate to say it, but you’re not always going to get your way, even if you’re the expert. It’s very possible that no matter how convincing your argument, whoever’s in charge may choose to go another direction on technology, methodology, or even your chosen lunch restaurant.
Understanding the art of diplomacy is key to being the expert in the room. You need to be skilled at presenting your ideas without inflaming a passionate response. This is a skill that takes quite a bit of practice, but the expert in the room will maintain a great relationship with their client or coworker regardless of the direction chosen.
Keep learning
I’m sure you’ve heard Aristotle’s famous words:
The more you know, the more you realize you don’t know.
Aristotle
As an expert, the learning never stops. Get your day started by reading articles from industry leaders while you drink your coffee. Spend your lunch hour at your desk working through a tutorial on the latest technology trend. Instead of chatting with the other parents at your child’s soccer practice, read the latest book on methodology.
There are ways to work the learning into your schedule, but you have to commit to putting in the continued time and effort. Technology changes fast. Someone who is an expert today will be completely out of touch in 10 years if they stop the learning process.
Finally, if you made it all the way here, congratulations. You are already showing the passion it takes to become the expert in the room. If you want to learn more, follow me as I write useful articles weekly that can help guide you along your journey.
Disclaimer: As an Amazon Associate I earn from qualifying purchases.