9 ms·
Arguably if people have such strong understanding of things they will be better programmers too. I would prefer the person who knew what they were doing, becaus
by thepicard 13y ago
Arguably if people have such strong understanding of things they will be better programmers too. I would prefer the person who knew what they were doing, because they also know _why_ weird things are weird, and have a better real understanding of what to do and not do.
A person who just knows it's "bad code"--but not why--is almost certainly going to leave other bad code from lack of understanding. To pull an example from the slides, the virtual destructor: making that class virtual when it shouldn't is a waste of CPU cycles _and_ bad documentation for future developers.
- easytiger 13y agoIn c and c++ understanding these things can save you 1 day a week on average.
- pjmlp 13y agoI would say even more than that. C and C++ can make someone loose days to track down issues, in this day and age, where teams are distributed with lots of offshoring and various skill levels across development sites. My last C++ project was in 2006, since then I have only used C++ outside work. At work our focus has been in JVM and .NET languages. I don't miss playing the C++ fireman expert role that has to fix a stability problem created by someone in the other side of the planet.
- ateevchopra 13y agoExactly. Deeper you go, better you are. Better you are, better products you make. Just Simple mathematics.
- dmak 13y agoI'm not sure if I would say that a deeper knowledge of a language would make "better products".
- acron0 13y agoTotally disagree with this. I've worked with plenty of fantastic programmers who are basically worthless without the guidance of a good lead/producer/designer. Nonobligatory image to support statement: http://codinghorror.typepad.com/.a/6a0120a85dcdae970b0128776fec64970c-pi http://codinghorror.typepad.com/.a/6a0120a85dcdae970b0128776...
- Dylan16807 13y agoThat gui seems fine to me. It's ugly as sin, sure, but it has everything easy to find and clearly labeled. Ignore the parts you aren't using and you're good to go.
- aspensmonster 13y agoEhhh. I'm not so sure about setting the depth for recursive retrieval to zero. That's basically telling wget to download the internet IIRC :D
- Dylan16807 13y agoThe entire domain. Reasonable use case.
- ateevchopra 13y agoA programmer is not a designer. Both are completely different fields. What you are saying is that a shark(programmer) cannot fly like an eagle(designer). But it sure can swim. And vice-a-verse.
- jamornh 13y agoHowever, I'd be concerned that the person with strong understanding of things will simply leave uninitialized static variables lying around in the code simply because they _knew_ it was always initialized to 0. It might work if your entire coding team has that innate understanding, but that is unlikely. Sometimes I think that having deep and expert understanding of a language may cause you to create code that other team members cannot understand... not on purpose, but due to your assumption that these are common knowledge (whether they should be or not isn't the issue.)
- mansr 13y agoStatic initialisers are a horrible example of "deep" knowledge. Not knowing how they work reveals not only ignorance of syntax but a fundamental lack of understanding of the entire programming and execution environment. Failure to understand your environment inevitably leads to confusion and bad decisions.
- lttlrck 13y agoI disagree that static initialization is deep understanding nor is it innate.
- Jare 13y agoA more common example is operator precedence, especially booleans. The precedence rules are easy and set in stone for decades, but always use parentheses to clarify, and I do not trust programmers that don't.
- thepicard 13y agoAgain, I think one with deep understanding would know that leaving it unset would result in zero, but also know that initializing it declares intent of the original author, and is thus useful.