Live data from Hacker News

Ask HN: Do CS students enjoy C anymore?

news.ycombinator.com

61–70 of 101 posts

Re: Ask HN: Do CS students enjoy C anymore?

#61
I'm 26 and finished my M.S. in CompSci a couple years ago. All of my friends I graduated with from my under grad Love writing C and C++. Most of us ended up in jobs doing C and/or C++ for a living. I think a lot of this has to do with our 'upbringing'...

We went to a super small university (1500 people) and we got to do summer internships and independent study course work with one of our professors writing/modifying embedded wireless drivers in NetBSD. This resulted in a group of students that were more proficient at reading and understanding huge bodies of existing code when compared to students I've TA'd and worked with. This also means we all enjoy working in C (Though honestly most of us prefer C++). We work in jobs like embedded GPS devices. Embedded development for Televisions. Jet engine test software. Embedded signal / sensor processing and integration. It's only now, later on in life, that I realize most of the other people in these fields with us aren't CS guys but rather CE or EE.

tl;dr... Find a student, just 1, that is really into this and then find more students from his university... It's likely the environment / layout of the university's program is largely responsible.

Re: Ask HN: Do CS students enjoy C anymore?

#62
post #54

Many universities now offer a course using the Computer Systems: A Programmer's Perspective book ( http://csapp.cs.cmu.edu/index.html ). This is a fantastic book, focusing on nit-picky assembly and C-level work -- all the foundational stuff for an operating systems or compilers class, even if you never go on to one. Having TA'd this class the last few years, I find most students really enjoy it. In fact, I think most…

IDA Pro seems to make the bomb lab considerably easier (e.g., by showing the basic block structure of the assembly); I imagine that the Hex-Rays decompiler would be even more so. Students willing to torrent that software would probably have a much easier time with the lab...

I had never heard of IDA Pro before, so I just took a cursory look. I don't think it provides significantly more information than objdump does, which we explicitly tell the students to use.

Re: Ask HN: Do CS students enjoy C anymore?

#63
MSc CS student here.

As some others have mentioned, I love doing stuff in C. However, I'm also keenly aware of its pitfalls and shortcomings. As such I prefer to do most my stuff in higher level languages like Python and Haskell only dropping to C for speedy data structures (if profiling proofs it necessary) or for convenience when doing low level OS code.

However, I know a lot of my fellow students have an extreme dislike for C and only wanting to program in languages like Java/C#, even languages like Python and Ruby seem under represented.

The students who seem to appreciate systems level code and C seem to be a minority in my university. Which of course means there is more competition to hire these students when it comes to people looking for C developers.

Re: Ask HN: Do CS students enjoy C anymore?

#64
They teach quite a lot of languages at my university. You can choose between Pascal and OCaml for the first programming course. Half a year later, you are supposed to write middle sized projects in Delphi and Java. Second-year student learns C++, and then chooses between further C++, Python, C# or CUDA/OpenCL classes. C is used in Operating Systems courses, Oracle and PostgreSQL on Databases, PHP, Javascript (JQuery) and Python (Django) on Web Applications. Prolog, Smalltalk and Haskell are used in Compilers classes. Students use language of choice on Team Programming Project.

These are all obligatory, one can additionally attend optional courses on Prolog, Dylan, Common Lisp and some other I do not recall now.

So yeah, learning C better would take time needed for all these courses and thus would narrow one's view. From my experience, most people do not like to use C for anything other than Algorithms classes, and even then they are more likely to use C + STL than plain C. Those who do can take Advanced Operating Systems classes and tinker with Linux kernel, or Microcontroller Programming.

Re: Ask HN: Do CS students enjoy C anymore?

#65
Come to Stony Brook, and talk to Erez Zadok. He is the creator of unionfs, he teaches (undergrad) Advanced Systems Programming in UNIX/C, and (grad) Operating Systems, and runs a lab devoted to (mostly) Linux filesystems. NetApp, Data Domain, and other high-profile storage companies (maybe you know Riverbed?) regularly hire his students for their knowledge of operating systems and C.

His class is why I love C, and you'll find many more like me if you come talk to him.

Re: Ask HN: Do CS students enjoy C anymore?

#66
One issue I don't see raised in the comments so far is the fact that OO seem to be all the rage (at least when you're a college student anyway) and often you move onto C++ or Java fairly early in the curriculum.

I love coding in C and my first job out of college was C for mobile devices. I have since moved to web programming and rarely use C directly (closest I get is Imagemagick with bindings)

Re: Ask HN: Do CS students enjoy C anymore?

#67
Freshman in CS here. I came in knowing python and C. My uni teaches java for the first three classes (luckily I tested out of the first class), then we're taught c++. We have an OS class that (should, I haven't looked into it) uses C, probably c++.

I personally love C. It's a much smaller language than java, the libraries actually make sense (reading input into a string comes with stdio, as opposed to having to import java.util.Scanner).

I also feel that everything I'm asked to do in java, I can easily do in C with less code. However, this is because I'm more familiar with C than I am with java.

Re: Ask HN: Do CS students enjoy C anymore?

#68
post #62
post #54

Earlier quoted context omitted.

IDA Pro seems to make the bomb lab considerably easier (e.g., by showing the basic block structure of the assembly); I imagine that the Hex-Rays decompiler would be even more so. Students willing to torrent that software would probably have a much easier time with the lab...

I had never heard of IDA Pro before, so I just took a cursory look. I don't think it provides significantly more information than objdump does, which we explicitly tell the students to use.

All the information is in the binary, sure, but IDA makes the process a lot less tedious.

objdump doesn't give you the pretty "graph view," showing the basic block structure of the code. (In particular, this is really nice for switches and other jump tables.) It doesn't make it trivially easy to see where certain rather important-looking strings are referenced in the code. It doesn't show strings that are being referenced right next to the assembly instruction that references them, like changing

    push   0x8049808
to

    push offset aD        ; "%d"
It doesn't let you mark up

    mov eax, [ebp-0x4]
to

    mov eax, [ebp-first_number_I_entered]
and have that renaming automatically propagated through the entire function, so that you can easily track accesses to the same variable.

In addition, the Hex-Rays decompiler (http://www.hex-rays.com/decompiler.shtml) produces C-like output. I don't have a license for it, but I imagine it would make short work of the bomb lab.

Re: Ask HN: Do CS students enjoy C anymore?

#69
post #22

Did anyone ever enjoy writing C, especially data structures? Here is what I remember from college: ./program Segmentation fault.

I found most of my segfault bugs by a simple "gdb program". It's scary at first, but it's usually not that hard.

GDB is great, but valgrind is even quicker at diagnosing segfaults.

Re: Ask HN: Do CS students enjoy C anymore?

#70

Many universities now offer a course using the Computer Systems: A Programmer's Perspective book ( http://csapp.cs.cmu.edu/index.html ). This is a fantastic book, focusing on nit-picky assembly and C-level work -- all the foundational stuff for an operating systems or compilers class, even if you never go on to one. Having TA'd this class the last few years, I find most students really enjoy it. In fact, I think most…

The labs for that course look awesome. Seems like a great way to tie together OS and computer architecture material.
Post reply on HN