The Pragmatic Programmer Characteristic
I spent 5 years of my life writing Ruby codes and some other frontend codes as well. However, other engineers always could point out the many bad things in my codes (meaningless names, bad structures, etc). One day, a good friend of mine told me to read a book named “The Pragmatic Programmer”. The book gives me a compass for my daily work.
What makes a pragmatic programmer?
Early adopter: As a Software engineer, you must have an instinct for technologies and techniques. You keep learning explicitly and keep trying new things.
Inquisitive: You tend to ask questions. You want to know the reasons behind the technologies, the codes of your co-workers, the library you are using.
Critical thinker: You rarely take things as given without first getting the facts. You try to place things in their larger context. You try to be aware of the bigger picture.
Realistics: You understand the difficulties of the problems you are facing. So, you realize that you have to keep your energy for the next day in a long journey. You know how to make good-enough software.
Jack of all trades: You try hard to be familiar with a broad range of technologies and environments. You will try to be a specialist in your current works. But you are also ready to move to new technologies when there are new requirements from the team.
One last thing, you take responsibility for everything you do. You say no to the things you cannot. You have no fear of appearing weak or incompetent. When something goes wrong, you act constructively and offer options, not excuses. You care and think about your works.
I recommend you to read The Pragmatic Programmer by Andy Hunt and Dave Thomas. Besides the philosophies I shared, the book also shares many approaches to apply at many different levels and in any software development domain.