Learning to learn again

Sarah Flanagan
HMH Engineering
Published in
6 min readDec 3, 2019

--

A notebook, a computer keyboard, a cup of coffee and earphones

Who remembers being in school like it was just yesterday?! I vividly remember starting my first job and thinking “this is nothing like school or college, hooray!” and as the novelty wore off, graduating that thought to “this is nothing like school or college, boo…” Gone were the days of zero responsibility or obligations, and we ruefully told ourselves that we should have enjoyed our time in class, because it was “easy”. Or was it?

I studied Biochemistry and Microbiology, and decided well after college that I wanted to give software engineering a try. And after learning (some of) the new skills required, I have a newfound respect for anyone who can absorb new information all day every day, year after year while still keeping up hobbies, sports and in-depth tv show knowledge (Lost season finale - I’m not mad, I’m just disappointed). So props to you, 14 year old me: learning, it turns out, is “hard”.

The constant level of learning required in the tech industry is no surprise to anyone — it is essential to stay on top of new technologies, the latest frameworks, the best solutions. It is also vital to everyday operations — I can’t count the amount of times I’ve learned something useful and fascinating about a language or a data structure simply in an effort to debug my code.

However, not to be ageist, but my brain is far less absorbent these days than it was in primary or secondary school, or even in college. As an adult, I get distracted easily — by my phone, my email, a funny Slack thread or a cup of coffee — my eyes get tired, and I certainly need to walk around and stretch a lot more. There is strong evidence supporting smaller chunks of concentration, but I’m not sure I ever needed the Pomodoro technique as a teen to keep me focused. Conversely, there are also studies that promote longer class times, for better information absorption. For me as an adult, small tasks or lessons are doable, but long stints of learning? Forget it (I mean, I immediately forget it…). This was less than ideal when I was re-skilling as a self-taught programmer, and certainly isn’t optimal for improving my skills now that I am employed in this wonderful place (incidentally, we are hiring!).

So how do I make my brain a nice absorbent sponge again after some years of a break from proper heads down, completely new information learning?

A desk with a computer, monitor and keyboard by a window

Think back to school days, and this will conjure up memories of the standard methods of study. Read this book, look at this diagram, write an essay on it, bing bang boom, you know it now. This, for the adult me, is not a great strategy, and I remember rote learning did not suit the teenage me all that well either. In school and college I definitely had to write more essays, regurgitate more diagrams, and read paragraphs more times than was really time effective. So I needed a different tack as a 30-something year old adult if I was to succeed in getting a job as a software engineer — I needed information to stick, and stick fast.

So what did work? Well;

Learn by doing

There are an endless number of tutorials and courses on the internet (free and paid) on any number of web development topics to choose from, really the only hindrance is choosing which one to follow. For paid courses I paid attention to reviews to decide which to pick, and for anything free, I prioritised documentation from the creators of the library/framework/what-have-you that I was working with at the time. There really is no substitute for getting your hands dirty so to speak when learning, even when that dirt is mostly coffee and keyboard grime. The important aspect was do the tutorials, build the apps, and make all the things.

Repetition

Further to the above, I didn’t just do one tutorial and assume I had all of React nailed (oh goodness, far from it — hooks?!). One tutorial gets your project up and running, several exposures to the technology gives you a better understanding of its capabilities in that context. I repeated or did similar tutorials or remade projects for a lot of the core principles I wanted to learn on my journey, which also helped me expand my knowledge by comparing and contrasting different technologies and methods.

Make mistakes (and then debug them)

Every engineer, on a regular basis, has those moments of head-to-keyboard-repeat, when you either realise what mistake you made in your code or methods, or even worse, when some eagle eyed colleague points it out. These lessons are hard learned, but not easily forgotten either. Also, relevant pro-tip, the earlier as a new software engineer you learn to regularly commit AND PUSH your code, the better. 🤦‍♀

Read all around you

Contrary to the above comment about rote learning, I do recommend reading to supplement learning — to a point. Lacking a basis in computer science theory, and basic web fundamentals in general, I did find it useful (and still do!) devoting time every day to reading blog posts about new technologies, long standing theory, frameworks, and all things tech and web. I also read some good books on general programming principles, such as Pragmatic Programmer, and Clean Code, but I would be hesitant to recommend an academic tome on Java to a fellow beginner. Context is key, and if you don’t have the basics, don’t jump in at the deep end!

A MacBooPro with code on the screen, and a cup on a coaster

Struggle (a little)

I honestly actually enjoy a little struggle when I’m learning, maybe because it makes solving a problem even more sweeter (or because I’m stubborn?), but it also helps massively to cement a solution in your mind. It forces you to turn the problem on every end, do your research, and think about it from different perspectives, and also instills confidence in your abilities once you have the answer. Any problem I solved after a bit of puzzling, or even just struggled with a bit before seeking guidance, definitely stuck with me longer than one I immediately asked for help with, and to that end…

Ask for help

Hey. This stuff is hard. It is ok to need someone to point you in the right direction, be it from StackOverflow, Github, or a real live person who knows the subject matter. I was lucky enough to have several patient people willing to answer my questions, and HMH is full of friendly faces of varied levels of experience that can help you out of a jam.

Remember that though it’s hard, you GET to do this

Not to say that we should all be grateful to have to work for a living, but coming from a very different industry ideologically, the huge draw to tech for me is the scope for innovation. As engineers, we can write our own way of doing things, we can choose to use a different library or framework, we can delete it all and start again (not recommended lol), or we can even write our own languages. Having personally trained in subject matter built on rules and regulations (for good reasons), standard operating procedures and physical limitations, this industry is a blank canvas of opportunity and flexibility in terms of how we choose to build something. And that feels pretty amazing!

While the above things worked and continue to work for me, that doesn’t mean they’ll work for me forever, or that they will for everyone else. Everyone works differently, and that adds up to a great range of experiences and ideas, which in my opinion gives engineers more perspectives and options for making something cool. As long as you stay curious for knowledge and keep trying to find your way of learning, we can someday beat that pesky Imposter Syndrome that plagues us all, and enjoy this man-made industry. The most important thing about learning, to me, is to never ever stop.

Come work with us!

Sarah FlanaganAssociate Software Engineer. 💻 Former Microbiologist/Immunologist. 👩‍🔬 All weather cyclist. 🚲 Serial (cereal) snacker. 🍫 Loves a good true crime documentary 🔪

--

--