Try making a simple video game. Think Tetris, not Skyrim. I personally made variants of Pong, Joust, and Asteroids when I was learning programming. You can learn a lot from making video games because it requires a variety of programming techniques. You need to understand basic algorithms, some mathematics, and you can’t be too inefficient about it or you’ll notice performance problems. And seeing your little world come to life is very motivating. This kind of thing is not terribly difficult to do in Python or Racket.
Note that many of the textbooks we’ve been recommending include exercises. Some of the more difficult ones count as small projects.
Try making a simple video game. Think Tetris, not Skyrim. I personally made variants of Pong, Joust, and Asteroids when I was learning programming. You can learn a lot from making video games because it requires a variety of programming techniques. You need to understand basic algorithms, some mathematics, and you can’t be too inefficient about it or you’ll notice performance problems. And seeing your little world come to life is very motivating. This kind of thing is not terribly difficult to do in Python or Racket.
Note that many of the textbooks we’ve been recommending include exercises. Some of the more difficult ones count as small projects.