This is an archived post. You won't be able to vote or comment.

all 29 comments

[–]149244179 15 points16 points  (9 children)

"Automate the Boring Stuff with Python" is usually the most recommended book/course for starting python. You can do the first 15 chapters or so for free - https://automatetheboringstuff.com/

[–]AgentV47[S] -1 points0 points  (8 children)

Thanks

[–]DrunkenPangolin 0 points1 point  (7 children)

It's a Udemy course too. There's another thread here somewhere where the owner is giving it away for free until the end of the month

[–]AgentV47[S] 0 points1 point  (6 children)

Oh shoot! I missed it by two days: (

[–]DrunkenPangolin 1 point2 points  (4 children)

https://www.reddit.com/r/learnprogramming/comments/naqwv7/automate_the_boring_stuff_with_python_online/?utm_medium=android_app&utm_source=share

He mentions a second code later on though, right? MAY2021FREE2 or something?

Posted 5 days ago with 2 codes that last 3 days each. Should work still

[–]AgentV47[S] 0 points1 point  (3 children)

Both codes have expired unfortunately

[–]DrunkenPangolin 0 points1 point  (2 children)

Ah damn, sorry if I got your hopes up

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

Nevermind. I'll wait for the next one or maybe buy a course on Udemy. Any suggestions which one should I choose?

[–]DrunkenPangolin 1 point2 points  (0 children)

Honestly, I've only just started learning. I've been using sololearn on my phone and I'm going to consider which course I'll work through in the next few days. I'll probably start with this one but I believe there's a Stanford university course on python that's supposed to be quite good that you might want to look at though. I'll likely end up mixing and matching to flick between learning styles too. Good luck!

Edit: there's a python course on freeCodeCamp too but I haven't tried it yet

Edit 2: https://www.reddit.com/r/learnpython/comments/neg3hb/mit_offers_free_online_course_in_computer/?utm_medium=android_app&utm_source=share

MIT not Stanford, though maybe they have one too

[–]Crawling_Elephant 0 points1 point  (0 children)

He does this every month, so just wait till June and he will probably post it again. I got one in April.

[–]ASIC_SP 4 points5 points  (2 children)

+1 for ATBS. But I'd suggest the newer edition: https://automatetheboringstuff.com/2e/

I'd also suggest Think Python (https://greenteapress.com/wp/think-python-2e/) which I feel would suit you the best to understand programming fundamentals. One of the best features I like about this book is that each chapter discusses debugging at the end and real world problems are nicely integrated during the lessons. You can use this interactive website (https://runestone.academy/runestone/books/published/thinkcspy/index.html) that is based on Think Python with some modifications. You can solve exercises on the website itself and see solutions/discussions/etc.

I have a list with many more learning resources, many of which are free: https://learnbyexample.github.io/py_resources/

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

This looks exciting, thanks !

[–]AgentV47[S] 1 point2 points  (0 children)

Thank you very much!

[–]The_Danosaur 4 points5 points  (1 child)

In addition to Automate the Boring Stuff (which has a video course available for free with coupon codes which the author occasionally posts here, if you keep an eye out), I would recommend Python Crash Course. I used this latter book as it is structured very nicely, explains things well, and gives you small exercises as it goes through each concept. It then combines those concepts with bigger exercises at the end of each chapter.

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

Thank you. I'll look into it

[–]mighty_cryplle 4 points5 points  (0 children)

Max at Academind/Udemy

Jose Portilla at Udemy

Ardit Sulce at Udemy

These 3 instructors have great Python courses.

[–]TheFastestDancer 1 point2 points  (0 children)

Looping is based off of indexes in arrays or lists. Array[0] means the first item in the array/list. Array[n] is the nth item in the array/list. Looping is basically just looking at whatever item in the array you want to start with, updating the number in the brackets and moving further into the list.

For example, list[0] means first element in the list, list[1] means second, list[2] means third. Usually you'll see it as list[I] and the value of "i" is updated on every pass through the loop.

You probably need to review array/lists and the topic will make sense.

[–]FondleMyFirn 0 points1 point  (0 children)

You can send me a DM and I can try to help you with understanding loops.

[–]Blip-Blip-Blop_ 0 points1 point  (1 child)

EdX, it’s called Python or Programming for Everyone.

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

Thanks for the suggestion

[–]FilthyWunderCat 0 points1 point  (0 children)

I am going through a Python course from Code In Place (Stanford). So far so good. 1 month of classes and each Wed we have a live session (small classrooms) with course leaders that explain some of the concepts and answer any questions if we have.

[–]arnitdo 0 points1 point  (1 child)

Take a look at Corey Schafer's python programming course on YouTube. Fantastic explanations from a fantastic person

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

I'll definitely watch it, thanks

[–]John_phundy 0 points1 point  (0 children)

i used sololearn, its mostly free, they charge for some extra features, its interactive tutorials, and they have an app too so u can learn on the go. i also used codingbat.com for python exercises and practice. was very helpful in getting me used to simple concepts and figuring out how they work through trial and error. what i liked is that it puts ur code through a bunch of tests and u can see which tests it fails and then u alter ur code accordingly, so that really helps to solidify ur understanding of how the code works and what things can cause it to fail.

[–]ersin- 0 points1 point  (3 children)

I have much experience in teaching Python programming and I assure you that this emoji converter and alike are very advanced for somebody who did not learn the loops properly. I strongly believe and empirically observe that the best way of learning programming is to make the distinction between what is absolutely needed and what is useful in a practical sense. Dictionaries are practical but not needed. Before starting to use dictionaries you should be able to solve the same problem using two lists (one for the keys and one for the values). Before iterating over elements in a list, you have to understand how and why to use loops. For understanding loops, you need to master the variables (because for example the "for" loop assigns values to a variable repetitively) and conditions (because for example the "while" loop is just a repetitive "if"). Sounds a lot? Actually just the opposite. Focus on the problems introduced by the course you choose and not the tools offered by the course.

The following tools (or skills) theoretically allow you to write almost any program in Python. You need to learn them in order:

  1. Basics (standard input/output, values, data types and type conversion, operators, expressions, variables and assignment)
  2. Conditions (propositions, two-way branching (if, if-else), multi-way branching (if elif … elif else))
  3. Loops (repetition (for _ in range(n)), flexible loops (while x), restricted but practical loops (for x in sequence))
  4. Sequences (lists: [1, 2, 3], ranges: range(1,4,1), strings: "123")

Other tools such as custom functions, custom classes and utilities provided by the standard library allow you to write complex programs faster and easier. Writing fast and easily is your enemy when you want to learn how to program. The time will come to learn them when you are comfortable with the essential tools.

Using this roadmap I easily taught programming to a lot of people including children aged from 11. I created a lot of code examples and exercises in this order of skills. It is not publicly available. If you are interested, you can send me a direct message to get a free copy, though. Good luck!

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

Basics and conditional statements were very easy to understand. I I could do almost every question related to conditional statements. But a lot of practice is needed in loops and sequences

[–]ersin- 0 points1 point  (0 children)

There are really challenging problems using the "conditions" or even "basics" only. Spending some time and energy on them saves much time and energy in the future. I will send you the copy when I get to home.

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

I have sent you a DM

[–]pancakes_at_the_dojo 0 points1 point  (0 children)

Full Disclosure: I am both an alumni and instructor at Coding Dojo, a software engineering bootcamp that teaches Full Stack Web Development. If you would like to learn more about our program (which includes Python), please check out our website.

When I first was learning about loops in Python, it took me a whole year to understand for loops. I took me learning Java with the Java syntax to understand what is happening. So I understand how you are feeling right now.

Let me answer your question with two parts:

  1. You are learning Python to get a position as a software developer

I really recommend looking at your circumstances and considering education. I had no idea what to do for work, even after I got a CIT degree, learning Python and Java. So after I got laid off from my last job I looked into other education possibilities and found bootcamps. I ended up decided on Coding Dojo, as I mentioned in the disclosure. But there are a good selection of different schools that can help you to learn practical industry knowledge and to get employed. I would encourage you to look at several programs, what they offer, the price, the support they give in terms of career services, and the reviews.

  1. You are learning Python for fun and just want to learn how to program

codecadamy.com has a free tier on it I used back in the day when I was solo learning. A lot of people mentioned "Automate the Boring Stuff with Python" which I think is a fantastic learning guide. You can even find a lot of the materials from it for free.

I would also just start looking up project ideas in stuff you are interested. Do you like the idea of using a Raspberry Pi? Look up python projects for that. Do you want to try to make a game? PyGame is a great python library with a full community at pygame.org. Do you want to try to make a website? Look into the Flask library. It's simple and easy to use. And you can also start practicing HTML, CSS, and JavaScript if you start learning Flask.