In this week's blog I'd like to talk about how I got into coding and how I've used it professionally in the past.
Coding is a very broad subject. People who use coding in their daily jobs vary a lot. Some develop apps, others write websites. But many more don't do either of those things. Many programmers work in science, or finance or analyse data for companies and governments. Each day that passes coding is becoming a more diverse field.
The routes that people take throughout their lives that lead them to become proficient programmers are also very diverse.
We often hear of people who code today who started when they were 11 years old (this was before coding was widespread for children as it is today) and for whom coding was a major 'hobby' when they were kids. Often they tell us how they spent many late nights as young adults coding into the small hours of the morning (not healthy since sleep is very important for our bodies and brains), doing all sorts of fancy things.
But not everyone is like that. So here's my story…
My first interaction with coding came when I was in my second year at University back in Malta, at the age of about 19. When I was a bit younger, a cousin of mine had tried to show me how to use BASIC a bit, but I can't remember having ever written anything beyond a basic "Hello World!" program.
Even at University, where I was studying Physics and Maths, the only programming I did was the smallest module possible introducing programming using Pascal. This was the sort of module you choose because it had a reputation of being some easy optional credits you can pick up along the way. Not sure I could write much of relevance at the end of the one-hour-a-week semester of Pascal coding.
So by the time I had finished my undergraduate studies at age 22, I couldn't code.
It was when I started my doctoral studies when I joined the Physics department at Imperial College that I realised that this was a tool that I needed for my research. Most members of the research group I joined could code so I looked at the language they were using, installed it on my desktop computer, and started to figure out what I need to do. The language was MATLAB, a coding language specific for scientific use.
Necessity meant that I quickly learnt how to get things done. My code wasn't pretty, but it worked. It did its job and that's all I needed it to do.
I spent about 15 years working as a research scientist. My need for coding was a constant throughout my career. But a couple of things did change.
The more time I spent coding, the better I got at it and as my projects become more complex I had to learn the hard way how to write proper code, not just code that works. The second change which also happened gradually was that I started seeing coding less of a useful tool I need to get my research done and more as an intellectual challenge that I really enjoyed.
As I became more senior and more in a position to decide my own research, I ran projects that relied more and more on coding because it's what I enjoyed and I was also quite good at it. Mind you, I was also quite good at the Physics stuff which was after all my main area of expertise!
What lessons have I learnt from my rather long path to becoming a proficient programmer:
Self learning can work with coding, but it is a very painful process. Those all important good coding practices and the more efficient programming styles aren't ones you will learn very quickly unless an experienced mentor or teacher guides you in the right direction.
But worse than self-learning is being taught by a someone who is not very proficient. Being one or two steps ahead of the students is definitely not sufficient when teaching coding.
We are now going through another coding revolution in which coding has moved beyond the niche areas such as software development and science and is now spreading to every field and every profession. Every child now learns some basic coding at school, although we need to have an honest and open discussion on how effective the current set-up for teaching coding to children in schools is and whether it's doing more harm than good in some areas where the expertise is lacking
Some years ago I took the decision to move from being a full-time scientists to being a full time educator to teach coding to beginners of all ages.
I'm so glad I did…