We’ve all had moments in our lives when we’ve wondered how much longer we can carry on doing a particular task, whether you have been running 2 miles straight without a break, working through a dissertation or preparing a feast that you know will take you hours of commitment.
What we don’t realise is activities within our lives are almost always linked to some kind of skill and the journey involved in learning such a skill is literally a relationship.
A relationship that could take many months and years before you feel fully comfortable enough to understand why certain effects and mental states appear when they do while you’re practising your craft.
This post explores the psychology behind coding and its effects on our mentality.
There are still ongoing debates on what other skills programming relates to… Many programmers would say that mathematical and logical analysis skills constitute towards the growth of one’s ability to program while others would say that it’s more akin to learning a foreign language.
Both sides actually have many truths to their theories. Actively, coding exercises multiple cortexes within your brain and can increase your intellect significantly within those areas.
Below is an example of which mental areas are active whilst programming. This image was taken from MRI scan of a university student interpreting snippets of Java code.
According to the studies behind the analysis of programming and mental state. It has been brought to attention that these 5 areas of the brain are involved with interpreting source code.
- BA 6: Middle frontal gyrus (Attention, language, working memory)
- BA 21: Middle temporal gyrus (Semantic memory retrieval)
- BA 40: Inferior parietal lobule (Working memory)
- BA 44: Inferior frontal gyrus (Working memory)
- BA 47: Inferior frontal gyrus (Language, working memory)
The volunteers in the study were only put through the process of analysing code. Although not observed any further, the scientists involved with the study admit that it is likely other areas of the brain are involved when constructing your own code, not just those that are listed above.
The cons of programming
This would be the most obvious downside to prolonged states of coding. It is very understandable that staring at a screen or in some cases, multiple screens for majority of the day tracking changes within code can put a heavy toll on your brain.
Being a developer can be a very demanding job, and especially demanding for your mental state itself. Knowing how to balance work and play is key to keeping your head above water in the world of programming.
This isn’t as true for everyone as most people would think. While being glued to a computer screen all day can make a developer somewhat ignorant to social interactions, the whole ‘hacker introvert’ stereo-type is pretty much a myth at this point in time and becomes less of a commonality as technology advances and becomes even more integrated in society.
In most cases, you would be working as part of a team and need constant communication with anyone involved in the project.
Everyone goes through this!
Whether you’re learning in a college or bootcamp, an intern for a new DevOps role or expert in the field for 40 years starting a new path in your career as a technical consultant. This ‘syndrome’ is often linked to new coders who feel like they don’t belong in a developer’s environment when more accurately, this is really just the general feeling anyone would feel when they are outside their comfort zone.
Everyone has experienced a feeling like this and everyone has at some point been able to escape that feeling, merely by learning to feel comfortable. This may take some time and patience but it’s a feeling that you created within yourself so essentially you who would resolve it in the end.
Lack of Wellbeing
Programmers can be stuck in the same spot for a long time, and when we finally get some time away from their keyboard, it’s easy to become prone to laziness.
We should enjoy our moments of relaxation! We deserve it!
Yes I hear you, and I fully agree. Just remember that you’ve already spent a lot of time being physically idle, even if your mind definitely wasn’t. It makes more sense to consistently keep your body active as it’s easy to forget to do that while you’re busy reading hundreds of lines of code.
This is unavoidable but can be reduced. It solely depends on the type of jobs and roles you work with in your career as a developer.
We will always have constantly shifting deadlines, reoccurring bugs that you’re sure you’ve fixed the week before and irritating managers asking for more and more features yet they can’t even speak ‘computer’.
Video game developers tend to get the worst of it, which is a shame and a major irony due to the fact that the end product is intended to bring entertainment and stress relief to many.
The Perks of being a Wallflower
The pros of programming
Trying to get from A to B, resolving bugs, deciding whether it’s best to use an array or a hash. Your mind is constantly figuring out the best way to resolve the problems placed in front of you. You can think of programming like an ongoing puzzle that gets more complicated to solve as you work through it but eventually you will solve it.
You can imagine after a few years of being subject to so many puzzles that your mind naturally develops an aptitude for solving even the most complex ones.
I still was in my early days of programming so I wouldn’t call myself an expert in any way at all, and I still wouldn’t at this time. I have to say though, I definitely look at situations in a very different way.
Programming changes your general perspective to the many situations that life may present you. Now a normal conversation between friends becomes an ordered collection of string statements that form an array. You now look at an app on your phone and can accurately guess class models and relationships between them. Calling an elevator to the top floor yet realising that the elevator has been programmed to query certain stages first (stopping at other requested floors) before reaching the top floor.
You start to realise that there is a lot of logic behind the many inventions within our lives and human beings themselves have a design of their own.
I mentioned in a previous post that there is an aspect of ‘art’ when it comes to programming, even if it’s somewhat difficult to see.
This form of art is a little different to improvising a solo or painting a portrait. Instead of forming ideas based upon emotion and feeling, your ideas are born from theoretical aspects, like composing a song specifically sticking to sonata form with changes in harmony that reflect what is expected of the song structure.
There are certain conventions that you would abide by before even coming close to consolidating your ideas in to a concrete plan and there is an abundance of skills that use this type of approach to creativity.
This is definitely an obvious one. Especially if you have some kind of personal investment in the projects that you’re working on. I’ve already mentioned that you are exercising various sides of your mind whilst also appealing to a stronger sense of problem-solving and logic-based creativity, add that on to a constant attention to work flow and very quickly, you will enter the deep flow state which many refer to as ‘The Zone’. This state of flow vastly increases the positive effects that learning has on one’s mind while coding or doing any concentration-heavy task and improves your ability to enter this state as well as utilise it in the best way.
I personally have found very few skills outside of music that have allowed me to find my ‘Zone’ so easily and coding has definitely improved my attention span and general concentration overall.
Project deadlines and outstanding tickets needing to be resolved make for many time constraints that you will experience as a developer. This can be incredibly taxing on the mind but by all means this is not a bad thing.
Time is something to be respected, especially due to it being one of our most wasted and abused resources. Remember, once it’s gone… it’s gone
Having so many time-based aspects to our working life as programmers teaches us over time (pun intended) not only to keep within our time constraints but also to plan accordingly so that we never go over our intended time use. This is another one of those traits that we learn as developers that can be extended to improving our general lifestyles.
Whether you’re a beginner programmer or a veteran in the field, we all have many trying moments during our time as developers.
It is important that we remember programming is a skill, and definitely not an easy one. It is a new skill that constantly evolves everyday with new languages, tools and frameworks becoming available for us to use to our heart’s content. Remember to be kind to yourself and find what you love most about coding. That is the fire you need to drive you forward in your journey… even when you’ve lost all sense of direction, at least you’re going somewhere.
So enjoy the journey!