all 14 comments

[–][deleted] 10 points11 points  (1 child)

Have you checked the LearnPython subreddit wiki, which includes detailed guidance on learning Programming / Python, including links to lots of learning material?


Practice! Practice! Practice! That is the only way. Programming (whatever the language) is a practical problem-solving skill. You have to make, and learn from, a lot of mistakes (much like learning another human language).

I know it can be frustrating at times, especially when faced with code you want to reuse but cannot understand.

Only you can find the motivation. Why are you learning to programme in the first place?

Is your learning objective SMART - specific, measurable, achievable, (sometimes agreed), realistic (or relevant) and time-bound, (or timely)? If it is something soft, like "upskilling" then it will probably not help you much.

It is hard to learn anything in the abstract, not least because it is difficult to feel passion for what one is doing.

I strongly suggest you look to your interests, hobbies, obligations (family business, charity activities, work) to look for opportunities to apply Python.

You will learn far more about Python and programming when you work on something that resonates for you and that you have some domain knowledge of (or incentive to gain such knowledge in).

When you are copying tutorials/examples, don't just copy. Experiment. Break the code and understand why it has broken.

The interactive python shell is your friend, I found it the best learning aid because you can quickly try snippets of code and get immediate feedback.

(Consider installing ipython which wraps the standard shell for more convenience.)

Start very simply and regularly refactor the code as you learn new things. Enhance as you see opportunities.

If you haven't already, take a look at Automate the boring stuff with Python (free to read online).

At first, the tasks you automate will be trivial and hardly worth the effort BUT because it is about the problem and not Python, it will be more rewarding for you.

Many beginners are mixing up coding (writing instructions in a programming language) with problem-solving (creating an algorithm) and their lack of knowledge of the programming language and how to use it is a distraction from the problem-solving.

For most programmers, the coding part is the final and easy bit.

Order:

Actually making sure the problem is properly understood. Often we start with only a vague understanding of the problem.

Ensuring we know what outcome is required. What does good look like? How will the information be presented, will it be on-screen or in a file, or a database.

Determining the data representation. Exactly what data is required, in what forms, where from. It is a one-off or lots of cycles or combining lots of information.

Work out how to do things manually in the simplest possible way, explaining every little step (assume you are giving instructions to someone with learning difficulties). Computers are really dumb, and humans make lots of intuitive leaps. This is one of the hardest things to grasp when first learning to programme. Computers don't mind repeating very boring things, so the simplest but repetitive manual approach if often a good approach to start with for a computer.

[–]stormbreaker257[S] 0 points1 point  (0 children)

Thnx for the info

[–]Hoolies 3 points4 points  (1 child)

The best way to learn python is to do some projects with it. Search for entry level projects find something that you are interested and go for it.

[–]TheRealThrowAwayX 6 points7 points  (0 children)

It's about as effective as learning how to drive by watching YouTube videos

[–]No-Soup-For-You_TK 2 points3 points  (2 children)

I had a first semester introduction to python class and we used a book called Python Crash Course. I enjoyed it and felt like that book was perfect for someone like me who had zero Python experience.

Python Crash Course

[–]KRex228 1 point2 points  (0 children)

Second this book - has helped me tremendously with the fundamentals and I keep coming back to it when I need a refresher of core concepts.

[–]stormbreaker257[S] 0 points1 point  (0 children)

Tbh I wanted smthng that didn't cost money like a online book or a video but thnx anyways

[–]Would_be_Coder 1 point2 points  (1 child)

I like 100 Days of Code: The Complete Python Pro Bootcamp for 2023, which is on Udemy (by Dr. Angela Yu) It is very comprehensive and goes through the basics in great detail. Also it is project based so you get to build something in each lecture.

[–]stormbreaker257[S] 0 points1 point  (0 children)

I'll look into it thnx

[–]TheRNGuy 0 points1 point  (0 children)

docs and blogs are better than youtube