I. Use of tools
1. Learn to use vim/emacs. vim/emacs is the most commonly used source code editor in linux. You must not only use them to edit the source code, but also use them for searching, locating, and replacing. Vim is recommended for beginners, which is also the text editor I currently use.
2. Learn how to compile makefile files and use aclocal, autoconf, and automake tools to generate makefile files.
3. master the basic usage of gcc and gdb. Understanding the usage of gcc is very helpful for building a software package. When the software package contains many files, you can also use gcc to manually compile it, you will have a clear understanding of the dependencies between various files in the software package.
4. master the basic usage of svn/cvs. This is linux and the most common version management system in the open-source community. You can try to participate in some open source projects on sourceforge.
Ii. linux/unix system calls and Standard C library
The importance of a System calling an interface between an application software and an operating system must be mastered. We recommend that you use APUE for advanced programming in the UNIX environment of Mr. steven ).
Iii. Database Learning
No matter which platform is used for software development, it is very important to learn the database. There are many development libraries in linux. I will mainly introduce some of the libraries I often use.
1. glib Library
The glib library is the basic library of gtk + and gnome and is cross-platform. It can be used in linux, unix, and windows. The impact of glib library on linux platform development is just like the impact of MFC on windows platform development. Many open-source projects use the glib library in large quantities, including gimp, gnome, gaim, evolution, and heartbeat, a cluster software in linux. Because the glib library has a basic data structure implementation, you can learn the basic data structures including linked lists, trees, queues, and hash tables when learning the glib library ).
2. libxml Library
Libxml is a basic library for parsing XML files on the linux platform. Currently, many practical software programs use XML configuration files, so it is necessary to learn.
3. readline Library
The readline library is the library used by bash shell. To develop a command line program, you can use the readline library to reduce a lot of work, such as automatic completion of command lines in bash, the implementation has already been implemented in readline. Of course, you can also replace the library behavior with your own implementation. The readline library has many website introductions. You only need to google the readline library to find a bunch.
4. curses Library
The curses library was previously part of the vi Program, and was then extracted from vi to become an independent library. The curses library is particularly useful for writing terminal-related programs. For example, you need to locate the output in a certain column of a terminal line and change the terminal font color and terminal mode. The curses library in linux uses GNU-implemented ncurses (meaning new curses ).
5. gtk + and KDE Libraries
These two libraries are the basic libraries for developing GUI applications. Currently, most GUI programs in linux are developed based on these two libraries, and their learning is also necessary.
4. Network Learning
The network is too wide. We recommend that you learn more about Mr steven's UNIX Network Programming (UNP) and the TCP/IP protocol. For more information, you can use libnet to write network programs.