Reach Out and Grow with Professional Networking
Building up a strong professional network is the key to growing both your reputation as a developer and your actual knowledge as a developer.
For many years, I did not appreciate the importance of a professional network. None of us are born with one, and we grow up without one. So it is often the case that we don’t know what we are missing by not having one.
There are many benefits to having a professional network, including:
- You get to exchange powerful ideas
- You have a number of people who can provide you with encouragement and motivation
- You become one of the first to learn industry news
- You learn the inside news story, not just information from the official sources
- Some of your professional contacts will turn into real friendships
- You build a platform of the right type of people to which you can market your skills and products
- Potential employers get to know you and your skills before a position is even available
- Networking improves your job recruitment prospects; it could lead to you getting headhunted
- A large network creates the perception of importance, which improves your reputation
Writing consistently good code can help your earning power, but a significantly bigger boost comes from the ideas that you can conceive and being able to express them well to an audience.
“The difference between a tolerable programmer and a great programmer is not how many programming languages they know, and it's not whether they prefer Python or Java. It's whether they can communicate their ideas. By persuading other people, they get leverage.” – Joel Spolsky
Developer meetups are a great way to build up both your knowledge and your network.
If you have never been to one, you might be surprised by how many there are in your local area and how many like-minded people are attending them.
A useful website for finding these is http://www.meetup.com/find/.
Most meetups are free to attend. The only cost to you is your transportation there and back.
Here you find the most passionate developers and other industry professionals, and they are looking to both learn and teach. Many of these attendees will be amongst the biggest talent in the area, and they are happy to answer any questions you might have.
You could either learn more about a subject you know quite well, or join a meetup discussing something you’ve never come across before. Whichever meetup takes your fancy, you’ll meet new people who will teach you things you would never otherwise know existed.
Aim to attend at least one local meetup every month. Try a variety of different events and see which you prefer.
At these meetups, you will of course learn from the speakers, but don't think that the learning stops there. You'll be sitting in a room full of talent. Often, the most important connections, and lessons, are learned from conversations in the pub afterwards.
Don't Restrict Yourself
Don't limit your network to just the people who program in your favorite language.
The best ideas always work across many languages. Even if you never want to program in anything other than your favorite language, the language that someone develops in bears virtually no relation to how smart they are or how much they can teach you.
Don't limit yourself exclusively to other developers either. Network with entrepreneurs, business managers, and various types of authors.
Anyone with bright ideas and a willingness to share them is generally someone who can help you to grow.
This doesn't mean you should not have a specialty yourself. There are many advantages to having a specialty, perhaps the biggest of which are those specialized skills that can easily help you make a name for yourself. But when it comes to your network, don't limit yourself to only that narrow pool of experts.
“A-players” is a term meaning star performers. These are the top professionals who are accomplishing more and moving upward in their careers. They are also highly in demand with employers. If anyone ever describes you as an A-player, that is a serious compliment.
If you haven’t already seen it, I recommend watching Steve Jobs: The Lost Interview. This is an interview with Steve Jobs in 1995 when he was running NeXT and Apple was losing market share. Only 10 minutes of the interview was used at the time, and the original 70 minute recording was lost for many years.
In the interview, Jobs speaks about the wide difference in ability between average developers and the very best. There are a huge number of insights into our industry and some great quotes to choose from, but here is Jobs speaking about A-players:
“They really like working with each other because they've never had a chance to do that before. And they don't want to work with B and C players.“
There is definitely some truth to this, but I believe even more strongly that the fastest route to becoming an A-player yourself is to spend as much time as possible learning from A-players.
In fact, most of the people you consider to be A-players will be people who were inspired and learned from many other great developers before them.
Finding a good mentor can accelerate your learning enormously. They can point out mistakes that you would never know existed, make astute or even profound observations, and show you techniques that you could never even devise on your own.
You can find talented people locally. Locate the best developers in your company, and ask them questions about how they learned their skills and how they approach their work. You'll find a number of different qualities that they almost certainly weren't born with, but recognized in others and emulated, whether consciously or not.
I'm not sure it is all that healthy to label someone as an A-player or any other letter of the alphabet. Everyone has their strengths and weaknesses, but we are also all learning and growing. It is a convenient shorthand that can be useful, but it runs the risk of pigeon-holing developers into categories they don’t neatly belong in.
When you are looking to learn, you can learn something from anyone just a little bit better than you. If you are just getting started, this might be more helpful than trying to learn from an expert who has forgotten what it's like to be a beginner.
However, as you grow, you'll gradually find that the most talented people are the ones who bring you the most value. So in general, look to learn from the best.
But the opposite does not apply. If you are an expert in something, you can continue to grow by teaching it to anybody. Sometimes teaching it to a beginner will be the most interesting and rewarding thing to do, and will teach you something that you didn't appreciate before.
Gaining a Broad Perspective
For most people, gaining a broad perspective is something that takes a large portion of their careers. This is because every company has its own preferred ways of working.
There are certain architectures that each company prefers. There are particular preferred languages and paradigms, preferred working conditions, methodologies, means of communication, business strategy… the list goes on and on.
Sometimes you'll meet people in your company that are so passionate about these ideas being the best that you'll believe them. However, this means these are the ideas that you will fail to look beyond.
To really grow, you need to question everything.
You'll learn advantages and disadvantages to every language, paradigm, methodology, business strategy, etc. The one true way does not really exist. It's all a matter of finding the best solution for a particular context.
In any one company, certain ways of working will be the most successful. This doesn't mean that they are the most successful procedures in every company. This is a perspective that takes time to come by.
One way to achieve this perspective more quickly is to job hop. Moving on to several different companies will let you experience a variety of working cultures, languages, architectures, and tools and see the advantages and disadvantages of each first hand. This richer experience may be more lucrative for you.
However, there are some disadvantages to job hopping you should keep in mind. The continual change might give you a feeling of insecurity. Having to attend job interviews regularly might get tiring. Also employers may be more reluctant to offer you permanent employment if they suspect you won’t want to stay there for long.
Another way to gain perspective is through your network. Speak with others about which languages, tools, and methodologies they use. Ask them about the advantages and disadvantages and how they compare with what they used previously.
What you hear may surprise you.
Perhaps you might think that a particular language is terrible. There's a good chance you will discover achievements made in that language you didn't even think were possible.
The Internet has succeeded in connecting us with each other. Geography is no longer a barrier to making connections with people. Location is often irrelevant. This means you can potentially make connections with any other developer or other professional, anywhere in the world.
An obvious example of this is Twitter. Following just about anyone is only a click away. But following a lot of people will only get you so far on its own.
You really want to get a lot of people following you. You also want them to favorite, or even better, retweet your tweets. The more retweets you get, the more visibility you get on the Twitter platform. This means more opportunities for others to follow you. In order to do this, you need to show something of interest and value to a substantial number of people.
Twitter users with a lot of followers are more likely to appear as recommendations for similar users to follow. These users can see how many followers you have, and they will see that as an indication of your popularity. This gradually leads to a snowball effect, where getting more followers becomes easier and easier.
The more followers you have, the bigger your audience. The bigger your audience, the easier it is to become influential.
Another example of how you can easily network across the globe is to collaborate with other developers on an open source software project. This has the dual benefits of building up your network at the same time as enhancing your programming skills.
Every serious developer should have a blog.
A blog is an easy way for people to learn who you are and what you do. It's an effective way to structure and log your thoughts and any important lessons you have learned. It need not cost you any money, just the amount of time that you decide to spend on it.
In general, the best bloggers are the ones who blog regularly. Like any skill, you tend to improve with practice. But even writing just one really excellent blog post can be enough to get yourself noticed by a lot of people.
In order to be a successful blogger, I think you need to enjoy writing. Once you start getting some positive feedback, it will help spur you on to keep writing more. You need to be patient and stay positive in the early days, but the more you write, the more you will start to get traffic arriving from the search engines, and your network will flourish in turn. Also, Twitter can be an effective way to publicize your posts.
If you are interested in starting a blog, or even if you already have one but would like some tips on how to improve your blogging skills, John Sonmez has developed a free email course for you.
I am finding John Sonmez's book, Soft Skills, to be the book that keeps on giving. After reading Soft Skills and How to Win Friends & Influence People by Dale Carnegie, I made a few simple changes to my Twitter profile and found that I got more followers in the last 3 months than I had gotten in the previous 18 months.
I also noticed an upsurge in the number of visitors to my blog. This was mostly due to the fact that I was blogging more regularly again.
Blogging became easier for me because I felt more inspired. Most of this inspiration came from reading the blogs of other developers who had taken John's email blogging course.
I started commenting on other blogs because John said it helped him gain more traffic when he was getting started.
What I didn't know at the time was some of these other blogs are very good. I've learned a lot from reading them, learned a lot from exchanging messages with those authors, and made some online friendships along the way.
Where to Go From Here?
The Internet is reshaping the order of things. Anyone can now go from being completely unknown to a very well-known and highly respected individual, doing nothing more than typing words into their computer and passing on small nuggets of wisdom.
In our industry, and in any industry, learning never stops. We are all learning together, and by helping others we can open up new doors of opportunity for ourselves.
Growing a strong professional network not only helps us to learn but also helps us to influence others, develop our reputation, become inspired, and market our skills and products.
You are only as strong as your network.
Although we’ve covered many activities and opportunities, we have only just scratched the surface. To gain a deeper understanding, there are three resources I highly recommend:
Rob Conery and Scott Hanselman have produced an excellent course called “Get Involved,” which will give you much more information on the topics we’ve just mentioned, as well as details on how to make the most of Stack Overflow and Github. I consider this the very best course on Pluralsight in terms of the positive impact it can have on your career—and best of all, it’s free for everyone.
Becoming an Outlier: Reprogramming the Developer Mind
This course by Cory House explores the habits and career tactics that create remarkable developers. It is only available to Pluralsight subscribers, but if you take out a free trial, it will not cost you any money.
The most comprehensive coverage of all is in the book Soft Skills. It includes chapters on blogging, building a brand that gets you noticed, using social networks, adding value, writing books and articles, having the right mental attitude, and a whole section on learning.