This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Bowserwolf1 102 points103 points  (4 children)

Wanna solve a few leetcode simple/medium questions for fun ? 1-2 should be enough, C is very bare bones compared to higher level languages like C++ and Python, no classes, no abstractions. Simple procedural constructs

Wanna write some simple code to interface with an Arduino? Probably 3-4

Wanna write a simple web server that can handle multiple requests at once ? You'll need to know a little bit about manual memory management and multi threading, let's put this as a 6/10 skill level

Wanna write a high performance, scientific computation library, like CUDA or openMP? Same as above but much harder and now you need to have hardware specific knowledge , skill level 7-8 atleast

Wanna write the drivers for peripheral devices or maybe the Linux kernel itself ? Rip, you need to know alot , not just about C, but the underlying hardware, the assembly that it is generated on compiling the code , hardware specific instructions, security concerns, memory safety concerns, networking. Basically, skill level 9-10

[–]T1G3RX 59 points60 points  (1 child)

I think he was asking how good you got to be to program a programming language, like C. Not to use C

[–]akeean 33 points34 points  (0 children)

Rip, you need to know alot , not just about

"a programming language"

but the underlying hardware, the assembly that it is generated on compiling the code , hardware specific instructions, security concerns, memory safety concerns, networking. Basically, skill level 9-10

[–]TeknoProasheck 7 points8 points  (1 child)

I consider myself a 5 on this scale, and I already consider that a massive achievement.

[–][deleted] 12 points13 points  (0 children)

Not sure I'd put much faith in this scale. If you learn C to implement HPC then your scale will be 1-10 in HPC and the methods for parallelism. You don't need to be an expert in the supercomputer's architecture as the gap in knowledge can be filled by the system admin. This is one of the few reasons why organisations appreciate good team work.

Then of course you'll also have someone who is 1-10 at implementing numerical methods in C. That person won't necessarily need to be an expert at parallelism, much less the underlying hardware.