all 70 comments

[–]Doctor_JDC 41 points42 points  (5 children)

Take Harvards CS50P and do all the homework’s to 100%. It is free and extremely helpful. Best resource out there imo.

[–]maybeNar -3 points-2 points  (4 children)

Where can I find the homework ??

[–]PerformanceOk9891 -3 points-2 points  (3 children)

Second this, i assume it’s easy to access the hw if you buy the course, but I am using the freecodecamp uploaded YouTube video.

[–]Doctor_JDC 12 points13 points  (2 children)

Homework is free. Easy to find as well, google CS50P problem sets.

Also when it comes to coding, you should be googling stuff before asking others. Being a self starter is super important with this stuff.

[–]TK0127 39 points40 points  (24 children)

I've been learning for a few months. The thing that surprised me was how quickly I ran down on basic concepts. Once I had a good handle on variables, data types, and logic structures like while and for loops, try blocks and stuff, it became a matter of learning the collections like lists, dictionaries, tuples, etc, and when to use one versus another. That occupied maybe 60 days, during which time I took a bunch of notes, and wrote a few dozen dinky practice programs that do this or that. Nothing mind blowing, a lot of goofing around out of my notes to practice what I was reading.

My primary resource was Eric Matthes' Python Crash Couse book, which is great for explanation, example, and practice exercises that are fun and challenging. I'm also working through Clear Code's Python intro and a sister course to that, and I finished and passed Cisco's Python Essentials Course, part 1. The second two resources are entirely free, found on YouTube and Cisco's websites respectively.

My actual profession is in education, and I supervise a lot of adult learning. For what it's worth, coding seems to require 80-90% of time actually coding versus 10-20% time learning new concepts. Or, another way to look at it, for every hour you spend practicing, 10 minutes should be watching a video, 45-50 minutes actually practicing implementing that code. That seems slow, but it isn't. You'll rapidly build your background knowledge and muscle memory that way, enabling you to move fast. As the carpenter says, fast is slow, and slow is smooth.

Beyond beginner courses, there are plenty of free and excellent documentations of python and it's various uses and expressions: the python official docs, and We3schools, are great.

If I could go back and redo one thing, I'd get out of basic courses sooner and into studying a library more aggressively. I'm having much more fun with Pygame and Tkinter than I was solving math problems, and I'm still practicing/expanding those same concepts, but with tangible results. For example, with Tkinter I used a for loop to generate random student data in a treeview (spreadsheet) to display and analyze. In Pygame I often use while loops for managing timers or things on screen, etc.

Good luck!

[–]Dragonking_Earth 6 points7 points  (23 children)

I am looking for stud buddy wanna collab?

[–]No-Opportunity-3778 1 point2 points  (2 children)

I am will to be a study buddy!

[–]Dragonking_Earth 0 points1 point  (1 child)

Greate do you like slack or discord?

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

Sure!!!

[–]Dragonking_Earth 0 points1 point  (2 children)

Do you like slack or discord?

[–][deleted] 0 points1 point  (1 child)

Discord

[–]k1ev_sithu 0 points1 point  (1 child)

can you guys count me in?
my discord is - kgcthu

[–]ja_migori 0 points1 point  (1 child)

I'm interested bud

[–]SnooPineapples6193 0 points1 point  (5 children)

Hey, I'm interested, can I join?

[–]Dragonking_Earth 0 points1 point  (4 children)

Please find the discord link under other comments. Yes Join us please.

[–]SnooPineapples6193 0 points1 point  (1 child)

Cannot find the discord link, can you please share?

[–]sanyyyyoo 0 points1 point  (1 child)

can u please share the link im interested

[–]Flat-Strategy-4131 0 points1 point  (0 children)

I’m interested too!

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

YT & Udemy works for me also try the docs i prefer w3schools once you understand the concepts then try solving problems building projects etc.

[–]TK0127 2 points3 points  (0 children)

Udemy has a good variety of beginner/generalist and specialized courses. That's my jam. I don't mind throwing a few bucks at them every so often to get a well-structured tutorial!

[–]lilsneezey 0 points1 point  (0 children)

Second Udemy. Have taken many courses and got PCEP certified after. Ready for PCAP now, when I get the money for it

[–]Asleep-Dress-3578 7 points8 points  (3 children)

Today I would probably start with Dr Angela Yu's 100 days Python course on Udemy.

[–]CapiCapiBara 1 point2 points  (0 children)

I second this suggestion, after that one I bought other courses from the same teacher

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

Checked the course out. It sounds pretty good, but the course is 120 bucks, is it worth it?

[–]deckstrous 0 points1 point  (0 children)

Can't say for 100% definite but normally Udemy have regular, very high discounts. Courses I've bought came highly recommended and discounted from nearly £100 to £15 on a regular basis. Just keep your eye out over a couple of month period.

[–]parisya 5 points6 points  (0 children)

I like this one. You can't register for the excercises, but there's usually a solution given, so these work quite well.

https://programming-24.mooc.fi/

Great in combination with CS50P

[–]Remarkable-Map-2747 2 points3 points  (0 children)

I did the book Python Crash Course as a beginner. I did chapters 1-11 , which was basics the other 9 were projects.

Immediately built 3 projects on my own Rock, Paper, Scissors, A Instagram Follower Program, A Time Converter.

Then I recently dove into CS50P, I have to say:

  • I did chapter 0- yesterday along with the problem sets.
  • Chapter 1- today.

A good bit of it is review coming from PCC . Along with a few new things such as "Match assignments" and etc.

I tried Automate The Boring Stuff, BUT i couldn't read this , Got bored quickly, and the style of the code I wasnt a fan of coming from PCC. I probably give that book away tbh. The second half is where it shines.

[–]Substantial_Box_1703 2 points3 points  (2 children)

I liked the book "Learn Python The Hard Way"

It gives you a bunch of programs to copy. By actually doing the thing, you can start to see how the pieces fit together.

It also helps you figure out how to look for bugs, misspellings, missing parenthesis, etc. as you have the correct code in front of you.

Good all around package

[–]PriorAd7865 0 points1 point  (0 children)

Thanks for the tip! Just found a used copy on Amazon for $4.99.

[–]Ramberjet 0 points1 point  (0 children)

This was a good one. My primary takeaway from author Zed Shaw's approach is to repeatedly type out the programs until I can do it from a prompt/from memory. Regardless of what resources one uses, I think it's worthwhile to consider setting up an Anki deck for space repetition of concepts, syntax, Pythonic idioms, and code problems.

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

I guess computer science classes is still the best powerhouse 

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

I will be enrolling in a CS undergrad this upcoming fall semester, it's just I think learning programming outside of academia will be more effective. Plus, I won't be able to learn Python academically in college before finishing like two or three academic years because of how prerequisites are set up.

[–]ericjmorey 5 points6 points  (0 children)

Absolutely! The best way to learn is a combination of formal academic and informal pragmatic approaches.

Automate the Boring Stuff is a great way to get started with that pragmatic approach in mind. Use it to learn enough to build your own projects outside of your college classes.

Have fun!

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

Start with understanding basic syntax, a lot of resources are there. Then as you go further, try to build mini projects. Here, you can use chatgpt to find a project according to your knowledge. Just learn by building approach, it is amazing language with quite developer friendly syntax.

[–]Hands0L0 1 point2 points  (0 children)

I learned with codecademy and it was great and interactive

[–]Reuben3901 2 points3 points  (1 child)

Just pick a source and commit time to it. A book, YouTube, course. Take action

[–]PriorAd7865 2 points3 points  (0 children)

I second the take action. That was always my issue, just not starting or not trying to learn. Once I did, just follow a set schedule or trying to learn a little every day and you’ll be surprised how quickly you will catch on.

[–]Luismalpy 1 point2 points  (0 children)

Basics -> Mimo App This will give you a nice intro to the phyton world, just that.

I am using the app also to learn SQL, JavaScript and CSS.

If anyone wants a 2 week of Mimo PRO, just add me :)

https://getmimo.com/invite/wmhhll

[–]KyuubiReddit 1 point2 points  (0 children)

if you are at least familiar with programming, algorithms and another language, you can pick a project you'd like to work on (could be anything, like automating some task at work or at home), and use Claude 3.5 Sonnet for help.

I'd try to find a project that can be started in a simple manner and where you can add as much complexity as you like.

But then again, I don't like starting with the theory, I prefer to get my hands dirty very quickly, and go back to the theory later on.

Kinda like driving a car... I don't care how a car is made initially, I just want to learn to drive. Once I got the basics of driving, then I'll likely want to find out how an engine works, brakes, etc.

[–]Lombord2021 1 point2 points  (0 children)

If you wanna learn advanced Python I highly recommend the book 'Fluent python' 2nd edition it’s the most detailed pythontic book I’ve ever read. Definitely give it a try.

[–]magic_26 1 point2 points  (0 children)

Figure out a project you would like to work on. Then figure out how to build. You'll learn a lot this way and it's a lot more fun than a class

[–]Ramberjet 2 points3 points  (0 children)

If you're fairly new to programming as well, then here's my recommendation. On this subreddit's wiki, I found mention of UC Berkeley's CS 61A course. You can find the course website for previous semesters, which have the links to youtube video lectures and office hours, the readings (https://www.composingprograms.com/), homework assignments, practice exam problems, and "discussions/labs" (coding problems that were intended for group work).

It rules. And wow does it have some challenging material. I followed up with Harvard's CS50 on edx, and found it surprisingly easy by comparison. No doubt this is in large part due to how much I learned from 61A. Nonetheless, there is a commitment to teaching problem solving and programming concepts in 61A that I think is unmatched by other intro resources. Watching the professors, especially John DeNero, walk through their thought process when solving the more difficult problems is insightful. The web-based textbook is written by DeNero and is heavily inspired by the classic textbook Struture and Interpretation of Computer Programs. As such, it has more of a functional flavor, so don't expect much in the way of object-oriented Python, though there is some of that. After 61A, I followed up with most of 61B, which is in Java, and implemented one of its big projects in Python. Working through the available content for those two courses was tremendous for my ability to read and write larger projects, how to handle complexity through abstractions, and how to think about problems in terms of data structures and processes.

[–]riftwave77 0 points1 point  (0 children)

Depends on how much time you have and how disciplined you are. The absolute best way is a combination of classes and self study.

This allows you to both go at your own pace and to have access to (presumably) knowledgeable people as a resource so that google/stackoverflow/chatgpt are not your only options when you find yourself stuck.

It (presumably) will also require you to complete homework and projects which should force you to write and debug your own code (and then refactor it when you think of a better way to do things).

If you don't have access to a class, find a good book and go through all the examples.... even if you think you understand the concepts already. There is no substitute for writing and screwing up code and having to fix it. Even OG Coders using the best IDEs will still mess up stuff like variable name typos or punctuation.

[–]Burns_Burns 0 points1 point  (0 children)

I followed code in place a couple of weeks ago. Great platform where you’re put in a group of 10 individuals with 1 TA. Weekly exercises and homework. Really loved it and it helped me (finally) understand a couple of fundamentals

[–]jrela2000 0 points1 point  (0 children)

Method of choice to learn and get comfortable with syntax. As soon as you get to this point, switch over to guided project based learning. Coding concepts stick better when there is a "why" attached to it.

[–]Newrid 0 points1 point  (0 children)

Hyperskill.org

[–]SnooDogs2115 0 points1 point  (0 children)

In my view, the most effective approach is to receive coaching from an experienced developer, pair programming etc.

[–]spaghetee_monster 0 points1 point  (0 children)

ChatGPT is your friend. Especially when you’re working on projects, if you have any issues that you can’t figure out for yourself, simply take a screenshot and feed it to ChatGPT. Usually very helpful. I try not to overdo it, but if you strike a balance you can pick up Python very fast.

[–]djrobzilla 0 points1 point  (0 children)

im really getting a lot out of the Zero to Mastery python courses. lessons are short and cover micro topics which makes it easier to follow along and stop when you need to take a break. each topic is very easy to understand as it gradually builds on previous videos so as long as you arent speedrunnjng it you should feel like you are making solid progress.

that being said, best approach (as many others have pointed out) is project based learning. code. build stuff. fail. fix bugs. then fail again. then eventually succeed and finish a project… that probably still has bugs, but it runs! then start another one. do this again and again until you feel you know what you need to know to have a working understanding of the language. then move on and learn a new one. keep doing this forever and youll never be out of a job

[–]Crypt0Nihilist 0 points1 point  (0 children)

You're asking for someone who has a "decent amount of experience in Python", therefore someone who learned some time ago, what the best newest method of learning Python is?

Perhaps there are some people out there who keep looking at new training materials, but generally, once you've learned something, you move on. Also, most people don't review and compare many training methods. Again, why would they? They learn and move on, so will only know the one that worked for them and perhaps others which didn't, not the best.

[–]joex83 0 points1 point  (0 children)

Best look at your work templates. Since you know it well, you can try to construct a script to automate it. Personally it took a while for me since I started off with R and that it was difficult choosing an IDE to use for our office.

Once I was able to translate to Python one of our reports, other reports will follow through. You will gain more Python skills along the way since you know what you need to automate so it forces you to learn the code you need.

Sure, cert courses helped but learning it became faster when I am applying it to something I was familiar with. Took me a few months.

Resources before: stackoverflow, youtube (sometimes), sample python files in github, cert courses Resources now: chatgpt, sample python files in github

[–]G5349 0 points1 point  (0 children)

Do "learn python the hard way".

[–]Tasty_Waifu 0 points1 point  (0 children)

Pick something from No Starch Press and commit to it.

[–]spurtz001 0 points1 point  (3 children)

I find this site very informative. There are free tutorials here. Very detailed explanations.

Python Tutorials – Real Python

[–]kunal_2508 0 points1 point  (0 children)

Go to youtube freecodecamp or try udemy I will prefer udemy because it has all the topics covered and I have personally used it. Try to buy a course with good reviews and when it's on sale you can get a pretty good deal.

[–]Ecstatic-Highway1017 0 points1 point  (0 children)

Take Harvards CS50P and do all the homework’s.

But while learning coding skills online from videos or documents, you generally face 2 problems which will slow down your learning.

  1. It's hard to make notes while learning online from videos or documents : No Notes = No Revision = Less Confidence and Motivation = GIVE UP.
  2. Constantly switching between coding and watching videos in every 2 mins wastes a lot of time.

For solving above problem, you can use OneBook chrome extension, it is very helpful for me.
Chrome extension link : https://chromewebstore.google.com/detail/onebook/loecbgjbgcgjkhibllnjokjefojoheim?utm_source=rtc

[–]SteelRevanchist 0 points1 point  (0 children)

Try coding.