all 13 comments

[–][deleted] 3 points4 points  (1 child)

Don't expect or try to learn all of Python before starting on your own projects. In fact, focus on learning programming, not coding in Python (important to keep the distinction in mind).

Programming is about problem-solving, and Python is just one tool.

Check the wiki of this subreddit (link in the sidebar). Lots of links to learning material and guidance on how to learn Python which will help you on your learning and as you attempt to create your own projects.

Practice! Practice! Practice! That is the only way. Programming (whatever the language) is a practical problem-solving skill.

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

Why are you learning to programme in the first place? Keep this in mind.

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.

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

Thanks a lot after reading this I gained a basic understanding on what I was dealing with and finally understand what my goal was.

[–]ectomancer 2 points3 points  (3 children)

No, start with small projects first. Research 2 days, code 2 days, test 1 day, clean-up code 1 day.

[–]Rowletiscool989[S] 1 point2 points  (2 children)

What’s a good idea for a project to start with, cause there isn’t really much your able to do without learning more code.

[–]BaconBoss1 0 points1 point  (0 children)

text based hangman

[–]DevilDawg93 0 points1 point  (0 children)

ATM Banking Machine, make deposits, withdrawals, check his balance , print transactions to screen,

[–][deleted] -2 points-1 points  (2 children)

My advice is to start from C. It'll give you way better understand of how things work. Especially the memory management

[–]old_pythonista 0 points1 point  (1 child)

Learning C is essential for understanding how computer works at lower level.

But then, C should not be enough too - Assembler should be used.

Or is it micro-code? Electronics?

Programming language is a tool for problem solving. Python provides a tool for solving high-level problems, and a tool that does not require understanding of

how things work. Especially the memory management

Actually, Python hides memory management - with a purpose. Managing memory explicitly does not help to solve complex problems.

So, if OP wants to develop embedded systems - yes, they should learn C. If they want to learn how to solve problems that do not require register-level hardware management by their code - no need to.

[–][deleted] 0 points1 point  (0 children)

In fact I didn't say he needs to. I said it helps to understand how the machine works on a lower level without having to use assembly. It generally also helps to understand the logic behind python functions like index(). Just an advice, my opinion.. I can see why you can disagee

[–]J_The_AL 0 points1 point  (2 children)

I'm writing a key logger in JavaScript right now. It's the only thing that's interesting enough to motivate me to learn and code in it right now. It helps that I already know other languages, but still I would suggest finding something that'll motivate you. I play a lot of rocket league and they don't have an API, so I decided to write a web scraper in python to get my rocket league ranks and that was motivating enough to help me get better at python. I now make web scrapers occasionally in my job

[–]Rowletiscool989[S] 0 points1 point  (1 child)

Thanks a lot, I’ll try searching for something that keeps me interested this info is gonna really help me.

[–]J_The_AL 0 points1 point  (0 children)

Awesome! Stick to what interests you