29 April 2019

#016 - Programming Inside the Twilight Zone

You are travelling through another dimension, a dimension not only of sight and sound but of mind. A journey into a wondrous land whose boundaries are that of imagination. Your next stop, the Twilight Zone!

I am beginning to appreciate being 'in the zone' when it comes to zoning out of internal and external distractions. I like the adrenaline-filled productive boost, as I strive to tackle a programming project. I find it useful to be in the zone, especially when prototyping code and design.

For the most part, I like to consult online documentation like the Mozilla Developer Network (MDN), or browse the CSS-Tricks website, or even search for development hints on Stack Overflow. It's only when I start composing the code on my own that I can fully engage with the task at hand.

However, I think it is counter-productive to be in the zone throughout the development process.

Firstly, it splinters the brain, and this can lead to burn-out. The left hemisphere of my brain will typically scream for rest when I overspend my time in the zone, even though the rest of my body wants to explore every viable option in order to achieve the best working solution.

Secondly, being over-dependent on the left hemisphere of the brain can hamper the creative aspect of the development process (with the right hemisphere of the brain), especially when considering the user experience (UX) and the finer cosmetic details of a project.

In all honesty, I am still working through my quiz project. If I wanted an easy solution, I could download someone else's code and claim it as my own, but as I want to learn functional programming and seek a role as a software developer, I am prepared to do everything on my own.

I also value the styling of my JavaScript codebase and the visual design of my overall project. I will happily refactor my code and spend the extra time to create meaningful variable names across functions.

With regards to the visual design of my project, I like to unleash my creative flair. So, when the user hovers the mouse over the listed available choices, the mouse cursor will change in appearance to a pointer and the background colour will also change accordingly. If the player answers a question correctly, the user selection will change to green, alongside a visual indicator that says 'Correct'. Likewise, if the player answers a question incorrectly, the user selection will turn red, alongside a visual indicator that reads 'Wrong'.

If I focused purely on the game mechanics of a bog-standard quiz, I would have finished it within a couple of hours, but as I am adding unique features like random questions, random choices and even random images, then the codebase is likely to grow arms and legs. However, from a user's experience - I hope it will be more compelling and engaging than a boring quiz format.

The only thing that I need to finalise is the game logic, so the whole of the game loops through from start to end after each answered question. I also want to display a statistics page at the end of the quiz.

~Richard