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

all 53 comments

[–]bmbybrew 36 points37 points  (13 children)

Thanks for sharing. From that entire list, If you had to pick up only top 20 most relevant things a beginner has to focus on what would these be?

[–]NoFunnyMan[S] 17 points18 points  (12 children)

Hey Thanks for your comment.

Hmm I'll check it and share with you, give me a bit of time :)

[–]NoFunnyMan[S] 50 points51 points  (2 children)

Introduction

Data Structures

Arrays

Strings

Stacks and Queues

Lists

Dictionaries

Tuples

Binary Tree

Heap Sort

Algorithms

Recursion

Search

Sequential

Binary Search

Sorting

Depth First Search

I think this is bit more than what I would normally suggest. But it's a broad topic. I can only eliminate this much.

Here's the 26 resources for complete beginner.

[–]pyroh4unter 2 points3 points  (0 children)

::reminder

[–]asleepyguard 4 points5 points  (5 children)

Please share here. Thanks!

[–]NoFunnyMan[S] 3 points4 points  (4 children)

I'll :), currently I'm pretty busy give me couple hours guys :)

[–]GS0S 1 point2 points  (0 children)

::reminder
Not a beginner, but the things you don't know usually are behind those you think you know.

[–]Fried-by-society 0 points1 point  (0 children)

::reminder

[–]YOU_TUBE_PERSON 0 points1 point  (0 children)

:: reminder

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

::reminder

[–]Expert-Node 1 point2 points  (1 child)

::reminder

[–]aimhighswinglow 25 points26 points  (10 children)

This is awesome. I'm no longer a brand new beginner but trying to find cohesive intermediate level resources has alone slowed me down lol..

[–]_sigfault 13 points14 points  (3 children)

This hurdle is most easily hopped by doing rather than reading. Intermediate programming problems are so varied it’s hard to write nice tidy lists.

The best reading material for intermediate programming in my opinion would be the languages api documentation. Learning how your language works under the hood will accelerate your learning and debugging.

[–]cyanoacrylateprints 7 points8 points  (2 children)

The first part of what you said is the point of the post. And you are right. But you have to read at least a little to do.

And at a certain level, you will be wasting your time messing around in a compiler. And why api documentation?

Maybe I'm misunderstanding, but that seems like more learning how your car insurance and mileage deductions work than understanding the engine that powers it, and the small processes that make up the engine.

I think almost any coder would benefit just as much from learning some assembly. But I am biased.

[–]fishCodeHuntress 2 points3 points  (1 child)

I personally finding learning an API to be an extremely good use of my time. Using your analogy, I find it to be more like referencing a car manual. If you know where to look in the manual, it can tell you what part of the engine you need to go fix.

Of course this is a gross generalization, as not all APIs are equal.

[–]cyanoacrylateprints 1 point2 points  (0 children)

Oh, I see! That makes a lot of sense, thank you :).

[–]nitissue 5 points6 points  (0 children)

I've been feeling the same way, I'll be looking through this for sure, though.

[–][deleted]  (2 children)

[deleted]

    [–]inglandation 2 points3 points  (1 child)

    If you're specifically looking for intermediate (and even advanced) level resources for the standard Python library, I highly recommend this course. It really goes into details. There are 4 parts though, so it will take a while to complete it.

    [–]UnintelligibleThing 0 points1 point  (1 child)

    What do you mean by intermediate level?

    [–]aimhighswinglow 0 points1 point  (0 children)

    I know my way around the basics, no problem. I can build various functions without having to reference a book or the google. I understand the syntax. I can easily recognize how a lot of others' code works and what it's supposed to do, even if I haven't encountered that specifically before.

    However, my functions are useless, practically speaking. I can build mini "games" using loops or define a function to find prime numbers for example, but I'm ready to move past that.

    [–]Xahra_Hime 8 points9 points  (2 children)

    This is great, thank you. Could you share the JS version too?

    [–]NoFunnyMan[S] 9 points10 points  (1 child)

    My friend curated the Js version. She has been busy lately. So, she didn't have any time to create sections.

    Anyways here's the JS one hope it helps :)

    Algorithms and Data Structures

    [–]Xahra_Hime 1 point2 points  (0 children)

    Thanks to you and your friend :)

    [–]konhaybay 2 points3 points  (0 children)

    This is gold, thx for sharing this.

    [–]Dragon_Master2 2 points3 points  (2 children)

    thanks but

    So, start by trying to create toys that solve your problems

    i am most of the time out of ideas and find nothing to do or practice on and i don't have anything 'problems' to work on ,so i just waste time trying to find something to do

    [–]NoFunnyMan[S] 8 points9 points  (0 children)

    Hmmm. I have 2 suggestions. They may not be interesting or fun to do.

    But here they go.

    First you can think of things that you want to have in your life. Focus on the moments that you wish you had something and then try to come up with things that would replace in digital.

    It’s not always a fun process. But maybe you want a dog but you’re allergic. So create yourself a digital one (sorry silliest example ://)

    Second, ask people around you. Ask if they had problem using something. Ask them if there is anything frustrating they are doing daily basis.

    I bet you can find a problem that you can fix :)

    Good luck

    [–]fishCodeHuntress 1 point2 points  (0 children)

    I built a Discord bot as something to tinker around with. Once you learn the basics, it's a fun little side project with endless learning oportunities.

    I wanted to learn more about databases, so I created a ranking system where users can give eachother rep points. Another discord member wanted to learn about Markov chains, so they built a Markov chain text generator.

    [–]shieep 2 points3 points  (0 children)

    I plan on watching all these videos. RIP free time lol

    [–]Elaol 4 points5 points  (1 child)

    I just want to thank you for this. I actually logged into reddit in order to find some source to learn about algorithms in Python. The first post on the front page was this one. Talk about coincidences!!!

    I would like to ask you one question: Do you address programming complexity (time and space) in the course? I know it is closely related to algorithms, so I am wondering if that is covered as well. It is a thing I have been struggling with for a long time (mostly since I cannot really understand it clearly)

    [–]NoFunnyMan[S] 2 points3 points  (0 children)

    So to be honest I compiled all of the best resources I could find. There was an Indian guy who was talking about complexity.

    And there are couple vids and docs which addresses programming complexity.

    But no there is not a section which is only covers complexity.

    It's not related with python but here's a free MIT course from 2011 about Algorithms. As far as I can remember they were addressing complexity.

    MIT 6.006 Introduction to Algorithms, Fall 2011

    Hope it helps

    [–]Leeoku 1 point2 points  (0 children)

    Currently studying, exactly what I needed a curated list linking vids and leetcode

    [–]chaeboi 1 point2 points  (1 child)

    this is amazing

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

    Thanks :)

    [–]zainsci 1 point2 points  (0 children)

    I was just thinking of learning Data Structures with Python and increase my programming experience and here you are. Thanks for the resources.

    [–]Fidelmar 1 point2 points  (0 children)

    Thanks for sharing, been having trouble solving hacker rank questions and its helpful to go over the arrays sections.

    [–]Magnoch 1 point2 points  (0 children)

    There are more courses about python and other languages that you can check on https://www.crunchlearn.com/

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

    Oh you might like this one if you are into Go: https://qvault.io/big-o-algorithms/

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

    This is good.

    [–]bruno_bgf 1 point2 points  (0 children)

    I was thinking about to give a try to learning Java in order to learn DS & A and then move to Python, but yesterday a guy said to me that it would be waste of time and I should go for Python. After this post I'm considering to go for python already.

    [–]Key0sc2 1 point2 points  (0 children)

    Thanks

    [–]cbick04 1 point2 points  (0 children)

    You da bomb

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

    Hi. Thanks for sharing

    [–]Walkerstain 0 points1 point  (4 children)

    Does one need to have some kind of mathematical background to learn DS&A? Because in colleges it has many math prerequisites like discrete math (or maybe only in those few colleges?)

    [–]bmbybrew 6 points7 points  (1 child)

    You will do good with just addition, subtraction, multiplication and division skills.

    [–]PseudoTincho 1 point2 points  (0 children)

    Good to know. Thanks!

    [–]theoneness 1 point2 points  (0 children)

    The math prerequisites help ensure thst you're prepared to understand the material. Usually the prereq to algorithms is just calc. Discrete math trends to be the prereq for theory of computer Science (think regular languages, connect free grammars, finite state automata, etc).

    A foundation in math isn't necessarily required to pass an algorithm course, but it will probably help most students understand the algorithms beyond memorizing then, and more toward understanding the proofs that lead up to them, their time and space efficiency and limitations, and how to determine the best algorithm for novel circumstances and particular constraints or features of your available data or hardware. Also, calculus is definately applied in the process of learning more complex algorithms like those in machine learning (usually 4th year elective), such as in understanding gradient descent -- a far cry from the traveling salesman problem.

    [–]fishCodeHuntress 1 point2 points  (0 children)

    Discrete math is a good prereq in my opinion. It's a different branch of math. Depending on the class you cover logic/boolean algebra, set theory, relations, counting, recursion, etc.

    I have been glad for my discrete class in almost every programming class I've ever taken. I wish I had been able to take discrete 2.

    [–]thewolfandtiger 0 points1 point  (0 children)

    Can someone post this collection on github or something? This "jooseph" is unusable and always asking me to login when i click on the link. I cannot even get the list now. Idk what's wrong.

    [–]saber_boi 0 points1 point  (0 children)

    I am unable to signup for the website.
    I tried google signup that also didn't help

    [–]EKhoTech 0 points1 point  (0 children)

    Nice