Core Computer Science/Software Engineering
If you’re not sure what kind of field you are interested in you may be better off with a structured, generalized course. The three courses below, cs50, OSSU-CS, and TeachYourselfCS, mimic and follow the path of a computer science degree. The contents will mostly align with courses that you would find in University and they can be a great way to introduce yourself to programming.
• CS50 – https://cs50.harvard.edu/x/2022/
• OSSU-CS – https://github.com/ossu/computer-science
• TeachYourselfCS – https://teachyourselfcs.com/
Spoonfeeding and how to learn
Spoonfeeding is the act of giving someone a direct and complete answer to a question. Generally speaking, this doesn’t have a positive effect on learning. It is important for people to draw the connections from question to answer instead of skipping right to the answer. It’ll help you with future problems. TPH does not condone spoonfeeding. So as a helper, do not give direct answers. As a question asker, make sure you have demonstrated what you currently think. Show people what you have tried, what hasn’t worked, and what issues you are having.
People learn things in different ways. Our programming resources generally cover all the bases: books, videos, courses, and tutorials. But ultimately the best way for you to improve is to practice implementing the knowledge you learn.
Please note, that the resources and suggestions made below are not exhaustive lists.
Web development is a very common first path for people. It can be split into frontend development, backend development, quality assurance, ui/ux design, data management, and development operations (DevOps).
Mobile app development
The mobile world has two operating systems. Android and iOS. It is entirely possible to be an OS-exclusive developer as well as one that develops for both! Android development is primarily done in Kotlin, with java generally being used in legacy projects. iOS development is primarily done in Swift, with legacy projects commonly written in Objective-C. For cross-platform development, you could look into something like react native or the flutter framework which is written with the Dart language.
Sometimes in mobile development, you may also need some kind of backend to manage things like user logins and player vs player competitive statistics. See the ‘backend’ part in the Web Development section above for info.
Embedded systems development
Embedded systems development generally involves programming software on small or large non-computer devices. These typically run either with no operating systems or use specific embedded operating systems. Embedded systems cover a wide range of products. Cars, ATMs, medical equipment, smart home devices, and more.
Data science & Machine learning
When it comes to Game Development you’ve got quite a lot of choices to make, the first starting with whether or not you want to make your own game engine or use an existing one.
Unreal Engine, Unity, Godot Engine, and Game Maker are the most common tools used. Unreal Engine uses a proprietary ‘Blueprint’ visual programming system alongside C++. Unity uses C# as well as Bolt, a visual programming system much like Unreal Blueprints. The Godot Engine uses a proprietary GDScript, but also has support for C++ and C#. Game Maker uses it’s own Game Maker Language.
Don’t forget there are other fields that will have different common languages. Do your research to help you get on the right path for you!