How to Become a Better Developer and Bring Out The Best in Yourself
I love my work! Striving to improve and being the best version of myself is something I am very passionate about. In this article I will guide you how to be too!
During the 12,5 years of being a PHP developer there are powerful tools and habits that will always stick with me to be the best possible programmer, professional and person in general.
In our life we develop habits that don’t aid in bringing out the best version of ourself. Being the best means focus. Change the bad habits that interfere with this. Stick to the tools that work.
In this article I will share my methods and mindsets. I swear by them. So let’s not get distracted. Let’s dig right in!
Don’t get distracted during work
Life is busy. But busier than it needs to be. We are constantly in contact with each other digitally. We are flooding our brains with much unnecessary information. It tends to be obsessive behavior. It is important to separate things. Be mindful. Focus on a single task. Shut yourself down from the rest of the world.
Plan fixed times you check your phone. Even better, don’t even check it during the day when you know something may excite you. Even casual messages distract you. They add nothing to your work day. I try to read most things in the morning to catch up. That’s it.
Be the odd duck at lunch breaks. Just stare, observe and enjoy resting instead of looking down on a small screen. Be aware of your environment. It might inspire you with ideas!
Block irrelevant websites on your computer. Cut out social media and news
websites. I use a tool called get-shit-done which works on Linux and OSX.
You define the sites to block. By running get-shit-done work
the program will
change your hostfile (/etc/hosts
) so you can’t visit them. get-shit-done
play
reverts this.
Hide any irrelevant information on your desktop. No taskbar. No clock. Use an alarm when there’s something important you got planned.
Don’t use devices such as laptops in meetings with coworkers. Use traditional pen and paper. Devices activate the obsessive behavior in many people, so a meeting is less productive this way. Be the best version of yourself, even when others don’t work this way.
To change our cognitive behavior we must change our actions. You will be surprised how confronting these changes are about your daily behavior.
Stick with changes because it will give you room to be more creative again in life!
Be creative and make project management fun again
When defining the purpose of a project, most people create liniair documents such as requirements documents. These ways of writing are not fun. It’s not how our brains work when we are being creative. Working out new ideas and their relationships to each other is not a lineair proces. There are better ways of structuring our thoughts.
Mind Mapping is a great tool to work out what your project consists of. Mind maps represent how we think. In most cases a full project idea fits a single paper. Using mind maps you will understand information much better. Some maps you will carry with you for years.
Use mind maps for:
- Defining functionality of a project
- Hours estimates of a project
- Checklists
- Summaries (such as books)
I love using the project Freeplane.
Vim: One text editor language to rule them all
Vim is a game changer and will make you feel home in any environment.
Learn and use Vim. It is a text editor in which everything is possible without a GUI (graphical user interface). Vim uses a command mode (manipulating) and insert mode (typing). Learning this tool means you can do everything on a remote server in times of disaster. It is mostly installed by default. A server will be no different than your own computer.
Enable vim mode in all your favorite editors.
Personally I use Sublime and PhpStorm. In both I enabled vim mode. This means you only have to learn a single set of shortcuts. Use them in all environments!
Switching between editors has never been so easy. Multiple editors using the same commands can become part of your workflow. Vim will probably be the last editor you will have to learn. Gold knowledge you will carry all your life.
Expand your knowledge by using cli tools
Favor the CLI (command line interface) over any GUI. Using version control such as Git? Use the command line. Wanting to debug HTTP headers of a website? Use curl. By doing so it will expand your knowledge to automate processes in the future. Such as migrations and deployments.
$ curl -I --silent https://mauserrifle.nl/assets/post-img/minesweeper.png | grep cache
cache-control: max-age=31536000
Consider using an UNIX environment such as Linux and OSX. The more powerful CLI tools available to you, the more likely you will use them. If Windows is your only option, install WSL (Windows Subsystem for Linux) so you can use Linux within Windows.
Always strive for quality and share your knowledge
Use version control for much as possible work. Writing this blog has been done using Git (with markdown and mind maps).
Become aware of every change you make to files to prevent hours of debugging mistakes.
Share code and projects on GitHub. You will produce better quality work knowing people will be able to look into it. Let it motivate you to innovate. Share your knowledge.
Read programming books. Learn about Design Patterns. The programming top list at goodreads is quite a good starting point.
Test your code using Unit Tests and Integration tests. Creating complex projects requires automated tests so you can focus on new functionality and refactoring without worrying about breaking the system. Without this way of working I would’ve never made success of my open-source project Simresults.
$ vendor/bin/phpspec run
Simresults\Cache
✔ is initializable
✔ can add data
✔ can remove data
✔ can remove all data
✔ can help implement parent cache in extended classes
Use an 80 column line length guideline in your editor. This forces you to think about less indentation in your code such as nested if statements. Your code readability will improve. Side by side comparison of versions is much easier.
Be easy on your eyes
Staring at a screen is demanding for your eyes. Always adjust your screen brightness according to the light in your room. The darker the better, as long everything is still clearly readable.
Filter out blue light from your screens which makes the screen more warm and soft. It’s a big difference having no tired eyes at the end of the day. Install Redshift on Linux and f.lux on OSX/Windows.
Avoiding blue light at night is a must. Blue light will block your brain from creating the melatonin hormone, which affects your sleep.
Install dark themes for all programs you use. If a tool does not offer this mode, find alternatives. Consider installing a High Contrast extension in your browser. This will turn light websites into dark when desired.
Rest and be brave to postpone work
Split your tasks into multiple days. Don’t rush. It’s amazing how a good night sleep will do wonders. What seems impossible on the current day, will be easy the next day. You will wake up with the solution without an active thought.
Learn to let go. It is not failing. Know your limits, be brave and trust your own mind.
Getting enough rest also brings us to the importance of physical health in general.
Be healthy in general
A mind running at full speed needs the proper fuel. A lot will change when you start eating the healthiest you can and sport regularly. Don’t neglect your health. Be the best version of yourself at everything in life. It will benefit your mental work.
Let others inspire you regarding sports.
Personally I do a lot of inline skating (cardio) and Freestyle slalom skating (tricks). In 2019 I also fell in love with Calisthenics (body weight exercises) for strength training. I discovered this through YouTube and inspired me so much I set goals for myself the next 5 years.
Try searching something you enjoyed as a child. See if you can give rebirth to this! But even a short run from your car to the office could do the job every day. It does the job for me.
Find excuses to sport and to eat healthy, not excuses not to. Find something you will love and enjoy. Become good at it. It will change how you work mentally.
Summary
You have learned the basic methods and mindsets I use daily as a developer to be the best version of myself. It is important to change bad habits, use the tools that have proven to work and be healthy.
They key points are:
- Don’t get distracted during work and meetings
- Use Mind Maps to work out projects and ideas in a fun non-liniair way
- Learn and use Vim in all your environments
- Expand your knowledge by using CLI tools over GUI ones
- Use version control where possibe
- Share knowledge, code and projects on GitHub
- Read programming books. Learn about Design Patterns.
- Test your code using automated tests
- Use an 80 column line length guideline in your editor
- Be easy on your eyes. Adjust the brightness of your screen according to the environment. Consider Redshift and f.lux.
- Rest. Split tasks into multiple days. Sleep it over.
- Be healthy in general so it will benefit mental work. Find excuses to sport and eat healthy, not excuses not to.
I hope this post has inspired you with new ideas!
Always strive to improve yourself. Even if it’s just a little, each and every single day.
Thanks for reading!