As all programmers who are worth their salt know, it helps to maintain a list of Web bookmarks relevant to the platform and tools you're using. However, if you're looking to change from your current platform to Linux, all those bookmarks you've collected suddenly may not do you much good. So here are a few sites I've found that you can use to seed your virtual library.
Everyone has to start somewhere. And whether you are new to programming in general or just cutting your teeth on Linux, you'll likely need a little help. These sites will be right up your alley.
Can you feel the LUV?
LUV Talk bills itself as a brief guide to novice Linux programmers or those migrating from a Windows system. If you're coming from Windows, you'll appreciate the Where's the IDE topic, which provides useful, if somewhat dated, information on some of the C++ IDEs available for Linux. Notably missing from this discussion are KDevelop and Metrowerks' CodeWarrior for Linux.
That's all right, though, because, as LUV points out, most Linux coders use plain text editors to write their code. LUV introduces you to popular Linux editors like Vi and EMACS and the tools we all love to hate, like make, diff, patch, and autoconf. You'll also find a few examples of working Perl, Python, shell, and Tcl/Tk code.
The Linux Documentation Project
Some of you will have already heard of this one, but it's important enough to include here for those who haven’t. The Linux Documentation Project, or LDP, is a central repository of documentation, man pages, FAQs, How-Tos, and lots of other information about Linux. The site's search engine is topnotch and should be your first stop for information on any Linux problem you encounter.
Linux Programming Guide
Although it's rather dated at over a year old, the CTDP Linux Programmer's Guide provides a good high-level reference to several areas of Linux programming. It covers shell, C/C++, and X programming and has short sections covering the black arts of interprocess communication and signaling.
There are Web sites you check out when you need help solving a specific problem and never visit again. Then there are the sites you visit over and over again to keep up on the latest news and tools. You'll need a few of these in your bookmark list as well.
You can't talk about Linux for very long without mentioning SlashDot. The Slash has been serving news to Linux nerds for what seems like forever. SlashDot's developer section also hosts news, targeted to developers, in this case. But there's more than just news; it also links you to how-to articles from all over the Web that you're sure to find useful.
Technical book publisher O'Reilly sponsors the O'Reilly Network Linux DevCenter, where you can choose from a long list of links to Linux programming articles, both from the Linux DevCenter itself and its numerous partner sites. Along with C and C++, this site offers resources for PHP, Qt, OpenGL library development, and even the Extreme Programming methodology.
The Linux community is likely to be the most useful resource for questions about specific topics. Your best bet is to check out one of the many Linux discussion lists and news groups when you need specific help. There are, however, a few Web sites out there that focus on more specific, advanced topics. Here's a look.
As any grizzled veteran will tell you, the best path to really understanding Linux is to check out the kernel code. It is, after all, the heart of what makes Linux so Linux-like. On the LDP Web site, you'll find a very good reference to writing modules for the kernel (and by extension the kernel itself), the Linux Kernel Module Programming Guide. The guide hasn't been updated for version 2.4 of the kernel yet, but since 2.2 is still in widespread use, it's worth checking out.
Assembler on Linux?
So you want to do assembly programming on Linux? Whether you are adventurous or simply masochistic, LinuxAssembly.org is for you. You'll find sample code, a long list of tutorials, a mailing list, and quite a few hosted projects. Among these projects are a few gas and nasm utility libraries, debuggers, and disassemblers.
Linux can be a daunting development platform. Luckily, the resources of the Linux community are extensive and very open. It sometimes just takes some time and effort to find what you are looking for. This starter list of Web resources should help get you on your way.
Share your favorite Linux developer's resource
If you've got a favorite Linux programming resource, share it with us. Send the editors an e-mail or post it to the discussion.