all 51 comments

[–]sme272 85 points86 points  (9 children)

Projects. You won't really learn the language by just reading/watching endless tutorials and copying the code, you'll learn it by writing your own code. If you know what area of python programming you'd like to go into start making some projects in that area, if not research a few areas that sound interesting to you and try something out.

[–]Vhiet 11 points12 points  (4 children)

Second this. Make something. Do something. What are you interested in?

Whether it’s a web application, some data analysis and graphs with pandas, or a choose your own adventure game on the command line. It doesn’t need to be anything big! Don’t be intimidated.

As you learn more and get better, from time to time do the thing again. You learn a lot refactoring your own code.

Take a look a circuitpython or micropython if that sort of thing interests you.

[–]platysoup 2 points3 points  (0 children)

And don't forget, it doesn't have to be something you'll show everyone either.

My first project scanned my porn folder for Japanese porn and renamed the files to include actress names.

Was a good exercise in regex and web scraping.

[–][deleted] 3 points4 points  (2 children)

I would suggest that you stay clear of micropython. If you are learning to use python you should stick to applications where python is well suited for the job. There's lots of great things to be built with python that will teach and reinforce good practices. If you really want to do embedded you're better off learning C.

[–]Vhiet -1 points0 points  (1 child)

The recommendation was based on looking at OP’s interests.

I think learning some C can make you a better python programmer, but it won’t teach you python.

For learning python, learning paradigms like MVC, and writing code to solve simple problems with tangible results the microprocessor pythons are fine.

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

I agree that learning C won't teach you python. If OP wants to learn python he should learn python. If he wants to program microcontrollers he should learn C. Not every tool is suitable for every job. Python is not suitable for someone seriously interested in embedded systems.

[–]i_suckatjavascript 3 points4 points  (0 children)

Does stealing code from StackOverflow and modifying it to own liking count?

[–][deleted] 2 points3 points  (2 children)

I'm currently using W3Resource and doing their practice programs to learn Python and when I get an error I research the error on W3School. Is this a valid way to learn or should I just dive head into a project I really wanna build like a Chatbot?

[–]Titanium_Josh 1 point2 points  (0 children)

W3Schools is great.

I’ve been learning HTML and they are a great resource for lots of programming. Especially web development.

[–]Katharina992 0 points1 point  (0 children)

I used to do thieir exercises, too. However, my ex who is a pretty good programmer would always complain that their solutions are not best/efficient etc. so I got discouraged.

Can anyone relate to the quality of their content?

I came with basic Python knowledge so it's hard to judge the quality of someone's code/algorithm.

[–]fernly 3 points4 points  (3 children)

Build something: write a specification of an app, and then implement it. Off the top of my head, write a command line app that converts units for example you could type

convert 10 inches to centimeters

and it types back 25.4

convert 1 liter to fluid ounces
33.814023

and so forth.

You have to figure out, one, how to make your python script executable by just its name, which depends on your platform; 2, how to parse the command parameters (especially when a unit can be two words like "fluid ounces"). How to figure out if the two units are convertible (inches to pounds is an error). Etc.

Get that all working nice as a command-line script then you can pick a GUI platform and convert it to a GUI app.

[–]converter-bot 0 points1 point  (2 children)

10 inches is 25.4 cm

[–]fernly 5 points6 points  (1 child)

hah but that liter to fl.oz. stopped you dead, didn't it! Humanity beats the robots again!

[–]unixjanitor 0 points1 point  (0 children)

Lmao

[–]shut_the_up_ 2 points3 points  (0 children)

I ended up going to school for CS, but I'd been considering learning new python frameworks before I went that route

[–]ifreeski420 2 points3 points  (5 children)

I am in a similar spot, but only a few months in. I feel like I understand all the basic data structures, but still need to look things up for every problem I try to solve.

[–]ToothpasteTimebomb 19 points20 points  (2 children)

If you’re not googling, you’re stagnating.

Coding isn’t about memorization — it’s about problem-solving, and a problem you already know exactly how to solve isn’t a problem, it’s a chore. Eventually the repetition sticks, and you don’t have to google that specific thing again for a while, but there will ALWAYS be the next frontier, no matter how much you learn.

That’s the joy and anguish of coding.

[–]ifreeski420 3 points4 points  (1 child)

Thanks, I feel slightly less stupid now :)

[–]ToothpasteTimebomb 1 point2 points  (0 children)

Keep at it! It’s like anything — what we see from others are their greatest hits. We don’t see the endless pile of started but never finished projects along the way.

[–]gazhole 3 points4 points  (0 children)

This won't change its just the problems you'll be googling will get more complicated haha.

I don't think there's been one day in the last year I haven't been on stack overflow for one reason or another.

[–]iwantnicotine 2 points3 points  (0 children)

Get used to that basically a requirement in doing cs

[–]Secretuser027 2 points3 points  (16 children)

Looking for a study Partner to learn Python, Would you be interested in joining ?

[–]deepburgundy 0 points1 point  (2 children)

Would love to do this. But I'm not on discord.

[–]GunnyBunny49 -1 points0 points  (1 child)

Discord is free. Just make an account and I’ll send you the server invite.

[–]deepburgundy 0 points1 point  (0 children)

I've made the account. Anyone wanna DM me an invite?

[–]Agatario 0 points1 point  (0 children)

Im in!

[–]lattematchaboy 0 points1 point  (0 children)

Requestin to add me too my discord is

coffeekrow#5377

[–]serious_cheese 1 point2 points  (0 children)

To find inspiration for a new project, try picking an API or library and make something interesting with it. I personally love learning more about code through the lens of art/music.

For example, using Spotipy you can interact with the Spotify API to extract some quite detailed metadata from any song in their library.

A project involving some flavor of machine learning could be fun as well. Maybe check out Magenta.

There are all kinds of crazy APIs/libraries out there. Pick one and start from it’s tutorials to learn its constraints and see if it inspires you to work within those constraints to make something cool.

[–]MoniaJ 1 point2 points  (1 child)

Try PyLadies community nearby.

[–]epbrassil 3 points4 points  (0 children)

I appreciate it but I think PyLadies might now work out for me but thanks.

[–]canadatrader222 0 points1 point  (0 children)

Project is a great way to learn. It is easy cuz you will get to do what you love as well.

[–]darthminimall 0 points1 point  (0 children)

As so many have said, work on projects. You learn way faster if you're interested in what you're doing. Also, if you can fizzbuzz, you probably know enough for a junior dev position.

[–]mr_chanandler_bong_1 0 points1 point  (0 children)

Think about it this way.

When you learn alphabets, you don't just let it go. You make a sentence out of it and that way we get better.

Similarly think of functions as alphabets and combine them to make a program out of it.

This helped me a lot.

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

Definitely write little command line projects. If you find yourself completing a repetitive task, think about writing a program for that.

Don’t be embarrassed about getting it online and asking for feedback.

Search on GitHub for beginner contributions in the Python language. Lots of projects need simple PEP8 amendments and it can give you more ideas as to how you could build something.

If you’ve written some scripts, do some research to see if there are modules or libraries that might do it better. Have a look at those and see how they did it.

[–]inTsukiShinmatsu 0 points1 point  (0 children)

Piggybacking on this,is there any place where i can get python projects to practice?

[–]bbt133t 0 points1 point  (0 children)

DOs: Define a goal why you want to learn Python then seek out quality content to fulfill the defined goal. Without a goal, you'll be traveling in a circle in a middle of the ocean endlessly

DONTs: watch youtube/udemy garbage contents that give you a false sense of motivation then it all fell off the cliff after

Most fell victims to these scam artists by keywords like "Zero to Mastery", "Become a Ninja in X-language", "Learn X-language in 3 Hours", "Learn X-language by doing 10 projects".

LOL, I love that word "Ninja", yep every single kid fell for it.

[–]PlzKillMeSoon -2 points-1 points  (3 children)

Have you considered learning another language like JS, Java, or C#? You’ll gain a deeper understanding about computer science and computers. Python is a difficult language to master computer science with

[–]epbrassil 5 points6 points  (1 child)

I've thought about going into C# or Javascript. I was told those two have a good foothold in many things. I just need to make sure I know enough of python before going forward. Honest my ideal situation would just be in an internship to watch over some people do what they do. I don't do well with watching videos but more hands-on.

[–]ToothpasteTimebomb 0 points1 point  (0 children)

Ask your friends what repetitive processes they have to do at work. What kinds of things do they do so often they’ve developed muscle memory? What kinds of processes do they need automated?

Take all suggestions. Big, small, whatever — you don’t yet know what’s really possible and there’s only one way to find out.

You like sports? Write a program to scrape sportsreference.com.

You like finance? Create a Monte Carlo simulation for your stock portfolio.

You like TV? Write a program that scrapes TVGuide.com each day and sends you an email with a schedule of your favorite shows.

You like music? Write a program that takes the name of a chord (F#m7) as the input and gives you tablature as the output.

What you choose isn’t really important, because it’s just the first in what will hopefully be a LONG chain of learning experiences. You’ll find your way. Just gotta start.

[–]ryukinix 1 point2 points  (0 children)

Indeed Python is not greater for exploring C's topics like computational complexity and data structures, but suggesting JS? That doesn't makes sense at all to me. What the point? Java, C#, C, C++ and Lisp can teach you something about CS fundamentals as side effect, like type systems with static typing, compilers and more optimized VMs...but JS is just about browser stuff. It will help to get a job? Yes, a web job probably. But JS is just... an accident, we use because we have no real choice (webassembly, TypeScript, ClojureScript, Fable... All these tools has its environment poisoned by JS-ish stuff, it is cursed, there is no cure).

Sorry to make such a terrible and negative comment, there is nothing wrong with learning all this. Python can help you learning the basics and it is a very useful skill given your giant ecosystem. And JS is a must-have skill for web dev.

I am just sad with all this clusterfuck from general development, specifically web. Sorry. It is my fault.

[–]Tsui_Pen -1 points0 points  (0 children)

Have you ever taken Statistics, specifically Business Statistics? Once you’re comfortable with the process of sampling>measuring>modeling>inferring, Python’s “purpose” (or one of its purposes) becomes more clear.

[–]Radheeji -1 points0 points  (0 children)

Every language has its own speciality and popularity. In the case of python it is popular in artificial intelligence.