As a software developer, what makes my coding experience more enjoyable?

What are the factors that directly improve your work? Read more to find mine as a programmer.

As a software developer, what makes my coding experience more enjoyable?

Two things that standout for me is - having a good laptop and a proper environment for working. Using good tools also improves my coding experience.

High Quality Laptop

A high quality laptop is one of my biggest motivation for coding. I don't feel like working if I have an ugly hardware - just like having an old and ugly car that I don't feel impressed looking at. This is not about impressing other people. Imagine having a huge workstation with outstanding specs but big and square design as follow:

Photo by Sven Brandsma / Unsplash

Now consider this magnificent one:

Photo by Luis Villasmil / Unsplash

In fact, the more beautiful the laptop is, the more motivated I am to work with it.

I am right now enjoying working with a MacBook Pro, the late 2017 version. The text looks crisp and easy on my eyes with the Retina display. This gives me further motivation for writing and coding. Even usually mundane work like research becomes more interesting. Additionally, the Mac OS is well designed and stunning compared to Windows 10 and most linux distributions out there. For me, the consistent apps look is a great win, relative to apps on linux which are often different and weird looking - KDE apps on GNOME and vice versa.

Great Working Environment

Los Angeles Office
Photo by Dane Deaner / Unsplash

Having a great working environment is another factor which improves my coding experience. Imagine having a table and chair working in the middle of a hall, with hundreds of people walking around. A modern open office space is not completely dissimilar. This affects productivity at a point that inhibits my overall experience. In short, an open office decreases my developer happiness.

For me, a great working environment means not necessarily everyone having their own private offices. But having enough spaces between employees and plenty of satellite rooms so that anyone having meetings can shift there - resulting in less noise. Of course, the office has to be designed with materials that absorb noise such as carpets.

Proper lightning is another factor that makes or breaks my experience when programming. I prefer natural lighting that is filtered and no over head bulbs, unless their intensity can be reduced. Otherwise, not only I cannot code for hours, but I need to take regular breaks to avoid headaches and migraines due to the excess of light.

Challenge Level

Having the exact level of challenge makes the coding experience more interesting. The problem should neither be too hard nor too easy - it should be around 10% more difficult than my current abilities. For example, adding a new payment solution from an already implemented payment gateway like Stripe in an existing app is around that level. On the contrary, just modifying the UIs - would be too easy and boring for me - unless I am learning a new framework or CSS library. Similarly, implementing the logic for online payment via Debit Card by using the bank APIs directly should be far more challenging - way outside of my comfort zone.

I try tackling huge and difficult tasks by - breaking them into smaller parts - that I estimate to be a little difficult but not too granular. I also avoid putting any deadline at this stage because I have no idea how much time will it take for completion.

Honorable Mentions

Exercising makes a big difference for me to appreciate doing anything. If I don't lift weight for instance, I feel lethargic and weak throughout the week - thereby directly affecting my productivity and overall developer happiness. Everything looks and feels difficult for me. I cannot in fact stay still. I like moving around. Sitting and coding for hours is therefore, out of question for me.

Coffee By Firesky Studios Ireland
Photo by Mike Kenneally / Unsplash

In this modern age and time, one cannot simply ignore coffee; even though there are still plenty of creative people working in design and programming who do not consume it. Some others also prefer tea, particularly, green tea. In my case, I experience a heightened sense of consciousness when I drink them. In other words, I feel more present and can better focus on the work at hand. I however note that - an excess of coffee prevents me from sleeping - therefore affecting my productivity the next days.

Having good tools also makes my programming experience more delightful; imagine using notepad vs Visual Studio Code for coding in TypeScript.

And ergonomics of course plays a crucial role. Consider having an ancient model unadjustable uncomfortable chair and a table that's too high for your arms. You can't enjoy your work with such debris and can't certainly produce world class codes.

Conclusion

In short, there are several factors that makes my work more enjoyable. I can even write a book in this title. I try designing my work lifestyle in order to suit most of them but it's not easy for multiple reasons. For instance, most tech companies in the region neither offer Remote Working nor have big comfortable and sound proof Open Space Office (let alone private ones).