My father is a construction man. Not one that works for a company, he worked mostly by himself or with a couple of others. One of the hardest jobs I’ve ever seen! I worked with him a couple of times. I know he didn’t like to see me working in this job—and I clearly wasn’t the most skilled employee—but I knew he could use some help. Between calluses and scratches, I occasionally received some tips and advice from him, but only now do I understand how those were helpful in my career as a developer.
Theory and practice walk side-by-side
One day my father asked me:
Father: What would you do if you didn’t have a set square/triangle?
Me: Ammm… I… have no idea?
Father: You could build one! Here’s how: you make a line in the vertical with three units (cm/meters/etc.), then another in the horizontal with four units, and join two of their points. Then you add a third line joining the other two points and adjust it so that its length is five units.
I stopped and thought for a second. All of that made sense. Somehow, my father knew the Pythagorean theorem. I’ve always been amazed by how much math he could do (multiplication and division of large numbers, percentages) without almost no formal knowledge. He surely doesn’t know how to do them in the conventional way I learned at school.
Later, I would see him watching youtube videos for civil engineers, and he would learn things that helped him in his job, although he never went to college.
That made me realize that knowledge comes in various forms. Some people start on the practical field, while others on the theoretical side. Either way, when learning, it is good to have those two things walking side-by-side. This Donald Knuth quote well summarizes this thought:
“If you find that you’re spending almost all your time on theory, start turning some attention to practical things; it will improve your theories. If you find that you’re spending almost all your time on practice, start turning some attention to theoretical things; it will improve your practice.”
Master your tools
My father had all sorts of tools, each with a unique purpose. For instance, he had a laser level that would shoot straight lines even if placed in a steep spot. Yes, they were expensive, but they made work easier and faster. The pay-off was huge!
Much more than “use the right tool for the job”, my father made me realize the importance of having good tools to do the work better/faster than I could. I always hated doing repetitive tasks manually, so I tend to automate everything I can, even small things like directory navigation.
Additionally, it is also essential to master the standard/most used tools. In software development, that means learning your language semantics deeper than just syntax, knowing its standard library, or the hotkeys for your text editor/IDE. Those are skills that will help you every day. Invest in it!
It’s cliché, but work smarter, not harder.
Study your craft
My father loved to say “The weight of a pen is lighter than the weight of a hammer”. Growing up poor, it was pretty clear to me as a kid: study today, so you’ll have a good job and life in the future. But I think the lesson goes beyond that.
Study your craft. Not only tools, as I mentioned earlier, but the profession as a whole. Learn how to work in a team, how to be productive and a happy person overall. Read books, read news, and learn from the past and the mistakes of others. Knowledge is power.
Seize opportunities
“If I have to work hard here, so you don’t need to work like this, I’ll do it with a smile on my face”, dad often said. Having to work from a young age, he did not have many life opportunities. I got to go to school and college and didn’t have to work to have food on the table. This was my opportunity. An option that many don’t have.
So, take your chances! Don’t be afraid to try something new or different, whatever that is. Learn a new language. Apply for that job you’ve been thinking about for a while. Send a cold email. Do not waste time!
Otherwise, you’ll forever wonder how things could have been.