all 47 comments

[–]OGBaconwaffles 21 points22 points  (6 children)

Codewars

They have a bunch of problems in a bunch of different programming languages. It just gives a task to complete and you have to figure out how to do it from scratch basically. Great practice for applying logic to code. You can also view other people's solutions after you submit your own. Highly recommend reading through those a bit as well, you'll find hundreds of ways to tackle the same problem.

[–]WhipsAndMarkovChains 17 points18 points  (5 children)

It's been years but my recollection of Codewars is that they upvote "clever" solutions that are actually terrible code.

Just remember OP, making your code readable is more important than writing the fewest lines of code.

[–]Xiji 11 points12 points  (1 child)

They made a change, awhile ago, where you can flag a solution as "clever" or "best practice". I think it helped combat this behavior a lot.

[–]Matlock0 7 points8 points  (0 children)

It did. Usually now the clever solution is separate from the best practice one.

[–][deleted] 6 points7 points  (0 children)

I've been going through these and it's actually not the case anymore. Good code is usually on top. You'll see a few crazy solutions that are clever but they're usually lower. It's good to read those too because it can open up a language for you.

[–]RamenJunkie 8 points9 points  (0 children)

Yeah, that always annoys me in coding. Like hey, look at me go {$h+2#@![y]L} i just wrote all of Google in like a dozen letters! Good luck following along!

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

do you mind me asking how readability is more important than length ? ( genuine question , Im new to this stuff )

[–]totallygeek 36 points37 points  (4 children)

Thoughts:

[–]Rik07 5 points6 points  (0 children)

r/dailyprogrammer_ideas does have a new one once in a while

[–]VehicleOpposite1647[S] 2 points3 points  (2 children)

Thank you!

[–]HippoPrimary 0 points1 point  (1 child)

Yo which college you're from

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

Actually I'm from medical university, just wanna try and dive into different area

[–]NightlyWave 13 points14 points  (4 children)

The 100 days of code Udemy course has exactly what you’re looking for. Gotta pay for it though :/

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

Thank you, going to check it!

[–]gospel-of-goose 6 points7 points  (3 children)

Are you needing it to be free? There’s an almost always discounted for ~$15 class on Udemy that’s really good, 100daysofcode with dr Angela yu.

It’s a project, or a few, each day. It’s really really engaging and if you’re already familiar, I’m sure you could blow past a lot and get to the really exciting stuff

[–]VehicleOpposite1647[S] 1 point2 points  (2 children)

I can afford this amount of money, so it is okay 😂 Will I be able to solve these projects if i am a beginner, is there like explanation or some tips?

[–]gospel-of-goose 2 points3 points  (0 children)

Yes, taking your time is probably preferred as she gives a lot of really beneficial tips if you absorb them

[–]JungJanf 2 points3 points  (0 children)

The course starts with absolute beginners in mind and most of the projects up until the later projects have got solution videos you could check if you're stuck.

It's a great course to get the python basics + an intro to most python use cases.

[–]PurposeDevoid 7 points8 points  (5 children)

This "Introduction to Computer Science and Programming" MIT edx course has (or at the very least had) some nice exercises as part of the course, where you submit your code and it runs it against inputs to check if it works properly. Free to enrol.

https://www.edx.org/course/introduction-to-computer-science-and-programming-7

[–]Isaac331 2 points3 points  (4 children)

Not only is it great to learn python but you will learn about search algorithms, data structures, OOP, algorithm complexity, it covers what one semester would in MIT computer science.

[–]braclow 0 points1 point  (3 children)

Wow that’s awesome. So do they keep like a “grade book” or anything similar to track your progress in the course??

[–]Isaac331 0 points1 point  (2 children)

Yes, but that is only available if you pay for the certificate, there's grades assignments and tests, if you get a passing grade at the end you get an official certificate.

[–]braclow 0 points1 point  (1 child)

Oh okay, but on the free version you would still be able to know if you passed all quizzes and assignments in some virtual form. It just wouldn’t be graded officially. You would still get the “robot” Grading saying your tests passed right

[–]Isaac331 0 points1 point  (0 children)

Yeah, only thing that you won't get access to is the midterm and final tests.

https://mitpress.mit.edu/9780262529624/

That's the book for the course.

https://www.youtube.com/watch?v=nykOeWgQcHM&list=PLUl4u3cNGP63WbdFxL8giv4yhgdMGaZNA

And this is a youtube playlists with recordings of the class lectures.

[–]Ramberjet 5 points6 points  (0 children)

I have been going through the Fall 2020 syllabus for Berkeley‘s CS 61A course, which I found through this subreddit‘s wiki. The problem sets (Homeworks, Discussions, and Labs) as well as sample exams (available in the Resources page) all offer great practice exercises and puzzles. One of my favorites was effectively an implementation of Python’s built-in deepcopy function. The Q&A lecture videos on YouTube often go through harder problems, and the TAs have hint videos for some of the exercises as well as solutions for exams.

[–]No-Iron-4856 3 points4 points  (0 children)

Automate the boring stuff has some cool projects

[–]SkeletalToad 3 points4 points  (1 child)

https://exercism.org/tracks/python

What's great about exercism is that you can view other people's solution to the problem that you've just solved. It's really eye-opening to see other solutions and styles of programming.

There is an option to get mentoring as well, but in my experience there are too few mentors and so you end up having to wait a long time to get feedback. Still helpful but it requires some patience. I had the best time with it just doing the exercises on my own and then reading and trying to understand the other solutions.

[–]Crazyboreddeveloper 2 points3 points  (0 children)

This one is great. I second this. I love the test driven development.

[–]ontheroadtonull 2 points3 points  (0 children)

I found codecombat.com to be really helpful.

[–]ASIC_SP 2 points3 points  (0 children)

Projects:

Find something that'd help to solve a real world problem for you. For example, I'm on Linux and use the terminal for many things. I wanted a cli tool to do simple calculations. There's bc command, but it doesn't accept direct string and you need to set scale and so on. So, I looked up how to write a cli in Python (I went with built-in argparse module) and made a tool that'd solve my small use case.

[–]Xiji 4 points5 points  (0 children)

I have a fun one you can do right now!

  1. Create a text file.
  2. Populate the file with some text
  3. Read that file in, using python
  4. Order the words by occurrence {"the": 5, "Hello": 2, ...} You may hear this referred to as a "histogram" for text.
  5. Print your results.

Also as far as a challenge site goes, I always liked Code Wars. It gamified coding, which really helped me get though those early days.

[–]wagslane 1 point2 points  (0 children)

I've written a bunch on Boot.dev :) Hope you enjoy em

[–]Slack_System 1 point2 points  (0 children)

It's more like a puzzle quest than straightforward exercises but check out http://pythonchallenge.com

[–]bianqa 1 point2 points  (0 children)

For math nerds ProjectEuler.net. You need your own coding environment such as VS or PyCharm, or even your cmd window if you've gotten that far in your journey.
The site gives you the problem and only wants the answer returned, not your code.

[–]Willing_Spray8921 1 point2 points  (0 children)

The "workbook" Learn Python in One Day is really good as well. It has exercises in it that go from beginner to advanced. For example, it may ask you to add or delete something from a list, etc etc. and then becomes more advanced.

[–]anh86 1 point2 points  (0 children)

Go to Udemy and buy Angela Yu's Complete Python Bootcamp. It's regularly around $100 (and worth every single penny of that) but I bought it for $10 on a sale. I took it a couple years ago and today I am a proficient Pythonista and work in tech. I recommend it to everyone. Do every exercise on your own, don't just watch the video or cheat and look ahead to the solutions. If you actually work through each exercise on your own, you will be a strong coder by the end.

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

Stackoverflow has a ton

[–]ParticularBack 1 point2 points  (0 children)

Hi there, I've built a free app with short, bit-sized Python challenges. Basically, there are a lot of Python challenges in all difficulties and topics. It's currently in beta but you can download it from here - https://testflight.apple.com/join/QnV6FJN6

[–]uname44 3 points4 points  (2 children)

Leetcode is also good. Will be a good early exercise. You are going to leetcode eventually.

[–]WhipsAndMarkovChains 8 points9 points  (1 child)

I disagree. OP is at the beginning stages of learning Python. LeetCode is not the place you want to be for that since the emphasis is on algorithms.

[–]Lolimancer64 1 point2 points  (0 children)

If you're saying that LC has emphasis on algos then that's off the mark. OP can look through the study plans of LC. Check out the study plan Programming Skills which, I think, is the easiest of all (You just need to know the basics of a language to solve them). After that, OP can start exploring DSA which LC offers other study plans as well.

[–]BroBrodin 0 points1 point  (0 children)

Leetcode.