Getting started with coding Part 1- Introduction & Languages

Introduction

If you work with computers in any aspect of your life, being able to code can be a very powerful tool. All too often however, I hear people say things like “it’s too difficult” or “I’m not a developer” and they never take more than their first few steps. This post, the first in a series on getting started with coding, addresses both the fears of taking your first steps and the benefits of starting that journey.

Addressing the negatives

First of all, let’s address the two most common reasons I hear for people not wanting to learn how to code, in the previous section.

It is key that I outline the difference here between learning how to code and how to become a fully fledged developer. This series of posts is not about becoming a programmer. It’s about taking the leap of faith required to start learning some relatively basic coding that you can use to add great value to so many things, both in the workplace and in your personal life. The wealth of freely available resources to help you makes this seemingly difficult task a piece of cake.

Let me say it another way. You probably aren’t going to learn to be the next Linus Torvalds but if you take the hour or two required to read this series of posts, you should be confident enough to create some basic scripts that will in turn feed your desire to increase your knowledge further.

Added value

First of all, as a quick check-list to determine if learning the basics of coding is for you, ask yourself the following questions:

Do you use computers in any aspect of your life?

Do you carry out manual tasks on the computer?

Are some of those tasks repeatable?

Do you sometimes make mistakes carrying out those tasks?

Do you wish you could be more productive?

Do any of these tasks take up a long time?

Are any of these tasks complex in nature?

If you answered yes to more than three of these, then I would strongly suggest that coding can help you out. Of course, it’s a trick check-list as most people will answer yes to Q1-3 and you probably wouldn’t be looking for this blog post if you didn’t say yes to Q5. In addition, coding can help with the longer and more complex tasks covered in Q6-7 but just as easily with the shorter tasks. Either way though, you get consistent, repeatable work flows that allow you to get on with other things in your life and hopefully reduce the number of times you answer “yes” to Q4.

Get a ‘just play’ attitude

I hear this a lot of from existing coders, but these people are more often than not born naturals at learning new things and so I understand when complete beginners just don’t know where to start playing. However, the ‘just play’ attitude is key to picking things up at a quicker pace though so as you work through this series of posts, really try to keep that in mind and don’t be afraid to experiment. Making mistakes can sometimes be the best learning tool and this series of posts will show you how to dive in.

The ‘just play’ attitude is even more useful when it comes to the actual act of coding itself. Don’t just copy and paste examples you find on the web (although this is a great way to get ready made code so you can hit the ground running). Tinker with them, change them to suit your needs, break things and then try to fix them again. It’s scary to take those first steps but don’t let self-doubt get in the way of having a really good time.

A Journey Not a destination

In learning to code, the old adage “life is a journey, not a destination” is highly applicable. As I stated at the beginning of this post, this series is not about teaching you how to move in to a new career. It’s about helping you on the first few steps learning some basic tools to make your life easier. Hopefully you will have fun and start adding value in different areas.

Languages

In this section, we cover off how to go about picking one of the languages to learn to code in from the numerous choices.

So many choices, so little time

The primary goal of this series on getting started with coding is to get you comfortable with the coding ecosystem in as quick a time as possible. That means we won’t be looking at all the different possibilities in depth and whilst that may offend some Jedi coders, the various posts will list alternatives in brief for the more inquisitive amongst you. Plus, you all know how Google works. So let’s get started.

There are dozens of languages you can learn to code with. Some of these work really well for scripting purposes e.g. PowerShell, others allow you to create rich graphical applications e.g. Visual Basic. Others you may have heard of include Ruby, Python, C++, Go, Javascript and PHP and each have their own syntax, learning curve and best use cases.

So with our primary goal of getting you doing useful things with code in as short a time as possible, how do you whittle even the limited list above down to the language of your choice? Let’s be brutal here and get it down to one of two choices:

PowerShell. A great choice for people who work predominantly on a Microsoft platform, the easy verb-noun structure makes expanding your knowledge an easy task. It’s great for quickly creating scripts that can automate anything from new OS installs to configuring a fully blown Exchange deployment in minutes rather than hours. The folks at Microsoft have even made it available on Linux and Mac

Python. Available on Windows, Mac and Linux, amongst other platforms, Python is a general purpose language that can be used for everything from simple scripts, to desktop GUI applications to web applications. What that means is that you can make your use of Python grow as your skills and requirements do

I know enough of both languages to be dangerous but my clear preference is for Python. It’s more useful for me and the fact it already has well developed libraries for some of my other hobbies, such as InfoSec and data science seals the deal. The next point to be aware of is that Python has two distinct versions, 2.x and 3.x. Again, we aren’t here to discuss the virtues of each in any real depth. Let’s agree that Python 3 has a brighter future and for this post’s target audience is the right choice. As of December 2016, Python 2 will no longer be supported from 2020. In short, choose Python, not legacy Python.

Yes, there will be some people shouting at their screens right now because they think such and such is a better choice and there will always be situations where one language pips another but the fact Python is so easy to learn, can be used for anything from basic scripting, web design, full graphical application development, data science, networking and countless more use cases makes it one of the best choices for beginners and will grow as you do.

Each of the following posts in this series try to be neutral as to what choices you came to from the previous post, but from a language point of view, I may focus a little more on Python because that is the joyful path that I have followed.

Summary

Again, the aim of this series is to get you up and running as quickly as possible, writing code that will make you more productive and look like a star. Don’t dwell on the myriad of choices for too long. You won’t go too wrong setting out on the path suggested in this series and if you end up enjoying the journey as much as I hope you do, you can always expand your knowledge to another language.

In part 1, we covered off how to go about picking a language to learn to code in from the numerous choices. We can now start looking at how to start creating and editing code in our chosen language in part 2. We’ll also look at additional tools to make coding more enjoyable.