Building a process to help learning (as a software developer)

Learning Library
4 min readMay 28, 2021

Learning to code is not like learning anything else, you are constantly struggling to keep afloat to solve today’s problem, there is no qualification at the end of the tunnel and no defined tunnel, only another yet unknown problem tomorrow on an undefined path of things to learn.

You only really start to learn when you have to research problems yourself.

When I started learning to code I knew it was going to be hard, i thought that it was going to be like all prior learning experiences i have had, however it is not, it’s lack of clarity makes it considerably harder.

This brings both stress from constantly not knowing what to do or how to do it, but also growth as you learn from those struggles. You begin to appreciate that in the long run the shortcut you took may actually take you longer to debug than doing it right in the first place, but that debugging is where your learning comes from, those hair ripping moments when you find a missing bracket in production code is where you actually get better at what you do.

Creating a your own process is a lifetime’s work. It is unique to a person and constantly subject to change. This is some information about my current process, which seems to be going ok for me.

Organise yourself

I now have four directories on my computer for coding.

  • CV
  • Tutorial Projects
  • Tech Tests
  • Projects

The first three are git repositories, each has a readme which contains necessary information, ‘Projects’ is just a directory with git repositories for each individual project within as they may require isolation from each other. All are hosted on github and mostly public.

With this setup i have been able to create a list of todo’s in Tutorial Projects and in Tech Tests to give me clarity over what it is that i should be working on next. By ticking these off and adding links to the completed work, I have been creating a file to evidence all my work and am holding myself publicly accountable.

Projects, like my portfolio website or other projects I have are created in Github are planned on a Notion.io kanban board.

Focus your attention

Imposter syndrome is real, you will feel like you know nothing for a long time, that is because you don’t, there is an unlimited amount of things to learn in software development and it is impossible to learn it all. You will realise others are `working it out as they go along` and it is this skill that you should aim to improve.

There is a great deal of talk online about not getting stuck in ‘tutorial purgatory’ and learning by creating projects, and i fully agree that project work is the best way to create a long lasting knowledge, but to skip over tutorials when you are a novice can be daunting and learning happens more when you are working within the zone of your comprehension — don’t try to learn complexity before you know the basics.

For your first few languages completing a general catch all tutorial is probably essential, after your have a couple of years experience you may be able to skip this step, but until you do complete the general tutorial and enjoy the handholding.

In my early learning I found that i was drowning in resources, and being a ‘collector/hoarder’ of information I wanted to keep track of it all, don’t do this, your time could be better spent creating things and reading up from docs online when you get stuck. A better course of action would be to create a record of how to start a project or a checklist you would like to complete when reviewing someone’s code — a toolbox for your processes, but not information you need to refer to.

A Process

This is roughly what I am currently doing when presented with a new language / framework to learn.

  1. Complete the most popular tutorial on udemy.
  2. Complete some tech tests and try to get feedback from a friend.
  3. Create a couple of projects

TLDR: Relax, focus and solve problems

The only real way to learn how to code is to solve frustrating problems with code yourself, you can’t rely on a tutorial to tell you what to do, or a manager / senior to hold your hand all your career.

You can waste a lot of time struggling on problems that are not relevant to what you want to learn, or are too hard for your current level of skill, so try your best to focus on what is important at this stage of your career, often it may just be working through more tech tests and more projects and that is ok.

Best of luck on your learning journey.

--

--

Learning Library

Motivation is what gets you started, habits are what keep you going.