How to Improve as a Developer

Sharing is Caring

As a software developer, it’s really important to take time and improve your programming skills by learning new technologies and techniques. By constantly trying to improve as a developer there’s potential to become a highly sought after developer.

Attitude

Your attitude will have the greatest effect on how quickly you can improve as a developer. By having a positive attitude and focusing on the good outcomes it will be possible for you to push yourself a little bit harder which can result in faster improvement.

Have a Goal

A goal is an achievable objective that gives long-term vision and will be provide short-term motivation. Basically, any planning for the future is a goal. I recommend setting short weekly goals, and monthly goals. Make sure they are measurable

Get Ready to Constantly Learn

Learning on the job and at home are definitely part of a software developer’s career. In fact, I can say without a doubt I probably learn new things every single week. I spend at least three hours a week reading books, reading blogs or doing tutorials. I have been programming professionally for about 10 years.

There’s thousands of books available to learn how to program, I recommend you spend some time doing the basic tutorials but there’s a lot more learning to do. After you have the basics you need to start understanding more advanced concepts like software architecture and best practices. Unfortunately, there’s a lot less books about learning how to truly master programming.

For beginning programmers, I recommend purchasing and reading Code Complete by Steve McConnell and The Pragmatic Programmer. Code Complete has an incredible amount of material related to writing good software and designing good architecture. The Pragmatic Programmer is full of common sense and tips for beginning programmers and can help quickly level up your programming career.

Another good book is Clean Code by Robert Martin. I first read the book around the start of programming career because a senior developer recommended it to me. One of my first ever blog posts was a Book Review of Clean Code. Clean Code talks a lot about the naming of variables, functions, and just covers a lot of really good principles that can make software a lot easier to change and extend. Robert Martin is usually referred to within the programming community as Uncle Bob, if you’ve been programming for any amount of time I’m sure you have at least heard of a reference to Uncle Bob.

And finally, Code Craft is a decent resource although it has very little code. I’ve previously written a Book Review of Code Craft. Keep in mind that I think that Clean Code and Code Complete are a lot better resources than this book and probably wouldn’t buy it over either of them.

Start Doing

The best way to learn and reinforce a concept is to use the concept. If you haven’t done a lot of programming yet, that’s okay, you can start looking at some of the programming challenges out there or looking for simple programs to write. I like to use a ToDo app to learn concepts as it usually takes a few hours to build, but there’s enough to build that you can start trying more advanced concepts.

If you have been programming for a while, you should start looking at doing some of the available coding challenges. Programming challenges work for a few different reasons. One of the first things that they do is give you experience or muscle memory. It’s like when you learned to ride a bik or drive a car – everything was unfamiliar but overtime you improve and have gotten better.

HackerRank

HackerRank is a platform that usually has quite a few different domains of computer science (algorithims, mathmatics, etc) and some challenges based on languages.

They also have timed challenges available, I’ve seen some of their challenges used in interviews. They also have gamification elements like leaderboards, and points for completing challenges successfully.

Code Wars

CodeWars is pretty good for all around programming challenges. CodeWars has a large repository of different challenges, they call them kata, and have rankings and degrees that are similiar to martia arts. There’s katas for basically all levels of programmers whether you’re a beginner or an expert.

Project Euler

Project Euler is really good if you have a good grasp of math. The site says that’s it aimed at students, but I can say without a doubt that there’s a lot of challenges I haven’t been able to successfully complete without spending a lot of time hitting my old math textbooks or searching google.

This one has really challenged my thinking about algorithms and caused me to think a lot more about using recursion and functional programming techniques.

How to Get Into a Software Development Career

I previously wrote a post about How to Start a Career in Salesforce Development but a lot of the content applies to most technologies. The number one thing to think about is that employers want to see proof so make sure that you have an online portfolio with some example code, and proof that the code you write works. CodePen is a pretty good place to host JavaScript, HTML, and CSS without having to build a server to host things.

I believe that uploading code to GitHub or contributing to open source projects is a really good way of showcasing your work and building a brand for yourself. Branding will help you find opportunities a lot easier, because you won’t need to waste time dealing with recruiters or going for interviews.

Sharing is Caring

Brian is a software architect and technology leader living in Niagara Falls with 13+ years of development experience. He is passionate about automation, business process re-engineering, and building a better tomorrow.

Brian is a proud father of four: two boys, and two girls and has been happily married to Crystal for more than ten years. From time to time, Brian may post about his faith, his family, and definitely about technology.

2 Comments

    • I don’t really have any experience with Machine Learning or Deep Learning, I bet there’s quite a bit of Introductory Articles or Tutorials that are available though.

      I would start by reading a few of them and coding up some of the examples. After you’ve built a few of the examples, start tinkering around and understanding why things were implemented that particular way.

Comments are closed.