We’re living the times when being technology savvy and knowing how to code is becoming as fundamental as being able to read and write. Technology is all around us available in potentially infinite supply. It’s up to us to discover and put it to good use.
Therefore, the ability to manipulate technology is increasingly becoming a skill rather than a job. Instead of relying on programmers to mediate the act of telling the computers what to do, one can take the matter in own hands. In a highly competitive market, imagine the cost structure of a company that does everything by hand or outsources automation and computations compared to a company where consultants are able to perform most of the automation and computations themselves.
And it pays better too, because on one hand you have a huge shortage of IT talent that’s only going to get worse and, on the other hand, companies gain a lot in productivity by having the people that really understand the business requirements doing most of the coding.
The good news is anyone can code.
This article is the introduction of a longer series that aims to be a guide for acquiring technical skills that can be effectively used in day to day activities.
Why You Should Learn Coding
Being able to code allows automating part of the work so you can deliver better, faster or cheaper. At a personal level, learning how to code gives you more tools to address challenges. It will grow your business or result in better-paying jobs.
You’ll find that coding is not as much about logic and mathematics as it’s about creativity, intuition and free thinking. And most of all, it’s about confidence. Anyone can do it and anything is possible. In this sense, you’ll find it has more in common with life principles and methods.
What Kind of Coder Are You?
There are thousands of programming languages and coding frameworks out there. Rushing into things without first determining what flavour best suits you will likely lead to being overwhelmed and, ultimately, to lose confidence and interest in learning how to code.
My advice is to start with the things you enjoy doing in your everyday life. The idea is that you’d be able to put the newly acquired skills to use immediately. Having quick wins is likely to boost your motivation to continue your journey into coding.
I will define a few coding profiles by describing their behavioural patterns. Analyze how you relate to each of them. It’s normal to find yourself in more than one profile, but try to pick one to start with. You can always explore later. And you’ll find that in coding there is a lot of knowledge that is transferable to different technologies.
The Visual Coder
This person cares a lot about how things look and feel. No matter how good the information presented by a document is, if it’s not well formatted or it does not flow in an easy to grasp manner, this person will evaluate it as having poor quality.
It’s probably also best to start with Photoshop or other image editors in parallel. Most of the times, it’s easier to draw and make modifications in this kind of applications before doing the coding.
The Data Analyst
To this individual, the world is described through data. Truth must always be backed by numbers. Data comes from many sources — could be collected on a website, from IoT sensors, inputted manually or imported from external sources. In either case, data usually comes in a raw format. It takes processing and visualisation to makes sense out of it.
In some situations, the process of working with data is exploratory, for example, to find out what kind of customers a company has. Otherwise, the process is oriented towards achieving quantifiable results for a specific purpose.
Good technologies to start with are spreadsheets (Excel or Google Spreadsheets). By using formulas, macros, and charts one can process the raw data into meaningful numbers.
The next level is learning SQL. I recommend Microsoft SQL Express, which is the free edition of the SQL Server. It’s easy to install and get started with and it comes with SQL Server Management Studio (SSMS) which is a powerful IDE to interact with the database.
This path also leads to state-of-art technologies. Think Artificial Intelligence or, more specifically, machine learning algorithms. These can be used to make predictions, automatical classification and discovering not so obvious relations between data.
The world is not perfect. But that doesn’t stop the optimizer from aiming towards it by identifying problems and coming up with ways to address it. This individual is process driven. A good process is something that can be reproduced over and over again with similar results. And, more importantly, a good process can be constantly acted upon in order to apply iterative improvements.
The start for the optimizer it’s tricky as it varies widely on applicability domain. A good starting point is not in the realm of code, but in understanding how software applications are designed and work. I also recommend my previous article on Using Spreadsheets for Prototyping.
The Optimizer will explore technologies that help with the digital transformation and process automation. There are numerous tools out there that automate parts of processes. In order to use them effectively, I find the most important skill is the ability to understand how HTTP and Web APIs work. A very good tool besides curl, which is mentioned in the tutorial I linked above, Postman is a much more user-friendly tool to start with.
There are infinite possibilities on how one can use external APIs to improve processes. A simple use case is to call APIs from external services to import data in spreadsheets which otherwise would have had to be filled in manually. Or use Google Translate API to automatically translate a document. Or call a machine learning API to automatically do recognize objects in images and put them in specific folders.
Ultimately, Robotic Process Automation (RPA) software such as UI Path or low code development platforms for business processes such as Plant an App are key in driving digitalization and automation initiatives. They allow custom processes to be automated without having to code everything.
Knowledge is Abundant
I dare to say 50% of the work of a programmer is finding answers on the internet. The most effective ways to search for information related to code is through Google Search and Stack Overflow. There are a lot of self-taught programmers out there to support this statement.
It’s generally accepted by developers that if something can’t be found on the internet, it either means that they’re doing something wrong or that the search is not accurate.
Learning how to search is gained by experience. Until one develops the vocabulary and knowledge, I advise using learning platforms for discovering the semantics of each technology. There are numerous good tutorials out there. Just to mention a few that I know personally, there’s Udemy, Coursera, and Codemy.
The Right Mindset
Anyone can code. However, not anyone will become a top programmer. And one rarely needs to become one.
The purpose of learning how to code is not to change your line of work, but to become better at what you’re already doing in your everyday life.
So, think about what value coding would bring about what you do. This will set you a direction. Once you have that, the next step is to make a plan. If you don’t reserve time on a regular basis, it’s not likely you will learn how to code. If your employer allows it, reserve 1 or 2 hours every day during regular office hours to learn. After a few weeks, you’ll be able to demonstrate to your team how the new skills help you do things better, faster or cheaper.
Finally, the most successful programmers I know have one thing in common. They are curious about how things work. Gaining a deep level of understanding develops intuition and the ability to extrapolate concepts that apply to other areas as well.