Next Steps In Programming

3 minute read


What to do next?

These are some notes about exploring more advanced programming for those who have started programming and looking for more to explore. They assume that you’ve already learnt a programming language, have written one or two of your own programs and are wanting to know what to do next. This list is not ordered. Feel free to ignore any and all of it. It’s aimed to be a “recipe” book for what to do next i in programming.

Learn a new language

Once you have one language under your belt (e.g. Java or JavaScript), try another language. A list of the most popular languages currently used is available here. At the time of writing, the top five are:

  1. Java
  2. C
  3. Python
  4. C++
  5. C#

Choose one of these to learn next, however I would probably avoid C and C++ for a beginner who has already worked with Java or JavaScript or C#.

Learn about source control

If you’ve programmed much, you’ll realize that you make mistakes and sometimes want to go back to a previous version that was working better. There are lots of different software products that let you manage this better: git, mercurial, or subversion would be my top three.

All three of these examples are open source and freely available.

Explore open source projects on GitHub

Open source means that the source code is freely available. There can be commercial restrictions, depending on the type of open source, but for individuals just using it for learning, it is freely available. There are a few open source repositories on the net. GitHub is probably the most popular. GitLab and Sourceforge are others. These repositories generally use one of the source control programs I mentioned above. So this would be a good second step after learning how to use source control (though all those sites allow you to download a zip file of the current status of the project you’re interested in, so it’s not necessary).

Play with image processing using OpenCV

OpenCV is a computer vision library that lets you do really cool stuff with a web camera and a computer. As the documentation says: It has C++, Python, Java and MATLAB interfaces and supports Windows, Linux, Android and Mac OS. I’ve found that Python is a really easy way to access OpenCV, so it might be good to combine learning Python with playing with OpenCV. These is a nice demonstration video of object tracking of a horse in a horse race here.

Write an app for your phone

Both iOS and Android have good tools for developing applications on your phone. The iOS app development system requires use of an Apple computer. Android will work on both MacOS and Windows (or Linux). iOS programs are, these days, often written in Swift. This is a language with similarities to Java and C++. Android programs are written in either Java or Kotlin (an evolution of Java). Even better: Microsoft has a product called Xamarin that allows development in C# and the development is cross-platform (meaning the written program will run on both Android and iOS). Xamarin is open source and works well on either Mac or PC.

Play with “the cloud”

Amazon, Google, and Microsoft (and many smaller players) have made their computers available to everyone. If you want to write a website, then using some of the examples from Amazon might be a place to start, though the other two major companies have similar offerings.