Why Your Kids (And You) Should be Learning to Program - And How to Start!
Posted by: Joe Towner
In our ever modernising and computerising global economy, the demand for computer programmers is growing constantly. To the point that the currently demand for programmers cleanly outweighs the supply. The result of this mismatch is that coding schools like Makers Academy and Brain Station are popping up all over the world to cater for this demand and offer those with no tech background an opportunity to get into the field.
These bootcamps can be a very positive experience but they are also very expensive. Many are in the £9,000 range for only a few months of face to face tuition. However, What most people don't realise is that there is a lot that can be done in their bedrooms or offices without having to spend even a penny.
This article hopes to convince you that your kids, and even you, should consider making the time investment to pick up some programming skills and to help you get started.
What is Programming?
First of all, what exactly does one mean when one says “Learn to program”? This is actually quite a contentious question but a dictionary is always a good place to start. As Dictionary.com puts it:
“[To Program:] Digital Technology. To write code for (a computer program or application).”
This is an interesting place to start for a number of reasons: The definition does not specify any programming language. Ergo, programming is a skill that exists separately to the knowledge of a programming language.; The definition also does not state that you need to know any fantastic amount of mathematics.
It is important, then, to understand this distinction: Programming gives you an understanding of how to talk to computers. The language that you program in is the tool that you use to talk to those computers. So, for example, a programmer that knows one language; Ruby, for example, could very quickly transition to another language such as PHP. This is simply because that person is a programmer, they understand what they are trying to tell the computer to do. What they don't necessarily know is how to express that command in a given programming language.
The above definition also helps to dispel a popular myth: You do not need to be a mathematical genius in order to start programming. If you want to write complex computer systems that will take man to Mars, this may be less true. But, in a professional setting, the vast majority of what you will be doing is wrapping a database in display related code and managing the way that the display manipulates the database. Effectively, you are hiding the complexity from the user. Complicated; potentially, mathematical; not necessarily.
With this understanding, programming becomes a tool of the proletariat, not just a gifted elite. It is accessible to everyone who chooses to approach it and, as this article argues, they should.
Why is it Important?
Recently, the BBC released a report entitled “Robot automation will ‘take 800 million jobs by 2030'- BBC”. The title is self-explanatory but the full article is an interesting read The article itself is not of importance for the dismal predictions it makes about the future of manual or food service jobs, however. What is important about the message of this article is that if people are going to be replaced by machines, the industries making and maintaining those machines are going to boom.
Perhaps this is more of a reason to get into tech than specifically programming, but take a hypothetical scenario: A kebab shop decides that it is going to introduce automatic ordering terminals in its store and lower the number of staff that it needs on shift. Immediately, that kebab shop has less need for unskilled labour but this also generates a demand for people who can maintain those terminals. While that maintenance might be physical and specific to those machines, the chances are very high that technologies in the software will be based on common programming languages like C# and SQL. Anyone in the workforce that can demonstrate competence with technology suddenly becomes much more valuable, even if only to help troubleshoot problems.
A less extreme example might be an office administrator who regularly uses an excel spreadsheet with several other office members on a shared drive. With very little experience in PHP (a programming language), SQL (an industry standard database language), HTML and CSS (very basic web display languages) that administrator could build an intranet. This would allow the users to interact and manipulate that data in a user interface as well as control and manage the data in much more intricate ways that are specific to company needs. Excel, after all, is not a bespoke solution for your business.
To summarise the above points: technology is coming and has been coming for a long time. If the workforce cannot adapt and ride the tech wave; the workforce is going to sink.
How do I start?
With that in mind, this article would fail were it not to provide the reader with the recipe to ride the tech wave. A good strategy would be to start with HTML and CSS. They are very simple, they do not have much programming involved in them as they are primarily for how data is displayed on the web. This is a good way of getting used to editing text documents with strange symbols and the student can manipulate objects on the screen straight from the start. Then, Javascript (not to be confused with Java) is good option. This is a good step into programming logic and involves manipulating the objects that you have built in HTML and CSS. A particular advantage is that up until this point, if you want to go into web development, you will definitely need all three of these as they form the “front end” of a website that runs in a user's browser. Following that, you need a “back end” language that runs on your server. PHP is a good choice here as it is popular and easy to get started with. At this point, it will quickly become clear that you need a database, and this is where SQL comes in.
With this roadmap in mind, several online resources stand out as good places to begin the journey:
Codecademy - https://www.codecademy.com– free and paid.
Codecademy is where the writer of this article began his journey. It offers a very comprehensive free service with extra bonuses if you pay monthly. There are courses on a wide variety of different programming languages including HTML, CSS, Javascript, PHP and SQL. It runs in-browser meaning that no installation or configuring of a webserver is necessary.
Treehouse - https://www.teamtreehouse.com – paid
Treehouse is a more academic option than codecademy and is a paid service but it has one huge advantage: it teaches the user how to install and configure their own development environments. After working through some courses on codecademy, it will be clear that the next step is actually hosting a web server. This, however, can be an ordeal without context or anyone to ask for help and advice. This is where treehouse comes into its own. Many of the treehouse beginner courses include step-by-step video lectures on configuring a development environment which is a crucial step on any web developer's journey. It is a paid service of around 20 dollars a month, but it may be worth considering if you find yourself stuck as to where to go next on your journey.
Codewars - https://www.codewars.com – free
Codewars is not for absolute beginners but is an invaluable tool for refining programming learning. In the programming world, what developers often struggle with is problems to solve as a learning experience (particularly before before their first commercial role). This is where Codewars comes in. It is full of little challenges and problems to solve for which you earn points. The challenges are ranked based on difficulty, allowing the user considerable flexibility. In order to begin with Codewars, the user must first complete a basic challenge to know that they are ready. This means it's not suitable for complete beginners but after picking up basic syntax from codecademy, this is a good place to go for some more stimulating practice.
Ultimately, it is too late to get ahead of the tech wave, but it is not too late to ride it. Picking up a programming hobby is an easy way of CV-building and personal development and is a great thing to talk about in interviews even if the role does not require it. If you really believe that the ship has already sailed for you and you're not a programmer, think about your children growing up in a world defined by computer programs where they can't program computers. It is easily comparable to a person nowadays who can't read, at least in the developed world.
The future is already here.
References
Programming Definition at Dictionary.com
Robot automation will ‘take 800 million jobs by 2030 - BBC
Codecademy
Teamtreehouse
Codewars