this post was submitted on 21 Jul 2023
16 points (94.4% liked)

Learn Programming

1615 readers
2 users here now

Posting Etiquette

  1. Ask the main part of your question in the title. This should be concise but informative.

  2. Provide everything up front. Don't make people fish for more details in the comments. Provide background information and examples.

  3. Be present for follow up questions. Don't ask for help and run away. Stick around to answer questions and provide more details.

  4. Ask about the problem you're trying to solve. Don't focus too much on debugging your exact solution, as you may be going down the wrong path. Include as much information as you can about what you ultimately are trying to achieve. See more on this here: https://xyproblem.info/

Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient

founded 1 year ago
MODERATORS
 

Im interested in learning programming but there are so many diffrent programming languages and guides that I feel overwhelmed and dont know where or how to start. any useful advice is appreciated.

you are viewing a single comment's thread
view the rest of the comments
[โ€“] josejfernandez@programming.dev 11 points 1 year ago (1 children)

You are starting a journey which is not short, that will be full of amazing things but also frustration. You also mentioned in a post that you want to create a videogame like EU4 and HOI4. I think that is a good goal to have, but also a quite ambitious one.

In my view, you should focus on finding a way to learn programming that keeps you motivated and prevents you from quitting early in the process. Choices of programming languages, technologies, platforms and things with fancy names should be done with that in mind.

So, how to learn programming? I think that you should...

  1. Find some materials you find yourself comfortable with. Those materials might be reference books, video tutorials, guides, online courses or anything else. You need to find what you like to use as a reference.
  2. Start making things as early as possible, and complete them as often as possible. In other words: start simple, small projects that you can complete and start them often, don't wait until you can implement a quicksort to write something you are interested in writing. Maybe even don't write a quicksort at all. Focus on doing stuff that interests you while making you learn.
  3. Find humans that you are comfortable with to share your progress with, ask and learn from. This community may very well be that group of humans, but you can think of others too. Maybe some friend, maybe someone you know online. This is useful because other people can make your learning process faster and, importantly, less frustrating. Other people can also help you with the two previous points in this list: finding materials and giving some ideas for new activities or projects.

So, where exactly to start learning? I think that you could... (different options)

  • Start learning a programming language, such as Python. Python in particular is easy to learn, very powerful, well supported and has huge community. It will help you learn programming and it will be useful after you have learned. Other languages can also be okay, for instance C#, which is maybe slightly more difficult than Python but it's a good choice for game development.
  • Start learning a game engine, such as Godot. This way you will need to learn the game engine AND programming in order to do anything, and that's maybe a little too ambitious, but it is more pragmatic.
  • Find a community, school or similar that can guide you through the learning process and stick to it. I am talking about sites such as https://www.freecodecamp.org, https://exercism.org/ or https://www.theodinproject.com/. I am not recommending any of these in particular because I have no experience with them, just mentioning them so that you know what I am talking about. These communities usually have a plethora of challenges or guided exercises that walk you through learning how to program.

There are many options, and you will hear a lot of recommendations of what worked for other people. That is fine, but you need to find what works for you ๐Ÿ™‚

[โ€“] kapx132@lemmy.world 2 points 1 year ago (1 children)

Thank you for the large ammount of advice shared!

[โ€“] josejfernandez@programming.dev 2 points 1 year ago (1 children)

No problem ๐Ÿ™‚

Interestingly enough, these days I have been thinking about resuming my experiments within game development. It's not a field I am super experienced in, but just for the sake of knowledge sharing...

I started a small project in MonoGame with C#. It is a low~ish level framework, just as I wanted, because I wanted to avoid learning a full-blown engine (such as Godot, which I tried before going with MonoGame). Not that I am recommending this particular track for your situation, though, but based on what I am doing in MonoGame, I think it could be a good way for you (if you chose this track) to be pragmatic (making something) while still forcing you to learn programming. The framework still takes care of some things such as the game loop.

I also created an account in Exercism, one of the communities I mentioned before, because I wanted to mentor someone and they offered this posibility. Whereas I didn't find exactly what I was looking for, I found the website to be quite pleasant to use, so I am slightly more inclined towards recommending that you consider using it ๐Ÿ™‚

[โ€“] sirdorius@programming.dev 2 points 1 year ago* (last edited 1 year ago)

Exercism is really nice to learn a language without getting overwhelmed, and also trains you into the kind of coding challenges that are asked on job interviews. I also want to mention codingame.com which is a bit more advanced and has very game like problems (mostly AI stuff) that you can solve in a fun environment