Web DevelopmentPrep Course

Welcome!

We are super excited that you want to join DecodeMTL. We have created this prep course to help you prepare for your technical interview.

You should expect to spend 40 - 60 hours to get through all of the material.

At the first sign of confusion, you should take a step back and re-read what has confused you. Search Google, MDN or Stack Overflow for answers to your questions.

Part 1: Getting Started

In this part, we are going to get the tools necessary to start the prep work.

Do your work

  • Download Google Chrome

    Google Chrome will be used as the main development browser during the course. Its integrated set of debugging tools makes developers’ lives easier. Chrome’s rendering engine is used by multiple browsers, giving you a good idea of what your pages would look like in many different settings.

  • Signup for a GitHub account

    Git and GitHub will be a constant part of our workflow. While Git will enable us to keep track of the history of code that we write and manage variations in our code, GitHub will enable us to share and collaborate the code we write.

    For this section, you are only tasked with signing up for a GitHub account. The last section of the prep material deals with your introduction to Git and GitHub.

    This is a good place to mention that your GitHub username and profile have the same visibility as your profiles on facebook, twitter or LinkedIn. GitHub is the network of code in the same manner that LinkedIn is the network of professionals.

    Employers will look at your GitHub profile for signs of your experience and interest. At this point, make sure to create a profile that represents you. Later on, we will fill your GitHub with various projects that will demonstrate the knowledge you have learned through DecodeMTL.

  • Signup to Codecademy

    Codecademy has tons of tutorials on many aspects of computing and development. We will be using it to learn the fundamentals of JavaScript.

  • Signup for Cloud9 IDE

    The same way we edit our spreadsheets in Open Office or Excel, web pages and web applications need their own editor. Cloud9 is an IDE — Integrated Development Environment — in the cloud. This is just technical mumbo-jumbo. It’s a text editor on steroids, and already has installed most of the tools we will need during the bootcamp. Everything you do in Cloud9 is saved online, so you are able to start coding from any computer that has internet access. You don’t even need to install anything on your machine.

    Make sure to use the “Sign in with GitHub” option when signing up to Cloud9. This will link your GitHub account to your Cloud9 account, allowing for an easier workflow between your code editor and source code repository.

    When you create a new workspace in Cloud9, you are actually creating a virtual, linux-based computer. In the next section, we will learn how to control this computer using the Command Line.

Checkpoint

Before moving on, make sure that you have the following:

  • A GitHub account
  • A Cloud9 account

Part 2: Command Line

You are probably used to interacting with your computer through a mouse. A lot of the things you do on your computer use the mouse:

  • Opening an application by double-clicking on it
  • Moving a file to another directory by dragging and dropping it
  • Saving a file by clicking File > Save
  • Looking inside a directory by double-clicking on it
  • Deleting a file by right-clicking on it and then clicking on Remove or Delete.

But as a power-user, we often learn some keyboard shortcuts to make our life easier. For example, you should be familiar with Ctrl+C (or Cmd+C) to copy some text, or perhaps Cmd+Del on a Mac to delete a file.

It turns out that all computer systems have a command line interface in addition to the graphical user interface we have become so accustomed to. Some systems that you will be dealing with as web developers do not even have a GUI.

For these reasons, you should be familiar enough with the CLI to perform some basic tasks. In order to gain familiarity with the CLI, go through the following readings and tutorials.

Do your work

Checkpoint

Before moving on, make sure you can at least answer the following questions:

  • How do I figure out which directory I’m currently in?
  • How do I list files sorted by the date they were last modified?
  • How do I find out how much disk space a directory is using?

Part 3: Programming with JavaScript

JavaScript is the main language of this bootcamp. We will be using JavaScript for the front-end – the browser – as well as the back-end – the server and database.

Do your work

  • Read: What is programming?

    Read this to get a general overview of programming. As you get your hands dirty with code, it’s always a good idea to remind yourself of the end-goal.

  • NEW: Do: Udacity JavaScript Basics

  • NEW: Do: Udacity Intro to JavaScript

  • Do: Codecademy jQuery track

    This tutorial will show you the fundamentals of jQuery, a JavaScript library (fancy word for piece of code) that makes it easy to manipulate a web page live, without refreshing it.

  • Do: jQuery AJAX tutorial

    This will be your first introduction to asynchronous programming. The JavaScript engine can only do one thing at a time, so when something takes too long we conceptually give JavaScript a “phone number where it can call us back”, so that we can do other interesting things instead of waiting.

Checkpoint

Before moving on to the next section, try to answer the following questions:

  • Describe the activity of programming in your own words, using a few sentences.
  • Create a JavaScript function that takes an integer as input, and returns all the prime factors of the number in an array. You don’t need to pay attention to the performance of your code.
  • Write a piece of jQuery code that uses the browser’s alert function to open a popup when the user clicks on any button that has the class “popup”.
  • Optional/Advanced: Write a piece of AJAX code that fetches the MDN search results for “javascript” and prints the title of each search result on the console.

Part 4: HTML & CSS

HTML and CSS are an integral part of web development. While HTML is used to give meaning to content, CSS is used to style that content.

Do your work

Checkpoint

If you don't already have one, create a simple HTML and CSS personal webpage that showcases what you have learned in this section.

Part 5: Git & GitHub

Source code management is an integral part of writing software. Throughout the history of a piece of software, be it a web site, web application or other, changes will happen. Often, features that are not ready for prime-time will have to be developed in parallel. And in most cases, software will be worked on by multiple developers.

Git is a tool that empowers developers to accomplish these features without having to worry about the state of the project. If you’ve ever written a Word document, you may have found yourself creating a copy at some point, in order to try something else. Among other things, Git gives you the ability to branch off and create new features while keeping the working version of your software clean. It also lets you go back in time to a previous working version and examine it, without ever losing your work.

GitHub is like a “social network around Git”. It is a platform that lets you publish your Git-managed projects online for others to see and collaborate on. Your GitHub profile is the equivalent of your LinkedIn profile for technical employers. In it, anyone can see what projects you have shared and contributed to. This is why it is important to document your adventures in web development by publishing as much of your work as possible to GitHub.

Do your work

  • Do: Try Git

    Complete this Git tutorial provided for free by the nice people at GitHub. Git is a program that you have to install on your system. Fortunately in our case, since we are doing all our work inside the Cloud 9 IDE, Git is already installed for us. Cloud 9 has even already configured our Git installation to tag all the work we do with our name and e-mail address.

  • Read: Git, the simple guide

    If you are feeling adventurous, you can try this Git tutorial on your own computer. However, it would be sufficient to use a Cloud9 workspace. If you remember, Cloud9 workspaces are actually virtual computers running the Linux operating system. Git is pre-installed as part of your Cloud9 development environment.

Checkpoint

Make sure that you can answer most if not all of the following questions. Some of them will be part of your technical interview:

  • Describe what is Git in your own words, using a few sentences.
  • Describe what is GitHub in your own words, using a few sentences.
  • Do you need an internet connection to use Git?
  • Do you need an internet connection to use GitHub?
  • What is the difference between git add and git commit?
  • What is the difference between git commit and git push?
  • Publish the webpage you created in section 4 to Github pages. Hint, read this: https://pages.github.com/.

You are done :)

Pat yourself on the back. If you’ve successfully completed all the sections above, you should now have a pretty solid introduction to many of the tools and languages used in web development.

The next step is to complete your technical interview. If you have not yet scheduled it, you should contact us.

Most people tend to over prepare for their technical interview. Generally, if you have gone through all of the material, you should be fine. If you fail your interview the first time, you can always study more and try again.

Here is what you will be tested on:

  1. You have a GitHub and Cloud9 account.
  2. You are OK with the basics of HTML and CSS. To show it, you have a small web page that you created and uploaded on GitHub Pages.
  3. You are OK with the basics of JavaScript strings, numbers, booleans, arrays, objects, functions, variables, loops and conditionals. You can declare a variable, assign it a value, create an object with some properties, assign new properties to an object, do a basic loop, run code conditionally and create basic functions.
  4. You are OK with the basics of the Mac or Linux command line. You can move from directory to directory, list files, see which directory you're in, and operate the basics of Git (add, commit, push) from the command line.

If you have any questions, don’t hesitate to e-mail [email protected].