In my last question I was just wondering how or when you (or others) tend to improve their coding style. For me its mostly when reading other peoples code and noting that a) certain aspects are great or b) not so great. But maybe that just comes naturally to me because I don't have that much experience under my belt.
This does really sound unusual. For me, the ratio of reading to writing is about 4:1. Are you sure you are not writing too much new code, because you didn't invest the time to properly understand the existing one?
When you mostly work with your own code, do you still have that feeling of constantly improving your coding style and code quality (like looking at code that is X months old and knowing you would write it differently today)?
Using the heap layout, you can sometimes even eliminate branch misspredictions and subsequent (expensive) pipeline flushes.
The basic idea is to allow your compiler to use predicated instructions. Do do this, you have to transform control dependencies (e.g., `if (a > b)`) to data dependencies on index computations (e.g., `j = 2*j + (a > b)`).
Let's assume a sufficiently smart compiler can parallelize 90% of our hot code. Now considering Amdahl's Law, we cannot achieve a speedup greater than 10 and are therefore stuck. Adding 10 or more cores won't do any good to our running time, because it is dominated by the sequential code.
Is this a way of saying one should always live on the edge of incompetence?
Edit: I ask this, because I have difficulties applying your ideas on fields where I don't have any good teachers around (e.g., lets say I want to become a better cook).
In my last question I was just wondering how or when you (or others) tend to improve their coding style. For me its mostly when reading other peoples code and noting that a) certain aspects are great or b) not so great. But maybe that just comes naturally to me because I don't have that much experience under my belt.