Learn to Сode: The Secret of a Recursive Method

Coding is where the future is at, globally as well as individually. There are no ‘ifs’ or ‘buts’ about it. Afraid for your job, worried about globalization and frightened you won’t be able to make ends meet in the years to come? Then future-proof yourself by learning how to code.

It is open to anybody, no matter what their age, the sex or the color of their skin, it earns good money, with the average software developer getting in the neighborhood of 100k per year, and is a sector that’s expected to continue growing at 22% until 2022.

And it’s utterly location independent. You can easily do it online, communicating by Skype e-mail or snapchat. So if you’re living in the Rust Belt, Bangladesh or in a cave, as long as you’ve got a decent connection you can code, draw a salary and live in comfort – though admittedly that last part might be hard if you are living in a whole in the ground.

And even the biggest excuse of them all, that it is hard to learn and that you’ve got nobody to teach you, doesn’t hold water anymore. Every day more resources are being put online to help you learn how to select the language you want to code in, how to learn that language and opportunities to code in it.

The only thing that’s holding you back is you.

What Language Should You Learn?

Okay, that might be a little glib. There’s a little more holding you back than that. But all the problems can be overcome! It doesn’t even need to cost you money. The first choice you’ve got to decide on is what language you want to start off learning. There are a lot of them and it can be a little intimidating.

Fortunately, there are tools available here as well. Alternatively, you can work it out on your own. It isn’t actually that hard. The first thing you need to know is that there are two different groups of languages. These are dynamic and static languages.

  • Dynamic languages are more beginner friendly. They don’t require as much code and are very flexible. They’ll teach you the theory. They’re also what is known as ‘higher level’. This means that they don’t worry about the bits and the bolts (which are the lower levels) and instead are several steps removed from there. So, instead of saying ‘take bread out of fridge, take out two slices, take butter…’ you would instead just say, ‘make peanut butter and jam sandwich’. Obviously the latter is a lot faster and in that way Dynamic languages get you results more quickly.
  • Statically typed languages are the other side of the coin. These languages are closer to what you imagine when you think of coding. This language is at a lower level and therefore requires more code to accomplish the same thing – but at least you get decide if your sandwich will be with or without crust, so there is that. These programming languages are considered more scalable, robust and easier to maintain. At the same time, mistakes are punished more harshly.

Got that? Okay, next let’s look at some examples of languages that you could consider using. We’ll start with some of the dynamic languages first.

PHP

If you’re planning to play around with WordPress – and chances are you are, as it’s one of the most popular website building platforms out there with XXX of the websites on the internet built with it – then you’ll want to start with PHP.

Fortunately, this server-side scripting language is quite beginner friendly, as it’s easy to understand what the code will do when you use it. That means that it is far easier to pick up than many other languages.

What’s more, as it has been heavily specialized for web use and that’s probably where you’re going to start out on your programming learning escapades, you can certainly do worse than PHP.

Other platforms built on PHP include Facebook, Wikipedia, Yahoo and Tumblr.

Javascript

On the other end of the scale is Javascript. It is immensely popular and used in many different places and ways. It is compatible across all browsers, is often used to create interactive web apps and is also used as a server-side language.

The only problem? It’s considered quite difficult, as it’s an untyped language, which makes it very hard to debug. This is definitely you’ll want to learn eventually, but you should probably not try to pick it up first. Focus on one of the other ones instead.

Great, so next let’s look at some statically typed languages for you to consider.

Java

You really can’t talk about a statically written language without mentioning Java. It would be like talking about North America without talking about the US. Ninety percent of Fortunate 500 companies use Java. That’s right. Nine zero. And those that don’t are probably like people who refused to use Apple in the noughties. It’s the principle of the matter, damn it!

It isn’t exactly an easy language so it might not be the best place to start off. That said, it is certainly learnable, because if 90% of those companies are using it, then obviously somebody has to be earning it, right? You could certainly do worse than choose Java as your first statically written language.

C

Another (very) important language is C. It is the language of choice of operating systems. It has influenced every programming language we’ve mentioned so far. In a way it’s like Latin, with every European language having borrowed heavily from it and its ideas. And just like Latin, learning it will make learning all those other languages a lot easier.

The problem? Again, the Latin comparison will serve me well. It’s complex and abstract and will require quite a lot of code to do what other do in much less. This means it can be hard to stay motivated as a beginner. It’s probably best to first learn something to come to grips with the basic ideas and then pick up C.

Where Can I Learn About These Platforms?

I’m glad you asked. There really are countless resources available, some of them paid, some of them free. I’d suggest you start with the free ones. You can just type the language you’ve chosen and include the words ‘how to program in’ and you’ll be on your way.

Alternatively, and since you’re already here, you can click on one of the following links and check out the online code learning platforms there.

CodeAcademy is free and24 million people have already learned to code through this platform. That’s probably more people than you thought could code in this world. It’s a very good place to start. Here you can learn HTML, CSS, Javascript, Jquery, PHP, Python and Ruby.

Coursera has over 1000 courses available. Most of the courses are free. You can also get a certificate for some of the courses if you pay. The place has courses by such illustrious locations as the University of Washington, Stanford, The University of Toronto and Vanderbilt.

edX is another good one. This one is open-source so you’ll never have to pay anything. It was built by Harvard and MIT back in 2012 and has been growing since then. There are over 60 schools associated with the place today. So you’ll know you’ll have variety and be at the bleeding edge. You could certainly do worse.

How to Learn

There are a few essential tools that you’re going to need to pay attention to. First of all, you’ve got to familiarize yourself with the libraries of the programming language you’ve chosen. These are the terms and expressions that you’ll have to understand in order to get the computer to do what you want it to.

Yes, understanding these libraries is a little bit like learning another language. Fortunately, there’s one big advantage that you’ll have in coding that you won’t have elsewhere and that is that the expressions are at least partially in English. This means that you’ll at least have some tie-in points to your normal understanding. And trust me, that will help a lot.

Now you can already start experimenting, trying out new things and exploring the different facets of the language. With some really basic programming articles you can come to grips with the language you’ve chosen.

Alternatively, you can start looking at the design patterns in the language. What does that arcane-sounding expression mean? It means that you look at some of the basic solutions to the big things that every programming language needs to do. Yes, you can try and figure these out yourself – in fact, I advise that you try your hand at least a few of these as it will teach you how to think in a programming language and understand the basics. That said, you don’t want to spend your time reinventing the wheel – particularly since your wheel will probably be square in comparison to what’s already out there.

Read Recursively

A very important way to learn to read programming articles is to read them recursively. This means that you read an article that is informative, take all the terms that you don’t understand and google them independently. Then, you read whatever articles are the most helpful there and, if there are any terms that you don’t know here, you repeat the process. Finally, when you’ve come to understand the concept that you stumbled over, you return back to the article and continue reading it.

Yes, this does mean that occasionally you’ll be opening up dozens of different articles in order to come to grips with one article, as one term leads on to another and so forth. The thing is, as time goes on and you find yourself knowing more and more, you will find this happening less and less. What’s more, your understanding will be far more complete and holistic than if you just read things without understanding everything that’s being presented.

Why do you need such holistic knowledge, you ask? Why can’t you just skim read programming like you do everything else? For a very specific and important reason: with other fields if you don’t understand the ins and outs of a concept you can get away with it, either by blathering vaguely or avoiding talking about it.

That’s not possible in programming. In programming you do actually need to understand every aspect. If you don’t, then you can write highly inefficient code, or worse, inadvertently introduce weaknesses into your code that make it susceptible to hacking or crashing. That means you can’t get away with just sidestepping something you don’t know. You have to bite the bullet and tackle every concept head on.

Conclusion

Whether you’re learning programming in order to make money, in order to have a better insight into how your page and your company is being run, to communicate better with whoever is managing your site or to save money by programming aspects yourself, the advantages of learning how to program are immense.

Not only will you be able to write your own code, but you’ll be in a position to understand better what the computer world means and why it functions the way it does. Computers are not people – yes that sounds inane, but you don’t realize the full meaning of that expression until you understand the logic and mechanics of a few programming languages. From there you can then know when something is fishy, what is possible, and when somebody is pretending something is difficult when in truth it’s a piece of cake.

Those are all immensely useful skills to possess. And all you have to do to get them is to sit down and invest a few hours a week in learning a programming language. The benefits, in other words, far outweigh the costs, don’t you agree?

Like it? Share it.

One Comment

  1. Hello Elaina, top article we have built on Angular JS and symphony. Really good simple information for jnr coders to understand the market landscape.

Leave a Comment Yourself

Your email address will not be published. Required fields are marked *