I'm taking a security class right now that delves deeply into the inner workings of C. It's been a challenge, partly because my C experience is so limited.
I was actually cautioned by the teaching staff not to take the course based on the results of an introductory-level quiz they gave the group of students. It was 20 questions that covered everything from type safety to code structure to actively diagraming out memory assignments on both the stack and the heap.
The objective was to help weed out students who might struggle with the course material. From what I've seen, it did a fairly good job - and it prompted me to buy a read a book on C so the terminology makes sense and I can keep up.[ref]Today I successfully wrote some C-based stack smashing attacks against a sample program built by the instructor. It took longer than I would have hoped, but my 3-hour time was still better than the class average of 3 days. I think I'll be OK.[/ref]
The irony was in the message I received encouraging me to rethink taking the course:
This material is aimed at those who have at least a third-year undergraduate understanding of basic computer science concepts. We can't take the time to teach the basics, so if you don't already know how to program you'll struggle a great deal in this course.
I found this ironic for two reasons:
- Outside of Coursera, I have never taken a formal computer science course in my life
- In addition to already being an established "expert" with more than one language, I've also been asked to teach computer science at a local college
But due to my performance in this (poorly written) quiz, an instructor actually called me out and questioned whether or not I was really "cut out for programming" based on my knowledge of C.
My point: don't make assumptions based on the tiny bubble you live in. I might not be a C expert, but I understand the fundamentals of the language enough to keep up. I'm acing the course thus far and don't anticipate too many problems.
I also find myself having to be reminded of this when I browse books at the store. There are whole sections on WordPress, but I only recognize a handful of the names on the spines. I often have to remind myself that being an expert on WordPress doesn't mean you're on Twitter, in the support forums, or speaking at WordCamps on a regular basis.
Yes, we have a crowd of experts that do all of that. We also have an even larger crowd of experts who are too busy getting things done to focus on anything else. I can't discount their expertise just because they've never visited the WordPress Development Stack Exchange.
It's hard at times to think outside of our own bubble of experience, expertise, and engagement. If we fail to do so, though, we're going to miss out on an even larger group of experts than we ever thought we knew.
Not speaking at a WordCamp doesn't mean you're not a WordPress expert. Not being able to grok the Assembly output of a compiled C program doesn't mean you're not a developer.