This title might give the impression that I know very little about programming. This is not true! I have experience in several programming languages including Java, Python and C#. So why do I wish I knew more about programming? No matter how much you know about a topic, there will always be more to learn. A university professor would be considered an expert in their field, but they still continue studying, researching and discovering more about the topic.
The jobs market is very competitive, especially in the Post-COVID world. You can never be certain what tools, frameworks or programming languages will be needed. Attempting to learn everything is not possible (and not recommended). Even those lucky enough to be in a secure job could find themselves changing to a completely different tech stack at a moments notice.
In my opinion, the most important skill anyone can have is adaptability. The ability to pick up any piece of technology and use it effectively in the just a few days is useful to any team and business. I want to learn as much as I can about programming, so that it is easier to adapt if I’m asked to work with a programming language that I have no experience in.
How I Learnt To Program
I started out programming while still at school. The first programming language I learnt was Pascal. At university, I moved onto Java. I’ve not used either language post university. However, my programming experience and general knowledge of how programming languages work has enabled me to pick up any programming language I was told I had to use (you don’t always get a choice).
After graduating from university, I started my first job as a software tester. I went about a year without doing any programming at all. Eventually I moved onto test automation and was told I had to develop the tests using C#. I encountered several issues while trying to develop my skills in test automation, but programming in an unfamiliar language was not the cause. I found learning C# really easy. This would not have been possible if I wasn’t familiar in at least 1 other programming language.
I started my career at a bit of an advantage. I had the opportunity to learn to program in a classroom, with supportive teachers and fellow students to share ideas with. You don’t need academic programming experience to learn to program. It does make things easier, but you can also learn independently by taking an online course or learning from a book. If you choose this route, I would strongly encourage you to share your achievements and ask for help if you encounter any issues. There is a whole community of developers and testers out there who are more than willing to offer advise and support.
Learning To Program when We Already Know How to Program
Earlier this year, I set myself a series of goals. One of these was to learn a new programming language. For this, I chose Python. My decision was based on the fact that I had absolutely no experience in Python programming. I have no expectation of using this in my current job, so this was done purely for fun.
By learning a new programming language I was putting my adaptability skills to the test. I wanted to see if I could pick up any programming language and learn it in just a few days? For Python, the answer was yes! However, it is worth noting that I am an experienced programmer, this story might be different for a novice.
I’d often heard of Python syntax being described simplistic and straightforward, and I found this to be true. Whether this makes the language a good one for novice programmers to learn is debatable. Simplicity can be both helpful and a hindrance for new programmers. Someone new to programming may find they can learn more about programming constructs in general by focusing on a more complex language like Java or C#.
When learning a new programming language, it is important to not just do the exercises in a book. You want to set your own problems and challenges. I attempted to write my own Sudoku solver program in python. It was never completed, but trying to create something without having the answers immediately helped improve my problem solving skills. Furthermore, attempting to solve these problems using a programming language I have less experience in increased my confidence as a programmer.
Writing about what I learn
As part of this programming goal, I’d planned to write a series of blog posts comparing Python and C#. I’ve always found that writing down what I learn in the form of blog posts helps organize my thoughts and confirm that I correctly understand the subject.
The COVID-19 pandemic really messed up my routine, so this this plan was largely forgotten about and abandoned. I might write more articles like this.
These are the python/c# blog posts that were published:
- Crazy Loop Syntax
A blog post analyzing the different syntax for if statements, for loops and while loops on both C# and Python
- What are Tuples?
Having never used Tuples before, I used this as an opportunity to learn about them for both C# and Python.
Tell Me Your Story
I’d really like to hear about other peoples experiences of learning to code. Please share them in the comments.
How did you learn programming? What was your first programming language? Did you learn at school, join a group, or learn by yourself at home?
This blog post is inspired by the August/September Ministry of Testing Bloggers club prompt “I wish I knew more about…”.
The Bloggers Club is a great way to find inspiration for blog ideas. I especially like seeing how other bloggers interpret the topic.
Test Automation University
This includes many free courses including one on Java Programming. This is a great starting point if you want to learn Java.
Python By Example by Nichola Lacey
This is the book I purchased earlier this year when I started to learn Python
Python Koans by Greg Malcom
These include a series of tests written in Python that are failing. Most of them only require simple fixes, so this is a great way to learn python by fixing these tests.