Learn how to learn

Learn how to learn

Entering a new job can be scary if you’re a software engineer. You have to learn a brand new code base, a new technology stack, new practices, new organizational cultures, new code standards, etc. You may even have to learn a brand new domain. It can be overwhelming and downright intimidating unless you know how to learn.

Here’s some tips on how to learn things faster.

Admit you don’t know

The first step of learning is to admit to yourself that you don’t know it. If you spend all your time trying to convince others you already know something, you won’t ever have the time to learn. Instead of nodding along and saying “yes” as people throw foreign buzzwords at you, swallow your pride and say you don’t understand. You’ll actually get an explanation and increase your knowledge instead of just sitting in the dark.

Put in the effort

Learning things will be difficult if you don’t put in the effort. Learning by osmosis is far too slow and is the lazy way to pick things up. You need to recognize that you’re not trying to get ahead, you’re trying to catch up! Until you know enough to work smart, you’ll have to work hard. Set aside time to learn and follow through.

Write it down and google it

Write down every single term you don’t understand. Every acronym, every term, every usage of the term. Write it down. Then, when you have time, google it. Search those phrases online. Find out what they mean. Find out in what contexts they are used. Understanding new things requires you to understand the language. Even words that are familiar can mean different things. For example, the words in the term “Issuing Bank” are both common words, but the meaning of the term itself is very specific. Assuming you know what the term means can lead to problems down the road.

(an issuing bank is a bank that provides credit cards to consumers)

Break it down into smaller pieces

Looking at a 100,000 line codebase with brand new technologies is difficult. Looking at a single file with a single API call is much easier. Instead of trying to absorb everything at once, try to understand smaller pieces. Figure out what a method call you see everywhere is doing. Trace the code from a single common user request to the database. Eventually, you’ll find patterns in even the worst code bases that you can then apply to other parts of the system.

Don’t take things for granted

Large systems have many moving pieces, which can make even small changes have unintended consequences across the system. That may lead to confusion and you may unintentionally learn ritualistic behavior. For example, if in a large system a database call only worked if you called connection.foobarMeepMeep(), you may attempt to call connection.foobarMeepMeep() every time you access the database, even if you don’t need to. Take the time to fully understand any code you writing.

Skip over stuff that doesn’t matter

The corollary to not taking things for granted is to understand when you’re going down a rabbit hole. Your time is valuable, and you should take care to filter out as much irrelevant information as possible from what you’re trying to learn. This takes practice, and sometimes you’ll filter out something that ends up being critical to what you’re learning, but often you’ll find it easier to understand in the long-run. Avoid going off on wild tangents. Focus and skip over stuff that doesn’t matter.

Use resources available to you

Chances are you’re not learning something that’s never been learned before. People before you have done work and shared their results. Look for them. Read the documentation. Watch videos. Do tutorials. Ask your teammates. Not using every resource at your disposal is a waste.

Don’t copy paste

If you ask your teammate for the command to run the server, chances are you copy-paste it. After all, it’s easy to copy-paste a command or code that works. I’m telling you don’t do that. Type it out yourself. Understand exactly what you’re typing and why it’s necessary. Give your physical muscle memory a chance to shine. Typing it out yourself has the effect of ensuring you acknowledge the actions you are taking.

Be intentional

Tell yourself you want to learn a specific thing, and then go learn it. You can gloss over general topics, but you’ll never gain a true understanding unless you mentally try to link things together. Intentionally learn topics instead of collecting random facts and tidbits. Deep dive into the things you need to understand.


Learning is a lifelong process and it is never done. You’ll never learn everything, but don’t let that stop you from trying. Enjoy the ride, and share what you learn with others.

-----

Published 2016/12/23 on Medium.



To view or add a comment, sign in

More articles by Joseph Gefroh

  • How to communicate effectively as a leader

    Tips on how to avoid dysfunction in your team Many first-time leaders see their teams devolve into chaos and their…

    6 Comments
  • The Dreaded Stack Trace

    You crack your knuckles after a furious session of coding. Inspiration had struck like divine lightning, and you took…

    2 Comments
  • A Dirty Hack

    A client urgently called, asking us to change a message on a page to be worded in a way that was very specific to their…

  • Is it worth building?

    I’ve spent my fair share of time wasting effort on things that ended up not mattering. I’ve spent hundreds of hours…

  • 3 seconds

    When you’re a leader, you’re always live and on stage. Every single word you say is going to be scrutinized.

  • Everyone is different

    If there’s a single unavoidable truth you have to accept in managing software engineers, it’s this: everyone is…

  • Relearning the Wheel

    Software engineers waste a lot of time and effort. The web development ecosystem has seen an explosion of new…

  • Leadership - Dependability

    One of the worst feelings is relying on someone to do something and being let down. If you’re lucky, it only means you…

  • We’re all impostors

    I used to feel like I was an amateur masquerading as a subject matter expert. I would dish out advice and opinions…

  • The Three Pillars of Effective Teams

    If you lead enough teams, read enough books, and heed enough advice, you’ll start to see a certain pattern emerge when…

Others also viewed

Explore content categories