I attended a job fair yesterday and a developer asked me how I would rank my proficiency in C. I then realized that this is incredibly arbitrary and almost impossible to nail down, so my question is what knowledge makes you an expert in programming C?
Edit: or what would the breakdown be? what makes you good, decent, proficient, etc.
Edit again: I was looking more for like a list of skills or some other constructive measure by which to judge one’s own proficiency in C, as that’s hard to do.
List so far:
- Experience in large projects
- Mastery of Pointers (and memory management, I’d assume)
- Mastery of a debugger (gdb, …)
- Mastery of a profiler (gprof,…)
- Mastery of a memory profiler (valgrind, …)
- Knowledge of the fundamental standards
Experience is key, knowing the ‘rules’ and syntax of the of the language is of course a must, but it is only a base. Learning the common pitfalls and idioms for doing things right is key.
Knowing what if any resources exist to get help from while your programing, and of course, knowing you’re tool chain. I’ve known many C++ ‘experts’ who had never used a debugger, or a memory tracker. If you ask me, being an expert in something is different from being proficient in something in you knowing all aspects of it.