How to Improve Coding Skills?
Strong coding skill is a virtue. Most people who are successful in the software industry were great programmers too. Strong coding skill does not happen suddenly. It takes time to develop strong coding skills. The following are some tips to improve coding skills for software engineers:
Take the code and break down big pieces of code into small functions.
If by the time you leave work, you haven’t solved the problem. Turn off the computer and leave it for the next day. Don’t think about the problem anymore.
YAGNI principle: “You aren’t gonna need it” or don’t codify more than you’ve been asked to. Don’t anticipate the future, and just create something that works as soon as possible. Code only the necessary parts to solve the current problem.
You don’t need to know everything, nor all the existing frameworks. The most significant thing is to have a good base. Know the language in depth before starting with a Framework and learn fundamental things like the SOLID principles or how to write clean code.
KISS: “Keep it simple, stupid” or “keep it stupid simple” is a design principle that states that most systems work best if they are kept simple rather than made complicated. And while this is logical, it is sometimes difficult to achieve.
Don’t overthink it.
If you’re with a problem or a bug too long, walk away, and come back to it later. Often, the best solutions to problems occur to me on the way from my office to the bathroom. Taking a walk away is also advisable when you are angry with a client or with a coworker, especially if you want to keep your job.
Learn to write useful tests and do TDD. TDD is a software development process that relies on the repetition of a very short development cycle: Write a test, run all tests and see if the new one fails, write some code, run tests, refactor code, and repeat.
Solve the problem first and then write the code. Don’t start coding without knowing what to do.
Don’t memorize code, instead understand the logic.
If you copy and paste a stack overflow solution, ensure you understand it. Learn to use Stack Overflow in a good way.
If you want to learn something, practice. Make examples and make them work because reading about something is not enough.
Study other people’s code and let others study your code from time to time. Pair programming and code reviews are a good idea.
Don’t Reinvent The Wheel.
Your code is the best documentation.
Know how to google stuff. For this, you need to have experience and read a lot to know what to look for.
Your code will need to be maintained by yourself in the future or by others, so write the code with the reader in mind, not trying to be the smartest person. Make it read like you’re reading a story.
The best way to resolve an error with Google is to copy-paste it.
Never give up, in the end, in one way or another you’ll resolve it. There are bad days, but they’ll pass.
Rest, Rest, and Rest. The best way to solve a problem is to have a restful mind.
Learn to use Software design patterns. Design patterns are solutions to common problems in software design. Each pattern is like a blueprint that you can customize to solve a common design problem in your code. (Don’t Reinvent The Wheel)
Use integration tools and automate as much as you can.
Do code katas. A code kata is an exercise in programming that helps programmers to improve their skills through practice and repetition.
Program to an interface, not an implementation. Dependency Injection is a requirement. See SOLID principles.
Refactor -Test-Refactor. Refactoring is a technique for restructuring an existing code, altering, and improving its internal structure without changing its external behavior.
Ask for help when you need it. Don’t lose time.
Practice makes perfect.
Although sometimes the comments can help you, don’t pay too much attention to them. They’re probably outdated.
Know your development environment and invest in a powerful enough one, such as IntelliJ.
Reuse components.
When developing a web application, think mobile-first and the associated power and bandwidth restrictions.
Don’t optimize or refactor prematurely. It is more important to have a minimum viable product as soon as possible.
Never choose an inefficient shortcut way to save a few minutes. Every time you code, give your best!
Follow the documented standards.
Users are not technical people. Think about it when you develop your UI.
Use always a source control system like GitHub or Bitbucket and do small and frequent git commits.
Using logs is better than debugging the code. Log all critical parts.
Be consistent when coding. If you use a style, always use the same one. If you work with more people, use the same style with the team.
Don’t stop learning, but more than new languages or frameworks, focus on the basics of software development.
And finally, patience and love what you do.