Slashdot Mirror


Short Coding Projects?

sapped asks: "Whenever somebody advocates a new programming language for you to try, they will usually suggest writing something in it that will take you an hour or two to code, so that you can get a feel for it. My problem is that I tend to go from extremely trivial ideas straight to stuff which will keep me busy, for at least a few days. I don't seem to have a handy in-between size project that I can test stuff in. The closest I came to this was writing a little ad-blocking proxy for my browser, a few years back. Any ideas on neat small non-trivial projects?"

14 of 122 comments (clear)

  1. Pfff lots of things by arcanumas · · Score: 4, Funny

    There are lots of things you can write in two hours man!!
    voice recognition software, compilers, parser generators , browsers , OS kernels etc etc.
    Come on, be creative... :)

    --
    Slashdot Sig. version 0.1alpha. Use at your own risk.
  2. a little easy but... by coolhoot2447 · · Score: 4, Interesting

    I usually start of with implementing some simple math related things. For example, a prime number generator or a program to calculate pi. The algorithms that you can use to write such a program tend to be heavily documented so you don't have to worry about the design and can concentrate on the implementation in that specific language.

    1. Re:a little easy but... by saden1 · · Score: 4, Informative

      you can always got to Topcoder and check out some the problems they have over there. They have all sorts of coding problems with varying difficulties.

      --

      -----
      One is born into aristocracy, but mediocrity can only be achieved through hard work.
  3. school/college programs by selfsealingstembolt · · Score: 5, Insightful

    Try to get your hands on some programming exams. The programs there are usually designed and written within one or two hours (to fit into a typical lesson). Also they touch all subjects that are of interest in your case, for example the 8-queen-problem for recursion, simple algebra (prime numbers) for number handling, pointers, etc without going to deep into details not necessary if you are not writing productive software.

    --
    Keep open minded - but not that open your brain falls out...
  4. RPN Calculator by readams · · Score: 5, Insightful

    A friend of mine suggested a reverse-polish notation caclulator. It's a pretty good project since you'll have a chance to use a common data structure (stack) along with all the basic features of the language.

  5. What I do... by NetNifty · · Score: 5, Interesting

    What I do first of all after the basic "hello world" examples and stuff when learning a new language is a simple "guess the number" game - computer randomly generates number between 1 and 100.

    User then guesses, and computer replies if the guess is higher or lower until number is guessed. Teaches use of loops, random number generation, text input & output etc. Can also go on to store lowest number of guesses in "high score" table etc, or use TCP to make it playable over telnet, if you so wish.

  6. Couple I've done by jbester1 · · Score: 5, Interesting

    Something simple like a basic Webserver (GET/PUT/HEAD) or a FTP server.

    You get:

    a) simple string parsing/processing/manipulation
    b) File I/O and filesystem manipulation
    c) Network I/O

    Optionally or language dependent:

    d) Threading
    e) Packaging

    If a dynamic language (e.g. lisp):

    f) Write something like JSP on top of it: dynamic dispatch to handling method/function

    Optimizations are easy as well. Caching will give you a good overview of data structure speed.

  7. how about... by Anonymous Coward · · Score: 5, Funny

    A random idea generator?

  8. Benefit the world: A program to show data splits. by Futurepower(R) · · Score: 4, Interesting


    Here's a simple program that would benefit the whole world:

    Make a program that shows what parts of a huge folder fit on individual CDs or DVDs. The output of the program would say, for example, that all the files from sub-folders A to Information would fit on the first CD, and all the files from sub-folders Installers to Netgear would fit on the second CD, and so on.

    It is necessary to store backup sub-folders in alphabetical order on the backup CDs or DVDs because then they can be found easily.

    Right now there is no good way to decide how to apportion the data. Breaking any file into two pieces just causes problems later, so the Easy CD Creator method does not work well.

    Later, it would be excellent if the program made .ISO files, of course, and even more excellent if the program asked the user to insert a CD or DVD, and burned the media.

    --
    100 Facts and 1 Opinion -- The Non-Arguable Case Against the Bush Administration

  9. IRC bot by Tobias+Luetke · · Score: 4, Insightful

    I implement a simple irc bot in whatever language i test. Usually takes few hours and you can write it as top down script or as oop monster, up to you.

    The good thing is that you can use this irc bot to test just about every aspect of the language later on. Its not a project which is just done and discarded. Possible enhancements are user recognition or even something fancy like cvs commit reporting.

    For example when i decided to play with sqlite took the ruby version of the bot and added a funny quotes database.

  10. Programming challenges by ReKleSS · · Score: 4, Interesting

    My preference is the OSIX GEEK challenges, but anything with decent complexity will do fine. Solve the challenge first in a language you know, then reimplement in the new language. Just note that the first few geek challenges don't require much/any programming skill, and the first one could take a while. Take a look at Hackergames for more sites with the same type of challenges.
    -ReK

    --
    md5sum -c reality.md5
    reality: FAILED
    md5sum: WARNING: 1 of 1 computed checksum did NOT match
  11. Calculator - 4 functions to start, then trig funcs by astrojetsonjr · · Score: 4, Interesting
    I teach advanced programming at a local university. I often get students that want to get into the class without having the prior classes. I tell them to set aside 90 mins and to call/email me when they are ready to start.

    For the first hour (or whatever) it takes I have them write a four function calculator (FFC). Once they get that done, I have them extend it to add trig functions like sin / cos in the last 30 mins. If they can't do that, they are not going to be happy with harder assignments.

    I also use this as a mini-test of a new language. Try my new language COAL, better than Cobol, faster than VB, a true OO language with VM's that run on any Timex watch!! A short stint creating a FFC lets me know how well it works out.

    The FFC is also good since you can use it for GUI checkout to see if that new tool rocks as much as Freshmeat would like you to think.

  12. Code for others! by sachachua · · Score: 4, Insightful

    When I'm studying a language, I like finding an open source project I care about and looking for something to tweak. Advantages of this include feedback from other developers, an instant framework to fit your small changes into, and the warm and fuzzy feeling you get when you make something other people will use. You can pick up the idioms of the language quickly by reading code used in real life. Participating in an open source project also connects to a lot of other people who already know the language you want to learn, and you can ask them for help.

    Don't be intimidated by the size of projects. Pick a project, browse through the source code, try to get the feel of things. You can usually find a bug report small enough for you to work on. If not, think of a feature you'd like to have and try to implement it. =)

    Great way to get into a language.

  13. Tetris by marcovje · · Score: 4, Informative


    I usually write a tetris clone.

    Basic operation is 400-1000 lines typically