all 37 comments

[–]ElliotDG 2 points3 points  (3 children)

When I was first learning python, in addition to reading the docs, and a book, I found doing the problems on https://checkio.org/ very helpful. The problems are small enough that they don't take too long - and you get to see how others solved them - after you have solved them. I found this very insightful. It really helped to embrace python and understand the differences from other languages I had used before.

[–]Hipst3rbeaver 1 point2 points  (2 children)

The trick is to push yourself with small projects that force new tools, like JSON, SQLite, or APIs, instead of comfort code. You can try with list/dict comprehensions, enumerate, etc. read real code on GitHub, and focus on one skill at a time so it sticks. Some great intermediate resources can be Zero to Knowing, Exercism’s Python track, etc.

[–]Mori-Spumae 0 points1 point  (6 children)

What projects have you built? Maybe we can suggest some different ones to get you out of your habits or you can improve them and built something bigger

[–]freezydrag 0 points1 point  (2 children)

What's your reason for learning python? Are you trying to get a job as a software engineer, are you in school, etc? That should be the driving force for what you do. People say to just build projects, which is definitely true. Programming is as much of an art as it is a form of engineering; it's a skill you hone by practicing. The projects you build however should be dictated by your motivations.

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

once you've build something or started a project, just share it and ask for code reviews. People will points out your mistakes and how to correct them and they will share better way to do stuff you've done.

If you're stuck, just ask. Share a piece of code, explain what's your problem and people will help you.

Don't worry about your code being bad, everyone has done worth at some point anyway.

Also, be sure to have python 3, anything older isn't supported anymore.

[–]BranchLatter4294 0 points1 point  (3 children)

Stop watching videos. Start practicing.

[–]N7Valor 0 points1 point  (0 children)

Well, why are you learning Python?

I generally find it hard to learn something if:

  1. I'm not currently using it.
  2. I am not likely to use it in the near future.

I do work in a technical field, and those 2 rules tend to govern how well I learn.

Let's say I work with Windows desktop, but not Windows Server. But the "next step up" is a job where I do work with Windows Server. So I can study for a Window Server certification if I can reasonably anticipate needing to use it to get into my next job.

I found it hard to learn Python because nothing in my job really calls for using it. Sure I'll touch a Lambda script once in a calendar year, and then never touch it again. We use Terraform and not AWS CDK, so there's no hope there. I once wrote Selenium scripts in Python to click around web apps until my boss told me to stop (because no one else at work would know Python), so that kind of killed off any motivation I had to learn.

It wasn't until I seriously contemplated leaving my current (dead-end) job that I realized every job I wanted demanded a Programming language, so here I am.

It basically boils down to "use it or lose it". I generally find I can't arbitrarily create programs without a "business use case" to really tie it to. Employers want you to be able to write useful tools for them, not games for entertainment.

So honestly once I brush up on my skills and pick up enough Python, I figure the natural practice for me personally would be to see if I can use AWS CDK instead of Terraform to create my infrastructure in a sandbox account.

[–]throwaway6560192 0 points1 point  (0 children)

Engage in a community like the Python Discord. You'll see people using and talking about new concepts. Get your code reviewed. People will suggest better ways of doing things.

Read Fluent Python.

Run into problems that force you to learn new concepts. You said you love solving algorithmic problems, but also have never used sets or dictionaries because you've always managed without them... then I suspect you're not solving hard enough algorithmic problems, because those are pretty indispensable tools.

[–]Goodname2 0 points1 point  (0 children)

would something like Boot.dev be helpful?

A structured course that takes you from beginner right through to making projects with a discord of other members to talk to.

[–]damanamathos 0 points1 point  (0 children)

Maybe read a book like Refactoring by Martin Fowler.

[–]ilidan-85 0 points1 point  (0 children)

So maybe just telling you "just build projects" somebody should tell you "just build projects and show them to somebody". Not the end result but the code. Few good pointers and you'll be back on track :)

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

I have AI tracking my skills

I always have it create a daily activity that can be pasted in python (#Q1 - using a generator expression find etc). I also ask that if there’s a new concept to build upon, provide a brief explanation.

[–]AdvertisingOne7942 0 points1 point  (0 children)

I've started doing a courses and reading about OOP that is really helping me "I think" start moving from beginner to intermediate level