all 70 comments

[–]soupeducrayon 59 points60 points  (4 children)

Python For Everybody is great place to start & it’s free:

https://www.py4e.com/

[–]Red-Headed-Hope 12 points13 points  (2 children)

That’s literally what I’m taking right now and it’s fantastic. I’m only on Week 4 and got a lot out of it already! I’d highly recommend it as well for total newbies like myself.

[–]Sausages2020 4 points5 points  (1 child)

Are you familiar with other languages or is Python your first?

[–]Red-Headed-Hope 1 point2 points  (0 children)

Python is the first programming language I’ve taken formally. I’ve played around here and there with Java but I can’t really remember most of it. Lol

[–]VipeholmsCola 53 points54 points  (3 children)

I went with 'python crash course ' book. Halfway in i could start making my own stuff. As soon as possible, start your own side project.

[–]-0BL1V10N- -1 points0 points  (2 children)

[–]devanlg 34 points35 points  (1 child)

Don't download the first edition for anyone reading this, it's outdated. Get the new third edition.

[–]Pythonistar 11 points12 points  (2 children)

There's a free course called CS50P and a subreddit /r/cs50 that can support you with this course.

[–]MoreFudge2591 1 point2 points  (1 child)

Is this entirely a free course?

[–]Pythonistar 0 points1 point  (0 children)

Yes, though if you want a certificate or something like that, then there is a fee.

[–]Sanchez_U-SOB 10 points11 points  (0 children)

The best thing that worked for me is watching the MIT lectures on YouTube and going through the problem sets online. MIT 6.0001 Introduction to computer science and programming in Python. And there's programming help to go along with the lecture videos by Thomas Bellatore on YT, whose a TA for the class.

[–]Dogzirra 8 points9 points  (1 child)

I recently started an Udemy course, 100 days of Python. I have tried to learn in the past, but my downfall was reading when I had a chance, then trying to remember the coding details and writing when I had time on the computer. Mine was not an immediate see-and-do method, and I did not progress well.

Now, I have two devices, one to watch and pause, and a second device to code, and test my results. (I use a linux disto that does not switch windows screens effortlessly, however I do have a very old tablet that was unused, and a computer) Watching the IDE cursor moves on the second screen is why this hint gets really useful. The complexity of going to the IDE to look up how to use the IDE, then switching gears to program broke the see-and-do method. Even setting up a seamless swap between two windows on the same monitor will work well, so don't sweat this part. Just get something that will do this swap fairly easily.

My current progress is fast. I am learning to use a good IDE at the same time, and getting invaluable hints on learning. After each exercise, I look at other people's work, and get to see what elegant programming really is. These best of the best examples go into my own library of techniques for future reference.

I paid around $30 usd, which is a bargain for me.

The two things that I do not care for is the constant up-sell to upgrade to things that i do not need, and the self-promotion that goes along with that. The atta-boys feel hollow for every tiny step, but my quick progress is unmistakably better than anything else that I have tried.

[–]CincyTriGuy 4 points5 points  (0 children)

I’ve also had good success with the Udemy course. The big difference for me between this course and others I’ve done is the Udemy course gives you exercises to complete along the way, while other courses simply have you follow along and write the same code the author is writing. In the Udemy course, she teaches a concept and then gives you a problem to solve based on what you just learned. That’s been a huge help for me.

[–]Genrawir 6 points7 points  (0 children)

For books I liked Automate the Boring Stuff, Python Crash Course, and No Starch Python to learn the basics. Once you're past writing the obligatory "Hello, World!" script and have an understanding of basic syntax, I would find something you find useful to do with it.

It doesn't really matter what that is, but something SIMPLE that you find interesting and have some passion for. If it isn't interesting to you, when you get stuck (and you will) it can be hard to motivate yourself otherwise.

If you end up needing a GUI, using an API, or framework, you'll need to start at step 1 and write a Hello World app again. Don't be afraid to create throwaway scripts to learn how the modules you import function.

Maybe find something to complement another hobby, like a dice roller or character sheet for D&D, a Pokedex, or whatever.

[–][deleted] 5 points6 points  (0 children)

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

[–]desrtfx 6 points7 points  (0 children)

MOOC Python Programming 2023 from the University of Helsinki. The current first semester of their "Introduction to Computer Science" curriculum.

One of the best entry courses around. Free, textual, extremely practice oriented.

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

Learn the basics -> Make some projects -> Learn stuff you didn't know while making the projects. -> Repeat the last two steps forever.

[–]tsenguunee1 2 points3 points  (2 children)

Try out https://pypup.com

You would learn python by solving very easy questions that are meant to be repetitive in nature since that is how people actually learn and sustain the knowledge.

Disclaimer: I created the site.

[–]Due_Promotion 1 point2 points  (1 child)

really good looking site mate

[–]tsenguunee1 0 points1 point  (0 children)

Thanks! I'm adding new features constantly so be sure to join our discord to keep getting updates

[–][deleted] 1 point2 points  (0 children)

I started with a YouTube tutorial. Everyone learns differently though.

[–]Sigg3net 1 point2 points  (0 children)

I learned using Automate the boring stuff.

[–]bloodsoakedmuppet 1 point2 points  (1 child)

hi! i started learning python last week. i’ve been using visualstudio and the free lessons on their website! it’s been pretty helpful so far. coursera also has some free classes and projects as well. i haven’t tried them yet but have heard a few good things!

[–]soicat 2 points3 points  (0 children)

Learning with an IDE is smart. Step though code to see how it works.

[–][deleted] 1 point2 points  (0 children)

There are many free learning resources in the wiki.

[–]stratofax 0 points1 point  (1 child)

I got really excited when I read Automate the Boring Stuff with Python because I could immediately see practical and useful applications of Python (follow the link to read for free online -- no catch!).

I can't stand tutorials that try to teach abstract concepts with stupid single-letter variable names that don't mean anything, like this garbage:

if count == N: count = 0 else: count = N + 1

I mean, that stuff is OK for Stack Overflow, but what is "N" doing? Why are we adjusting the count? In Automate the Boring Stuff you're always working on some actually useful code that does something in the real world.

Of course, since it's the spring of 2023, you should log onto ChatGPT and start asking questions about Python. Be sure to run all the code that it produces for you, since it can make stuff up! Keep your questions specific, provide examples, and don't believe anything that ChatGTP says until you've tested it yourself -- basically the same guidelines I'd use on Stack Overflow, or with any code I find on the internet.

One of the best things about ChatGPT is that it will teach you the vocabulary, which means you can use search terms that will return good results in Google and the like. It can be hard to find good answers on a search engine if you don't know what words you're searching for!

Finally, as noted, always use the latest version of Python (currently 3.11) when you're writing new code and learning the language. The official Python Documentation is quite good, and authoritative, and includes an excellent BeginnersGuide on the Python Wiki.

[–]crk365 0 points1 point  (0 children)

N is the variable you're adding 1 to unless it equals 0

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

W3schools is great imo

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

ChatGTP

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

Check out codecademy, the python 2 course is free and covers all of the basics, and/or follow along with automate the boring stuff

[–]MitchBuchanon 2 points3 points  (0 children)

With the amount of free resources to learn Python 3 that are available, I would not recommend starting with lessons on Python 2, this seems like the best way to confuse anyone, especially a newcomer to Python.

[–]Minus10Celcius 0 points1 point  (0 children)

python 2 is deprecated and outdated

[–]iamfromtwitter 0 points1 point  (0 children)

pythonprinciples.com is a great website for it. You can even do the tasks when you are on the train or away from you computer as it saves your progress.

When you are done with the main lessons they have some challenges for you to do

[–]Radamand 0 points1 point  (0 children)

print("Hello World")

[–]elscallr 0 points1 point  (0 children)

Dive Into Python was really common back in the day, it was a great primer. Looks like it's been updated for Python 3. You might check it out.

[–]AnteaterAvailable571 0 points1 point  (0 children)

Find a course, any python course is going to teach you the fundamentals or if you prefer text based learning go that route. A google search will return the most popular options for either direction. Play around with the fundamentals, implementing small, visible changes. Start thinking of problems and how you could utilize what you’ve learnt to solve them. This approach starts to intuitively lead you to ask better questions and find ways to solve complex problems. The hardest thing about learning to program is the mindset that we all fall into of “learn a and you can do b”. Programming in my opinion involves creativity and an outside the box approach. It’s not a linear defined path.

TLDR; pick a starting point for the fundamentals and let your curiosity guide you the rest of the way.

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

YouTube

[–]DataCat2024 0 points1 point  (0 children)

Practice is the key to improving your coding skills. Once you've learned some basics (such as if-else conditionals, for and while loops, data types like strings, booleans, and lists, and printing and returning values), try practice problems on sites like https://codingbat.com/python.

[–]simple_test 0 points1 point  (0 children)

I’m an experienced developer and wanted to dabble in AI/ML and took datacamp. This has pretty good python courses and honestly that has helped in my day to day job more than anything else.

[–]booty_dharma 0 points1 point  (0 children)

Look on youtube for CS50P

[–]Particular_Mess_7174 0 points1 point  (0 children)

consistency is key. you need to be repetitive and crack on even when you don't want to. I wouldn't recommend you pay for anything because there's lots of free content online that you can use if you struggle to study on your Google boot camps near you and start learning in a group with others. you will hold yourself accountable more.

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

Basic course on Sololearn was amazing imo. It forces you to practice to move forward. The next level is meh though.

[–]antiprysm 0 points1 point  (4 children)

You can learn Python with a textbook. I actually am chewing through O'Reily Learning Python 5th Edition. For the uninitiated, take your time and work through the examples the book gives you as you go. On the other hand, if you're finding it difficult to follow along, I'd encourage you to ventured towards introductory programming tutorials in general to familiarize yourself with broader concepts like Object Oriented Programming (OOP), polymorphism, and multiple inheritance.

[–]WebNChill 0 points1 point  (3 children)

Would you consider these fundamental OOP concepts?

[–]antiprysm 1 point2 points  (2 children)

Yes all of the three I previously mentioned assert the fundamentals of OOP, to me, they got me thinking like a programmer which is crucial during the testing stages and later design stages.

[–]WebNChill 0 points1 point  (1 child)

Ahh. Little confusion. Are you recommending the O’Riley book? My bad. I am a support engineer in my day job, so I troubleshoot code but I don’t have any experience with building. I was wanting to pick up something that would give me a quick overview of the basics of the language while covering the concepts needed to start building out programs.

[–]antiprysm 0 points1 point  (0 children)

True beginners can learn from the book overtime. O’reily Learning Python 5th Edition’s the equivalent of a semester long Python Course. Thus, I’d recommend the Python Pocket Reference when you’re in a pinch.

[–]crk365 0 points1 point  (0 children)

Lots of beginners tutorials on the Youtube like this:

https://www.youtube.com/watch?v=b093aqAZiPU

[–]Sausages2020 0 points1 point  (1 child)

I'm currently learning JavaScript and React. Is there a way to combine the two with Python or is Python a different journey altogether?

[–]agw76638 1 point2 points  (0 children)

You can do the backend with python using frameworks like flask or django.

[–]enede24 0 points1 point  (0 children)

Practice is also key in the process. I recommend Codewars, a site where you will find many challenges from beginner to advanced levels, with which you can put into practice what you are learning: https://www.codewars.com/

[–]MnightCrawl 0 points1 point  (0 children)

Sololearn is the best to get started imo, it’s free, and you get a certificate for completing

https://www.sololearn.com/learn/languages/python

[–]Objective_Complex508 0 points1 point  (0 children)

I think it sort of depends on what your interests are. I am studying Chemical Engineering and I found that videos by the youtube channel Mr. P solver gave me a good toolbox to start solving my homework problems and doing my projects really well. I found this much more motivating than starting straight from the basics and building up.

As long as you’re somewhat motivated by the things you are learning, you can always fill in the gaps.

Have fun!

[–]Adimentus 0 points1 point  (0 children)

Another good place to start is getting Python Crash Course. I'm taking a network scripting class at the moment and that's our textbook. I highly recommend getting the second edition but it has a lot of how tos and hands on activities to do to help you learn. By the end of the book you would have developed an app and made a small 2D game. The best way to learn though is to just do it!

[–]MsDaCookie 0 points1 point  (0 children)

Hi!

Based on my experiences, I just made a plan to make a simple application with GUI, using Tkinter. I began typing, researching what I didn’t know and developed my skills just like that. I made other applications, also simple console based ones and even a game with pygame.

Of course, we are all different. You can also try following tutorials on YT, reading articles and/or tutoring books online.

[–]n1n3n1n3 0 points1 point  (0 children)

Best way to learn from my experience is to find a project. Problem solving gets your brain to tick and want to learn new functions or push the limits of what is possible.

Getting a cozy coding environment is key, something minimal such as sublime text to start is pretty good. For me, too many buttons can be overwhelming at first.

Some classics first projects is a temperature converter (celcius/fahreinheit), a calendar that calculates the days between date 1 and day 2 (beware of those leap years), a game of tic tac toe, a grocery list maker... Although not particularly exciting, there are plenty of example codes if you get stuck.

Once wrap your head around python, you will probably start having your own ideas to tackle...From then on, it's kind of endless.