If you’d asked me a year ago where I thought my patchy, basic Python knowledge would take me, transforming my logical and abstract thinking skills wouldn’t have been the answer.
I joined HSBC’s Technology Graduate programme in July 2019, starting in Data Services. My first programming tasks were technically quite simple but contextually more complex.
My managers always gave feedback on the outputs of my code and provided the context in which they would be used. They’d also share requests from the business side of the bank, like building more functionality into the code.
In a lunch with some other graduates I found myself describing the work I was doing and explaining how my code worked. But I was unable to say why this was useful.
Then I got involved in a bank-wide project relating to automating internal firewalls which also happened to be a useful way to develop my Python skills. By processing the raw data I became the most knowledgeable person about the overall data set.
This resulted in a change in my approach to coding. It became clear that I needed to understand the broader context of the data, along with its consistency and accuracy, in order to bring more value to the team.
When I revisited an old script of mine to significantly expand its functionality I was unable to decipher the logic I had used. After spending most of the day dissecting the script line by line I clearly saw the value of including even the simplest of comments throughout it.
I realised the code is right – and you are wrong. There were times when I’d stare furiously at the simplest lines of code utterly convinced Python was broken, only to realise that my script was running exactly as I had told it to. I had simply told it to do the wrong thing. This blend of frustration and relief is something that I have found to be quite particular to coding.
The experience gave me an ongoing opportunity to sharpen my logical thinking and process-analysis skills. Now I’m much better at thinking through and developing the logic of my programme’s operation before actually writing any code.
This has saved many hours of editing work half-way through the process to add in the steps I had not realised were necessary when I started.
Understanding that there cannot be even a single character’s worth of ambiguity is absolutely essential. Learning to apply this mentality in all my work has been one of the greatest benefits of learning to code.