Learning material

Hi,

ATM im reading through the python crash course book. I feel that i get things and understand more and more, but im still feel that im not are getting a good understanding. Specially While writing the alien.invasion game i felt there was a lack of knowlege to understand everything and felt that i was mostly copy the code right now since i forgot some of the learning before. It’s more easy when you see the code, but remember everything and writing it without help is impossible atm.

How is it for you? Do you remeber all these built in methods () and structures or do you have to look it up sometimes?

Are these book’s good to learn, and shall i just keep going book by book and eventually i will maybe start remeber and understand more and more

I would guess it is doubtful that everyone remembers everything in any language. If the idea is to read X amount of books and then be an expert, you will most likely be disappointed. At the very least that is true for me.

A book that guides you through the basics certainly isn’t bad and I think can give you a foundation in a language, but no book will make you an expert.

I may learn one thing about a language (or programming in general) for one specific use case, and then not need that specific bit of information for years. When the case does resurface, I only have a vague recollection that I once dealt with a similar case, and then I either work it out again, reference my old code where I solved it before, or re-learn it again. I am constantly learning and re-learning and my re-learning is often based on how much I apply that learned knowledge. Sometimes, when I have to re-learn something a second time, it may make more sense than it did the first time as I now have more experience.

I’ve learned multiple languages over the years. I think, once you know the basics of programming, which are relevant to all programming languages, it gets easier to pick up new languages.

My general approach when picking up a new language is to first learn the basics: understand its logical constructs, how to import libraries, how to set variables, how to set up your first project, etc. Look at some basic examples so you can get some generic “Hello world” program or something set up.

Then I learn more nuanced things on a need-to-know basis. I do this by writing an actual program I’m interested in, or I may try to port over something I’ve done before in a different language. When I get stuck, I’ll see if the language has a built-in solution to the problem, see if there is a common 3rd party solution, or I may decide to just figure it out myself to learn more about the language. Some of this is trial and error to see what works and what doesn’t work, some this is me reading the official documentation, and some of this is me reading articles or books about the topic I’m stuck on. But I’ll learn everything I can about the specific area I’m stuck in so I can move forward.

Over time, I may learn better ways to do what I thought was the right way when I initially started, and that’s okay. Ask any programmer to look at the stuff they did years ago, they probably all think what they do now is better.

Basically, I don’t try to learn everything at once, I learn enough to move me forward and gain knowledge and proficiency over time. And the more I use something, the less I have to keep referencing it.

On the side, I may read other material to better acquaint myself with the language, to learn about things I have no immediate use for, and some percentage of it will stick, but often it isn’t until I actually have to use that learned knowledge that I truly learn. But when I run into one of these issues, I may remember that I once read an article or book that covered this info, and I’ll go look it up. On occasions, I may remember more than I thought.

Learning a language is a journey. If you want to get better, use it more. I find using a language and stumbling through that usage is the best way to get good. You’ll find over time you will be writing more complicated things without referencing things you used to.

4 Likes

Note also that the tools tend to help you. It’s not usually necessary to remember the names of modules, or the things inside them as your IDE should give you suggestions as you’re typing and show you the documentation for a particular function, say, when you’ve selected it.

1 Like

How is it for you? Do you remeber all these built in methods () and
structures or do you have to look it up sometimes?

I remember the things I use a lot. But I look stuff up all the time.
I’ve got local HTML copies of some docs on my desktop for very fast
access (and offline access).

Are these book’s good to learn, and shall i just keep going book by
book and eventually i will maybe start remeber and understand more and
more

I don’t know (on the book front). I learn most effectively by doing.
Ideally things I want to do rather than exercises, though if you can
find exercises using something you’re needing that’s handy.

Cheers,
Cameron Simpson cs@cskk.id.au

I just wanted to add: it is worth having an idea of what’s available.
This doesn’t mean memorising everything, but having had a read of, say,
the stlib module docs to know what’s available out of the box. That way
you can remember that there’s something which might fit your current
problem, and go find it and read the details.

I strongly recommend the Python Module of the Week
series of blog posts, where Doug Hellman
wrote a post about every stdlib module once a week. Even just to browse!

You’ll pick up a lot of information about what ships with Python out of
the box.

Cheers,
Cameron Simpson cs@cskk.id.au

3 Likes

Thank you so much!

The book have exercise for each chapter which is good, because i realise that you really need to type it yourself even if it looks very simple. I guess i will create some sort of game after this and then just work my way through it and search for solutions on every problem (which will be alot) i meet so i really writing it myself and searching for solutions myself.

There is aaalot of youtube videos that explains/teach coding, but i do not belive that’s the way to learn. You just end up there watching but not connecting to whats going on, or even understand what and why the code is written the way it is.

Additionally, what I find good about exercises, is that you can then modify and play with them after you type them. I can push it further break them and see the limits of the concept being taught. Taking an example you think you understand and then playing with its limits or applingy them in different ways can really help you understand the concept even better at times.

Yeah. Im trying that route also now with the exercises from the book. I realise that there isnt too hard to understand things step by step. But writing on your own from scratch just dont happen atm.