Learn Fundamentals

As you are working towards becoming a Software Engineer...

The most important skill you will learn is not going to be learning how to code.

It's not going to be mastering a programming language.

It's not going to be how to build apps.

Through this process, the most important skill you will gain is Learning How To Learn.

The point of the tutorial below is to give you a scaffold to start practicing.

However, don't forget to ask yourself questions around your own learning style.

Do you learn better by reading documentation or by watching videos?

Do you learn better by implementing projects or by doing pair programming challenges?

These are all critical questions for you to answer.

Once you do discover your preferred learning style, everything will click into place.

How to Start Learning:

If you're just starting out, our advice is to begin by going through easy HTML & CSS tutorials.

After a few weeks, we highly suggest you begin learning JavaScript.

There is a lot of debate on what language you should start learning first.

We recommend learning JavaScript as every single modern website on the web uses HTML, CSS & JavaScript!

This will ensure that whichever path you choose, you'll be have a powerful tool in your toolbox.

After you learn the basic language syntax, about functions, arrays and objects ...

Please Stop!!!

At this point, the best next step is to put your knowledge to a test.

It will be challenging to go from doing tutorials to actually solving basic Algorithm questions using JavaScript.

Most of the problems will see difficult and you will have no idea what to do.

Try to power through those moments, by studying solutions line-by-line.

Writing out in plain English what the function is doing.

Once you've done that, redo the problem from memory.

To help you learn core programming concepts we've put together a few resources that you can find below.

And of course, don't forget to take advantage of the Pair Programming sessions!

Level 1: JavaScript fundamentals

  • CodeAcademy: JavaScript

    • Great starting resource for understanding the basic syntax of JS

  • Udacity: JavaScript

    • This tutorial is a bit more advanced than the last one but will give you a deeper understanding of the most important JS fundamentals

  • CodeWars

    • Will help you learn how to solve small problems with code and start to think like an engineer

    • Easiest questions are Level 8 and hardest questions are Level 1. Start from Level 8, take about 15 to 20 minutes to solve the problem. If you can’t solve it in that time, look at the solution. Then, look up anything you don’t understand in the solution, read the comments, and type the solution yourself. This will help you understand how to write good, clean code.

    • Once you are able to answer over 80% of the questions on a level, move on to the next one! Repeat until you get to level 6.

Level 2: Web Development fundamentals

  • Note: Continue doing CodeWars exercises until you get to level 5.

  • CodeAcademy: HTML & CSS

    • Understand the basics of building a web page

  • FreeCodeCamp: Responsive Web Design Certification

    • Complete each section except Applied Accessibility

  • JavaScript 30

    • Learn how to build projects using JavaScript, HTML, and CSS

Level 3: Basic Web Development Projects and React

  • FreeCodeCamp: Front end libraries projects

    • Complete two or three of these

  • Stephen Grider Udemy Course - Modern React with Redux

    • Great course for the fundamentals of React and Redux