I always get asked where new devs should focus to start their careers. Your best bet is to rise above the rapid pace of technology changes and spend some time on key fundamentals. Fundamentals will help you grow no matter what language or tech stack you’ve chosen to follow. I spend a lot of time guiding teammates about actions they can take to level up quickly. Here are my thoughts, right or wrong, on what makes the best developers.

Read

Read! Read books. Read tweets. Read RFCs. Read articles. Read newsletters. Read, Read, Read! Try to expand your horizons. Read about stuff that might interest you in a couple of years. Spend time learning about new technologies or best practices you keep hearing about. Reading helps to broaden your vision so you don’t get siloed in one tech stack or way of thinking.

Practice

Reading is worthless if it’s only knowledge in your head. And I don’t care how much you read, you won’t understand a technology unless you try it out. You’ll be able to speak about it, and may know what you’re talking about. You may have read so much, you can even talk your way through an interview. But the moment you’re asked to follow through on your knowledge, you’ll be stuck. Practicing is as important as reading. It’s what builds muscle memory so you know where to start when you’re given a task. Start working on your github profile. Write a react app. Write a node app. Write a python app. Start playing with webpage design, machine learning or anything that may interest you. Your github projects don’t have to be perfect. I say forget perfection and shoot for quantity. Expose yourself to as many technologies as you can. Have fun with it. Don’t get bogged down in making something beautiful and perfect. Do enough to grow your technical toolbox.

Learn Problem Solving Techniques

I’ve never met anyone that says they’re a bad problem solver. What I find is that most people solve problems with gut feeling. That works well if you’re experienced in an area. As software developers, you’ll find yourself in the unknown all the time. That’s where problem solving techniques can help. The most well known problem solving technique is the scientific method. Find an unknown, create a hypothesis to test the unknown, record the results and repeat. Stop guessing and get to the root of the problem by following established techniques.

Find Out More

Write Ugly Code That Works

You’ll hear a lot about using best practices when writing your code. It’s hard to remember best practices when you use a technology for the first time. You make it hard on yourself when you try to follow best practices during the creative process. It’s like trying to remodel your kitchen and keep it clean at the same time. Forget that! Write bad code. Understand it. Make it work. Clean it up later. You’ll move faster and it will be much less stressful.

Refactor

It’s time to clean up that ugly code. It’s called “refactoring” in software lingo. Get into the habit of rewriting your code. You would never consider a rough draft of a paper to be the final copy. The same thing goes for code. Your ugly code is a rough draft. Now that it’s all written and working, it’s time to refactor and to focus on best practices. You know what to write because you’ve spent time understanding the code. You can now focus on making it nice and maintainable without having to worry too much about how to make it work.

Find Out More

Write Tests

Writing unit tests allow you to refactor with confidence. You don’t want to waste the time getting your ugly code to work only to break it when cleaning up. Unit testing checks that the functionality works and any changes are safe to make. Your tests become a safety net as you grow your code base and a reminder of how your code works. It’s also a way to go back and review your code in detail. Refactoring and unit testing should go hand in hand for the highest impact.

Find Out More

Learn Best Practices

There are a lot of best practices out there. Idiomatic practices are specific to the technology or language you’re using. If you are writing code in Ruby on Rails, don’t try to make it look like Java code. Other than idiomatic principles, try to follow the more general SOLID principles. These ideas will help you keep your code clean, maintainable and understandable. Finally, look into Design Patterns. There a ton of design patterns. Some are specific to object oriented design, some to functional design. Generally, understanding some basic design patterns will help you from reinventing the wheel.

Find Out More

Deploy Some Code

Coding is more than writing software. There’s also the deployment and maintenance of a project. You’ll learn a lot about maintainable code by taking code you’ve written and deploying it to a server.

Remember Your Peers

The rule of thumb for how to write good code is to remember your peers. If a stranger looks at your code, will they know what you were trying to do. Use comments. Keep your functions short. Use descriptive names for classes, variables and functions.

Find Out More

Have Fun!

The final thing I can say is have fun. Software development is one of the few careers that lets you be creative and logical at the same time. Enjoy what you do. Find cool stuff to make.

Ain’t nothing good unless you play with it - George Clinton