7 Creative Programming Ideas For Practice Or Hobby
Computer programming is a very creative activity, when not viewed as a profession. Whether you are already making your first steps in programming and need to gain experience or whether you are a more advanced hobbyist, here are some interesting ideas that you can consider for your next programming project.
- Projects that include programming
- Arduino
- Raspberry Pi
- Creating video games
- Game modding
- Contribution to open-source software
- Website design
- Mobile apps development
Projects that include programming
Many people consider computer programming to be a difficult job performed by professionals only. However, this is simply a stereotype.
Therefore, if you’re starting to code, there are a number of programming ideas that can raise your level of experience.
Arduino
Arduino is an open-source microcontroller created in 2003 by students from the Interaction Design Ivrea institute in Italy.
The purpose of this board was to be a simple and affordable tool for learning circuit programming. However, due to its strong features, it became more popular even among the circles of more experienced hobbyists. These features include its open-source distribution, hardware expandability and deployment speed for its applications.
By combining knowledge of electronics, programming and sometimes engineering, you can build various kinds of creative projects: from building and programming the functions of a DIY camera drone to creating your own fingerprint lock. As you can see, programming ideas that can be implemented on Arduino are countless and the only obstacle is simply your imagination.
To begin experimenting with this particular board you can get an Arduino Starter Kit first. Several variants are available on the market, depending on the individual components included in the kits. Some of them may include LCD screens, remote controls, LED lights, temperature/fire/sound/infrared sensors, and even motors.
The Arduino programming language is based on Wiring, a programming language influenced by C/C++. The Wiring Framework is an open-source development framework for microcontrollers.
The official development environment (IDE) for Arduino supports the most popular operating system and is available as a desktop and web application. At this point it should be emphasized that if you do not want to write code in the traditional way, you can still work in a visual processing environment.
Using Snap4Arduino or S4A (a modified version of the visual scripting language Scratch) as a layer over the IDE you have the ability to communicate with the board. Of course, for more advanced and complex tasks, using the original development environment and its libraries is a necessity.
In conclusion, keep in mind that Arduino also has a large community of users where you can resort in order to receive help or solve your questions. And if you wish to test your skills at some point in the future, you also have the opportunity to take part in various Arduino contests.
Raspberry Pi
If you are interested in computer programming within an integrated system without getting involved with electronic circuits then Raspberry Pi certainly deserves your attention.
This platform was released in 2011 and is a complete pocket-size computer. The aim of its creators was to build a tiny and affordable computer with high potential so as to teach programming to young people.
The latest generation of this microcomputer is Raspberry Pi 3 Model B, and its detailed specs are as follows:
- Chipset: Broadcom BCM2837
- Processor: ARM Cortex-A53 1.2 GHz 64-bit quad-core
- Graphics card: VideoCore IV 3D graphics core @ 250 Mhz
- RAM: 1 GB
- Storage: Micro SD Card
- Networking: 10/100 Ethernet, 2.4GHz 802.11n wireless, Bluetooth 4.1
- Ports: HDMI, 3.5mm jack, 4x USB 2.0, Ethernet, Serial Interface (CSI), Display Serial Interface (DSI), 40 GPIO pins
In addition to the basic model, you can find other versions that with different specs, size, and price. For example, the Raspberry Pi Zero, has remarkable capabilities in the size of a matchbox.
The operating systems supported by Raspberry Pi are mostly Linux distributions, some of which are:
The installation of these operating systems is performed easily through the NOOBS operating system installer.
The programming languages supported by the platform are many, including Scratch and Python, since Raspberry Pi focuses on novice users.
If you are interested in even more programming ideas in Raspberry, you can read for free the MagPi e-magazine.
Creating video games
Video games are an integral part of both home and mobile entertainment. However, behind this fantastic world lie an enormous range of commands and code lines resulting from long-term work.
One of the most entertaining programming ideas is to build your own video games. In fact, Steam's platform is overwhelmed by indie games, many of which became a major success.
In the case that you are starting to learn programming now but want to get involved in creating games, you can work with visual programming. In the recent years, game engines that were released allow you to build video games without writing code.
But if you want to get into deep into building a three-dimensional open-world multiplayer for example, you need more powerful frameworks. Thus, you will need more advanced engines such as Unity, Unreal Engine, CryEngine and a good knowledge of C++/C#.
Apart from the development of video games, you can also mod games.
Game modding
Game modding is the modification of a video game in any way and in every aspect- from small graphic modifications and the creation of custom maps, to the construction of a new game based on the original.
The purpose of the changes may be due to the fans' need for updates in the original title or the desire for new gameplay experiences through a radical transformation.
More specifically, there are several levels of modding:
- Add-ons: Add-ons are small changes within a video game, in the sense of adding new features. These additions could be new maps, weapons or characters.
- Overhaul: Overhaul is characterized by a large-scale modding of a video game. While its story remains closely related to the original, it usually redefines its gameplay, mechanics, and environment. One of the most known overhaul mods is Black Mesa, based on the legendary Half-Life series.
- Conversion: This is when everything has been modified and the result has nothing to do with the original game. Essentially, the only element that links this mod to the original title is that they share the same game engine. The most popular conversion of all time is Counter-Strike, which is also a Half-Life mod.
At this point it should be noted that in order to mod a game its creators must officially support it, since mods, in essence, are invasive processes in the games’ code. Since video games are intellectual property, you must have the consent of the manufacturers.
However, because modifications are very popular, large gaming companies give users the tools to develop their own mods. For example, Valve has several development applications for a range of games.
Of course, to take full advantage of this software, one must have a solid foundation in programming and knowledge of 3D design. Thus, if your programming ideas are related to games, modding is an interesting field that you can get involved in.
Contribution to open-source software
If you are looking for programming ideas and believe in the values of volunteering, you can contribute to the development of open-source software. In open-source projects, creators provide the source code to users in order to maintain or modify it. Most of them are distributed freely and are free of charge for every use.
In this category you can find exceptional operating systems and applications, which helped significantly in the development of computers. Without the selfless participation of users, we would not have Linux, Firefox, Gimp, Kodi, LibreOffice, and a bunch of apps that we all use (or used at some point).
In order to participate in these projects, getting in touch with the respective communities and choosing the field that you can contribute to is all you need to do.
Website design
Although web design is not a field of programming suitable for hobbyists since it is more of a profession, it does not cease to be a creative activity.
In this case we refer to the design of a website’s front-end, which is the part that visitors view. By combining graphics design and HTML, CSS and PHP technologies, you can, for example, create a WordPress theme.
This activity can also be an investment for your future, if you wish to become a web designer.
Mobile apps development
Similarly to web design, creating mobile apps is more of a profession, which can lead to a career in programming, especially if your own app programming ideas for Android or iOS prove to be successful.
If you want to build an app for Android, you can also work in a visual development environment with App Inventor.
If you have other ideas for programming activities or thoughts, let us know by posting in the comments section below!