I’m (re)Learning The C Programming Language
For the last few days it’s been like 110 degrees outside here in Chicago. Since it’s entirely too hot to do anything outside, I thought I’d learn something new.
After several very intense minutes of soul searching 😛 I decided to (re)learn the C programming language. I studied it for about a month nearly 15 years ago. Back then I learned just enough to do basic things but never really became proficient with it. I’ve long since completely forgotten it all.
Why did I stop back then? I started focusing on the Internet (building Flatplanet Media) and C isn’t really all that helpful for web development (you’re much better off learning HTML/CSS, perl, php, mysql, javascript, etc for that sort of thing).
Ok, I’ve decided to learn C, but where to start?
Step One: Find a Compiler
You can’t do much of anything without a C compiler so that’s where I started. I mostly use a Windows laptop, so I need a compiler that I can use on Windows.
Sure linux comes with all kinds of compilers, and I run several flavors of linux via VirtualBox, but I decided that I want to primarily work on Windows for this little project. Why? I dunno, stop bugging me!
I looked around for a little bit but eventually settled on Pelles C for Windows. You can download it for free right here.
It’s pretty straight forward to install it, just download the latest version and the latest SDK and double click them and the install wizard does everything for you.
I’ve played around with Pelles C for a while now and generally find it to be good enough for what I want to do; namely write simple C programs to teach myself the language.
It probably has other more advanced features for more advanced developers, but I’m not there yet.
Step Two: Find A Book
Next I needed some sort of book or online tutorial to actually teach myself C.
I settled on “The C Programming Language” second edition (ANSI C) by Brian W. Kernighan and Dennis Ritchie.
I decided to use this book for two reasons:
- It’s the industry standard book on C.
- I already had a copy sitting on my shelf.
- It’s pretty short.
Hm, guess that’s three reasons…whatever.
So I’ve only just started reading the book but it’s really easy to follow and understand.
Right now I’ve only written a simple hello world program and a Fahrenheit to Celsius conversion program in C. Then I stopped to write this blog post. It’s Saturday, I can only be expected to focus on something for so long!
So…Why C?
This all raises the question: why C?
Why not? I don’t imagine that I’ll ever actually use it for anything. I use php and mysql for most of my web development, and Visual Basic whenever I build desktop software.
Whatever.
It’s fun to learn something new and I’m sure that becoming a proficient C programmer will only make me a better all around coder.
And besides…it’s too damn hot outside to go do anything else.
Guess that that’s why linux was born from north Europe as well, it’s too cold. LoL.
http://c.learncodethehardway.org/book/
You can install gcc on Cygwin: http://www.cygwin.com/
And if you give gcc the “-mno-cygwin” flag then the compiled program will run without Cygwin libraries.
Yeah I considered doing that, and might in the future. But I was in a hurry and Pelles C was quick to get started with, literally just download and double click and I was up and running. Granted if I end up spending more time with C I’ll probably look into other compiler options.