I decided to ask this question after reading a comment in the thread about the Linux Command Line book complaining that modern junior developers should read it to compensate for their lack of Linux skills.<p>What are some other areas or skills you think are paid too little attention by modern developers?<p>From my own experience, I wish I understood Linux better, as well as hardware. Not sure that would help me a lot at work though.
Written communication. I don't seriously expect colleges to teach people how to do the job, but I'm continually shocked by how bad recent grads are at writing and understanding the written word.<p>On a related note, maintaining a daily engineering journal. This was something I learned from older engineers when I started and it was through osmosis. It took awhile to buy into the value of it, but my memory isn't what it was and it's invaluable today.<p>And on a final note, estimation. Juniors should focus on accurate estimation of their work. Technical knowledge is pretty easy to find and acquire, but good communication and estimation are the two "soft" skills that grease the wheels of your career.
I find a lot of developers don't actually have an understanding of how things work at fundamental level - what they do know amounts to "type this, and do that, and you'll get this" and can't really explain why one tech stack is superior to another and how we should be making architectural decisions.