"Smallest Unit of Learning": Dealing with the ever expanding world of development
Tags: career, codenewbie, beginners, programming
Published: 2021-09-05 17:09:04

There is so much to learn and know in software development that it can be overwhelming. When you first set out to learn it's like you're a child in the middle of a huge field full of toys that you know are amazing but have no idea how to play with, or what they even do.

As you progress through your career this feeling subsides a little bit as you build the foundational skills that let you pick up a toy and think "huh, this looks like that other toy I played with last week but it's red and made from cork instead of plastic" and you can muddle your way though.

## More technology to learn than time to learn it

The problem that remains through all of our careers is that there is significantly more to learn than any one person can hope to cover in a life time. In fact I would go so far as to say that many developers already interact with enough different technologies each day that even learning all of those properly is a lifetimes work.

For example, gone are the days where a web developer could hold the entirety of that industry's knowledge in their head. 20 years ago when the web was first taking on a form that would be recognizanble as what we have today, it was probably possible to know everything about how it worked. Now, that just isn't the case, we have layer upon layer of abstraction running so deep that we've made a technological Mariana trench, and we are still digging!

## What to do as a code newbie?

Depending on where you are in your career I see two options. If you are new to coding and still finding your feet, then focus on fundamentals. I'm not one of these militant people who says you must master data structures and algorithms before even looking at things like React or Django but I do think it's important to know where you would like to work for the first portion of your career and focus on the fundamentals in that area to begin with. 

If you want to be a front end web developer then HTML/CSS, JS and React are probably your best initial focusses. f you want to be an iOS developer then you want to learn Swift, UIKit and a smattering of SwiftUI.

Don't hop around too much or get distracted by the new and the shiny, you will keep picking up and putting down toys and never really learn how to enjoy one fully. All those other technologies will be there to pick up in the future, and having good fundamentals in one area will actually transfer very well into other technologies - you are rarely starting from scratch again.

## What to do if you're mid career?

If you are mid career, like me, then you have probably already been through a few cycles of "learn it all" and "I don't want to touch a keyboard for a second longer than needed" already. I have oscillated between fear of missing the next big thing and just wanting to go back to using JQuery many times already.

The thing that I have recently found that helps is to not force myself to learn everything new just because the whole world seems to be focussing on it. Instead look at what my current job, or the next job I want, actually need and then make something fun in that technology.

This is hard if the next thing I need to learn is a bit boring or specific to a larger scale application but if it's a new flavour of database or front end tech then I will spin up an old project I know pretty well and reimplement some, or all, of it in said new technology. These projects are small, fun and useful to my life, so I usually quite enjoy pottering about with them because I don't need to think through the business logic too much and can focus on the fun of learning a new thing.

## Summary

Regardless of where you are on your coding journey you will feel pressure to learn and to keep up but don't loose sight of the end goal, which is to make products and solve problems. With a few exceptions it doesn't really matter what technology you use and hopping between them isn't all that hard once you have a good grasp in one area. Find enjoyment in the learning process and don't try to take on too much, focus on the smallest next unit of learning that can add value to your daily work.