Advice for 20 Years Old Self: 20 Lessons of 20th (Part3)

Image for post: Advice for 20 Years Old Self: 20 Lessons of 20th (Part3)

Every one of us has some moments of life when we turn back and reflect on the past. Often it is the age milestones such as 20, 30, 40, 50, etc., that cause us to turn back and summarize the past experience and recall the main lessons learned from it.

I am sharing Part 3 with the things I would advise my 20 years old self. Things that were helping me during my journey as a Software Engineer and had the most profound impact on my life and career. You should read it if you want to learn the main insights of the 10years journey of a Software Engineer in just a few minutes. I hope you will find something useful for yourself here. Enjoy the read!

Lesson #7: All you need is reps, reps, reps

This lesson stands for the concept that everything in life is achievable with the "X" number of trials. It is the concept of athlete discipline and persistence but with notes of science.

This lesson I learned after getting some experience in bodybuilding and computer science.

Bodybuilding teaches that you need to do reps regularly to build a body muscle. Additionally, to avoid muscle tolerance and ensure balanced muscle growth, you also need to vary workouts.

The computer science concepts show how to approach problem-solving in a scientific manner. The process is: you make an assumption and generate an input, run an experiment, analyze the output, adjust based on the output, run a new experiment with the modified input. And do it until you run experiments with all reasonable inputs.

It shows that it is possible to solve any complex problem, either life one or work-related, with reediness to have a discipline and persistently repeat the process: - Make a trial to solve the problem, learn from it, adjust the effort, repeat until you are happy with the solution.

But note, reps without changes will give the same results all the time, which is insanity.

"Insanity is doing the same thing over and over and expecting different results" -Albert Einstein.

Please take a minute, and ponder how these concepts can help you. And how you can apply them in your life.

Learn to estimate

Lesson #8: Learn How To Estimate Software Development Efforts

This one is more specific to Software Development. But with the appropriate application, it could also benefit life overall.

Software estimation is the art of predicting how much time it would take to implement or maintain a specific piece of software.

As a software developer, you will always need to answer the question: "How long It will take to implement this or that ?" or "How long it will take to fix this or that ?" as a Software Developer. And the earlier you gain those skills, the easier your life as a Software Engineer will be.

Going through my career, I noticed that most developers have no idea of how to do software estimates regardless of how many years they are developing. I saw that many developers pretend that they know how to do it to keep a professional look. But, unfortunately, most can't provide any reasoning for their assumptions if you will ask them.

When I just started my career as a Software Developer, I was shocked when I got a technical requirement for a software product with the request to estimate how long it would take to implement it all.

I thought how it is even possible to estimate how long It will take to do something you have never done before and not one else done it before. And with the skills I had at that time, I had no idea if it is even possible to implement what the client needed.

When I asked more experienced colleagues how they usually do estimates, they had nothing to offer. They had no approach they can formulate and share with me. All they were doing were personal assumptions.

It did not satisfy me. I wanted to find something more robust and scientific-based.

I started to search for the best resources and best practices on this topic and picked a book called Software Estimation: Demystifying the Black Art (Developer Best Practices). It was not an easy read for me. But after I read the book, I understood the essence of estimation and learned different approaches to approach software estimates.

This knowledge released so much anxiety I had. Because now I had formal approaches to the estimation and my life as a Software Developer become much smoother.

I would be happy to see which estimation approach you will pick from this book and how it helped you in the comments below.

Pet project

Lesson #9: Have a Pet Project

A Pet Project is a project you do outside of your work to solve your own or just an interesting problem. And it could be any project you can think of.

Have a blog you read daily? Start writing a project that will extract summaries using NLP from new articles, so you will spend less time getting the essence of it.

Want to become hands-on with the new technology? Build a new project where you can practice and build something with it.

Notice a problem with any of the third-party software you use for Software Development? Start working on the project that will solve it. Or even start a similar project that will be better than one you are using.

Although this activity cost extra time, here are a couple of benefits that will pay off invested time:

  • It gives additional positive energy and a sense of achievement.
  • It gives an ability to perform the deliberate practice of a new technology you learned recently or in the process of learning. Hence you will become proficient with one and use it in real battles.
  • It can grow up to something more serious.
  • It can attract new opportunities and new great people to your life

When I was learning any new technology, my go-to rule was to create a pet project and immediately apply what I have learned. The learning was instant! And it was giving a feeling of progress.

And if we recall the quote of Tony Robins: "Progress equals happiness".

The pet project is a simple way to cause irreparable good in your life and serve as one of the sources of happiness in your life. Why not do it?

Share this

Alex Maistrov

Compassionate Software Developer and founder of Self-Taught Remote. His mission to help people to become remarkable remote Software Developers and self-educators from anywhere and without any dept.

Related posts

Comments:

New Comment

    There are currently no comments