#How to really learn how to program and understand it

1 messages · Page 1 of 1 (latest)

robust spruce
#

Hi so I was just wondering how you guys who are more experienced really learnt. Like, I understand the basic syntax or the basics of programming, but things still just seem to not make sense.

To me it seems like I need an entire computer science degree to understand this stuff lol

Maybe im just not putting in enough effort/time/practice, though.

Whats the best way to really learn how to program games, but not only, but also understand it.

Like... would I be good if I just understood the programming language or is there some other computer science concepts I need to know to start actually making things?

thanks 😄

wraith shard
#

im sure there will be one that more or less better for you

vague tendon
# robust spruce Hi so I was just wondering how you guys who are more experienced really learnt. ...

Personally i hada lot of difficulty until i took proper programming lessons.
The lessons started with logic first, 0 coding for a while. Also some info on how computer memory works and that kind of stuff.

THEN we started with a pseudo-language (stuff you could write in a notebook like "IF raining THEN get inside ELSE move") And we would try to think of scenarios where we could "program" our actions ahead of time.
Then when we went into coding, the first thing was learning to represent real things with code and defining stuff. Like, health can just be a float. A name can just be a String. A position can be represented with a Vector.

Learning the first language is always the hardest part, but there's some other things that preceed it.

#

In 1-2 years i was coding fairly comfortably.

#

Altho i DID practice with Scratch when i was younger.

blissful geode
#

Just try to make something with the language you wanna learn if you don't understand how to do something you have google

vague tendon
#

well, that is kind of an extreme lol
Luckily you don't need to know several languages to get far. Just the ones you will be using

#

Keep in mind there is a big difference with knowing and being proficient in
(I read you knew 15 languages somehow lmao, ignore me)

blissful geode
#

Ok

solemn gale
#

you just have to problem solve

#

when you work for a company they dont even look which languages you know but if you can problem solve i heard

sand oar
#

As someone who has graduated with a computer science degree, I have to say that a lot of the degree isn't necessarily programming. A lot of it helps translating into learning new things (data structures, algorithms, some math), but my point is that if you know what you want to be proficient in (wed-dev, game dev, front-end/back-end, etc.) you could learn quite quickly if you find tutorials, videos, and practice projects that force you to sit down and learn/practice (rather than getting a whole degree). You'd be surprised how you can jump into something and slowly over time begin to understand the system/process much better a second, third, fourth time around. Coding is a practice-first kind of thing.

And don't overthink what you should learn. You'd be surprised how things that may not seem similar can help you learn other things. I learned Java first (and work with Java) and by just doing you start to understand basic programming patterns/designs, reading API/documentation to understand things, etc. Do what you think you'd like to keep trying. Open source is also fun in that you get to see an already built system (like Godot, you can access all the code on github) and get to learn how teams build things. Open source is great experience once you know a bit of programming

normal lagoon
#

it is like puzzle, lego...

echo obsidian
#

In order of complexity...

  • input/output
  • constants and variables
  • logic flow: if/else, loops, switches
  • data types: bool, integer, float, string
  • arrays and dictionaries
  • functions and function callbacks
  • objects and events
  • lambda and async (the final boss)

There's always so much more to learn, but I reckon that's a comprehensive checklist.

solemn gale
#

i haven;t even used objects and events
lambda and async (the final boss) yet

vague tendon
echo obsidian
#

Events are just signals.
That doesn't really mean anything... Understanding is being able to answer a question like: What steps happen internally following call_deferred to dispatch?

Async/threads likewise. Anyone can use them sure, but truly understanding? There's maybe one person in the Godot dev team who is an expert in asynchronous programming. - it is the final boss after all. gdsuffer

sick narwhal
#

I recommend creating a simple text adventure game or if thats too boring, create a simple tool in the console. One of my first projects was creating a dice roller in the console (meaning it was just text). The tool would ask me what dice to roll, and how many. Then it would display the results. You need to give yourself very small, but achievable goals. This is the only way you can learn to program. You need to learn how to use the tools you are given. You cannot learn to program if you dont understand what each "tool" does. (a tool in this case is variable types, arrays/dictionaries, objects etc). By doing a simple project, you will not only learn what each tool does, but learn when and how to apply them as well.

I cannot stress this enough, you need to just dive in and create something small and meaningless. Yes, there are other dice rollers that are far better than mine, but i made it for the experience. You need to do the same. Also, do your best to avoid looking up how to make the project youre trying to make (like a tutorial). Tutorials are wonderful, but only if you already know what you're doing. You won't make any progress writing code that you dont understand because someone else made it.

**The point here is to learn how to apply programming. **
FYI: I am a software engineer like many others in this discord and feel free to ask any questions you may have. 🙂