Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?

Ask Slashdot: Beginner To Intermediate Programming Projects? 172

An anonymous reader writes "I've been teaching myself to code recently. I've made good progress so far, and I've written a bunch of little scripts to make my life easier. Here's the problem: most project ideas I come up with now either seem pretty easy or pretty impossible. I'm having trouble thinking of a project that'll stretch my skills without overloading them. I've tried finding open source projects to read through, but I run into the same thing: either it's straight-forward, or it requires reading a half-dozen dependencies, each of which has dependencies of their own. Anyone have suggestions on some intermediate-skill projects to undertake? Or some project files in an online repo that go beyond the basics without getting overwhelming? My language of choice is Python, but other languages are welcome."
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Beginner To Intermediate Programming Projects?

Comments Filter:
  • Something else? (Score:5, Interesting)

    by TechyImmigrant ( 175943 ) on Tuesday May 06, 2014 @08:17PM (#46935335) Homepage Journal

    Programming isn't an end to itself. Well it can be but, generally we program to do something else - payroll, missile guidance, selling stuff over the internet, etc.

    What else do you know? Are you an expert in newt farming? Write an application to automate the tedious aspects of new farming.

    Once you have a problem to solve, it becomes attackable. Having to hunting around for the right sized problem suggests you aren't acknowledging the problems you already have.

  • Zen (Score:3, Interesting)

    by mfh ( 56 ) on Tuesday May 06, 2014 @08:25PM (#46935411) Homepage Journal

    Study Zen. Not from a religious standpoint but from a philosophical one. Once you grasp these concepts, you are ready to become a programmer or anything else you want.

    The first lesson is that an object falls into a pond directly. The object splashes directly. The object sinks directly. The sequence out of order is unnatural.

    Okay so this idea informs you about security, and about data flow. More lessons await! :)

  • by EmperorOfCanada ( 1332175 ) on Tuesday May 06, 2014 @09:33PM (#46935849)
    The two bits of advice that I have given to a zillion beginning and intermediate programmers are games and ProjectEuler. First project euler is great because it will exercise your math abilities and problem solving abilities in any given language. Few CS people realize how powerful properly applied mathematics can be. PU will get you in tune with that ability.

    Secondly I recommend making some games. Pacman, space invaders, something 3D. They don't have to be good. But ideally you move onto multi player.

    Basically if you can make a multi-player multi-platform pacman in an isometric view in OpenGL driven 3D with a server(SQL/NoSQL) driven leaderboard with a distrubution/installer module for each platform then you are done. There isn't a whole lot of programming that you can't do.

    Not to mention your friends will think that you are a whole lot cooler making a game than when you try to explain the challanges of problem 132 in Project Euler.

    Many people here are mentioning Arduino (which I love) it is a cool thing to add to your resume but unless you do something fairly strange then it won't expand your programming skills much. Arduino programming is usually fairly straight forward act / react. Although dealing with crappy sensor data and having motors not do exactly what you meant and then having to compensate is both frustrating and oddly satisfying.
  • Calculator (Score:4, Interesting)

    by Charliemopps ( 1157495 ) on Tuesday May 06, 2014 @09:48PM (#46935935)

    Write a calculator.
    Sounds easy right?
    Good luck.

  • by Quirkz ( 1206400 ) <ross.quirkz@com> on Wednesday May 07, 2014 @01:40AM (#46936799) Homepage

    I think this is a good answer. Dream big, start small. About a decade ago I decided I'd like to create a web-based computer game. I had some very beginner web, PHP, and MySQL skills. In theory that was enough of a foundation, as long as I continued learning, but it was a daunting task, because I didn't know many of the simplest things, like even how to keep track of values behind the scenes (such as with session variables). I started very small, coding little pieces, figuring out just enough. Some of the really early components were actually gambling mini games, because those have such strictly defined rules. Once I had a rock-paper-scissors game and a craps game, I'd picked up just enough that I felt I could also implement a simple store. After coding a store, I realized I knew almost enough that, with a little more research, I could code an equipment page that added and removed gear, without really paying any attention to the benefits on the gear. From that came the character sheet which displayed gear plus other stats, then some simple noncombat adventures which gave players equipment and money or increased stats ... and so on. Each new thing required some learning, but most of it was incremental enough, and the learning specific enough, that I could bite off one interface/interaction at a time and keep going.

    Sure, it took me six months until I thought I had anything worth inviting play-testers, and a year to go into beta testing, plus a couple more of development, but eventually I had a complete game, a sprawling thing of size and complexity I couldn't remotely have imagined at the beginning. It wasn't only fun, but also somewhat profitable, and in retrospect it's one of the greatest creative efforts of my life. That's something which would have sounded silly to say as I was testing out code for those first couple of exercises with RPS and craps, but that's what they led to.

Money is better than poverty, if only for financial reasons.