11 ms·
Poll: Do you know C?
C comes up regularly, and usually the general consensus is that all programmers should know C. I think it would be interesting to see if programmers take this to heart and learn C.
- alexk7 16y agoI'm from the "Modern C++" school. I learned C++ without first learning C. I don't consider myself a C programmer. Of course, I can read and write C code, but I would consider it a burden to code without smart pointers, templates and exceptions. How should I answer this poll?
- sonnekki 16y agoI come from a similar background and chose the third from the top. I can read it, but writing would require more education, also known as, documentation.
- hvs 16y agoYou don't know C. Coding in C and C++ has diverged significantly enough that they are two completely different languages. That said, answer #3 or #4 makes sense.
- alexk7 16y agoI said I would consider it a burden to write in pure C, not that I would not be able to do it. I would not need any documentation, but I would scratch my head figuring out how to organize a large program. I would need to write a lot of comments to replace things that do not exist in the language: const-correctness, memory management conventions, type-safe containers, etc.
- msbarnett 16y agoConst correctness has existed in C since 1999. Again, knowing C++, and even being able to constrain yourself to some C-like subset of it, is not the same as knowing C.
- nostrademons 16y ago"How to organize a large program" is a large part of what learning to program in a language means. BTW, const correctness is in C99, and memory management is usually done by writing constructors and destructors like C++ (except that they're real functions, often named stuff like <prefix>_init and _destroy or <prefix>_new and _free) and calling them manually. It's not as elegant as RAII, but if you write short functions with clear logic, you can usually ensure you cover all code paths. Remember that you don't have exceptions to screw up control flow in C. For type-safe containers, I just use void* containers with a comment indicating the intended type, but perhaps more experienced C programmers have a better system. Remember that Java didn't have type-safe containers until Java5, and honestly ClassCastException was a fairly rare error.
- Jun8 16y agoPrecisely! It always is a red flag when new graduates have "proficient in C/C++ " in their resumes. I've found that these people tend to write code in a combination dialect of C and C++ that I call C+.
- ern 16y agoThere was old adage that people who say they code in "C/C++" don't really know either one. This was about a decade ago, I can't recall where I saw it, and don't know if it still a widely held view.
- jrockway 16y agoThe fewer C++ features you use, the more likely it is that you will eventually write a computer program that actually runs.
- albertzeyer 16y agoWhat knowledge about C do you think does someone miss when he is using C++? I have made the experience that a good C++ developer also automatically knows everything about C.
- BrandonM 16y ago> I have made the experience that a good C++ developer also automatically knows everything about C. Not even close in my experience. In college, we used C++ in our intro course. The addition of pass by reference, classes (with constructors and destructors), and the standard library (e.g. std:string) hides a lot of the common paradigms of C, and that's not even mentioning boost. In my experience, people coming from C++ tend to write really bad C. Many of them have a poor understanding of the concept of pointers. Once you get familiar with some good C design patterns, it's pretty easy to write clear, modular C. Knowing C++ is not a very effective measure of ability to use C.
- warmfuzzykitten 16y agoAu contraire, a modern C++ developer probably knows nothing about C. Good C is like good assembly language: dense and performance-obsessed. No objects, no exceptions, no STL, bare bones and riddled with pointer manipulation and macros.
- util 16y agoNo objects = no structs?
- fossuser 16y agoI'm in a similar place, probably the second or third option is the best answer.
- stray 16y agoThere should be an option for "C was my first programming language and I used it exclusively for years - many years ago".
- DanielStraight 16y agoIt seems like this could be either the second or third option, depending on how well you still know it. Perhaps the second if you still know it well and the third if you've gotten really rusty in it. I can add the option if this doesn't make sense in your case.
- qjz 16y agoThe problem is that it you are attempting to measure two different things with the same question: depth of knowledge and frequency of usage. It's possible that someone knows C quite well, but no longer (or never) uses it. It's similar to offering 3 options for Marital Status: Single, Married or Divorced. It's impossible to interpret the results in any meaningful way (Divorced and single? Divorced and remarried? Is it important that I've ever been divorced? Or do you just want to know if I'm currently married or not?). It's better to separate these questions.
- DanielStraight 16y agoI was more trying to provide a 1-5 type scale with some guidelines on how to vote. The sentences in the options should be ORed together more so than ANDed. What if I added a phrase to option two: "Or I learned C extensively at one point, remember most of it, but don't use it regularly anymore" and to option three: "Or I learned C extensively at one point, but have forgotten most of it and don't use it anymore?"
- qjz 16y agoSorry, I should have added that it seems obvious the emphasis is on depth of knowledge and the frequency of usage parts are merely there as helpful tips. I personally hate modifying a survey once it's been deployed and suggest you leave it as is.
- karolist 16y agoI've known some C for long enough, but only recently dived really deep into it, it was Apple and Objective-C that brought back my interest in the language. Writing some forensics and data restore tools as a project to learn the language, progress is slow, but I'm loving it. One thing I've noticed is how focused you have to be when working with C vs for example python/php - everything is very error prone mostly due to manual memory management. You also need good visualization and some basic math skills.
- deleted 16y ago[deleted]
- larrik 16y agoI used to know it very well. Now, not as much. Even when I wrote C++, I basically wrote "C, with classes."
- ch0wn 16y agoThat is my favorite C++ style as well.
- cperciva 16y agoWhy write C-with-classes if you can just write C-with-structures-and-function-pointers instead?
- delinka 16y agoC-with-structures-and-function-pointers doesn't give you easy inheritance, polymorphism, etc. Now anthropomorphism ... that would be fun.
- swift 16y agoIt seems to me that it DOES pretty trivially give you polymorphism; just change the function pointers in a struct and it behaves differently, while retaining the same type! Inheritance can be implemented, too, by copying function pointers and other struct contents around. If you play with languages that use prototype-based OO like Lua and JavaScript, you can see pretty clearly how to implement such things. Implementing your own OO system in Lua is an experience I'd recommend for anyone who uses OO; it's easy, and you'll almost certainly learn something you can apply elsewhere.
- greyman 16y agoWhat would be the advantage of doing that?
- bediger 16y agoNo exceptions to deal with: http://ptgmedia.pearsoncmg.com/images/020163371x/supplements/Exception_Handling_Article.html http://ptgmedia.pearsoncmg.com/images/020163371x/supplements... That's probably a really big one in terms of reliability. Also, the weird C++ behavior of calling copy constructors in the most unexpected places can have a very detrimental effect on performance. Personally, I think the nature of C++ class definition leads people down the primrose path of trying to provide all potentially useful methods, of which only a tiny fraction get used. Tons of dead code appears in most C++ projects.
- Vivtek 16y agoI used C exclusively for ten years - then I fell in love with Perl and never really looked back. Garbage collection was my downfall.
- derrida 16y agoThat is interesting, whyy do you say that garbage collection was your downfall?
- wickedchicken 16y agoELIZA was written in SLIP, not C
- jdale27 16y agoSLIP Rogerian LISP?
- Vivtek 16y agoA lot of my time in C was spent on memory management - when I switched to Perl it all went away. (I had some libraries I'd written to take care of it by then, of course, but in Perl I just didn't have to worry about cleaning up at all!) Oh - and strings! (But that's also a memory management question.) And regexp. CPAN grew on me later - roughly as CPAN was growing. It was garbage collection that was my deciding factor.
- logic 16y agoIf that's the case, you might find yourself enjoying working in Go: http://golang.org/ http://golang.org/
- antirez 16y agoAs a first reaction I thought, well, more than 50% of HNers fluent with C, the average age should be pretty high probably. But then I realized that actually the average HN age is probably around 25 (from other pools I saw here), so I guess, there are still a lot of fresh programmers learning C. I really hope so. I love higher level programming languages and spent a lot of time with Tcl, Scheme, FORTH, Joy, Ruby, and other languages, but I really hope that the next generations of programmers will still be able to stay near the metal when needed.
- akheron 16y agoI'm 26 and know C very well. I use it at work and for hobby projects. Still, Python is my main language.
- bartonfink 16y agoWell, it seems the old stigma against multi-language systems is fading. Even 5 years ago, it was more or less "the rule" that you chose one language for a project and you had to live with whatever trade-offs that choice left you with. Now, people are more willing to accept that you can write much of your system in a language designed for programmer convenience and only write the bottlenecks in a more performance-oriented language.
- antirez 16y agoThis is true, but if you use C for the right use cases it is possible that actually higher level programming languages will not be a less time expensive pick, as if the use case is right you'll end spending a lot of time into optimizing performances, OS low level access, memory usage, ...
- mavelikara 16y agoWeb applications which rich client-side interfaces might be the reason for the change in thinking. In a web application, you anyway have JavaScript to deal with; and until a few years ago, the server-side code was written in some other language.
- wheels 16y ago
- Symbol 16y agoI use C/C++ and assembly everyday as a game programmer. It is the incumbent development language for consoles (at least xbox and ps3 - I'm never done any dev on the Wii). I suppose its stay is due to the ease of access to the metal. It's propably worth noting that lots of games use higher level scripting languages to do speed-insensetive tasks.
- deleted 16y ago[deleted]
- CedriK 16y agoI know C(#), it counts right? ;)
- derrida 16y agoC is the language I use when I just want to sit down and enjoy "resonating with the computer". Python, Java etc feel like I am "working", or "cheating" as the case may be in Python. With C you are conscious of the memory of the computer and the lovely datastructures you are forming on top of it and the whole elaborate dance. I hear that Lisp programmers get a similar feeling but I am not close to seeing that yet.
- wtandy 16y agoYeah, writing Lisp is the most detached I ever feel when I'm coding. I have never been able to get into the Zen of it like so many others do.
- blacksmythe 16y agoMy experience is the exact opposite. When writing C, I have to spend time thinking about the syntax and memory management. Although I have spent much less time using Python, when writing Python I am only thinking about the problem domain and algorithms.
- phpnode 16y agoC is the third most widely known language on HN behind javascript and python. Source: http://hackernewsers.com/skills/index.html http://hackernewsers.com/skills/index.html
- simk318 16y agoDuring college days i have used lots of C for different projects but its been few years i haven't touched C, I think i have forgotten pointer and stuffs need to review
- timclark 16y agoI know C but none of those categories apply to me. Poll design is useful skill to learn! I am not a pollster but by combining different facts into single options you are restricting the information you can gain from your poll or polls. I taught C to engineering students at a university, I know it thoroughly, I haven't written a line of it in 12 years - the only option I can logically choose is the final option.
- DanielStraight 16y agoAs per other comment thread, my intention wasn't to combine facts, more so to provide guidelines. If one of the statements doesn't apply but the overall "feel" of the option is right, I think you can go with that, since after all, the stated purpose of the poll is to see how well HN users know C. For your purposes, I might pick the first option, as it says C is either your main or best-known language. Best-known could be a reasonable statement in your case.
- kylemaxwell 16y agoBasically the same here. I used to live and breathe C... now I don't code nearly as much (and when I do, it's generally shell or Perl scripts).
- maw 16y agoAgreed. Polls like this one don't work well for orthogonal ranges, and here there are at least two: how well you know C (from knowing nothing to being a master) and how often you use it (never [anymore, if you happen to know it well] to it being your primary language. A third range might be how much you like C, regardless of how good you are at it or how often you use it.
- kgutteridge 16y agoUnfortunately not that much since academia and a few other bits and pieces, 30 here, still do a lot with C++ and ObjC though rather than higher level languages
- wickedchicken 16y agoC, if you want, can run completely without a runtime. Few modern languages can claim that. It's what gives C both its notoriety and power.
- CyberFonic 16y agoThat's why C is used in embedded systems. A trick that I like is to write some critical code in C, compile with the -s switch, then optimize the assembler code and in-line it.
- mziulu 16y agoI began working 2 years ago, landed a job where I almost only write C code (a huge codebase for scientific/high performance computing).
- telson 16y agoYes, I do.
- duiker101 16y agoI've learned some C, but I wouldn't be able to write a program in it without a lot of documentation. I can read it, but I don't use it or use it once or twice a year. but i know objective-c pretty well.
- kabdib 16y agoI've been programming in C for longer than my current manager has been alive. :-)
- karolist 16y agoNot sure if that's a good thing. I wouldn't say the same for a comment on another site (different things drive different people), but I assume you have some aspirations to make it and be your own boss.
- SandB0x 16y agoJesus, you're reading a lot into this one comment! For all you know kabdib could be Ken Thompson and his manager could be Larry Page.
- karolist 16y agoYes, that's why I said "Not sure".
- edw 16y agoYes, logically, "Not sure it's a good thing," means "It is either a good thing or it is not a good thing." You know, X or not X, and so your ass-covering comment is logically defensible, but come on, you wrote it for a reason. Just say, "Good point," and move on.
- karolist 16y ago"Not sure" in this context was meant demonstrate I'm open to both variants of the situation, good and bad. Since OP had upvotes already indicating that people find it good/funny/whatever, the point was to bring other side of this to light. There's a saying that fits your comment so well - don't tell me what to do and I won't tell you where to go.
- 16y ago
- muon 16y agoC is the only language that I use at work (along some basic scripting). Due to work that is mainly firmware, device drivers etc. Honestly at times, I do feel that embedded engineers are odd persons out here at HN.
- Newky 16y agoMy lecturer in my basic introduction to C class once said to me that he had been a professional C programmer for the past 10 years, and still considered himself a C novice. I think how "knowing C" is defined is key in this question, yes I can write my fair share of C, but I still don't think I could class myself as a C programmer.
- vkris 16y agoI used to code heavily in C when I was in school. My job ruined me.
- jharris 16y agoHell yes! I write C-based server code nearly every day!
- abstractwater 16y agoWhere do you work?
- sid0 16y agoI can write C when necessary, but I'd much rather not.
- jdefr89 16y agoC was my first language, and I love it...
- MatthewPhillips 16y agoI know C although it's been several years since I've used it. Currently Go is my low-level language of choice (although maybe it's not low-level). It gives you the simplicity of C, but with a few of the higher level features like garbage collection, without the baggage of high level languages.
- brianmario 16y agoI'd like to think I can consider it one of my "known" languages, but people like @ice799 (timetobleed.com) know C. There's a HUGE difference.
- bobbywilson0 16y agoI have a lot of respect for C and every once in a while I open up the K & R and go through a few chapters. While I find this to be really well written and holds up even for today's standard of programming book, I feel like the resources for beginner C online are pretty slim. I think my primary use for knowing some C would be writing C extensions for Ruby or looking at some source code of classic C libraries.
- dionidium 16y agoI don't use C for any personal projects and only occasionally at work, but I read K&R once a year. It's a fantastic book.
- Cyranix 16y agoI'm hoping that I never have to write C/C++ or use vim/emacs extensively during my programming career. I'm perfectly content to leave that work to someone else.
- HardyLeung 16y agoI learned C, then C++, then C#. I'd say I love them all.
- mrcharles 16y agoI answered with the first option, even though I haven't had to use base C in a long long time. But I do know it inside and out. It's a pretty easy language. Some days I miss it.
- mnwcsult 16y agoI have extensive knowledge of C. I have been using it since 1987. Our companies youngsters have to get up to speed quickly as our simulations are C/C++ and the datasets are massive and the code must be very fast. Of course they were taught Java in college and find pointers difficult. They quickly come to appreicate the speed difference.
- suprafly 16y agoLanguage #1 for me.
- PeterWhittaker 16y agoPolls != me, ever. I chose the second answer because it is the closest, but.... I haven't really used C in years, but I can start programming in C anytime and get operative, robust (I'm a freak about error handling and knowing where lie the exceptions) code quickly and cleanly. These days I dabble in Javascript, higher order perl, and am trying to grok Haskell, but I think in C. To my simultaneous benefit and detriment. The vast bulk of code I was paid to write was /bin/sh - thousands of lines of clean, robust, cross-platform installation and configuration routines, with pipes to awk and sed as required. But I thought in C. Other than deliberately obfuscated code and kernel programming, I've never met a C program I couldn't grok. But I don't use C, haven't in years, and don't know it thoroughly. I am not a C guru, nor even close to being a wizard. But I would call C the lingua franca of the computer world, the cleanest, most elegant tool out there. C wasn't the first language I learned, but it was the first that blew my mind. After years of hacking on various BASICs, then FORTRAN, and Pascal, I encountered C (I have a BSc in Physics; I didn't hit C until after I decided to experiment with CS for a while). After years of forcing my thinking into the little boxes these other languages insisted on living within, BAM, here was a language that allowed me to escape any box, build better boxes, nest boxes, hide boxes, thermonuclearly destroy anything within 6 gigs of my box, etc., etc., etc. The sad side note: Scoping was never really an issue with the other languages, they had pretty hard and fast rules. Scoping wasn't all that much different with C, but all of a sudden it became really, really important to understand it, to be able to unwind pointers mentally and really appreciate what was going on. So for me, C scope was computer scope, all scope was C scope. One of the biggest mental hurdles for me in learning higher order perl was abandoning C scope and automatic dereferencing without global variables. It took me a while to get my head around how the difference in scope management made class and object variables and memoization so much easier in perl - and in many other languages - than in C. So I think in C. And sometimes that's good, but other times it is a handicap.
- russell 16y agoI agree with you Peter. I came to C after a decade using Pascal (assembly, "systems" languages before that). It was like going from programming in a straitjacket to running shorts and a T shirt. The freedom was wonderful. And programming in C is like learning to ride a bicycle. You never forget. My first love.
- theatrus2 16y agoI do embedded programming. There is only C.
- Enlightenment 16y agoAgree. Though I have C++ available to me, I always use C for embedded and low-level I/O programming. When it comes to real-time and low-level code, you sure don't want the language doing crap behind your back or during critical parts of the code.
- jk-in 16y agoI know quite a few high level languages, but C is the main one. It is probably because I work on system software. One good thing that I figured out is to learn concepts from high level languages and use them in C. I guess lot of people are doing the same.
- imp 16y agoI'm still learning it. If anyone else is interested, I'm taking a class for it on my learning website, Curious Reef: http://curiousreef.com/class/programming-in-c/ http://curiousreef.com/class/programming-in-c/
- fmaker 16y agoC is great. Yeah it isn't perfect, but it's always there, the rules don't change and you always know where you stand.
- varjag 16y agoAm using C a lot, from writing device drivers and hacking network protocols to userspace stuff. Yet I can't say I know it thoroughly: there are enough little quirks in the specs. It is a great little language for sure, still destined to outlive some of the languages that are hip today.
- mellery451 16y agoI learned C as my second language after FORTRAN. As it turns out, some of the strangest C code I've ever had to maintain was a system that had been converted from FORTRAN to C using an automated tool.
- epynonymous 16y agoc syntax lives on in many languages like java and javascript. it was the second language that i learned behind java, this was back in 1998. i still think it's a great language because you have so much control over the important things like memory management and pointers, how priceless (albeit dangerous) is that? string manipulation was a real detail that i could live without and exception handling was non-existent (don't go there with goto labels), but overall it was a clean language, you could optimize the hell out of things like byte boundaries for structures, you just felt like you had full control, it's the closest thing i had to assembly without the syntax being too cryptic. that was the good old days and i think it was an important foundation for me in terms of learning how to be anal as hell with source code.
- epynonymous 16y agoc syntax lives on in many languages like java and javascript. it was the second language that i learned behind java, this was back in 1998. i still think it's a great language because you have so much control over the important things like memory management and pointers, how priceless (albeit dangerous) is that? string manipulation was a real detail that i could live without and exception handling was non-existent (don't go there with goto labels), but overall it was a clean language, you could optimize the hell out of things like byte boundaries for structures, you just felt like you had full control, it's the closest thing i had to assembly without the syntax being too cryptic. that was the good old days and i think it was an important foundation for me in terms of learning how to be anal as hell with source code.
- sedachv 16y agoMy second ever experience in programming (the first was typing in BASIC on a Soviet trash-80 clone) was typing in example programs from a C book. I did quite a bit of C programming in university. I've contributed C code patches to several Free Software projects. I am currently writing a C compiler. You would think this would qualify me as someone who, if not enjoys, is at least is competent at C. You would be wrong. I absolutely despise C, and never would have become a computer programmer if I had to do most of my programming in C. The horrible syntax, retarded pre-processor, and absolutely brain-damaged memory model (addressing modes? segments? virtual memory? reified stack? fuck that, let's just pretend everything is a pdp-11!) make it into this zombie that can't quite decide whether it's a shitty assembler or a shitty Algol clone. I don't consider myself a competent C programmer, and I have no desire to become one. Trying to write a compiler for C (https://github.com/vsedach/vacietis https://github.com/vsedach/vacietis) has only cemented my dislike for the language. I don't blame Dennis Ritchie for it. He probably thought it was a dumb joke too. I blame all the retards in the 1980s that thought it was the bee's knees and made it a "standard."
- J-L 16y agoYou're compiling C to LISP, and you're not even telling us??? This being HN, I have to quote you for everybody's benefit: "Vacietis aims to be a C99 to Common Lisp compiler that produces efficient programs that easily interoperate with Lisp functions, and in addition to offer the introspection, debugging and type-safety features of Common Lisp to C programmers."
- J-L 16y agoMy main language is Java these days, but I use lots of other languages as well (e.g. Perl, Python, R, sh, MATLAB, ...). However, C remains the language that I know most thoroughly, and I've used it since 1989.
- desigooner 16y agoUsed to know C + Assembly pretty well back in school (thesis + projects on microcontrollers and such) ... All I can do now is read some code ..
- michaelpinto 16y agoI'm not a programmer -- but I was able to learn some HyperTalk back in the day: I really wish they'd make some heavy duty programming language for non-programmers...
- rdtsc 16y agoI program in C+Python, doesn't get better than that. I have had to learn JS, but I don't like it.
- HockeyBiasDotCo 16y agoI wrote in C during teh late Jurasic period. But I love C#!
- guyzero 16y agoI used to have the C operator precedence table memorized as I taught C classes weekly. But I never use it these days. Your know it/use it options are conflated.
- younata 16y agoC is my first language. Learned it about 3 or 4 years ago.
- Apocryphon 16y agoI know C, and of C. I do not grok C.
- deleted 16y ago[deleted]
- tzs 16y agoI wish more languages had books equivalent to K&R. Here's how I learned C. 1. Buy K&R. 2. Read it. Maybe 2 or 3 times during the process of reading it, I would go write a program to try what I had just learned. This was was around 1980, so trying a program meant walking across campus to a terminal. I could either head to the computing center and use a public terminal, or to the high energy physics building (where I had just started a work-study job programming and it required C). The former would mean competing for a free terminal--and annoying people if I was spending my time at the terminal mostly reading K&R instead of typing. The later meant sitting at a terminal next to a noisy minicomputer in a cold room. When I got to the end of K&R, I was a C programmer in theory. 3. Start doing real work, using K&R as a reference. Very quickly theory became aligned with reality, and I was then a C programmer in practice. Nowadays, most programming books I find assume that I'm sitting eagerly at a computer as I read, and that I want to stop every three paragraphs and type in some code and run it, and then the book discusses what that code did with the author writing under the assumption that I have the output of the code on my screen. I like the K&R way better.
- samatman 16y agoExactly what I did, fifteen years later. I haven't programmed for anything but fun in ten years, but sometimes fun means C or dialects. It has a staying power in my mind that I attribute to the rigor both of the language and of K&R. By contrast, I did Perl work for years, and went to script something in it recently. Quickly decided it would be easier to learn Python from scratch than to get my Perl chops back.
- justanotheratom 16y agoI program primarily in C and believe I know all there is to know about it. But I have never read K&R. A few weeks back, I started reading it, got bored and gave up. But I keep running into people who swear by K&R. Do you guys think it is worth a read after the fact?
- tomlogic 16y agoMaybe not. If you're at that level, consider reading "The Standard C Library" by Plauger. I used it as a reference for updating a non-compliant library to be mostly compliant. I gained a better understanding of why the standard C library is the way it is, and learned how to implement all of it.
- rickmb 16y agoI've been programming in C for years. Unfortunately, those years were mostly in the 80's and I've barely touched it since, so I really have no idea if I can still call myself a C-programmer. I used to be good at it though. At least that's how I remember it...
- jordhy 16y agoAll programmers should know C.
- axylone 16y agoI'm about to get out of college, and at my new job I'm using mostly C. Well-written C is surprisingly fun to work with (although you could probably say that about anything).
- wojtczyk 16y agoYes, I know C and C is important, but not for everyone.
- georgemcbay 16y ago+1 to the non-existent poll entry that says: "I know C thoroughly, though I barely ever use it these days. I used it for so long and during such a formative period of my overall programming career that I can read/write C code with virtually no spin-up time even though I find myself touching C code very rarely. Oh, and btw, when I find myself coding C on a nix box, I am still amused at how I have muscle memory for all those old emacs commands I also haven't used regularly in about a decade though I wouldn't be able to tell you what they are without doing some keyboard mime exercises." Yeah, well, I guess that is a bit too long to be a poll entry.
- lanstein 16y agoEmacs??? ;)
- derrickpetzold 16y agoI know C thoroughly. It is either my main or best-known language. I hardly ever use it anymore.
- sliverstorm 16y agoI love muscle memory. I only vaguely remember how a keyboard is laid out- all I know offhand is things like Enter, "Q", Space, "F", and "A". If I ever need to remember which keys are where, I put my hands on the table and pretend to type.
- gherlein 16y agoLove it! That's me.
- Aloisius 16y agoI learned draft ANSI C++ before C. Actually there wasn't that much to learn outside of the definition of NULL and where you could stick variables declarations. The only time I use it these days is when I go into random open source projects to fix bugs or occasionally add a feature.
- ankurcha 16y agoThe fist language i ever learnt more than 10 years ago in 8th grade.
- niels 16y agoMy first full time software job, was writing C for PSION Workabout terminals. They had 2MB ram and their own custom plib for system access that ran more efficient than using clib functions.
- nigelsampson 16y agoI learnt C programming Quake 2 modifications, picked up C++ at university and haven't used it since.
- deleted 16y ago[deleted]
- deleted 16y ago[deleted]
- robflynn 16y agoI selected 'none of these options apply to me.' I worked with C for many years (pidgin was written in C) and did some C at my first, second, and third jobs. However, I haven't had a need to write anything in C in about 7 years so I am more than rusty at it. I didn't feel like "I learned some C" applied. That could be my awesome sentence parsing skills at work, though. :P I wonder if I could get back into the swing of things easily. I should give it a shot.
- genbattle 16y agoI'm on the younger end of the age-scale (23), and i would have to agree that less people are learning C as a matter of course these days. Over the whole programmer population the percentage would be very low, but the hacker population is almost defined by its use of C. Many notable and large hacker projects are based on C; Mozilla, Linux Kernel, GNU tools, etc. I think this is in part because the community has such a strong legacy and is driven to keep building and extending what has come before, but also because of the higher average programming ability in the hacker community compared to the general programming population. From my perspective using Linux is one reason i know some C, but the greater reason is because my formal education included embedded C programming with microcontrollers. Programmers going through pure software engineering courses seem to focus much more on computer science and web development concepts, rather than systems design and programming. That said, i'm sure my experience is not typical, and other universities probably use C in some part of their courses. In terms of actual programming, i haven't yet found a project which required the use of C, and in the cases where i have used it i've often stumbled more with the bulky IDE and build configurations than the language itself. My particular trouble is around external references and including code not in the standard library, and then the further dependency hell. Searching around i haven't really found any C tutorial that really covers this sort of stuff really well, most tutorials focus on the language itself (which i don't really have an issue with). Does anyone know any good resources on how to set up an optimal and easy to manage C development environment?
- SageRaven 16y agoDumb question: Is the 2nd Edition K&R for about $50 on Amazon worth the coin over the 1st Edition I recently picked up at a thrift store for a buck? (I also picked up Steele's C: A Reference Manual, 4th Ed. for a buck at the same place.)
- DarrenLyman 16y agoI use C for programming PLC's (programmable logic controllers). I have created testing centers built on C to test used PLC's.
- chicagobob 16y agoI learned C for the first time in 1986 and still use it all the time as my day to day favorite language is Objective-C (and also I've really started to develop a fondness for Ruby too, that's a neat language).
- marcomonteiro 16y agoC was my first real programming language. Loved it. I just don't use it much anymore. Most of what I do is either web (Ruby/Rails, PHP, etc) or mobile (Objective-C).
- danssig 16y agoWhat about: I learned C quite well and used it for years but rarely touch it now?
- skipperfly 16y agoYes, I first encountered it from an old issue of DDJ (Small C) while I was studying electrical engineering at UNSW back in the 80s. Then I had to understand it further while studying the UNIX source code in John Lions' OS lectures.
- SteveMoody73 16y agoI know quite a few other languages but most of my day to day work is in C.
- elmindreda 16y agoOf the FOSS projects I maintain, all those intended for use by others are written in C. It is in my opinion still the best language for providing reusable code.
- kaffiene 16y agoThe options given aren't very well set up. I know C inside and out. For a couple of decades, it was my weapon of choice. I know it intimately, and I love it... but I don't use it regularly. These days I'd much rather use Java. Knowing the language inside and out doesn't mean that I use it for every task, which the first option assumes.