Fancy learning how to build a website, a mobile app or a computer game? Well to do those things, you need to learn how to program. Learning how to program isn't difficult, but does require you to be able to think logically. But, if you can think logically and have the interest in learning a programming language, then you can write software that can run on anything from laptops, to servers, to mobile phones or any other piece of hardware that you can think of. Here are some tips on how to get started on learning a programming a language.
- Have a project or interest in mind. You can start to learn how to program straight away but I think it helps to have a goal to achieve or something that you wish to create so that you don't get demoralised. Decide if you want to create a website, mobile app or computer game and then set out goals that you need to achieve to get you there. Creating a computer program that is useful for yourself or for a friend will help to keep you motivated.
- Choose a programming language. This will depend on what your goals/interests are. If you want to build a website then the languages will be different than if you choose to write an iPhone app. Maybe choose a simpler language such as Python or Ruby before tackling more advanced languages such as Java, C#, C++, Objective-C or PHP. If you can't decide which language to pick, learn a little bit about a few of them. Python is a good place to start as it has a very readable syntax, it is used in many web applications and is even used for building machine learning applications. Java is a very good choice of language to learn, I program using Java myself, and is used everywhere from web applications, to set-top boxes, smartphones, ATM's and more. HTML and CSS are essential to learn if you want to learn how to build websites and C/C++ are older languages, that are still used for specific applications and are very powerful languages. C in particular is used as a basis for C++, C# and Objective-C which iPhone apps are programmed in.
- Have a go and create your first program. You can read as many resources on programming as you like but you will never learn to program unless you start typing. The first program you should learn to write is the infamous "hello world" program. This is as simple as it gets in terms of programming and simply prints the words "hello world" to the screen. It is the first program every programmer learns to write and is applicable to pretty much every language. Although it is very simple, it does teach you how to create a basic functioning program, what programming syntax is and teaches you how to display an output to the screen.
- Struggle with the bugs. It is inevitable that when you start programming and trying to get online examples to run on your laptop that you will come across issues. Even when writing your first "hello world" program, you may find that you have missed off a semicolon, not installed the necessary software on your computer correctly and your program just won't run even though everything looks correct. This is normal. Fixing bugs and issues is completely normal in learning how to program and when you fix them, that's when you really learn.
- Practice, practice and more practice. This applies to most skills in life but its definitely applicable to programming. Try to practice every day. Learn the basics that apply to most programming languages, such as variables, loops, methods and classes and try to apply these concepts to your own programs. Try changing things in your programs even if you just swap "hello world" for something else such as "hello there" to get you started.
So there are a few tips to get you started. These days there are so many resources available online to help you on your way to becoming a proficient programmer which is becoming a real sought after skill. There are countless tutorials for almost every possible language you can think of and a ton of awesome videos on YouTube that will really help you get to grips with programming. Here is list of websites that I personally have found useful. If you can think of any more, please let me know in the comments.