One, the use of tools
1, learn to use Vim/emacs,vim/emacs Linux is the most commonly used source editor, not only to learn to use them to edit the source code, but also learn to use them to find, locate, replace and so on. Vim is recommended for beginners, and this is the text editor I currently use.
2, learn to write the rules of makefile files, and in conjunction with the use of tools aclocal, autoconf and automake to generate makefile files.
3, Master gcc and gdb basic usage. Mastering the usage of GCC is good for building a package, and when the package contains more files, you can manually compile it with GCC, and you will have a clear understanding of the dependencies between the files in the package.
4, master the basic usage of SVN/CVS. This is Linux and is the most common version management system in the open source community. You can go and try some open source projects on the SourceForge.
Second, Linux/unix system call and Standard C library
The system calls the application software and the operating system interface, its importance naturally needless to say, must grasp. The recommended learning material is Mr. Steven's advanced Programming for UNIX environments (APUE).
Third, the Library of learning
No matter on which platform to do the software development, for the library learning is very important, Linux under the development of a lot of, I mainly introduce some of the library I often use.
1, GLib Library
The glib library is the base library for GTK + and GNOME and is Cross-platform and available for Linux, UNIX, and Windows. The impact of the glib library on Linux platform development is like the impact of MFC on Windows platform development, with many open-source projects using a large number of glib libraries, including GIMP, GNOME, Gaim, Evolution, and Linux cluster software heartbeat. Because the glib library is implemented with a basic data structure, you can learn the basics of data structures (including linked lists, trees, queues, and hash tables) while you are learning the glib library.
2, Libxml Library
Libxml is a Linux platform for parsing XML files of a basic library, now a lot of practical software in XML format configuration files, so it is necessary to learn.
3, ReadLine Library
The ReadLine library is a library for bash shells, and if you are developing a command-line program, using the ReadLine library can reduce a lot of work, such as the automatic completion of a command line in bash, which is already implemented in ReadLine, and you can use your own implementation to replace the behavior of the library. ReadLine Library has a lot of Web site introduction, as long as Google ReadLine can find a bunch of.
4, Curses Library
Curses library was previously part of the VI program, and then extracted from VI into a separate library. The curses library is especially useful for writing terminal-related programs, such as locating output in a row in a terminal, changing the color and terminal mode of the terminal font. The curses library under Linux uses the GNU-implemented ncurses (new curses meaning).
5, GTK + and KDE library
These two libraries are the basic libraries for developing GUI applications, and most GUI programs under Linux are now developed based on these two libraries and are necessary for their learning.
Four, the network study
Network this thing is too wide, recommend learning materials Mr. Steven's UNIX Network programming (for short UNP) and TCP/IP protocol detailed, further words can learn to use Libnet to write network programs.
The above mentioned is the entire content of this article, I hope you can enjoy.