Advice to beginners

Sunday 17 September 2023

I often see questions like, “I’m just starting to learn Python, any advice?” The expected answer is something like “watch this video,” or, “here’s an awesome tutorial,” but more important are some tips about how to learn technology in general. Here are mine:

Learn how you learn: Some people like videos, some like books. Some like bite-sized tips, some like hour-long tutorials. Figure out how you like to learn and do that. There’s no wrong answer, there are just different answers for different people. Update: I wrote more about this in “The myth of the myth of learning styles

Do things: If you aren’t sure if something will work, try it. Choose a project and start writing it. Lots of learning tools can be too passive. Write code. Write more code. Get your hands in there, do things and find out what happens. You’ll learn best by doing.

It doesn’t have to be new: Writing a project is a great way to learn, but your project doesn’t have to be innovative, or profitable, or new, or even useful. Sure, it would be great to have an idea like that, but you will learn even if you are building something that has been done many times before. Keep in mind why you are building it. You’re a learner, not an entrepreneur.

Be introspective: Think about what you’ve done, and what you like or don’t like about it. When you’re done with a project (or in the middle of one!), think about what you might do differently. Being self-aware about your choices and their results will teach you more than any tutorial.

Do it more than once: If you have questions about which path to take, try a few and compare the results.

Don’t measure yourself against others: “How long did it take you to learn Python?” It doesn’t matter. Everyone is on a different path, with different needs, different starting points, and so on. Learn at your best pace. It’s not a competition. For more of my thoughts on this: How long did it take you to learn Python?.

More languages isn’t better: Beginners will say, “I’ve learned Python, what language should I learn next?” Don’t measure your progress in number of languages. More important is to learn new techniques (database, web, testing, concurrency, etc.) in the same-old language. Rushing from language to language will probably make you a beginner in all of them.

Be open to change: Once you’ve made a choice, you can change your mind. Requirements change, technologies change, interests change. Nothing is written in stone. Explore where your interests take you.



You might be interested to note that there is a lot of research suggesting that preferred learning style is something of a myth and could be damaging.

For example,


Main learning driver is persistence. For persistence you need a high self-discipline, or enjoy what you’re doing. People are different, so their learning style have to be.


@Stuart: I have seen those news items, and I think they are being over-applied. If I like to learn by doing projects, and someone else prefers to work their way through a textbook, then we should each do it our own way. There is no “one right way” to learn.

Add a comment:

Ignore this:
Leave this empty:
Name is required. Either email or web are required. Email won't be displayed and I won't spam you. Your web site won't be indexed by search engines.
Don't put anything here:
Leave this empty:
Comment text is Markdown.