Like professional athletes, software developers and engineers must always be practicing to improve their coding skills, even outside of the workplace. Too often we get bogged down into writing documentation, test cases, or pointless meetings that we don’t spend the necessary time we need to really practice and fine tune our problem solving skills.
All software engineers should be striving to become the best developers they can, and with that comes practice. Practicing coding skills and becoming a better developer can come in a variety of forms, so here’s my list of 7 ways all software developer can improve their coding skills become better software engineers:
- Follow programming blog
- Join a Facebook Group for software engineers
- Read books on coding
- Watch development videos
- Practice your problem solving skills
- Start a new software project
- Start your own programming blog
Follow programming blogs
Blogs are very important for developers at any level to learn from. From the novice beginners to advanced experts, all programmers should be following other programming blogs.
Blogs have the unique ability to stay up to date with fresh, relevant information. They’re a lot quicker to get out in the open than say a book or video course, so it’s usually a lot easier to find recent and more up-to-date information about a certain topic.
There are plenty of great programming blogs to follow. For starters, you’re on one now, Pragmatic Ways! In fact, we recently just made the list for the Top 100 Programming Blogs and Websites For Programmers in 2020 from Feedspot (thanks Feedspot!).
Here are some of the programming blogs I follow myself:
Join a Facebook Group
If you spend any time on Facebook, then you can at least make that time useful by filling your timeline with some posts from other Software Engineers!
Here is a list of my favorite Facebook groups for software engineers (shameless plug, the first one in the list is a group I started)
Joining a group is very beneficial. You get to network and communicate with other software developers. You can see questions they’re asking, hopefully answer questions, and even get some of your own questions answered.
I have actually learned a lot since being of member of many different Facebook groups.
Read books on coding
I’m a HUGE fan of reading programming books! I love other sources of learning too, but to me nothing else beats books (physical or digital). You can carry them around with you wherever you are and start reading and learning whenever.
- Waiting in line at the barber shop?
- In the waiting room at the doctor’s office?
- Riding the bus home?
- On your lunch break at work?
- Just sitting at home bored?
Many people continuously waste this precious time by aimlessly scrolling through Facebook or watching TV. This time presents a great opportunity for you to learn something new or widen your knowledge.
It may seem odd to some beginners, trying to improve your coding skills by reading a book on programming while not even at a computer to immediately practice what you’re learning. But there are many books important books that are theory only, and quite honestly these are some of the most important books in my opinion.
Technical books on software development are great, but learning software engineering theory, clean code standards, etc. is really what separates good programmers from great programmers.
If you’re looking for a new book to read, here’s my list of the Top 5 Software Engineering books:
- Clean Code: A Handbook of Agile Software Craftsmanship
- Code Complete: A Practical Handbook of Software Construction, Second Edition
- Agile Software Development, Principles, Patterns, and Practices
- The Pragmatic Programmer
- Head First Design Patterns
Start a book club
My development team has recently started our own little book club, and it’s done wonders for our team and advancing our coding skills! By all of us reading the same book and having a weekly discussion on some of the chapters and favorite pieces of what we read, we are sharing our knowledge and discussing ways areas in our own projects on where and how we can apply some of the things we learned.
With my team being remote and spread out across different states in the United States, we don’t have a physical meeting for our weekly book club discussions. Instead we just do a video chat and it works just as well!
If you’re interesting in joining a virtual book club, consider joining my Facebook group, Software Engineering Mastermind Group
Watch development videos
Do you prefer to learn from video rather than books? Many people prefer video, and that’s completely OK. Truthfully the best way is to diversify and learn from several sources, videos, books, audio books, blog tutorials, etc.
One benefit of learning from video is that it’s generally quicker compared to books. However, books tend to dive deeper into concepts and help you retain the information better than videos. This is why I personally advocate to learn from both. Start learning a new concept or coding skills with a video to get a good overview, then drill down into those details with a good book.
My first choice for learning any new skills is to check YouTube first. YouTube is free, and YouTube is HUGE. Chances are, if you’re trying to learn something new, there’s already a YouTube tutorial on how to do it!
(Also, shameless plug, if you didn’t already know, Pragmatic Ways has a YouTube channel here).
Do you prefer a more structured video course than YouTube has to offer? This is where Udemy comes into play. I’ve purchased many courses on Udemy, and they’re usually a good value for the price (most courses are under $15).
With Udemy, you have the ability to track your progress and often times they have little assignments to go along with the videos, kinda of like extra homework assignments for you to practice the material. At the end, you even get a certificate that you can publish to your LinkedIn account to prove you know a thing or two about that subject.
Udacity is another great resource like Udemy for online learning. They even provide full “nanodegrees” for people who want to specialize in a certain field, but don’t want spend the insane amount of money for a full college tuition. Udacity provides great video courses, and many of their courses you can even enroll for free!
Other online resources for programming videos
Here is a list of all the online courses and videos I’ve personally used to learn more about programming and improve my coding skills:
Practice your problem solving skills
Practice makes perfect. Beginner programmers know this, but too often do I see mid-level and senior developers fail to realize that they too still need to practice.
Do you think professional athletes don’t practice anymore once they make pro? Of course they’re still practicing, they’re always striving to become better. Yet for some reason programmers think that once they land their first job, their training and practicing is complete. They believe that they’ll just naturally become better through their work.
While that’s a tiny bit true, it is no where near enough practice to actually become a great software engineer. Often times in the field, software engineers are bogged down with testing, documentation, meetings, and other routine tasks that tend to get in the way of them actually getting down into practical problem solving skills. This doesn’t leave much room for growth in terms of advancing one’s coding skills.
This is why I strongly believe that all developers should be challenging themselves regularly with coding challenges.
One of my favorite sites for this is HackerRank.com. HackerRank is an interactive website where they have a series of programming challenges, and you need to solve that challenge with your own algorithm.
You’ll enter in your code directly into the online IDE, and they’ll test your algorithm against several different test cases to see if your code meets all the requirements of the challenge.
These challenges are great at widening your horizon and broadening your knowledge in real world problems that you may encounter in your job. It’s much better to practice these types of problems outside of work. That way, if you ever do find a similar situation while you are at work, you’ll be a lot more prepared to solve the problem quicker.
Other great resources for online programming challenges:
Start a new software project
Want to really practice writing software? Then start a new project! You can start your own project and host it on GitHub, or you can contribute to an existing open source project.
Software projects, whether they’re personal projects or a collaboration effort part of a team, are great resume builders. They help others see that you’ve actually built something more than a simple “Hello World” program.
There are plenty of ideas to choose from on starting a new project. And if you need help or want to find others to collaborate with, then join our Facebook group and network with other developers – Software Engineering Mastermind Group
Software project ideas for you to start:
- develop you own personal website to showcase your skills
- build a web scraper
- create your own HTTP server
- create a web app for a net worth calculator and tracker
- create a mobile app for a net worth calculator and tracker
- create a desktop app for a net worth calculator and tracker
- develop a poker simulation game (web, mobile, or desktop)
- create a tic-tac-toe game (web, mobile, or desktop)
- build a chatbot
Start your own programming blog
If You Can’t Explain it to a Six Year Old, You Don’t Understand it YourselfAlbert Einstein
A blog is a great way to share you knowledge and ensure you fully understand the concept yourself as well. When you write a blog post, it requires you to do a little bit of extra research on that topic to make sure you’re explaining it properly.
Having your own blog shows potential employers that you know what you’re talking about, and that you know how to communicate effectively (which is a very important attribute for a software engineer).
If you want to learn how to start a blog, you can email me directly and I can guide you through the process, but honestly it’s quite simply.
- Buy a domain name (I recommend Namecheap)
- Buy a hosting package from a hosting company (again I recommend Namecheap or Bluehost)
- Install WordPress an a nice theme
- Start writing blog posts
That’s the basis for how to start. Once you get up and running you’ll want to look into things like SEO and monetization, but for just starting out, those first 4 items are all you need to focus on.