this post was submitted on 21 Jul 2023
15 points (100.0% liked)

Learn Programming

1625 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.

top 15 comments
sorted by: hot top controversial new old
[–] josejfernandez@programming.dev 10 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 πŸ™‚

[–] fruity@lemmy.world 4 points 1 year ago* (last edited 1 year ago)

University of Helsinki mooc.fi course is free, really good, and doesn't require any prior knowledge to start. Current year's version uses Python (there is also a Java version), but what I liked the most about it is that it's essentially an Uni course, and as such it focuses on teaching the programming concepts rather than using a specific language.

The most important thing is to start. Which language you pick is less important, once you grasp a concept you can just google how the syntax is for another language.

I made the mistake of being too brainy - thinking too much about how to start correctly and which language to pick. I ended up waffling around with some python here, some javascript there, and some c# as well. In hindsight I think just startingin any language and trying to |ake projects instead of looking for the perfect course and combination would have helped much more.

I personally like w3schools a lot, they have very concise courses for a lot of languages, and also a reference for most of them so if you don't want to follow a course you can just look up things real quick and see what happens.

[–] Dotdev@programming.dev 3 points 1 year ago (1 children)

If you are starting to program start with python

[–] Brainsploosh@lemmy.world 2 points 1 year ago

I came here to say this.

If you don't know what you want or why, start with Python.

Python is a full featured language with a helpful community, loads of great libraries, and is used in anything from automation scripts to games to data modelling & crunching as well as apps.

One of the best things about Python is how helpful and applicable the online documentation and community culture are.

[–] bestnerd@lemmy.world 3 points 1 year ago

Lots of great options! Udemy has some great classes. Edx is also fantastic and has professors and is structured like college classes (https://www.edx.org/learn/computer-science ) Take the basics of computer science and then think about what you want to do. Do you want to do web dev? Backend systems? Enterprise applications? Scripting for system admin? Hardware? Gaming?

Either way learn the basic principles and then pick something that fits your interests. In college a lot of us learned Java or C++ and from there branched out to other languages pretty easily.

If you just want to learn a language then grab the intro to whatever language you want from Udemy.

Comp sci isn’t that necessary for some languages but does help build a great foundation on understanding how and why languages work along with some core competencies for discrete alg, understanding larger algos for data modeling, etc. again not necessary and some of the best engineers I worked with don’t have comp sci backgrounds.

[–] Teddy@programming.dev 2 points 1 year ago

I like learning through games, because it helps keep me engaged. BitBurner is a free incremental JavaScript programming game that I enjoyed. It even has a coding puzzle element similar to games on codin game.com, which has a bunch of free games/puzzles in several languages.

These games didn't necessarily walk me through programming concepts, but got me comfortable with reading documentation and a offered a sandbox to experiment in. YMMV.

[–] Oka@lemmy.ml 2 points 1 year ago (1 children)

Why do you want to learn programming? What do you want to make with it?

Find something you want to make, then learn the language used to make it.

If you just want to "learn" you're going to be directionless. Give yourself a direction. An end goal.

[–] oessessnex@programming.dev 1 points 1 year ago

If you want to make games, start with a text based adventure game, something like Zork. Learn as you go, you will need console IO and data structures to represent game state, puzzles, levels. Then make a 2D game. After that you will probably be proficient enough to make anything you want.