You know what the great engineers that I know have in common? They're great at engineering. Once you start looking at other qualities, they are pretty diverse. Some have families, others are single. Some play trading card games, others write musicals. Some wear ironic T-shirts, others dress "up" (not exclusive of course). Some fly planes, others ride bikes. Some are straight white dudes with kids, others are transgender people in polyamorous relationships.
You know what else is interesting? They come from everywhere, and every one of them had a first gig somewhere, where nobody realised how brilliant they were (with some rare exceptions).
Great people are all around you. Don't limit yourself by falling for the caricature.
I've been trying to write a comment essentially just like this one, unsuccessfully; thanks for putting it so clearly. I can't think of anyone that fits the stereotype listed in the article, and I've met many downright astounding hackers; the trait they share is curiosity, above all else. This means that they're about the furthest thing from the 1-dimensional stereotype in the article -- they play music, build cars, hack game consoles, write novels, fly planes, and are generally just complex individuals. Boiling them down to a bullet point list of generalizations is just silly.
Certainly he's targeting a not-exactly-right stereotype that he'd like to be true and there isnt really such a strong web of invisible geniuses that all know each other.
That said there's some truth in it.
For starters most real C coders do in fact know all other languages. your typical python coder (cause yeah, PHP is kinda dead) can't do that. he can't fix the server software thats in C either.
Generally, he writes a new server in python, and its magically slower and problematic. Wrong tool.
Go and such languages might make this gap a little narrower tho.
For starters most real C coders do in fact know all other languages. your typical python coder (cause yeah, PHP is kinda dead) can't do that. he can't fix the server software thats in C either.
You must know very different "typical python coders" than I do. Almost every Pythonista I know or look up to knows at least some C, at least enough to write Cython, and usually enough to write idiomatic C. As you allude to, we often have to when we need to optimize CPU-bound code.
Almost the only exception to this are the coders I know who are just starting to program. But almost anyone who stays active in Python will eventually learn some C, if they don't already know it.
do you know how the memory allocation works when you create a list in python by inferring from how you'd do it in C?
its a very basic question and I don't know many python devs that know the answer right off the bat. its going to be "u malloc stuff right?"
Another basic question: what happens exactly when you open and start reading a file?
"u call open right?"
thats not enough to figure out how things work. Coding "real" C (as in being able to do anything in C, not just code snippets) means that you probably understand how most things work under the hood, including libc, the kernel(s), file system, etc - at a pretty good level of detail.
If you know many like that, its great, but if you think the majority (or even a third) know these things - then I also think that either you or I live in an imaginary world =p
Comments
What an annoying article.
You know what the great engineers that I know have in common? They're great at engineering. Once you start looking at other qualities, they are pretty diverse. Some have families, others are single. Some play trading card games, others write musicals. Some wear ironic T-shirts, others dress "up" (not exclusive of course). Some fly planes, others ride bikes. Some are straight white dudes with kids, others are transgender people in polyamorous relationships.
You know what else is interesting? They come from everywhere, and every one of them had a first gig somewhere, where nobody realised how brilliant they were (with some rare exceptions).
Great people are all around you. Don't limit yourself by falling for the caricature.
I've been trying to write a comment essentially just like this one, unsuccessfully; thanks for putting it so clearly. I can't think of anyone that fits the stereotype listed in the article, and I've met many downright astounding hackers; the trait they share is curiosity, above all else. This means that they're about the furthest thing from the 1-dimensional stereotype in the article -- they play music, build cars, hack game consoles, write novels, fly planes, and are generally just complex individuals. Boiling them down to a bullet point list of generalizations is just silly.
Perhaps a real commonality is membership of an informal guild i.e. all know each other.
Certainly he's targeting a not-exactly-right stereotype that he'd like to be true and there isnt really such a strong web of invisible geniuses that all know each other.
That said there's some truth in it.
For starters most real C coders do in fact know all other languages. your typical python coder (cause yeah, PHP is kinda dead) can't do that. he can't fix the server software thats in C either.
Generally, he writes a new server in python, and its magically slower and problematic. Wrong tool.
Go and such languages might make this gap a little narrower tho.
You must know very different "typical python coders" than I do. Almost every Pythonista I know or look up to knows at least some C, at least enough to write Cython, and usually enough to write idiomatic C. As you allude to, we often have to when we need to optimize CPU-bound code.
Almost the only exception to this are the coders I know who are just starting to program. But almost anyone who stays active in Python will eventually learn some C, if they don't already know it.
some C doesnt mean "know C"
do you know how the memory allocation works when you create a list in python by inferring from how you'd do it in C?
its a very basic question and I don't know many python devs that know the answer right off the bat. its going to be "u malloc stuff right?"
Another basic question: what happens exactly when you open and start reading a file? "u call open right?"
thats not enough to figure out how things work. Coding "real" C (as in being able to do anything in C, not just code snippets) means that you probably understand how most things work under the hood, including libc, the kernel(s), file system, etc - at a pretty good level of detail.
If you know many like that, its great, but if you think the majority (or even a third) know these things - then I also think that either you or I live in an imaginary world =p