Event emitter basics
Implement an EventEmitter class with subscribe/emit/unsubscribe functionality.
Design Twitter Feed
Implement a Twitter class with postTweet, getNewsFeed, follow, and unfollow methods.
Observer pattern lite
Implement a simple Subject class supporting subscribe, unsubscribe, and notify observers.
Playing card class
Design a PlayingCard class with suit, rank, color, and equality/comparison magic methods.
Seat Manager Design
Implement a SeatManager class that supports reserving the smallest available seat and unreserving seats.
Design Front Middle Back Queue
Implement a data structure that supports push/pop at front, middle, and back of a queue.
Design Browser History
Implement a BrowserHistory class that supports visit, back, and forward navigation with step counts.
Design Skip List Lite
Implement a simplified skip list supporting insert, search, and delete with O(log n) average complexity.
Max Stack Design
Implement a MaxStack class with push, pop, top, and get_max operations.
Showing 1–9 of 9 challenges
Guide: free Python coding challenges
Practice Python by solving problems
PythonSkillset challenges are hands-on coding exercises from beginner to advanced. Open a challenge, read the problem, write Python in the split-pane editor, and run tests with Pyodide — no install required.
How to use the arena
- Pick a category — basics, algorithms, strings, and more
- Open a challenge, read the statement, and edit the starter code
- Run tests, fix failures, then try a related quiz or tutorial lesson
Challenges vs tutorials and quizzes
Challenges test what you can build under constraints. For guided teaching, use our Python tutorials. For quick checks, try quizzes or copy snippets from code samples.