I started my professional programming journey in 1997, and 25 years later, here we are. During this 25 year journey, I have worked for many technical people, bosses, managers, owners, have managed several technical teams, and now run and advise several companies. In other words, I deal with technical people all day, every day, 365 days a year. I still actively write code, mostly on new technologies for learning purposes. In this article, I will share some of my top tips that may help you become a good programmer. And the interesting part is, it has very little to do with programming.
Before I talk about the tips, let’s understand why we write code. A business hires programmers to build software to solve a business problem.
But why?
So that business can be more productive. Get work done, faster, cheaper, and better. The ultimate goal of a business is to develop a solution that saves its people time, is cheaper than the existing solution, and better. If you build a solution that is the best and it takes no time but costs a business 100x and the business can’t afford it, the solution is no good.
Besides the below top 10 tips, the #0 tip is coding, coding, and more coding. Practice, practice, and more practice. Programming is all about learning, practicing, and implementing. More time you spend on these activities, better you get. If you can also share what you learn and practice, talk about it, speak about it, you get much better.
Tip 1. Understand the problem
The first step of becoming a good programmer is to clearly understand the problem. Not only should you understand the problem, but you should also understand who you’re solving this problem for. That means meeting project owners and stakeholders and understanding what their need is and then meeting the end users who will be using the app. Try to be in their shoes and understand where they are coming from, how they will use the application, and what their skills are. If you’re building a software application for construction designers, you need to use terminology they can understand.
Example: A construction business app
A business in the construction industry hires a programmer to build a mobile app for its employees.
The app will have three types of users – admin, engineer, and user. The admin user can create building models and share them with engineers. The models can be 3D as well as 360 images and videos. An engineer user can access 3D models and edit them. Engineers can also edit and view models from different angles, upload related 360 images, and add notes.
To build this app, here are some of the common questions a programmer should ask:
- Who are the different types of users? Admin, engineer, and user.
- What functionality can each user access in the app?
- What devices will different users be using? Admin and engineer users may use tablets and mobile phones. In this case, iPads, and iPhones. Which version of the devices?
- How many users will be accessing the app?
- Where will users be accessing the app and app data from?
- Will they have an internet connection or not? If yes, what will be the speed of the internet connection?
- What terms do different users use when they work with models, images, and other files?
- And so on ..
Goal: Know your user.
Tip 2. Build an easy solution
Programming is not a competition of typing fast and writing XXX number of lines of code. I see many programmers; they often take pride in how many lines of code they have written in a project. Coding is great but coding is nothing but a medium of solving a business problem. A good programmer is a good problem solver.
To build the solution, a mobile app, you need to first design or work with the designers to design the screen layouts. While designing screens, you want to get feedback from the end users before you actually start writing code. You may want to design screens that offer a no or low learning curve. If you keep that in mind, your end customers will be very happy.
Goal: Build simple and easy to use solutions.
Tip 3. Keep users engaged
Always keep in mind the business goals and remember that you’re building an app for its users, not for yourself. The better you understand your end users, the better the solution will be. To understand their needs and their behavior, you want to keep your users involved when building functionality and share with them and let them test drive it and get their feedback.
Tip 4. Be open minded
You don’t have to be always right. I can't count how many times I’ve seen developers arguing/debating about who is right. If there are multiple solutions of a problem, the best option is to put everything on the table and start reviewing their pros and cons and find the solution that is best for the business, not for you.
There are times when a young team member may offer a better solution. It often happens when senior team members do not upgrade themselves.
Tip 5. Upgrade regularly
Regardless of what language and framework you work with, they are always changing. Each year, there are several updates in software frameworks. You want to make sure to keep an eye on major releases and new features that may help you build better software and even save you time and cost. For example, writing a new application in .NET 6 may cost you much less than the same application writing in .NET 4.
Read and learn from product teams how they write code and how they implement best practices.
Tip 6. Copy but don’t copy
How often do you Google a keyword or a phrase and land on a page with code sample? You copy, make it work, and move on. Copying code is fine but one thing every programmer should do is, understand what and how the code is written and rewrite it in his/her own coding style.
There is so much code on the Internet that was written years ago. While the code may still work, you want to make sure that the code is written using the latest version of the software. For example, a string formatting sample in C# 2.0 is totally different than in C# 7.0.
Tip 7. Focus on quality and performance
Don’t just stop at "the code works”. Just because the code works, doesn’t mean you’re finished. The quality and performance of the code is equally or more important than making code works. The first step is to write code that works. Then you try to optimize it and then make sure you follow quality and performance best practices.
Tip 8. Keep it clean
Readable and clean code is very important for code maintainability. An average life span of a software application is 6 to 8 years. Large and complex programs with a million lines of code or more can usually last 12 to 14 years. During the life span of a software application, different programmers come and go. It’s the duty of a good programmer to write code that is easy to read and understand.
Tip 9. Keep it simple stupid
Some programmers love to make things complex. I used to have arguments with architects who would start with design patterns, build class libraries, and multiple projects in simple websites. If there is a simple way to do things and you don’t have to sacrifice the code reusability, delivery, and cost, go for it.
Don’t over engineer code that you may or may not be using in coming years. Remember, each custom software gets written every few years or so.
Tip 10. Test like a user
Testing your code is just as important for a programmer as writing code. So often, programmers deliver a solution and testers find bugs. The best software is tested by a programmer. And the best way to test your own code is, take off your programmer hat and put your tester hat on before you test your code.
Summary
In this article, I summarized some of my tips that I’ve learned over years working with software and writing code. I hope you found it useful. If you have any tips to share with other programmers, please post in the comments section.
Watch my discussion here with Joe G. on how to become a better programmer.