tags:

views:

322

answers:

8
+9  Q: 

Beyond Hello World

When exploring a new language, framework, IDE etc. we all start with Hello World, but where do you go after that? The process of writing a Hello World app will not give you the experience to begin writing complex, multi-tiered applications.

Since the mid-90s I have implemented nearly a dozen different versions of a simple SQL IDE. This didn't start out as a firm idea; i simply needed to test dynamic sql from an application as part of work assignment. But over the years i have codified the spec for myself and go back to it again and again whenever i need to dive into something new. The app spec:

  • Collect and persist db connection info (server, database, uid, pwd)
  • Allow for editing of a sql query
  • Execute sql against a database connection
  • When appropriate, bind the result to a grid

It usually takes just a couple of hours to implement and exercises the following ideas:

  • Simple UI design and implementation
  • User input
  • Error handling and messages
  • Data binding
  • Database setup and configuration, permissions etc.
  • Database connection and access
  • Simple to communicate to entry-level developers when they need an advanced Hello World
  • Easy to exercise simple threading: worker thread fetches data from db
  • Produces and app that is actually useful

I’m curious if others have a standard Hello World++ style application when diving into a new language or framework and why.

+1  A: 

Presumably if you're getting into a new language or framework, there was some motivation behind it. Why not start with that?

But to answer your question, mine is PacMan.

harpo
+1  A: 

After "Hello world", it really depends on what you want to do. You're probably learning the language for a certain purpose, so just start with a (simple subset of) the problem you're trying to tackle.

I also find it interesting to try and understand some reasonably complex code as a second step. It can be daunting, but you learn a lot, and since most time is spent modifying existing code, not creating new code, it is a very realistic exercise.

Just try and fix the bug that has annoyed you must in the software that you will work on. :-)

sleske
A: 

Personally, I don't have anything set in stone that I try to do when I'm picking up a new language or framework.

From time to time I'll start with Hello World...and then build off of it trying to implement new features using the new stuff I'm trying to pick up. Eventually it becomes a Franken-Hello World that actually servers a purpose and performs some task.

Justin Niessner
+1  A: 

I find as I am predominantly a web developer now over apps, I use a blog engine as it is a domain I feel comfortable in allowing me to better explore the new language or framework.

Dan

Daniel Elliott
+9  A: 

See Code Kata for some widely-used ideas.

S.Lott
Exactly what i was after Lott. Thanks!
Paul Sasik
+1  A: 

Write a blog engine.

Stefano Borini
+5  A: 

I like to give Project Euler problems a shot in new languages.

Tends to give a decent idea of what's doable and how.

Sebastian P.
+1  A: 

It depends on language you're trying to learn. Let's say you're interested in language like C++, then you'll try to learn as much as possible about OOP and features C++ offers to you. Work more with strings, user input you'll learn a lot from those exercises. Learn how to handle errors, work with threads & files and you'll find yourself getting grip over that programming language.

Solving some puzzles using that programming language is best way to proceed further. after that you take on bigger or smaller project depending on your understanding. So if you're into languages that let's you create web apps. you'll try to play with simple hello world, then working with forms, then with database. and as you proceed further, things will be more complex.

In my opinion, Games, puzzles, Demo programs are good learning pointers. Sites like Project euler, Top coder or some programming contests like offered by University of waterloo are good way to learn from.

I suggest picking up a open source program, and start learning from it. Modify it and make it better,(break it,fix it).

Mahesh