XEmacs (http://www.xemacs.org) is a highly configurable editor that does everything (and more) that you ever wanted from a programming editor. Actually, I posted this newsarticle from the built-in newsreader. It does require a little learning, though. There is also FSF Emacs, but it does not come with such a fancy user interface and I personally believe that XEmacs is easier for beginners (don't flame me, if you think differently). For debugging, there is probably no alternative to the GNU debugger "gdb". But you should consider this program as a back-end, because directly accessing its text-based interface can be quite awkward. There are a couple of excellent front-ends. One of them is built into (X)Emacs, but the best one is IMHO an external program called DDD http://www.cs.tu-bs.de/softech/ddd/ > 1. How can I use Assembler under Linux ? It is possible to use assembly language in Linux, but you usually do not have to do so. The operating system provides very good abstraction from the hardware and programming its high-level interface often results in code that beats hand-coded assembly under DOS. Besides, Linux programmers usually try to program in a platform-independent way, so that their code can easily be ported to other environments; excessive use of assembly language would make this very difficult. Even the kernel uses comperatively little assembly code and most of it is portable C code. If you want to know about how to program in assembly language, then take a look at the "info" pages for "GCC", "ld", "binutils", ... > 2. I'm looking for some good books on the Unix/Linux programming. There are lots of different books depending on what topic you are most interested in. If you have never programmed in an POSIX like environment, then I would strongly suggest that you get hold of Stevens' "Advanced Programming in the UNIX Environment". This book is invaluable and it will tell you a lot about the design principles that guided the development of most UNIX programs! Also, as a general rule, all books that have been published by O'Reilly http://www.ora.com are extremely useful. Get hold of a recent catalog and browse the titles. If you intend to program under X (the GUI environment), then you will first have to decide which toolkit you want to use. This is a hotly debated topic that I cannot give a definitive answer for. Most people seem to aggree, that Qt http://www.troll.no is the most powerful free toolkit and it is suppossedly very easy to learn; it does require that you use C++, though. Another nice little toolkit is XForms http://bragg.phys.uwm.edu/xforms, which is also quite easy to learn, but not as featureful as Qt. Both of these libraries come with extensive on-line documentation. They are licensed under different conditions and this is the main problem, because depending on your target-group, these licenses might get into the way. A commercial alternative is Motif, which is more wide-spread on other UNIX platforms, but which suffers from a cumbersome API; there are libraries on-top of Motif which improve on this. A particularly noteworthy example is the Xmt library that comes with O'Reilly's Volume 6C of the X Windows series. BTW, this series gives a very good description of X programming and you might want to get some of the volumes if you are seriously interested in how X works. There are many other toolkits, but I think these three are the ones that will most appeal to your needs. Apart from these resources, you will find that there are tons of very useful online documents. If you installed Linux from a CD-ROM, then you probably already have quite a lot of these files in some "docs" directory (usually on the first CD-ROM of a multi-CD set). You should also investigate the "man" (or "xman") and the "info" command; you will need those a lot :-) Good luck,