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.
Ankur
Brian Cline