views:

84

answers:

3

What would you suggest as a starting project for learning essential Linux programming skills? I don't mean just coding something in Linux, but really Linux specific stuff, in the spirit of having something tangible to show in a job interview where Linux skills are required.

Also stories on how you got started with Linux coming from other environments are welcome.

A: 

I guess that depends on what you want to do with Linux. If you just want to work with it as a Desktop, I guess there isn't anything special about it. For this, you could start with some basic command line applications that embrace the joy of POSIX, like use ncurses and write a pong clone (i did this once, fun and easy).

If you seek rather administrative skills, I'd strongly suggest starting with writing shell scripts. Just set-up a server for any purpose and soon you'll run into tasks like "This has to be done somewhat easier". Instead of asking for a solution on SO, simply try to write your own shell script for that. A good idea might be to start with a very important task: Backups. Try to figure out, how you like your data to be backed up, and write a shell script to handle that. Maybe upload an archive to a different server and encrypting the backup using OpenSSL to make sure (i did this once as well, also quite fun). Check that different server has space left. Enable a restore from back-up. This should cover quite a lot of the important principles, I guess.

zerm
+3  A: 

You could write a Gnome applet in Python. That was one of the first linux-specific programming projects I attempted.

George Edison
Thanks, this is more in the direction I was thinking... shell scripting is something I already have pretty much in grip already and it doesn't have quite as much "wow factor" as some applet.
teukkam
A: 

If you wanna learn real Linux kernel development, you could try to build a kernel driver. But I think this is very hard for the first time. If you wanna learn something about Linux gui development you could take a look at gtk or qt.

It is also very helpful if you have any requirements, like a special hardware which currently does not work together with Linux. Or any missing application.

What are your current programming skills?

patrickS
I have experience with Qt (but not GTK though), and programming with a high level framework is pretty much the same regardless of the platform. Then again, a device driver might be a bit too hard for a starting project...
teukkam