What Programming Language Should You Learn? And How to Get Started With Coding

By on September 8, 2017

I blog and vlog about a lot of topics on this channel/site. These range from bodybuilding, to brain training, to martial arts, to productivity.

learn to code thumbnail

But probably the question I receive more than any other is: how can I learn to code? Often this is followed by: which programming language should I learn?

I’ve advocated learning to code on this site many times. I’ve talked about how it’s good for developing brain power, I’ve explained how you can use it to create powerful and useful tools to use yourself. And I’ve talked about how it has opened up a ton of doors for me, most recently leading me to get my first book published and available in stores!

But despite all this I certainly wouldn’t consider myself an expert coder. I am completely self-taught and it has taken me a long time to grasp even some of the basic concepts. I consider this a strength though when I’m writing development posts for Android Authority, as it means I can better understand where readers might be coming from. I can remember how hard it was for me to pick up programming and I can therefore (hopefully) help readers to avoid the same stumbling blocks I experienced.

IMG_20170716_131252_790

And it also hasn’t held me back from creating apps with hundreds of thousands of downloads. The key is to learn as you go, to fake it until you make it. And I rather suspect that quite a lot of developers actually feel the same way.

With that in mind then, I encourage you to dive in and learn to code despite any reservations you might have. And if you’re not sure where to start, well then read on!

What Programming Language Should You Learn?

This is the big question I get the most and it’s also one that is surprisingly difficult to answer. Asking which programming language you should learn is a little like asking which language you should learn. It entirely depends on your intended use.

For instance, if you want to create an app for Android using the most official channel, then you will need to learn Java. Google also recently announced that it would support Kotlin through Android Studio, which is a slightly easier and more streamlined alternative to Java with many similarities.

Problem is that Java and even Kotlin are actually really tough programming languages. Kotlin is relatively new and not as widely supported so starting with Java makes a little more sense for most. And Java is full of caught exceptions, null pointers, constructors and classes. It’s a massive headache to get your head around and to do even basic things – at least that is my take on it. Fortunately, Android Studio makes a lot of things easier these days, but it’s still a tough nut to crack for your first coding adventure.

20170705_222316

And if you want to make an app for iOS, then chances are that you’re going to need to learn either objective C or Swift. If you want to create a web app or a social media platform, you’ll be looking at learning languages like PHP and Python, along with databases. That handles the backend, while HTML, CSS and JavaScript will handle the front end. If you can do both, you’re what is considered a ‘full stack developer’ – which is an increasingly rare breed. So, there’s no single programming language you can learn that will allow you to build every kind of app for every kind of system.

Good Programming Languages to Start With

If you are looking to build something specific then, the answer to which programming language you should learn is easy: you should learn the one that lets you build that thing. A quick Google will help you find the answer.

But I recommend that you start a little more simply and work your way up. Start with a programming language that is welcoming and easy going; that way you can learn the basic concepts of coding and then learn new ways to apply them. Once you learn one new language, adding more often becomes a matter of learning some new syntax and formatting with just a few new concepts.

So which programming language should you learn if you want to keep things simple? One great option is BASIC (Beginners’ All-Purpose Symbolic Instruction Code). That’s the language that many of us millennials started with on our ZX Spectrums and QBASIC on old DOS computers. The modern equivalent is Visual BASIC. Another option is to try B4A which is a one-man project that lets you create Android apps with BASIC. It’s brilliant and it’s what I used to create my first hit app. Not only does BASIC lack some of the more complicated concepts from languages like Java but it also reads much more like English with statements like ‘OR’ and ‘THEN’. It’s much more intuitive to grasp than a selection of curly brackets and exclamation marks.

Another very beginner-friendly programming language is Python. This is a language that has been designed to be simple and easy to code with. Code is kept to a minimal, everything is clean and logical and the result is that it’s perfect for beginners.

P1020302

And finally, I would highly recommend learning C# with Unity. C# is developed by Microsoft and is very similar to Java apart from being much simpler. Unity meanwhile is a game engine and a tool that you can use for rapid development. In other words, it handles things like physics and sprites when you build a computer game. Those games can then be ported easily to Android, iOS, PC or even home consoles. Plus, you can create virtual reality apps!

The great thing about Unity is that it provides a very visual introduction to classes and objects while allowing you to do some very impressive things with minimal coding. It’s a rewarding and gentle introduction to coding that will let you easily transition to Java or C++. And you can also use Java when developing in Unity!

Even if you aren’t planning on building a game in the long run, this is a good way to find your feet. And I’ve just published a book on the subject, would you look at that!

Getting Started, Trying Tutorials and Finding an IDE

So, once you’ve chosen which programming language to learn, how do you get started and dive in?

I remember learning the basics of coding from a book on holiday but still being left with one crucial question: where do I start typing? How do I turn my code into an actual program that people can run?

For that, you’re going to need an IDE. And IDE is an Integrated Development Environment. This is a program that runs on your desktop and that lets you start new projects, manage all the different files and crucially – compile and run your apps (compile means turning your code into an executable program). Unity is an example of an IDE (as well as a game engine), as is Android Studio and B4A. For Visual BASIC or C#, you’ll want to install Visual Studio as your IDE. For Python you have lots of options but perhaps the most popular one is PyCharm.

Learning to code

Normally, you will need to do this as well as installing the actually programming language or ‘interpreter’. This is what allows the computer to understand the language and what the IDE will use to compile and test your code. For Java for example, you need the JDK (Java Development Kit). For Python, you need to choose to download Python 2.x or 3.x.

You might also need to install additional ‘libraries’ or development kits, which contain additional code you can access in your own programs in order to support the features of the device you’re targeting; for example Android development requires something called the Android SDK and that also gives you tools for debugging (testing) your apps etc.

This all sounds complicated but it basically amounts to downloading a bunch of stuff and then just opening up the IDE and letting that do the heavy lifting. You can find instructions on setting up development environments for any code and any target device by searching online.

Courses and Projects

So, you’ve chosen which programming language to learn, you’ve set up an IDE and now you’re ready to start. But how do you actually learn to code?

From there, you may then decide to read some books, to follow some courses or to try enrolling in some online classes.

Learning to code is hard going and dense. So, don’t expect to become a master from one course and don’t fret if you don’t get it right away. What I recommend is that you do try reading one book first. Read a good overview to a simple programming language (like my book!) and take notes/try to put some of the lessons into practice.

Learn Unity for Android Game Development Adam Sinicki

But the most important thing to do is to pick a project and work towards it. In other words, decide what you want to make and then learn to make it. This completely changes the way you approach higher level concepts because it means you aren’t thinking in an abstract and arbitrary way. Now you are seeing the code in context and experiencing its usefulness first hand.

This will also help to motivate you to learn new statements and techniques because there will be an end goal. Once you’ve finished one project, you can take on another one and that will require you to learn additional skills.

For that first project, pick something easy. Don’t dive straight into creating the next Facebook – even if you do have an exciting idea you can’t wait to bring to life. Choose projects that interest you but work on very simple, achievable goals first. That could be a simple game, a basic calculator, a note taking app…

YouTube tutorials are very good (and free!) and I also quite like Android IDE (an IDE that lets you code on an Android device and talks you through what you’re doing). I’ve also written a post on this site on how programming works that doesn’t require you to learn any specific language. It may serve as a useful introduction.

Screenshot_20170414-075414

And once you get a basic level of knowledge under your belt… teach! This is known as the ‘Feynman technique’ and the idea is that if you can learn a concept well enough to explain it to someone else, then you will have achieved a deep level of understanding. It’s what I’m doing right now!

Subscribe Below to Stay Up to Date!

Mailing List

About Adam Sinicki

Hi there! My name is Adam Sinicki, I'm an entrepreneur, psychology graduate and amateur bodybuilder interested in fitness, self improvement, technology and transhumanism. I run an online business (NQR Productions) which allows me to live the lifestyle I want: getting time to hit the gym and to work on my projects and apps. Stick around and I'll be sharing my experiments and adventures in brain training, bodybuilding, productivity, business and technology.