9.16.2012

Learn C the Hard Way :: Excercise 1

Learn C The Hard Way : Excercise 0



The idea behind exercise one is to get your C development environment set up. Since I use Archlinux, my notes here will mainly focus on a Linux setup for C programming. An OSx setup could be fairly similar, but a windows one would probably differ a significant amount.

Zed Shaw, the author of the book talks about how using an Integrated Development Environment makes you a lazy programmer. Is exact quote is that "An IDE, or "Integrated Development Environment" will turn you stupid." I couldn't agree more.  While it is difficult to begin learning a new language, let alone learning to program from scratch, using an IDE will give you lazy habits. To me, the difference between using an IDE against using command line tools manually is like installing Linux via the Ubuntu installer or installing an Archlinux system from the command line. It is daunting and much more difficult to do it the manual way, but you will have a greater understanding and appreciation for what goes on beneath the surface in the future.

If you're just starting out programming on Linux, it might be a good idea to use a text editor like Gedit instead of a more difficult Vim or Emacs. Personally I love Vim. Mostly it's because I'm lazy and don't want to move my hands away from the keyboard.

As for your development tools, generally any text editor should work. The great thing about Linux is it basically IS your development environment. Since Linux uses C heavily (the  kernel is written almost entirely in C) it contains all the tools your really need to start hacking some  C code.


Useful links::
vim wiki on changing vim color schemes
http://vim.wikia.com/wiki/Switch_color_schemes

some vim plugins
http://spf13.com/post/the-15-best-vim-plugins/

download some vim plugins
http://vim.sourceforge.net/index.php

9.12.2012

55 Lessons of C

Fellow hackers, I am embarking on a read through of Zed Shaw's Learn C the Hard Way. While I'm working through the book (and it's 55 exercises) I will be tracking my progress through the book. Starting with the first exercise.

A little background on my programming experience and why I want to learn C. I was a computer science major in college and learned C++ in school. I've dabbled with different languages from time to time and mainly use Java now due to my job as a Software Engineer. Java is a powerful language, but I find myself not really knowing what is going on behind the scenes. That coupled with a desire to get into Linux Kernel programming has lead me to a decision of learning C the hard way - by getting my hands dirty with Vim and the command line.