Over the past few decades, computers have radically changed the way we run our lives. They have affected the availability of information, our methods of communication with friends and family, education, business, healthcare and our study of the universe. With the availability of technology and the immense power at the fingertips of anyone who can use it, programming literacy has become one of the most sought-after skills on the planet.
How so? It’s probably the first question you have, and it’s a fair one. As I hope to show, there are a good number of reasons why you should learn to program. I’ll take you through some of the most significant.
Why you should [probably] learn to code
First, business and social enterprises are started when a problem is identified, and a solution is sought. Microsoft and Apple saw the problems involved with manual data storage, computation and communication, and so developed personal computers. Facebook identified a range of problems associated with poor connections between individuals across the world and created the social media platform we use today. LinkedIn was born in 2003 when Reid Hoffman et al. sought to put our business networking online in order to solve problems regarding finding talent, managing business connections and presenting ones professional credentials before potential employers. These are the big household names of the technology industry, but every year tens of thousands of entrepreneurs solve problems, create businesses and change the world through delivering new websites, apps and desktop software to the world. Learn to program to solve big problems.
Second, computers are in billions of homes, offices and pockets across the globe. They’re the devices we use every day, and that’s not going to change. If you’re a reasonably competent computer programmer you’ll never find yourself without a job. You can work as a self-employed web developer or a mobile application consultant. You can work for a company in the technology industry or sell your own indie games. In a growing market with a high demand for skilled programmers you’ll never be out of a job for long. Learn to program for a career.
Third, all of us enjoy doing things that are skilful. We learn to dance, or play the piano, write a journal or spend an afternoon painting a glorious landscape. Many of us enjoy creating, whether it is works of literature or choreography. Programming is a hugely creative challenge. I’ve enjoyed spending countless hours designing beautiful websites or smartphone apps that have been technically and aesthetically satisfying. That’s something which is hugely rewarding. Learn to program for fun.
There are a host of other reasons why you should learn to program. There may be a specific project you may have in mind, or you can do it as an intellectual challenge, or even just to show off a new skill to your friends. Whatever your age, parental responsibilities, occupation or intellectual ability, programming is an enjoyable, achievable and practical skill allowing the creation of all sorts of applications for the benefit of you and others.
What it could do for you
Only recently has computer science become a core aspect of the school curriculum. This is great news for children and young people, but what about those who’ve already finished those stages in life? What about those who’ve missed the boat? To the vast majority of us who fall into this category, it’s our task to begin the journey of gaining a functional understanding of programming, while acquiring the confidence and commitment to put our ideas into code.
An alternative to this self-study approach is to undertake some kind of formal education in programming. Study Computer Science at degree level, or go to college to study Software Development. These can be fantastic courses, and I greatly valued my time at university, but this option is not available to many of us. With jobs, families, and/or financial constraints it can be impossible to spend three years learning to code. Or maybe you’re at university already, but you chose a different degree and are already half way through a course in Geography or Fine Arts. Besides, a degree isn’t by any means necessary for equipping you to solve the vast majority of programming challenges out there – in fact, you’re free and able to do it yourself, just as you are.
Programming: A Primer addresses this situation. In writing this book, my goal is to inspire you, and to help you harness your urge to invent, to build and to circulate your own ideas, through teaching you the fundamental concepts behind modern programming. I want to help you understand the powerful tools at your disposal, and to offer you a glimpse at the vast ocean of possibilities for changing the world for the better though programming. My assumption, therefore, is that your approach is practical, not academic and that you actually want yourself or others to benefit in some way from what you’ll able to do. So if you’re approaching coding with a “cut out the nonsense and tell me only what I need to know” outlook, you’ve got the right book.
This is primarily an introduction to the fundamental concepts in computer programming and not a step-by-step tutorial for simply learning a particular programming language. As such there won’t be detailed instructions on what to do in order to get your development environment set up on a range of platforms, nor will there be a comprehensive coverage of all the features of the relevant programming languages. On the contrary, this book is a journey from alienation to familiarity with the ideas behind programming. You’ll be introduced to the basic concepts of various programming languages, so that you can go away and learn a few for yourself with ease. You’ll find out about what the different languages are used for, and how to write powerful programs quickly. Languages for designing powerful websites will be introduced. Database languages, and a selection of popular algorithms will be explained. In later chapters, we’ll take a look at where technology is heading, and how developers can benefit.
The reality about being a programmer is that it’s not a job title, or an honorary title given for graduating with a technical degree. It’s primarily a mind-set, which uses the power of computing to solve new and interesting problems. Programmers can be
- student entrepreneurs designing the next social network
- accountants seeking more efficient ways to manage clients’ book-keeping
- professionals who want to help make law, medicine or science more interesting and accessible
- long-term unemployed adults looking to make the most of their time
- social entrepreneurs providing content management systems for charities, churches and other causes
Teachers, doctors, engineers or builders are all one and the same when it comes to programming – they are problem solvers. The key to success in problem solving is in familiarity with the principles, being aware of the tools and dreaming up the possibilities.
To get the most out of this journey, I’d recommend skim reading each chapter first, and then going over them much more slowly; digesting all the new ideas and knowledge, and fitting the pieces together.
With all of this in mind, let’s get going!