
C++: Interviews vs. Fieldwork - jowdones
This is probably going to get deleted since it&#x27;s more of a rant than a question, which I formulate here (and remember, cultural thing learned in EE, I never question something without having an answer to it even though possibly just as wrong as the status quo).<p>Question: what alternatives do we have to the current disfunctional state of both interviews and fieldwork that follows it?
Hint: if I could answer (like actually solve it), that would be worth $B++.<p>So what interviews ask for:
- Automated tests that ask you to implement a random algorithm with optimum execution and all corner cases handled, within a limit of 30 minutes.
- If you pass the machine gun barrage automated tests, you get an in person interview where they ask you to be an expert in this sort of code: http:&#x2F;&#x2F;aras-p.info&#x2F;blog&#x2F;2018&#x2F;12&#x2F;28&#x2F;Modern-C-Lamentations&#x2F;<p>====================
...
&#x2F;&#x2F; &quot;for_each&quot; creates a new view by applying a
&#x2F;&#x2F; transformation to each element in an input
&#x2F;&#x2F; range, and flattening the resulting range of
&#x2F;&#x2F; ranges.
&#x2F;&#x2F; (This uses one syntax for constrained lambdas
&#x2F;&#x2F; in C++20.)
inline constexpr auto for_each =
[]&lt;Range R,
Iterator I = iterator_t&lt;R&gt;,
IndirectUnaryInvocable&lt;I&gt; Fun&gt;(R&amp;&amp; r, Fun fun)
requires Range&lt;indirect_result_t&lt;Fun, I&gt;&gt; {
return std::forward&lt;R&gt;(r)
| view::transform(std::move(fun))
| view::join;
};
 ...
====================
======
jowdones
What fieldwork consists of:

1) No abominations like above, which by the way does this:

void printNTriples(int n) { int i = 0; for (int z = 1; ; ++z) for (int x = 1;
x <= z; ++x) for (int y = x; y <= z; ++y) if (x _x + y_ y == z _z) { printf(
"%d, %d, %d\n", x, y, z); if (++i == n) return; } }

To my experience, any team and project manager that's incompetent enough to
allow for such "genius" to unfold themselves in a production and comercially
bound project, well they get slaughtered. I haven't yet seen companies
incompetent enough to do that but I've seen projects spanning over the course
of 3-5 years with dozens of people involved being tossed away and the geniuses
(and company) be supported by the humble C level of "mediocrity" of the
printNTriples.

2) There are hard algorithms to be implemented and they usually involve hard
and horrible domain knowledge that takes a heck lot of effort to aquire,
effort of which as wishful you may be you'll never be able to factor out time
and lots of it, is plain nasty and entirely non-portable outside of the
environment that never pays you enough for dealing with it. Ex: for those who
complain on "no documentation", the domain knowledge of the domain last
amateur level project yet $500M worth commercially project that I worked on
could be described in maybe 5 pages of documentation, the contract we work on
that's worth some $5B has 1111 pages of documentation in some 20 chapters and
my assigned one leads to some 20 other documents amounting to more complexity.

All the while the greatest challange, in C++21 still remains to compile the
damn thing. Not that it takes 2 hours to compile what in Java essentially it's
Borland's Pascal 5.0 responsiveness (latency and throughput). We've learned to
be so traumatized by C++ that as long as it _compiles*, we're happy.

Not to mention BUILDING the damn system, like setting it up for first time
use, with dependencies and all. Everytime I change projects, I cringe and pray
from a miracle from God if the process takes less than one week. Not that I
complain about that week - see above.

