2 ms·
I don't agree at all. Being a language "expert" doesn't mean you know when to write tests and what kinds of tests to write (which is mostly a language neutral s
by solipsism 8y ago
I don't agree at all. Being a language "expert" doesn't mean you know when to write tests and what kinds of tests to write (which is mostly a language neutral skill). It doesn't mean you know how to choose between a quick hack and a well thought out design (and again, language expertise is not the most important ingredient to producing a good design).
This discussion reminds me of those about "intelligence" and IQ. Many people believe intelligence is a single measurable metric, when in fact it's a constellation of many kinds of aptitudes.
Being a senior coder is about a lot more than language expertise.
- nickthemagicman 8y agoHm. I feel like there's a correlation between knowledge of a language and being able to design well with the language. I've noticed my design skills go up drastically the more I learn about a language. For example in most PHP frameworks there's a service container you bind your services into. In RoR that does not exist. Using asyc/await vs promises makes very different design decisions in js and if you know only one you may not design something optimally. I could go on. But my point is that lang expertise gives you the knowledge to design things better, and reduces your chances of putting out a quick hack because you know how to do things properly and rapidly due to you expertise.
- solipsism 8y agoUsing asyc/await vs promises makes very different design decisions in js and if you know only one you may not design something optimally Optimally? How would you even define that? Good developers make good use of the tools that are laid out before them, and sure the available tools differ in each language. But: 1. These languages tend to have more in common than they do different. 2. These concepts aren't magic. They're relatively easily understood, and you can make good use of them long before you can call yourself an expert in the language. 3. A good design doesn't necessarily make use of any specific language feature. e.g. a Go library might be well designed and make use of mutex (a very generic and ubiquitous concept). It's not a "quick hack" just because the author didn't choose to use channels.
- nickthemagicman 8y agoI agree you can "get things done" in any language if you know the concepts. But an expert at a language gets things done in the most optimal way, most rapidly, with minimal tech debt. That's all I'm saying and it may be anecdotal but it's been my experience in the industry.
- squirrelicus 8y agoAn optimal design is one that addresses the most problem complexity while introducing the least incidental complexity. It's objective, but difficult to measure. If you use cron to implement a hello world program, the design is not an optimal one, for example.