I've been coding on and off for about 3-4 years but it's all been non-witten coding and I've been trying to get better and improve but I honestly don't know where to start.
I got started using Udemy tutorials (If you do this, only buy during a sale. They offer $200, 75 hour classes for $10) After I followed enough tutorials I started taking that knowledge to Frankenstein my own projects and eventually I was able to code without any help (other than reading up on the docs for implementing 3rd party API's like Firebase, Photon etc)
A big help in my coding journey is compartmentalizing problems. Don't look at the game as a whole, look at each issue individually.
Want the player to move, how do we move it?
Want to animate something, how do we animate it?
Want to get a button working, how do we track clicks?
And before you know it, you have a complete project.
Side Note : Forums can be very helpful but also very harmful. People can be very harsh especially if they don't agree with what you want to do.
Having a slow computer makes things tougher but where there's a will, there's a way. For example, last year I had to leave home for a few months and only had my phone with me. But, I was still able to code and publish console games from my phone during that time. When I returned home, I took the code that I typed up on my phone and I went into Unity and published my Sudoku android game with it. I am unfortunately all to familiar with the struggle of trying to become a programmer with no money to do so.
With a slow computer, big engines such as Unity or Unreal Engine may be too much although you might get away with Unity 2D. A safer bet might be creating MERN or FERN websites since those are pretty low impact. You could try RPG Maker but that's very restricting and not really programming. On that note, you could experiment with Python.
I disagree. Game development is not just programming, it includes 2D/3D/Audio asset creation, UI design, and programming. Depending on the game you want to develop, it can include a lot of programming or next to no programming. The engine chosen to develop also affects the amount and type of programming needed.
Picking an engine is very important as it will dictate what kind of developments you can make and where you can publish your builds.
For example, Unity can build for Windows, Mac, Linux, Servers, Android, IOS, Websites, PS4, PS5 and more. However, if you want to truly build for IOS then you need a device with a Macintosh operating system and another device with an IOS operating system. Furthermore, while Unity extends from C# without an intimate understanding of the Unity libraries then C# knowledge means nothing. Also Unity extends from C# 9 and less so mastering C# 12 isn't very helpful. There are also many C# functions and libraries that aren't usable in Unity.
In the Android application "C# shell" you can build Android applications but you cannot publish them to the Google Play store since that engine only builds APK's and not AAB's.
The engine or lack thereof that you choose to learn is very important.