If you are a professional programer in 2016, you very likely are familiar with the term "refactoring". This term was placed in our vernacular by the book "Refactoring: Improving the Design of Existing Code" by Martin Fowler [1]. In the Preface to the book, Folwer writes:
Once upon a time, a consultant made a visit to a development project.
The consultant looked at some of the code that had been written; there
was a class hierarchy ..
...
I must admit to some bias here. I was that consultant. Six months later
the project failed, in large part because the code was too complex to
debug or to tune to acceptable performance.
The consultant Kent Beck was brought in to restart the project, an exercise
that involved rewriting almost the whole system from scratch. He did several
things differently, but one of the most important was to insist on continuous
cleaning up of the code using refactoring. The success of this project, and
role refactoring played in this success, is what inspired me to write this book,
so that I could pass on the knowledge that Kent and others have learned in using
refactoring to improve the quality of software.
...
In this book I describe the fruit of a lot of research done by others. The last
chapters are guest chapters by some of these people.
....
I've left the final word, Chapter 15, to the master of the art, Kent Beck.
You might also have heard of xUnit style of testing. Beck had a hand in many of these frameworks.TL;DR - pay heed to the history of your profession.
[1]: https://www.amazon.com/Refactoring-Improving-Design-Existing...
TL;DR - If you want to be in the top tier of success, don't take advice from programmers.
It's easy to forget that the definition of success is relative. Someone you consider a success might be considered a miserable failure in life by others.
https://en.wikipedia.org/wiki/Kent_Beck
If you haven't heard of him, that's a pretty good illustration of his point: success can be fleeting. You can be the foremost programming guru one moment (which Kent Beck was, given my recollection of the late 90s and early 00s) and then fall into obscurity and be just another engineer afterwards.
I think people forget everything they hated before TDD, Agile, XP, etc. Namely the endless parade of bugs, management making unrealistic promises, perpetual crunch time, death marches with no end in sight, code fiefdoms where touching any other engineers' code was basically impossible.
Software is hard. It is getting marginally easier with time, but it still is a lot harder than most peoples' expectations of what it should be. Hence most developers end up disillusioned, frustrated, and unhappy, but this is a product of our expectations more than our processes. A job isn't supposed to make you happy, it's supposed to make your customers happy.
In fact, I think there's a strong argument for getting advice from people who have failed, because, they have lived through failure cases and I'd expect can help you avoid them.
"Successful" people could be either privileged, lucky, or both, and their success may not be due to what they attribute it to.
I think you want to collect as much data as you need to draw strong conclusions.
I therefore favor the adage, "Who is wise? He who learns from everyone."
EDIT: Seems I'm not alone in that thought ;)
Success has many dimensions; one needs to choose carefully which to measure yourself against. I've known wealthy and professionally respected people whose personal lives were a mess and those of more modest means who greatly enriched the lives of those around them.
Moreover, the path to success that others have trod may not one that you can take. Times change, possibilities change, and opportunities open to others may not be open to you.
My preference is to listen attentively and genuinely to advice from nearly anyone but be very selective about which bits of advice I choose to try and follow.
Winning the lottery can lead to present success. Having one once, in a fair game (and that's a valid condition to check) is exceptionally unlikely to lead to future success.
OTOH, pursing a line of work in which you haven't yet succeeded, but others have, may be an area in which lack of present success doesn't preclude future success.
I tend to look to process with more emphasis than outcome.