Starting career from zero to hero we all focus on technical skills. How many languages, frameworks, technologies we know, how efficient our sorting algorithm is, how optimal our query is, how fast we can refactor your code, and lots of other “hows.” Later, when minimal valuable level of professional knowledge is archived, people start focusing on so called soft skills. According to Wiki they include combination of communication, social, emotional skills, including but not limited with common sense, positive attitudes, and ability to deal with people. Then we become more mature and our professional interests diverse from “what” and “when” to “who” and “why.”
Based on questions that are interesting to us our professional career goes into directions of managers (if you like to control an uncontrollable environment of idealistic developers) and architects (if you like to control an uncontrollable environment of development ideas), technological guru (if you understand that only thing, you can control, is you and your code), entrepreneurs (if you want to control everything at once), agile coaches (if you really love colorful stickers) and surfers (when you finally understand that it’s much easier to control nature).
But before that magical idea bulb of understanding finally appears, we work as developers. There are many skills we need to have to be professionals. But there is a one skill that is, on my opinion, completely underestimated. Mostly nobody puts it explicitly to job description, nobody teaches it, but everyone faces lack of it at some point. This skill is to let your code go… to trash.