How I am learning to code

This post was written by our intern Sina H Gudbrandsen after she ended her 8 weeks long internship at our Norse office in Oslo. She is a service designer with a passion for awesome user experiences, and has also learned to code so that she can understand the underlying technology that makes it all possible.

Tips and tricks that might make learning easier

I am an interaction design student and at the moment learning React, and with that I have also learned a few life lessons on how I can learn better and have a less frustrating journey. When I first started learning programming I had a teacher that was a never ending source of help and answers, but now I am trying to learn React on my own and the challenges are big and many. I have listed a few things that I have found to make learning to code be a bit less frustrating. Or learning anything in general.

Power through

See your own development

The number one thing that I have to remind myself every single time I am stuck and on the verge of a breakdown, is that I am at the very moment learning something new and evolving. There has not been a single breakdown that hasn’t resulted in me learning something new. You will always be better than what you are at this exact moment. When I first started learning, I remember HTML as being impossible to understand and thinking that I would never be able to fully understand what I am doing. And then I faced CSS… and again thinking that this was a challenge that would take me ages to get through. But by the time I was introduced to Javascript, html and css was my comfort zone.

The world of programming is very big and you will never know everything, and that should not be your goal. Even experienced programmers have to Google for answers on occasion. It’s important to remember that everybody struggles when learning something new and that you’re not alone in thinking that you might never master code.

The reality is that learning a new skill is hard no matter what it is. Practice makes perfect, as we annoyingly say. I try to remind myself I will not learn anything over night and that I have to put in an effort if I want to become good at anything in life.

Learn the basics

Understand why it works

One important step is learning the basics before moving on. It’s important to understand the works of your code and skipping the “easy” steps will not help your progress. Knowing how your code works and why it works is an important step to becoming better and creating good code. So much about learning to code is about knowing where to look and solving problems based on the basic principles of why things work the way they do. One tip is writing down an explanation of what you have just learned in a way that could explain the concept to someone else!

Repeat the easy steps until they are engrained in you

I also learned the hard way to have some focus on code quality. After a while your code will become unreadable if you don’t focus on writing understandable code. Sometimes you have to use the same code in several elements in a project and if you don’t understand what is what, it will become hard to reuse. I try to shy away from writing in shortcuts for now so that I won’t have any issue understanding it after some time has passed. It will also help when the time comes for others to understand your code.

Set goals

Also called a todo list

I learned very early on that shooting for the stars everyday will just end up in me being frustrated and giving up. Creating fully fledged projects every single day isn’t realistic and it shouldn’t be. Start your day off with setting several small goals that you might be able to reach within the next hours. Or days if you’re feeling brave. This will help you feel like you are accomplishing things every single day. Which your are! It can at times become very overwhelming, but if you focus on your own doing you will slowly become better and make an enormous progress.

I tend to feel as if I haven’t learned or accomplished anything throughout the day if I end up stuck on a task, but seeing my to do list and what I have checked off gives me a sense of accomplishment regardless of what I didn’t fully understand.

If you are planning on creating or coding a bigger project, setting goals will become an even more important step. It basically means that you have to plan ahead. Write down every single element that your app or website will include and what you will have to code to make it complete. Doing research ahead of time and knowing what components will work together will save you plenty of time and frustration.

Use the smörgasbord of tools that is offered to you

Practice. Practice. Practice

There are so many amazing people who have made every single tool under the sun to help you learn. It’s important to use this to its full advantage. The list of online courses, videos and articles you can use to become the best you can be is never ending. You just have to do one thing — practice! Even though it’s tempting to click “next” when you have been listening to Bob Ziroll go on about props for what feels like the entire day, it’s important to actually execute the code. Learning without doing is sadly very hard and won’t make the process any easier.

Try making all the things, save them and use them as something you can look back on when you’re stuck in another project.

Useful Sites

At the moment I am learning React and I’ve found some sites that have kept me from banging my head into my computer screen. Find good sites that help you gain the knowledge that you are after and if you find a tool that has a community that is there to help each other, that is golden!

Scrimba
This has been my number one when diving into React. Coding does not come easy to me and I need someone to explain how the basics work in order to understand them. In Scrimba you can try solving the exercises on your own before watching the video if you are up for it, and if you’re stuck you can watch the video and then try again.

Codecademy
For me this was helpful after doing the Scrimba React lesson because I found it useful as a tool to learn the basics even better.

FreeCodeCamp
is a source of never ending challenges and lessons. Dont be scared by the fact that the page look like absolute sh**.

Medium
An obvious one, but the amount of in-depth articles you can find that will explain a concept in detail is astounding.

Stackoverflow
A never-ending website of code, but take it with a grain of salt. Use it as a way to understand the code. It might not be the best idea to take the entire chunk of code and use it to solve a problem.

Highbrow
I personally have not used this website, but it seems promising. Highbrow will email you a new lesson every day for 10 days (depends on what course you are taking). Free for 30 days so might be worth trying.

Youtube
Again an obvious one, but use the free website for what it is worth. There are some amazing tutorials on Youtube, but remember that some tend to skip the basics, and that might not be what you need.