Recently I have seen some of the true engineer attributes are at first hand. I finally have some sense of how people understand things deeper. From working with my wonderful peers.
I rethink my history of growth. I skip the boring manual, hop from blogs to stackoverflows. Learning by doing, change here and there. I try things until it works! I mimic how professionals do it. I learn to do things quickly. Apply things quickly. “Tinker until it works” has always been my philosophy to go about things. I skipped the why because of deadlines and the hustle mentality.
But now I have been working in a calm company, I have seen my colleagues first hand. They go deep on understanding the technology they work with. While I was happy to know just enough to be dangerous. And this is ironically “dangerous” for anyone who wants to truly understand something. I can do something blindly versus I understand something then apply it. But I have always have the desire to understand more.
Engineers and technology users are mostly the same day to day. Users could look more useful on getting things done. Because users know how to work with those magical boxes called abstractions, use the most productive tools to do the common tasks.
But when incidents happen, users have no idea. They can see things are on fire now, but they cant find where the fire is. Engineers know can see through the fire, find the root cause of the fire and stop it from happening.
They are very honest. If you ask them about something, they will be honest and say they dont know when they don’t. But they know how to find out. If they do know, they may not be very nice, but very kind to help you find the answer. For picking an solution, usually they will say it depends, then analysis on the situations and give you a solution that works best given situations.
They read the manual carefully. They don’t just learn something. They verify how things work. They are curious on strange behaviors. They are skeptical about obvious choices. They operate on a solid base of fundermental understanding of things.
They dont just understand things, they understand them deeply!
They have deep insights looking at things. They know how to use some advanced features of the technology/framework we work with to solve a problem pragmatically and elegantly. They can explain the tradeoff made to a technical solutio and see the big picture of how this will play out in the long run. They can describe the merchanics of how things work. They answer your questions. They are humble and very lazy engineers. But they are willing to get hands dirty if they have to.
I have always been a user. Now I want to slowly build my muscle, to try to think slowly. Think things deeper. Be a slow thinker. Try to see things in bigger picture. Try to become a better engineer.
To Matthew Draper, Jessica Stokes, Samuel Cochran, and many other engineers at Buildkite :)
“I don’t know what’s the matter with people: they don’t learn by understanding; they learn by some other way—by rote or something. Their knowledge is so fragile!”
— Richard Feynman