10 must know tools to become pro in C/C++ on UNIX/Linux platform. Good internet resources are also mentioned.
1. Basic commands
http://mally.stanford.edu/~sr/computing/basic-unix.html
http://pangea.stanford.edu/computing/unix/shell/commands.php
http://infohost.nmt.edu/tcc/help/unix/unix_cmd.html
2. Editor – vi, Emacs
http://www.atmos.albany.edu/deas/atmclasses/atm350/vi_cheat_sheet.pdf
http://cmgm.stanford.edu/classes/unix/emacs.html
3. Build utilities – make/Cmake
http://frank.mtsu.edu/~csdept/FacilitiesAndResources/make.htm
http://www.cmake.org/cmake/help/cmake_tutorial.html
4. Debugger – gdb
http://www.cs.cmu.edu/~gilpin/tutorial/
5. Version control – cvs, svn, git
http://mrsrl.stanford.edu/~brian/cvstutorial/
http://www.cs.ubc.ca/~vailen/svn_howto.htm
http://maverick.inria.fr/~Xavier.Decoret/resources/svn/index.html
http://www.vogella.com/articles/Git/article.html
6. Code viewing tools – ctags, cscope
http://www.linux-tutorial.info/modules.php?name=Howto&pagename=C-editing-with-VIM-HOWTO/random.html
http://www.cs.washington.edu/education/courses/cse451/12sp/tutorials/tutorial_cscope.html
http://cscope.sourceforge.net/cscope_vim_tutorial.html
7. IPC mechanisms
http://tldp.org/LDP/tlk/ipc/ipc.html
8. Multi-threading – Pthreads, BOOST library
https://computing.llnl.gov/tutorials/pthreads/
http://ashishgrover.com/boost-multi-threadingfor-c/
9. Tools for memory issues – Purify, Valgrind
http://www.cprogramming.com/debugging/valgrind.html
http://pages.cs.wisc.edu/~hasti/cs368/resources/purify.html
10. GUI – Qt
http://zetcode.com/gui/qt4/introduction/
http://www.digitalfanatics.org/projects/qt_tutorial/
http://doc.trolltech.com/4.3/tutorial.html
I have ensured that above links are working at the time of publishing this post.
You should really reconsider the CVS resources in your list
New things have emerged sinced the end of XXth century (subversion, git, mercurial,…)
http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
Well, having said that, I confess I still use vi 😀
Hi jcfds,
Agreed on version control. Added SVN, git
vi is a beneficial addiction 🙂
You forgot to list emacs.
Updated link to Emacs. Thanks for pointing out.
I absolutely love your blog and find a lot of your post’s to be precisely what I’m looking for. Would you offer guest writers to write content for yourself? I wouldn’t mind composing a post or elaborating on a lot of the subjects you write regarding here. Again, awesome blog!
I have not got too many requests for guest-post so I do not have this feature yet. But I am open to try. For your first one, we can agree on the content through e-mail first.
Thanks for writing this up. Most of your list is highly beneficial…a question about editors though?
Why limit the list of editors to vi and emacs? I’m a kernel developer, who happens to enjoy GUI editors and I’ve had no problems whatsoever. Did you mention those two for distros with no GUI? In fact the editors I use are fantastic and provide many features like indexing of code to easily jump to a referenced function definition. Just a curiosity
Based on what I have seen, there are more vi and emacs lovers than any other editor. Also, these non-GUI editors vi and emacs work on any distro, the one you use might need specific package. So, it is handy to have a mastery of these.
[…] 10 things C C++ Linux Programmer must know […]
[…] going to learn vim as ‘serious coders’ use it and it isn’t emacs … read this and this for tips about coding […]
[…] thanks to Ashish Grover for his 2012-07-18 post “10 tools C C++ Linux Programmer must know“. I was not aware of the ctags or cscope tools before reading his post, but I’m very […]