It was a completely surreal experience. I was sitting at a table with some very important and influential developers of whom I had tremendous respect for and was a huge fan of their contributions. To my left was Guillermo Rauch, the creator of Socket.io, Jeff Lawson, the CEO of Twilio, David East from Firebase and on my right was Martin Gonto and Martin Woloski of Auth0. We were in the process of judging the projects for Hack-a-ton SF and as each team came up and presented I could not help but reflect on how at one time I was that fledgling programmer working to articulate new ideas in code.
I do not believe the path from the stage presenting my hackathon project to sitting behind the judges desk is by any means a magical process with a secret formula but rather a series of small commitments that have been applied consistently over the last couple years. Self discovery is great, but if I could go back in time, these are the things I would tell my new programmer self to start doing immediately.
Surround Yourself with Programmers
Learning to program is one of the most gratifying things I have ever embarked upon but learning to program while collaborating with other programmers turns the entire activity into a high definition experience. It is amazing to me how many variations exist to solve the exact same problem depending on who is writing the code. It is these unique and additional perspectives that are going to stretch you to be better.
A great place to start is to go to Meetup and see if there is a meetup in your area. Meetup even has a category dedicated to technology which makes finding a relevant meetup really easy. Most meetups are entirely free to show up and a great way to meet new people who are interested in the same things. I run a meetup in Phoenix with almost 600 members and I have made some really great friends through that channel.
Another great way to surround yourself with other programmers is to become involved in discussion forums such as Google Groups. This is a great resource for talking about problems and ideas and starting to build rapport with other developers in a particular community.
Surround Yourself with Better Programmers
It is always mind boggling how humble the best programmers I know actually are in real life. I believe they know it is a virtuous circle that great programmers make great programmers which in turn make great programmers. We become who we surround ourselves with and the best thing you can do for your career is to find a great mentor and start to diligently emulate and apply their advice.
Beyond building relationships through Meetup and Google Groups, you can (and should!) become involved on Github. Did you know that the code for most of the projects we use is online for everyone to see? I have spent hours reading through the AngularJS source code and found it to be overflowing with great ideas and approaches. The next step would be to find something that you can fix and submit a pull request. One of my first contributions to the AngularJS project was actually some spelling errors I found in the documentation. Busy engineers love help and fixing a bug or making an improvement will immediately put you on solid footing to establish a positive relationship.
The Community’s Success is Your Success
Speaking of virtuous circles, when you put value into the community, it will always come back in spades. If you have learned something new and exciting then share it with the community. If you have just solved a tricky problem then it is safe to bet that at least one other person has run into that same problem. It is also safe to bet that someone will run into that problem in the future and if you took the time to make your solution available, you may end up saving that developer hours of frustration. Value is the product of valuable people and when you are helping other people by providing value then invariably that association will be made.
And now take all the advice that I gave and change the direction from consumption to contribution. Be friendly. Make yourself available for questions. Be helpful. Don’t be afraid to hop onto StackOverflow and answer questions. If there isn’t a meetup in your area, go ahead and start one!
The Bottom Line
There is a lot to be said about technical prowess but I believe that true career velocity is the result of making friends, making the right friends and helping friends. There is no magic formula for being a “rockstar” developer and that is good! It is just about surrounding yourself with excellent people and in turn helping to make people excellent.