Learner for Life
A little about me
I learned a lot at university. Who I am, what I care about, where I want to be. I discovered a fondness for web development and programming. I realised that the interactions between people and technology fascinate me and that if I could get paid to do something that allowed me to create or design in this industry then I’d be very happy.
I studied Digital Media. It’s fair to say that the name is a little ambiguous. The course blended a variety of disciplines to give students a taste of everything from 3D modelling and Graphic Design, to Web Development, User Experience and Interaction Design.
The course was fun. It allowed me to find my place in the digital tech scene and figure out which kinds of work I’m passionate about.
Whilst I learned a lot studying for my degree, I would say without a doubt that I have learned more in the last few years since graduating. By far.
I wanted to try my hand at both ends of the platform. This led to me deciding to apply for .NET web developer jobs, as there were several digital agencies in Bristol that used this stack.
I had no experience of .NET; just a small amount of C# for games. So I started studying.
I began with some video courses from various online platforms. I learned more C# in-depth as well as .NET MVC and SQL Server. Using the video courses I started building small web applications. Nothing groundbreaking, just your average todo-lists, movie rating sites, etc.
I enjoyed this process a lot. I was still in Brighton so I’d spend my days coding and reading for hours in coffee shops by the beach, then at night watching movies on a shared Netflix account with my partner who was living in Bristol (we called this ‘being together apart’).
About a month and a half after graduating, I was hired as a Junior .NET Developer in Bristol for a creative agency. It was pretty scary at first. Real-life software development is a different beast to coding at 2 am in your bedroom. With each day there were new challenges, stuff I had never seen before and things that sometimes just didn’t make sense (at first).
I learned more in the first six months in that job than my entire degree combined. That isn’t to say that university isn’t worthwhile (I argue that it is if you go for the right reasons), but I learned a hell of a lot more actually building web applications professionally, seeing how more seasoned developers work and interacting with a wide range of people from different professions such as design and project management.
I still felt like there were a lot of topics I could do with brushing up on, so I ended up creating a mindmap that looked very similar to a lot of ‘developer roadmaps’ you’ll see on sites like Reddit and Medium each year. I have found this to be a really effective method for figuring out what my strengths and weaknesses are.
I estimate that during my first job I spent roughly 3-5 hours a week designing and building, reading or watching stuff at home that I wasn’t directly learning at work. Of course, there were some weeks I took off to avoid tiring myself.
The next job I moved to was much more complex (in a good way).
Instead of .NET MVC, I needed to learn about .NET Web API 2, Oracle SQL, Microsoft Azure, Microservice architecture, CI, CD, Angular, Typescript, Unit Testing, automated E2E testing, the product lifecycle, working with designers, teaching new juniors with no prior dev experience and more.
How I learn these days
These days it’s easier to learn both at work and home because my current job encourages personal development time alongside sprint work.
I still map out strengths and weaknesses and look for learning resources that are appropriate to my learning style. People will always have opinions on how best to learn, but for me, it has to be a combination of building something and watching something (I still make sure to always have a book on the go though). I need to get my hands dirty.
Right now I’m focusing on Data Structures and Algorithms. Some parts are familiar, but my degree didn’t cover this and I think it will get me thinking more about the code I write in terms of performance and scalability. In addition to this, I am planning on learning some more advanced CSS concepts such as animation and grid.
When deciding on what to learn I will usually try to choose things that would be of immediate use to me. For example, learning more about unit testing or design patterns would be good because I can apply what I learn the next day. The sooner something new can be applied in real life, the sooner it’ll be cemented in your mind.
I’ll begin by developing a big picture of the technology or concepts I’m studying. My initial goal is always to get rid of as many unknowns as possible. Once I understand the big picture, I will start delving deeper by building things. I’ll also take written notes as this helps get things to sink in.
Finally, if possible, teaching other people helps get things to sink in. I am fortunate enough to work alongside someone who joined us with no prior development experience and it has been a joy to teach them what I know.
There’s a commonly used quote by Albert Einstein: “If you can’t explain it simply, you don’t understand it well enough.”.
There wasn’t much of a point to this blog post. I suppose I’d wrap it up by saying that one of the things I love most about this profession is that there will always be something you don’t know. It’s one of those crafts you can never truly master, and that’s ok. I think it’s fantastic that there’s always more to learn. Anyone that tells you that they don’t need to learn anything new is probably going to stay where they are for a long time. That’s fine for some, but not me.