Learning Programming

One of the best ways to learn programming is by working through problems, and building projects. Working on a series of projects, especially primarily by yourself, is a great way to solidify the process of creating software and become familiar with a programming language and programming tools.


Learning programming is a never-ending process - nobody ever really "masters" it or finishes learning, there is always more experience to get, new problems to tackle, new areas to explore. It can also take quite a bit of time, so it is recommended you work on some programming on your own at home when you have some free time.


Exercism.io allows you to sign up with your GitHub account, and choose different programming languages/platforms to learn. It provides you with a series of programming challenges to solve, which are a great way to get started with programming. If you get stuck, or just want some advice or feedback, you can ask other programmers at robotics or request feedback on the Exercism website.


If you have some free time and want a more guided course of study, https://courses.caveofprogramming.com/p/java-for-complete-beginners is series of video about programming in Java. If you choose to do this course, you should follow along and program everything - just watching the videos likely won't teach you very much. This is also just a place to start learning - once you have got through all or part of the videos, you should definitely start creating some projects on your own.


The very best way to learn is through a series of projects that get larger and more complex as you become more comfortable with programming. Below is a list of ideas for programming projects. If you don't know how to do something, don't hesitate to ask! Also of course feel free to modify/reduce/extend any of these ideas, or come up with your own! And finally, these projects can be made in any programming language you want, and with any tools you want. Python, and Java are recommended as these are used frequently in robotics, however C++, C#, Go, C, Typescript, Rust, Kotlin, and many others would all be good choices if you want.


  1. Build a console program that prompts you to enter your name, and responds with "Hello <name here>!"

  2. Build a console program that generates a secret random number between 0 and 100, and asks the user to make guess and tells them whether their guess is too high or too low after each wrong guess.

  3. Build a console program that acts as an inventory program, by tracking how much of each product is in stock, how much it costs, etc. The user should be able to give it commands to add/remove products, or change the number of items of a product in stock.

  4. Build a console program that tracks grades for different assignments and different students, and can calculate the grades of each student. Bonus: have different assignment categories (classwork, homework, quizzes, tests, etc.) with different or even customizable weighting. Super-bonus: save the data to a database so the program can be closed, and restarted without losing all the data (see https://www.sqlitetutorial.net/sqlite-java/ for some tutorials, this can be quite complicated so if you want help please ask!).

  5. Build a simple calculator program with a graphical user interface. Definitely ask for advice/help on this, see https://www.tutorialspoint.com/javafx/index.htm for some info on creating GUIs in Java.

  6. Anything else you feel like making! Tetris, a platformer game, a todo list app, a raytracer, or something more robotics focused like a computer vision program are all great ideas on the more complicated end of things.

Recent Posts

See All