Subscribe to Sergio Tapia - Lost in the GC.        RSS Feed
-----

The Language of Gods: C - Want to learn it?

Icon 18 Comments
The big question, should I learn C?

In The Pragmatic Programmer, the authors offer tons of tips that will help you become a better programmer. One of my favorite tip is of course:

Quote

"Invest Regularly in Your Knowledge Portfolio; Make learning a habit."


If you stop learning, you will most definitely stagnate and spend your twilight years working on some crappy application written in VB6 in someones basement. Eek!


C is simple, yet very different from what most enterprisey programmers are used to.

C will be a very different experience from C# or Java or Ruby. Prepare to have your mind blown because it's incredibly small and you will probably shoot yourself in the foot many times over.


Where can I learn it?

While everybody I know suggests the obvious book, The C Language; the point of this post is to highlight a website I found with very linear courses you can take take you from the very beginning to the end.

Beautiful!

http://www.highercom....com/index.html

I was there on Reddit when Carl first started making this series of courses and TONS of programmers have learned C using his guidance. Give it a shot, who know you might like it, and even if you don't you can brag that you know C. :)

18 Comments On This Entry

Page 1 of 1

Hiram Icon

28 July 2011 - 08:15 AM
C has that certain "I'm a real geek!" appeal to it. Embedded programming, working so closely with the hardware, (e.g. Arduino) has a certain wow factor amongst programmers and non-programmers alike. Seeing a program count to ten in a terminal pales in comparison to seeing an LED count to ten.
3

Sergio Tapia Icon

28 July 2011 - 08:17 AM
Yes, that's true. :) It's more palpable.
0

Brewer Icon

28 July 2011 - 08:29 AM
I want to learn C, but I think I need to get better at programming in Python first. Luckily, my library has a copy of K&R (2nd edition) that I can check out when I decide to learn C.
0

Curtis Rutland Icon

28 July 2011 - 10:35 AM
I have the K&R book at home, but I've never gone all the way through it. No real reason other than I have no practical use for C programming right now. I'm a C# programmer, and so is everyone else at work. We simply have no call for C programming, so while I wish I knew it better, I have no practical reason to learn it, therefore I really don't learn it. I need an actual reason to learn something other than for my own edification. I know that's not a good thing, but I can't help it.

I am trying to learn F# right now, and it's very cool in a lot of ways, but I'm worried that I'm going to quit that too, since there's no more call for F# at work than there is C#.
0

ishkabible Icon

28 July 2011 - 11:40 AM
i use C for fun. you should defiantly learn it, the more diverse your portfolio the better. im learning Haskell right now becuase i want to have wider knowledge of programing language.
0

erkant Icon

28 July 2011 - 11:45 AM
C is the boss!
0

jon.kiparsky Icon

28 July 2011 - 11:59 AM
C is a great language to learn, but for most people today, if you don't learn it early on you'll never get around to it. It's a shame, because it's at the center of a large family of languages - even Python has a lot of C in it, although there are some minor changes.
I'd say every beginning programmer should work through K&R, and possibly Sedgewick's Algorithms In C before they do anything else. It gives you a strong base to build on. If you're already programming, though, I don't know how much sense it makes to go back to it. Better, perhaps, to go ahead to some sort of functional programming, which will probably give you a lot more return on the time invested, even if you never use it in your work.
0

Curtis Rutland Icon

28 July 2011 - 02:24 PM
Speaking of Functional, I've been showing my coworkers what I've been doing with F#, and none of them are interested at all. One of them said "that's like the opposite of VB...VB was made so most anyone could read it, that (the F# code) looks like it was made so only a very few people could read it." I mean, you tell me:

Spoiler


I don't think it's that hard once you know what's going on, but I guess I can see the argument.
0

Sergio Tapia Icon

28 July 2011 - 03:09 PM
That's completely unreadable, I can understand your coworkers. Unless you start learning F#, this looks like spaghetti gibberish.
0

ishkabible Icon

28 July 2011 - 07:31 PM
you know F# looks a lot like Haskell. i don't don't understand it but i recognize the pattern matching from Haskell. if you can tell me what that dose ill woop up a Haskell example.
0

ishkabible Icon

28 July 2011 - 08:13 PM
i figured it out actually. it creates a new list that contains the like elements of the 2 lists passed right? i copied your algorithm over to Haskell.

Spoiler


i have to use intersect prime becuase Haskell already has an intersect function. any ways, once you start to understand functional languages it seems pretty easy to read. i was able to read yours enough to translate it to a new language :)
0

Curtis Rutland Icon

28 July 2011 - 11:36 PM
Funny enough, I originally translated it from a Haskell version:

http://www.dreaminco...ost__p__1399128

So it's gone from Python to Haskell to F# back to Haskell. Now we need someone to translate it back to python, then compare the original.
0

fromTheSprawl Icon

28 July 2011 - 11:41 PM
C is the first programming language taught to us in schools in my country. It is mostly used here for working closely with embedded circuits. C introduced me to the fun of programming, and is still widely used today. You should try and learn it. :)
0

Curtis Rutland Icon

28 July 2011 - 11:41 PM

Sergio Tapia, on 28 July 2011 - 05:09 PM, said:

That's completely unreadable, I can understand your coworkers. Unless you start learning F#, this looks like spaghetti gibberish.


You know, though, I'd argue the exact same thing if I'd never seen C, maybe if I was coming from Basic or the equivalent. It's not that the syntax is unreadable, it's that i'd be completely unfamiliar with it.

Like, you speak Spanish, so if someone handed you written Italian, you may not be able to read it all, but you could probably get the gist of it. But if they handed you Hindi, you'd have no idea where to start.

Still a valid argument for me not to use it at work, but I don't think it's needlessly obtuse, just very terse.
0

ishkabible Icon

29 July 2011 - 10:50 AM
ok so this is funny, after each translation of that algorithm it got shorter, if you compare the two versions in Haskell mine is half as short. typically when doing something like that the code tends to go up in size :)
0

ladyinblack Icon

01 August 2011 - 02:25 AM
I've only learnt C++ and Java, knowing any other language, requires time. Just going through the tutorial of highercomputingforeveryone, well, I'm not all for reading, and I have to wait till lesson 5 to see some code. Not so much my kind of tutorial to learn from. Cprogramming is more of my kind of learning aid. If you familiar with programming already and want to just get familiar with some differences from C++ to C, then this site has it, plus a whole lot more. Though C# is in great demand in the job market, it certainly doesn't hurt to learn a new language.
0

darek9576 Icon

01 August 2011 - 04:31 AM
As it has been said in the blog entry: when i hear someone can program in C (or even C++) i am impressed. I have only done intro course to C but want to move to C++ if i find time. I think knowing these languages does make you a better programmer: i.e. Java programmer, C# programmer etc.
0

wartech Icon

20 August 2011 - 04:25 PM

Brewer, on 28 July 2011 - 09:29 AM, said:

I want to learn C, but I think I need to get better at programming in Python first. Luckily, my library has a copy of K&R (2nd edition) that I can check out when I decide to learn C.



You can find the free e-book of K&R here The C Programming Language
1
Page 1 of 1

Trackbacks for this entry [ Trackback URL ]

There are no Trackbacks for this entry

0 user(s) viewing

0 Guests
0 member(s)
0 anonymous member(s)

About Me

Posted Image


Bienvenidos! I'm a USA ex-pat living in Bolivia for the past 10 years. Web development is my forte with a heavy lean for usability and optimization. I'm fluent in both English and Spanish. I guest write for the popular Python website Python Central. Visit my website.

Categories