---
title: What my father taught me about software development
teaser: 'My father is a construction man. What could he teach me about being a software
  engineer? Well, quite a lot.

  '
tags: learning
author: Matheus Richard
published_on: 2022-07-05
---

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.

[the conventional way]: https://en.wikipedia.org/wiki/Euclidean_division

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:

<blockquote>
  <p>
    "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."
  </p>
</blockquote>

## 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!

[directory navigation]: https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/z

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.

[try something new]: https://thoughtbot.com/blog/the-opportunity-will-find-you
[productive]: https://thoughtbot.com/blog/tags/productivity
[work in a team]: https://thoughtbot.com/blog/tags/teams
[happy person]: https://thoughtbot.com/blog/tags/happiness
[that job]: https://thoughtbot.com/jobs

<img
 src="https://images.thoughtbot.com/blog-vellum-image-uploads/mf9LvqaXR5OLPjR1SItn_you-miss-the-shots.png"
 alt="Michael Scott, from The Office US in front of a white board where with the words &quot;You miss 100% of the shots you don't take. - Wayne Gretzky - Michael Scott - Matheus Richard&quot; written on it">
