Home » Programming » What programming language should I start with?

What programming language should I start with?

There are many different programming languages out there, each with a different purpose. So how do you choose which one to start with? It’s a fairly simple process, really.

Start by identifying what exactly you want to do. Do you want to make websites? Games? Each field has a different language that you’re best off starting with. When you’re learning a new language, you need to apply what you learn. A great way to do this is with a project, so I’ll include a list of project ideas for each category.

Web Design

Web design is a great place to start programming. Start with HTML. HTML allows you to structure the webpages. From there, you should learn CSS to style the pages and make them look nice. Once you learn the basics of HTML and CSS, look into HTML5 and CSS3 to check out the newest features of each.

JavaScript will help you add some functionality to your pages. It’s simple to learn and provides a bit more of an actual programming experience than HTML and CSS. You’ll learn about variables, basic logic, loops and other fundamentals. Once you have a good grasp of JavaScript, start playing with jQuery to add some advanced functionality and make highly interactive pages.

Project Ideas:

Start a basic website. You don’t even need to host it somewhere, you can just view it on your computer by opening the files in your browser of choice. Pick a topic you’re interested in and build a simple website around it. If you want to add more functionality, such as turning it into a blog or something of the like, read on to the section about web development.

Web Development

Getting into web development requires a bit of a background in web design – you should be able to structure basic websites and add some simple functionality like forms. The easiest language to start with is PHP. It’s the easiest simply because it’s offered on more hosts than any other language. You could also use Python or Ruby, but you’ll have to find a host that specifically offers them.

A great place to learn the basics of PHP is over at Tizag. Once you’ve got basic PHP down, you’re going to want to learn how to operate a database. It’s the easiest way to store and retrieve data. The most common one you’ll see is MySQL. Learn how to create a database, add tables and populate it with data. PHP makes interacting with the database a breeze through the mysqli extension.

Project Ideas:

Now you’re able to really make some neat websites. Start with something simple, like a list manager. It could be a to-do list, a shopping list or anything of the like. You can make it more complicated by setting it up to email you daily lists or by adding in task priorities.

Another great project is to build your own simple CMS (content management system) like WordPress or Drupal. Basically, build your own blogging software. Make a simple editor where you enter in a title and text, save it to a database and have another page that retrieves and displays the posts in chronological order. This can be made more complicated by adding tags or categories for posts, adding multiple authors, or by adding any of the features that big name CMSs have.


Game Design

Game design! It’s one of the most profitable fields to get into right now! The most common languages used for game design are C, C++, C# and Java. You’re best off starting with C++ though, since it is by far the most common.  Most of the great graphics libraries require you to use C++. Learning the OOP paradigm will be very, very useful if you choose to pursue game design further.

Now, if you’re looking to get into mobile game design, see the sections below for iOS and Android development.

Project Ideas:

Make a text based game! It doesn’t have to be anything fancy, but it would be a great way to learn all about OOP. Start with something simple, just a person taking directions to go north, south, wherever. Then add in monster encounters. Then loot drops! A banking system! Later, make it so multiple people can play together and interact with each other.

Once you’ve got the basic down, find a game making library to use. Find tutorials for that specific library and get crackin’. Keep it up and soon you’ll be the next lead designer at Blizzard!

Scripting & Automation

The easiest scripting language to start with is Python. It works on any operating system you can find. If you’re on Linux, you may want to look at Bash instead. There are countless guides to both Python and Bash out on the web. Once you’ve got the hang of Python, try another. No one ever said “I know too many programming languages! ARGH!” No one.

Project Ideas:

What task do you do repeatedly on your computer? Defrag it? Run anti-virus scans? Update this or that? Automate it! Write a small script to run all of those programs for you.

iOS Development

If you’re looking to get into iOS development, be sure you have some money to drop. You’ll need access to an Apple computer, X-Code and a developer’s license. Eesh. You’ll pretty much be forced into using Objective-C for everything. It’s similar to C++ and C#, but is still its own beast. I’m unsure if there are any good free guides for Objective-C out there. You may be better off by buying a book on the topic from Amazon.

Project Ideas:

Think of something you’ve always wanted to do from your phone, then make it happen! Make a simple task manager and make it as sleek and feature-full as you want. Step it up and make a simple chat program. If you make something awesome enough, market it in the app store and make a few bucks!

Android Development

Android development is similar to iOS development, except you’re not locked down to Objective-C. In fact, you have your choice of Java, Python and web stuff (HTML, CSS, JS). Any of them work! Google has a great guide here to get you started.

Project Ideas:

See the iOS project ideas.


About drware

Dave is a mathematician by trade and a nerd by heart. Nothing makes him happier than a cup of good coffee and an hour at his keyboard! Check out his other work at DIY Tech Support or follow him on Twitter at @diy_techsupport!