Become a better developer.

In the always-growing technology field, the best way to get ahead is to make yourself better. Now, I don’t necessarily mean better than the person next to you or better than the majority of software developers, but better than your previous self. The ability to constantly evolve is an absolute requirement to exist in the technology field as a real contender. Well, how do you do this?

Learn to Learn

The best developers I know got that way because they have a great system for learning. Software developers deal with new things literally every day, and we need to be able to absorb this information and make it actionable in a short period of time. In the web development world, we are faced with new libraries every day, new development operations procedures, new linux server distributions, new APIs…you get the point. We aren’t born with the knowledge of Javascript or PHP, we learn it. Developing great learning skills is paramount to saving yourself time, increasing your productivity, and, ultimately, becoming a better developer.

Not One Size Fits All

Everyone learns differently; we all know that. Some people are visual learners, some require a mentor, and some can learn from reading theory. However, when it comes down to it, you’re going to need to implement that knowledge at some point in time as code. Jon wrote a great article about Making Badass Learners that explains “your documentation should provide many straight-forward, and incremental usage examples, rather than paragraphs of theory and explanation”. The ability to read code examples, understand what they mean, and implement them is important. If the particular library you are learning about doesn’t follow these guidelines, you need to implement learning schemas to ignore the noise, and understand only the important information. How do you do that?

Break it Up

When you endeavor to learn something new, it can be overwhelming how much there is to learn, and sometimes it can be so daunting that you almost feel paralyzed. The important thing is to define a starting point and go from there. Break the source material into digestible chunks and consume them one at a time. Similar to how you would eat steak, you wouldn’t pick the steak up with your hands, and try to shove the entire thing down your throat at once; you use a fork and knife to cut it up into bite-sized pieces, and you consume them one at a time. When you were a child, you needed to learn to use a fork and knife, to cut your food, chew, and swallow. Learning to learn software development is no different. You are going to have to learn the tools (utensils) to cut up the documentation, guides, videos, and tutorials into bite-sized and manageable pieces, so that you can work through them (chew), and ultimately understand (swallow).

Some Tips

One of the great things about software development is that the barrier to entry is usually pretty minimal. If you are reading this right now, you likely have a computer capable of developing some kind of software–whether that be a website or web app, a mobile app, a desktop app, or an embedded system application.

Build Something

New technology you want to learn? Think of something to build that can incorporate that technology and build it. Figure out the first thing that you need to do to get started and do that one thing. Break down each barrier as you come to them and you will learn each part. Once you learn how each part works and how they all work together, you can learn how to architect a solution before you start, next time.

Give Yourself Time

Give yourself some time to absorb what you are learning. If you don’t feel like you understand something that you are doing, take the time to understand it better. If you end up getting stuck and feel like you can’t move forward, then go move forward anyways. Maybe the next thing that you work on will help you understand that previous thing better.

Teach Someone Else

One of the best ways to reinforce your own knowledge is to test your skills when teaching someone else. Physiologically helping someone else will provide your brain with some “feel good” chemicals that will make you feel good that you’ve helped someone, which will make the knowledge you taught all that more reinforced. While teaching someone else you may be faced with a question you might not have asked yourself, you might have to learn something new in order to teach it, or you might learn something new while teaching. Take this quote from Simon Sinek: “You have to be confident in yourself and your own ability, before you are willing to help another.” Once you know that you feel comfortable teaching someone something else, you feel confident that you know the material. It works this way with giving a speech or a lecture. If you know the material, it flows out of you naturally; whereas, if you don’t know the material you are teaching, you’re more prone to errors, pausing, and the dreaded “ummm” before every sentence.

Don’t Be Afraid to Look Something Up

This isn’t grammar school. Don’t struggle to remember something if you can’t. Don’t be ashamed to look something up if you can’t remember it.

Understand How You Learn

Don’t force yourself into learning the way someone else does or the way that someone told you. Understand how you learn and do it that way. You aren’t doing yourself any favors by working against your own nature. If you don’t know how you learn, do some experiments and learn in some different ways (videos vs. websites vs. in-person).

Conclusion

The best way to make yourself better is by learning to learn. If you don’t know how you learn, start there. Understand yourself and how you learn, and work on those skills. Find source materials that help you utilize your learning style, and don’t force yourself into learning from sources that you struggle with or that seem to waste your time. If you are having trouble reading a library’s documentation, look for tutorials others have written about it or dig into their code yourself and learn by reading the code. Once you’ve mastered the techniques to teaching yourself new skills, you will become an invaluable asset to a team because you will always be ready to pick up something new and run with it all the way to production.

David Allen