Programming is not that hard. Unless it is a pioneering area, almost every engineer can code solutions to a given situtation, but in different qualities or timings. Your performance depends on picking up the best habits you can as soon as possible. So, I’m giving a list of good habits for a programmer that I think y’all should pick up.
1- Code publicly on your personal projects
It’s best to share your code with the world. It makes you accountable and you will feel a pressure to develop better quality code. Also, your throughput will be seen by the world and this will make you more consistent about your projects. Plus, if people develop an interest in your work, they will elevate your code quality too. A full github profile is also a factor in job applications.
2- Try to keep a journal, or even a blog about programming
Time to time, you will tackle issues that is new to you, and the world. However, most of the issues you face are the ones you already faced before. Thus, keeping a coding journal helps you with speed. If you also interested on elevating the whole world, keeping a blog may help more than yourself.
3- Master the command line
You need to learn to use command line properly since you don’t develop on your local machine and with a visual environment all the time. Sooner or later, you need to develop for cloud servers, remote machines, or even embedded devices. In this environments, you won’t have a point & click desktop environment. Also, command line will allow you to be more productive even in your local environment. Plus, junior developers will see you as a hacker when you use your command line perfectly. Maybe this project may help you.
4- Be open to communication
Let other people criticise you, even if it is hard to take. Don’t take it personally, and try to improve both your code and yourself. Try to get advise for anything you don’t know, this will save you some time and direct you to the best practices.
5- Try new programming technologies
In software industry, since the computing power, memory and network capacities improve continuously, technologies may become old fast. Some technologies shift their niches and survive, but some dies and replaced by a new technology. And those deaths are not mostly publicly announced. If you don’t keep up, you may endup with an outdated skillset without knowing it. Don’t jump into hype trains a lot, but keeping an eye up for the indexes for programming technologies may work.
6- Use available tools for programming
Tooling is not the most important thing about programming, but having the right tooling will elevate your performance for sure. Of course it is possible to code on a notepad, but having a good text editor, even IDE will help you a lot. Also, using right frameworks or libraries for the job will raise both your output quality and delivery speed. Not only local tools, but be comfortable with a variety of OSes and cloud vendors.
7- Don’t be a fanatic
Conquering a technology is good for you, but while doing it, don’t let the technology conquer you. Be able to switch technologies, when need be. Because every language has a trade-off associated with it. Ability to switch between technologies for different requirements is a trait of a nice engineers, being enthusiastic about a technology is OK, but you shouldn’t think as any technology as the perfect one. When you see you’re becoming a fanatic of a technology, try avoiding it for a while to discover other ones’ nice sides.
8- Avoid distractions/turn of the notifications
Since we’re working on computers and have the Internet, it’s so easy to get distracted while working. What you can do to avoid distractions is at least turning on the notifications of your phone, lots of phones have this “Do not disturb” mode, if not all. Try turning it on for a while, or even use the pomodoro technique I’ve told about in this blog.
9- Learn at least the shortcuts you’re using
Knowing all the shortcuts is not possible, but while clicking on buttons try to memorize shortcuts assigned to them. Using shortcuts will save you vast amount of time, and also searching a functionality is a little distracting. Using shortcuts will make you both focused and productive.
10- Develop tests
Before starting to develop a feature, start developing its tests. Developing tests beforehand will decrease the chance of overkill since you only try to pass your tests while coding. Also, while developing tests, you get more clear understanding of the problems and while tackling you don’t lose any time trying to understand them.
11- Read a lot
This is something almost all developers miss. We all need to read more. We need to read more books, both technical and literature. Technical books are the way we accumulate knowledge about our profession. Without the books, all we have is bunch of technology fanatics’ blog posts and hype trains. Understanding fundamentals of a technology and seeing the alternatives is possible with technical books. Also we need to read more non-technical books since it will enlarge our mindset and can give us different approaches while we are tackling problems in our jobs.
12- Don’t overkill
Developing not needed functionalities, or abusing technology stacks is called overkilling or over-engineering. Just don’t do this. I’m preparing a post about over-engineering, and will drop a link here when it is done.
While maintaining our own code, we need to rewrite and simplify it since it will free us from the legacy code that cannot be understanded, improve our design, and also it can make our code run faster.