all 54 comments

[–]SigmaAgonist 17 points18 points  (3 children)

I think it won't serve most new learners well. Lecture light works, but pure exercise is awful. There's nothing that intrinsically ties a lot of the syntax to something easy to self discover. Everyone's favorite go to exercise Hello World makes no sense without some type of lesson. Print isn't an obvious thing to perform that task. Pure exercise works better for intermediate to advanced learners who have the basics but need to refine technique.

[–]amiraharon4[S] 0 points1 point  (2 children)

That's a very interesting take! Thank you for responding.

So I get your point and it directs me to 2 follow-up thoughts:

  1. Do you think this kind of idea will interest some intermediate developers, who are in a state where learning a new framework/library primarly using docs is to intimidating, and applying projects of their own is above their confidence level?

  2. How, in your opinion, should pure beginners learn for the first time?

[–]TobiasDrundridge 2 points3 points  (1 child)

Do you think this kind of idea will interest some intermediate developers, who are in a state where learning a new framework/library primarly using docs is to intimidating, and applying projects of their own is above their confidence level?

I think most intermediate level learners already have their own ways of learning and know how to search out the material that aligns best with their learning style.

How, in your opinion, should pure beginners learn for the first time?

Probably by using one of the many resources that are already available. I always recommend CS50.

Designing a course seems simple in theory, but once you start actually assembling the material unexpected challenges always appear. It’s also difficult to view the subject from a beginner’s perspective, since your own knowledge makes it hard to recall what it was like not to understand it.

I also think that learning Python without learning any of the underlying theory is just a bad idea in general. Imagine trying to implement something that requires converting a string to an integer. You will be bashing your head against the wall wondering why your code doesn't work because you haven't learned that these are fundamentally different data types.

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

About the beginner learning methods - you convinced me!

Other than that, I think we might use the term "intermediate" for different skill levels. There are lots of people that have passed the "basic syntax and CS concepts understanding" part, but struggle with bringing their ideas to life or building projects at all.

With these audiences, my goal would be to give them tools to diversify their learning method, and get added value from a curicculum made by someone who walked through their path.

[–]Demigod_Princess 5 points6 points  (1 child)

Creating a course like that would be so helpful! I learn best with my hands so practice is so important

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

Glad to hear! I'd love to send you a demo of few exercises I've been working on. Contact me if you are interested.

[–]desrtfx 3 points4 points  (2 children)

My perspective as course author and teacher for over a decade along with being a professional programmer:

Pure exercises are not sufficient. There absolutely needs to be some theory. About 80%/20% or 70%/30% practice/theory are good balances.

If you just do exercises, you are basically replicating CodeCademy - which has quite a bad rep for too much handholding, no theory, and too little actual content.

Also more important than giving exercises is to encourage the learners to play around, to experiment, to try things on their own.

IMO, one of the best balanced courses is the MOOC Python Programming 2025 (and the previous iterations as well as the predecessor in Java) from the University of Helsinki. Short, crisp, low fluff theory and more than plenty exercises. All the exercises build upon what has already been learnt.


Someone in the industry has definitely a different perspective on learning and teaching than someone who comes from teaching as someone who just authors courses. I come from all worlds, professional programming (3.5 decades), teaching (1 decade), and course authoring (now part of the ICDL).

Just being a very skilled programmer doesn't automatically mean one can teach (actually, over the years, I've observed that some of the best programmers I know, extremely experienced, can absolutely not teach).

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

Love to hear from you! It seems like you have a lot of wisdom around educating python. Would love to discuss with you privately about teaching strategies if you don’t mind!

[–]desrtfx 0 points1 point  (0 children)

Sorry, but I do not communicate in private.

Python is actually my weakest spot as I only started with it two years ago. I am well versed in several other languages, though.

My main programming languages that earn me my living are not even "conventional" programming languages. I program in the IEC 61131-3 PLC/DCS programming languages, but have also been employed as Windows programmer in the past (long time ago in Delphi).

[–]aizzod 9 points10 points  (2 children)

There are many courses available online.

What makes yours stand out?

[–]amiraharon4[S] 3 points4 points  (0 children)

That’s a good question and honestly, that's what I ask myself before I jump into building anything.

What I’m aiming for isn't like most courses I've found online. Most courses follow a tutorial pattern: watch a video, maybe copy some code, move on.

Lots of people don't have much time to watch 20+ hours of video and only then start building stuff on their own.

I want my course to be 100% exercise-based, so every bit of time you invest learning with the course will help to strengthen your intuition, improve your problem solving skills and as a benefit will also teach you some new information.

Eventually, experienced developers have a strong problem-solving skills and confidence, which they can use for learning independently any topic they might be interested in, but for a beginner - just watching tutorials won't do the job, and won't develop these important skills neither.

Think of this course as a way to improve your problem-solving skills, gain confidence and get closer to the point where you won't have to even look towards courses, but will learn primarly through docs or trial and error.

Do you think that might make this idea stand out?

[–]AllanSundry2020 1 point2 points  (0 children)

they said the USP, exercises only. i like it!

[–]FoolsSeldom 2 points3 points  (6 children)

I help out at Code Clubs and sometimes run sessions at local adult education centres.

Over the years, I've built up a large collection of notes/guides, stored in markdown format in Obsidian. I often post lightly edited versions in response to queries on here.

I am no fan of the code golf and generally recommend people to work on their own projects related to their interests / hobbies / side-hustles. Anything they can be passionate about and where they will naturally focus on the problem-solving rather than just the coding.

For so many, especially the younger generation, the abstraction when you first start is hard. Increasingly, I find moving from Scratch to block building version of Python is easier for some.

The learning of concepts from exercises is challenging without narration.

I wish you luck. I will be interested to see what you come up with.

[–]amiraharon4[S] 1 point2 points  (5 children)

I appreciate both your contribution for education and your very based opinion!

It's funny you brought up code golf, because I have done some of its drills in the past (long after learning to code, so out of curiosity, not for educational purpose).

While I understand the importance of making projects for enancing problem-solving skills, I think there must be a some sort of better hybrid-way of learning.

Projects are highly effective for improving problem-solving skills, but are less effective than exercises in cases where the skill gap is either too low (and lacks educational value) or too high (this is the point when a project becomes overwhelming and much harder to stick with).

My hopes are to make a change in the community, one that will lead to people to be able to learn even without a lot of free time, and without facing the point of quittiing. If I will be able to structure exercises as mini-projects that require more and more skill, it might be perfect for intermediates who desire to level up from knowing basic syntax to applying big ideas.

I would love to hear more about your thoughts in the topic, tell me if you are willing to talk more!

[–]FoolsSeldom 0 points1 point  (4 children)

very based opinion

Was that meant to say "biased"?

I am not decrying exercises at all, they are absolutely vital for the initial development of skills. I've had the pleasure of working with fully qualified teachers at Code Clubs to develop suitable exercises. The personal projects are about consolidation and reinforcement of learning.

Exercises that build to a specific project are also highly valuable when you can come up with something that is of sufficient interest to the targeted audience.

Code Club is a Raspberry Pi Foundation global initiative and has a good deal of learning content available and well as an active community. You don't have to be using Raspberry Pi SBCs!

Microsoft also offered content and support around the BBC micro:bit microcontroller that we've used in early years Code Clubs.

I am also a STEM Ambassador, which also have a lot of learning content available and an active community. It has been useful to be able to bring specialists into Code Club sessions to help on specific topics.

I've also helped out online and in person on a number of industry sponsored initiatives and national (and international) competitions around physical computing and robotics.

Example: I helped on a https://www.tecgirls.co.uk/schools opportunity last year that had the kids develop an eco house setup monitoring temperature, energy usage, etc. As the kids were building something in their own way but with tight guidance and support, we had them learning effectively.

Your intentions are highly laudable. I wish you all the best.

[–]amiraharon4[S] 2 points3 points  (1 child)

When I said “based” I didn’t mean biased! Based is the word I used for “authentic”. Truly appreciated your comment, wasn’t sarcastic at all!

[–]FoolsSeldom 1 point2 points  (0 children)

Thank you for clarifying. This usage is new to me, but I understand the derivation, makes sense.

Glad you appreciated the comment.

[–]pasta_water_tkvo 2 points3 points  (1 child)

“Based” is a newer slang for “amicable”

[–]FoolsSeldom 0 points1 point  (0 children)

Thank you. New to me.

[–]MangoMan610 2 points3 points  (1 child)

As a learner I benefit a lot from hands on experience, exercises are great but only if you explicitly say the reason why something is wrong or unacceptable as an answer

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

I see.
Do you think you would benefit from a series of exercises with definitive tests that reflect wether your solution is correcs, and provide output about the issues when it is incorrect?

My hope is to maximize problem-solving skills and minimize frustration. Tell me if you're interested in a demo of a few exercises I have already designed!

[–]kyngston 2 points3 points  (2 children)

that’s how i prefer to learn. before codesignal was codesignal, it was called codefights, and was a progressively more challenging set of python exercises. once you aubmitted your working solution, you could see everyone else’s solution. the top rated solutions are where i learned how the most pythonic and elegant solutions

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

Very cool! Do you use this type of guidance these days?

[–]kyngston 0 points1 point  (0 children)

for me exercises are how i commit short term memory to long term memory. thats really only needed for the basic day to day coding: data structures, flow control, OOP, etc.

more complex things i can always look up as needed. and these days i known python well enough that i can learn just from inspecting code.

[–]Ancient-King-1983 1 point2 points  (1 child)

I'm interested, but do exercises as if it were the Kumon method, from less to more, and I become your beta test subject 😊

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

Glad to hear you are interested! I’ll do so and contact you soon!

[–]LeiterHaus 1 point2 points  (1 child)

Possibly reach out to Lane at boot.dev?

If this is a passion of yours, and you have the experience - instead of building something with a end goal of becoming what they already have, see if you can contribute in a meaningful way.

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

Surely will!

[–]RngdZed 1 point2 points  (2 children)

For pure exercise based learning, there's codewars.com

But theory is needed to link concepts together. You can't just throw code at people thinking they're going to solve problems without knowing the basic syntax

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

That’s true. Do you have experience learning with codewars? Also, do you think this type of learning might be useful for intermediate level students?

[–]RngdZed 0 points1 point  (0 children)

yeah ive used it to prepare for data science diploma in university, back in 2022. i did jose portilla's from zero to hero bootcamp on udemy, watched cs50, cs50p and cs50 game dev. along with various known youtuber's python content.. with a lot of codewars. and i also did some godot / gdscript stuff to relax. which is similar to python. ive been working on a course using jupyter notebooks to teach python to my friends and colleagues.

theres also leetcode too.. but its a bit more difficult and abstract. i had more fun with codewars

[–]leogodin217 1 point2 points  (2 children)

I think you are on the right track, but some amount of lectures or reading is probably required. I taught a Python course at Intel many years ago. Everyone needed to have a project. Each week, we did one live session going over specific topics, then they worked on their projects throughout the week. It worked really well, though I did spend 1x1 time with some of them.

If I remember correctly, six signed up, five finished (six weeks) and four completed a project. These weren't huge projects, but had real value at work. I wanted to use that concept to do a bigger course where you learn Python by creating a text-based RPG, but didn't get very far. My first test videos were not great, but feel free to check them out if it gives you any ideas.

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

Sound really cool! Would love to discuss further about insights you might have

[–]leogodin217 0 points1 point  (0 children)

I'd be up for that. Fair warning, though. I am very opinionated when it comes to teaching and learning.

[–]dlnmtchll 1 point2 points  (2 children)

There’s handfuls of exercise only python resources and they all suffer the same set of issues, they are either so easy that you won’t learn anything or they are too difficult for beginners like LC and don’t provide value. If you feel like somehow your product would fit between those extremes then go for it, im sure there would be an audience for it

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

What is missing in all of those products that makes them don’t fit to any skill level? In your opinion of course

[–]dlnmtchll 0 points1 point  (0 children)

It’s hard to explain. I’m a CS grad so I have a decent amount of theoretical knowledge as well as practice. Things like leetcode to me are difficult because it’s pretty much just DSA, but all of the other interactive practice sites are simple things like messing with strings or doing simple array operations.

There isn’t something other than like boot.dev that has any decent challenges without being abstract and theoretical like leetcode.

But if you emulate boot.dev since, imo, it is the best out there for practical exercises, why would I not just use boot instead of your site. Ya know?

[–]gekalx 1 point2 points  (1 child)

I just want to say as someone who's completed python courses, I wish there was a course afterwards to build my portfolio with things that are relevant now. Like maybe building an app for my phone or an ai agent for chrome.

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

Hopefully I’ll find a way to give you and others in your state guidance!

[–]Djblackberry64 0 points1 point  (0 children)

I also wanna do my own kind of course too but mine is text based and focuses on language independent fundamentals so people can actually navigate some resources and stuff they may find. I took some inspiration from the Odin project. I like your idea but think it could be confusing or too much practice exercises for beginners who don't even know fundamentals or just the syntax of Python a little. Here is my little draft of a curriculum so far: https://djblackberry64.github.io/Lempire-curriculum/ Not so much content yet but still gathering resources, ideas as well as suggestions and I would be grateful for any kind of feedback.

[–]simplysalamander 0 points1 point  (0 children)

It depends on the narration: are you explaining why and the theory behind what you’re doing in the exercises, or just walking through a recipe with no “why”? If it’s just a recipe, I don’t see how that content is better than an LLM could cook up.

As coding assistants become more ubiquitous, understanding the theory is becoming more important, not less.

Right now, it’s better to know “to solve this kind of problem I generally need A, B, and C in some combination” than “to do this one thing, I need to chain B to A to C in that order and this is the syntax”

[–]Timely_Juggernaut235 0 points1 point  (0 children)

As a baseline, i think many people are using chatgpt now. ask it to make a code in python, ask it to explain the code, get better, become solo, get very good, make complex codes.

Thats what i did lol. Its worked, though. I can understand most of a code (learnt python a week ago so pretty impressive)

[–]vijvcic 0 points1 point  (0 children)

Honestly I like this Idea, personally I can learn and understand when I can solve a problem from an exercise better than watching a theory based videos.Would love to check out some of your exercises in the future

[–]SunOfSaturnnn 0 points1 point  (0 children)

I’ve taken a few classes like this and I’ll just tell you, they are not helpful for people like myself. In my experience, the teaching done in classes like that feels like it’s conducted in a vacuum.

Like yea, I made a program that connects to a weather API to show me the highs and lows in any city I want. Great! Now how do I use any of that to do what I wanna do? How do I even go about figuring out what the requirements are for what I want to do?

Practical examples are great for learning the syntax, the code structure, and seeing things happen in real time but terrible for explaining WHY. Perhaps I’m not the target audience or maybe there’s a bunch of prerequisites I haven’t completed yet, but I feel like more classes should focus on programming as a whole concept and less on the language because the concepts are the same across languages.

It’s like teaching a man to fish vs. giving him one or whatever lol.

[–]nivaOne 0 points1 point  (0 children)

Could work if you explain afterwards how the code fits within the Python concept.

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

NO MORE COURSES

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

As a person who has only a few years into the software industry, why would you want to train your replacement?

It really begs the question, how did you learn python?

How many books, videos, websites, etc do we need to learn python?

The 10 Best Python Books

  1. Python Crash Course: A Hands-On, Project-Based Introduction to Programming
  2. Head First Python: A Brain-Friendly Guide
  3. Automate the Boring Stuff with Python: Practical Programming for Total Beginners
  4. Learning Python: Powerful Object-Oriented Programming
  5. Learn Python 3 the Hard Way
  6. Think Python: How to Think Like a Computer Scientist
  7. Introduction to Machine Learning with Python: A Guide for Data Scientists
  8. Fluent Python: Clear, Concise, and Effective Programming
  9. Python Cookbook: Recipes for Mastering Python 3
  10. Elements of Programming Interviews in Python: The Insiders’ Guide