The learning process

You can talk about almost anything that you want to on this board.

Moderator: Moderators

Post Reply
Posts: 72
Joined: Mon Nov 21, 2011 3:53 pm

The learning process

Post by klonoa » Thu Sep 03, 2020 9:31 am

Hi all!

I had a passionate (but friendly) discussion with a friend a few days ago about how to approach learning a new programming language or
any topic for that matter.

Our big disagreement was on the amount of preparation before jumping in.
He argued it's better to first read up on everything as much as possible and then start to write a program.
I like to fall and stumble more and learn as I'm going along writing a program.
I'll be the first to admit that my early stuff has some horrible practices and spaghetti code
but at the same time I'm aware it's bad and know better now, so I have learned from it.

He said that the time I've spend stumbling would have been better spend preparing more.

What do you guys think?
Is there a "Correct" way of approaching a topic you'd like to learn or is it up to personal preference?

User avatar
Posts: 11859
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: The learning process

Post by tokumaru » Thu Sep 03, 2020 9:52 am

Learning a new language or how to use a new toolset is not nearly as troublesome as learning an entirely new development paradigm, which often happens when people jump into retro have development.

Which method of learning is better varies from person to person, I'm sure. I'm with your friend, I like to study things in detail before I start coding, so that I can at least avoid really atrocious mistakes that will haunt me in the future. But that's me, and my approach to coding is a bit too serious, I like to get things right from the start (not that this saves me from all the rewrites!), but I don't have anything against people writing throwaway programs just for the purpose of practicing. However, I am against the release of buggy/unreliable code to the public, because that makes it harder for other newcomers to separate the good references from the bad ones.

User avatar
Posts: 148
Joined: Tue Nov 13, 2018 4:58 am
Location: $4016

Re: The learning process

Post by Controllerhead » Thu Sep 03, 2020 9:54 am

I think it's important to have a purpose and set realistic goals when approaching something new.

As far as programming languages, i find it essential to run code as you read. The latest one i've taken on is Lua. The official documentation is sparse. Many examples are broken / outdated / require some specific library. Before you commit something to memory, you'd better make sure it works! In some perfect world (that is not the one we live in) every feature of every language runs perfectly with wonderful documentation. ...That is not my experience with any programming language i've ever learned.

I'll use Piano as another example. You could read and memorize all of the music theory in the world. But, if you don't sit down and physically play the thing, your hands will be useless. You need to build muscle memory and rhythm and timing with physical action. Eventually, with repetition, your brain will just "do" what you think about without having to concentrate that hard. It becomes part of your subconscious. You don't think about breathing or moving your tongue or vocal chords to speak, do you? It's kind of like that i guess.

My approach: Read. Do. Repeat. Incrementally in small steps with realistic goals.

Posts: 913
Joined: Tue Feb 07, 2017 2:03 am

Re: The learning process

Post by Oziphantom » Thu Sep 03, 2020 10:08 am

There are basically two ways people like to work. These broadly tend to fall into Male and Female "ways" but not really.

Press every button and see what happens. I.e learn by doing, dive in and start experimenting ( classical Male fashion )
Read the instructions/all literature you can get your hands on, so you feel prepared and know what to expect on your journey. ( classical female fashion )

Neither is write or wrong, they are just different.

User avatar
Posts: 7951
Joined: Fri Nov 12, 2004 2:49 pm
Location: Chexbres, VD, Switzerland

Re: The learning process

Post by Bregalad » Thu Sep 03, 2020 2:38 pm

What I'll say might sound cliche, but in my personal opinion a good balance/equilibrum is the best for learning process.

Jumping in and coding whathever without having a clue of what you're doing is not the best idea, as it will get you frustracted and you risk to miss important concept.

Trying to read and accumulate all the theory before starting your first exercice would also be a bad idea because it'd take way too long, risks to be discouraging and you might forget a large part of the theory by not practicising it.

So in short, read some theory but not too much so you know what to expect, and then play with exercices and do some experiments on your own.
Useless, lumbering half-wits don't scare us.

User avatar
Posts: 760
Joined: Wed Feb 13, 2008 9:10 am
Location: Estonia, Rapla city (50 and 60Hz compatible :P)

Re: The learning process

Post by TmEE » Fri Sep 04, 2020 2:56 am

I do read up a bit first on what I'm getting into so I know what will I need to achieve something, but actually doing things will be hands on trying out stuff and seeing how it works (or doesn't). Over time all the building blocks are learned and rest is just assembling them to build the house lol

Posts: 118
Joined: Tue Oct 16, 2018 5:46 am
Location: Gothenburg, Sweden

Re: The learning process

Post by pwnskar » Sat Sep 05, 2020 9:03 am

Personally, I just tend to start doing things when I want to learn something new, as that is what I find most fun and stimulating. I think the most powerful tool in mastering anything is that you find it fun, because that gets you obsessed.

Everyone's different, but if I would've tried getting into 6502 assembly by reading all about it before writing any line of code, I would've gotten bored really quick and end up not having learnt anything. By trying things as I go, I constantly run into obstacles. However, I'm also motivated to get past those obstacles to get one step closer towards whatever I'm trying to achieve.

Post Reply