Getting Stuck – And Getting Over It

I have been in my developer role for over 6 months now. I feel very much a part of the furniture both in terms of company and part of the tech team – although I can still be over-awed in technical discussions, I understand much more than I did.

Most of what happens front-end on the website now, is done by myself. I’d say around 90%, as an approximation. It is a source of pride that I almost fully look after the front-end of a website for a relatively sizeable corporation.

This time last year, I was doing mostly copying and pasting and what I thought was my dream job was starting to fall apart. I really had doubts about myself.

I still have occasional doubts. Mostly I am confident of my place as a junior front-end developer, I occasionally even question when I will stop calling myself a junior – not yet though.

Recently I have been given a chunky piece of work, to revamp one of the main sections of the order funnel. At first I thought it might take a few days, now I am thinking a few weeks.

Getting a tad technical (still not quite sure what my audience is here – curious friends or junior/aspiring developers?), we implement a jQuery Datepicker, for when the customer picks the date and time slot of their delivery and also of their collection. The latter, I have been tasked to change from dropdowns, to display fully on screen.

I didn’t envisage the world of problems this would cause me.

It took me a while to work out that I would need to change the HTML markup of the datepicker to ensure it displayed without the need of a dropdown – though as we used the same php module/template for both the delivery and collections datepicker, and I was only changing the collections, I then had to implement an if/else statement – simple, except for the fact that we use Handlebars (a jQuery plugin) to compile the datepicker, so I had to work out how that would fit in.

The actual calendar part wasn’t too troublesome to hook up to the existing codebase, and there was little to amend in terms of display.

The main issue occurred when trying to hook up the time slots. It would display the time slots, but no matter what I did, would not create the object necessary to communicate the customer’s choice of time slot, and would throw all sorts of errors.

Thursday afternoon I was stuck. Friday, I mostly worked on other tasks, Monday I had off work, then Tuesday pretty much all day I tried as much as I could to get around the errors, and occasionally I would fix something but yet it was still not creating the object I needed. And the more I looked at it, the more I tried, the more tired I got – it just simply wasn’t happening.

Something that I guess happens to more developers than just me, is that when I get really stuck on something, I try as much as possible but my brain just becomes mushier, my eyes glaze over and I become very easily distracted, ooooh look at that nice cardboard box over there. And like most things, coding is easier to do at 9am than 5pm – at least for me, anyway, as my most productive hours are early on.

So Wednesday I came into work with a strategy. I inserted dozens of console logs throughout the code – the main codebase is around 10,000 lines now, in places where I thought errors might be occurring. I do this as a matter of course, but had been doing it on a more adhoc basic. Here I started console.log(1), console.log(2) – etc. For those non-coders reading, if you right click Chrome, and click ‘inspect’, you’ll see a box pop up – known as the console, which is inherently useful. The console tab will display anything I tell it to, so in the code if I say console.log(1), then it will log 1 in the console. Try it – just type console.log(1) in the console tab, and you will see it logs 1.

By doing this I can often find out what is going wrong – as if it doesn’t make it to console.log(2), then I know the problem comes in the code between the two console logs.

Alas, this didn’t help. Eventually I started to write a message to our outsourced senior developer, who is available to help when I get stuck – though I always try my hardest to resolve it myself. But before I pressed send, I thought of something else to test – completely outside the chunk of code that I expected it to be within, and yes I found what was causing the error.

Had I built the website myself, I think it would be a lot quicker to unpick and revamp as required – because I would have understood what was coded in the first place.

The main conclusion is that I really am progressing as a developer. I do get stuck. I don’t like asking for help unless I am fully stuck, and not just a bit glued up. I can do this – I really can do this.

I’m still so much at the beginning of my journey, and have so many skills and techniques to learn, but I have come such a long way in the last year.