Git Product home page Git Product logo

crom-course's Introduction

WELCOME TO THE PRECOURSE!!!

Please Read Everything Before Proceeding...

Welcome to the Codesmith Precourse.

This precourse is designed to help you become experienced in the fundamental JavaScript concepts. Many of the challenges may be familiar, especially in the first portion, but please be patient since a large final project awaits in which you will utilize all your JavaScript skills. Part 1 of the precourse is designed to solidify your basics in JavaScript.

This precourse will truly help you understand the core material and get you ready for our full time program. Plus, it is a great opportunity for you to show us that you can handle our rigorous curriculum.

If this is challenging, don't be worried! Getting used to the challenge will be a great asset to you throughout the Codesmith program and your entire development career.

What OS should I be using?

  • If you're using Mac OSX, you're going to be okay. We use macs here, too!
  • Linux users, you have nothing to fear either.
  • If you're using Windows, we recommend installing Ubuntu and learning how to use linux and unix commands. Follow this link. You don't have to pay for it! Follow the installation guide, Learn how to install software with your terminal, and you'll be on your way to linux mastery.

How do I get started?

Style guide

One of the signs of a great software developer is the ability to write clean, readable, and maintainable code. This means code that is indented appropriately, uses whitespace when necessary to make lines more readable, and adheres to certain consistent stylistic approaches and industry standard best practices. For instance, using const instead of var when a variable isn't modified after its creation allows the JavaScript engine to gain some performance benefits when executing your code, and it lets other developers reading your code know instantly, without any extra cognitive burden, what your intentions are for a variable. Other examples are not modifying function parameters unexpectedly, or making sure to place spaces in between operators such as +, -, =, etc.

Here at Codesmith we follow the Airbnb styleguide, a comprehensive and opinionated styleguide for JavaScript. Follow the Airbnb styleguide and your code will look more profesional and it will be easier to show off in job interviews after Codesmith! You should install a linting plugin such as eslint or jshint for your text editor and configure it to follow the Airbnb rules - this way you'll get warnings in your text editor automatically when you don't follow the guidelines. For example: here is linter-eslint for Atom.

You Need To Learn The Command Line

Still using the Windows Explorer or Mac Finder? These tools have a graphical interface (pictures of folders and files). However, many of the tools you'll use as a developer lack a nice graphical user interface (GUI). In order to use them, you'll need to be familiar with the command line. This is a management interface using only text. Don't worry! Once you get used to it, you'll find it makes your life much easier. You can use any resources you like. We recommend reading these.

You Need To Know How To Use GitHub

It is important that you get familiar with GitHub. We will provide you with all the challenges through GitHub and you will be submitting your completed work to use through GitHub. The way we use GitHub is slightly different so make sure you read the "GitHub.md" file to get yourself familiar with the processes. Some knowledge of the command line will be necessary. Also, Github is very popular among well-known companies and knowing how to use it will undoubtedly be a great skill for you in the future. YOU NEED TO FORK AND CLONE THIS REPO SO READ "GitHub.md" CAREFULLY TO LEARN HOW! In addition, here is a video tutorial.

Instructions For The Precourse Challenges:

We divided part 1 of the precourse challenges into three different levels. Each level has its own folder. Each folder consists of four items (ignore any other files/folders or items you see):

  • Skill Builder File ("README.md")
  • Source Folder ("src")
  • Test Folder ("test")
  • Index File ("index.html")

You will only modify the codes inside the "main.js" file located in the source ("src") folder. MAKE SURE TO READ ALL COMMENTS inside the "main.js" file; these will be your instructions for solving each problem. DO NOT CHANGE anything in any other files or folders. You may take a look at the test folder to inquire how we are testing the correctness of the challenges. After you are done with each challenge open the index file (index.html) on the browser (Chrome or Firefox) to display the test results. For incorrect results, a red "x mark" will display beside the test that did not pass and for correct results, a green "check mark" will display beside the test that passed. We encourage you to look at the displayed error message; it will help you figure out what you might need to fix.

The Skill Builder File provides resources to instruct you on these challenges if needed. Read the README files if you get stuck.

Checkout The Skill Builders For Each Level:

What do I do when I am done?

Please read the portion labeled "What do I do when I am done with a unit?" in the following link: pushing to Github.

Setting up a Code Editor

Code is just text - instructions for the computer written in plain text. Therefore we could write it in a simple text editor - but most people choose to use a more sophisticated text editor - VS Code or Atom - they've become the standard in software engineering. They gives us features like automatic highlighting of different JavaScript keywords, auto-complete of terms, automatic indentation of our code, and a rich plugin ecosystem that allows us to extend it's functionality in many ways. Explore to see which you prefer.

Setting up VS Code (free)

Download VS Code: https://code.visualstudio.com/

Git integration in VS Code: https://code.visualstudio.com/docs/editor/versioncontrol

Integrated terminal in VS Code: https://code.visualstudio.com/docs/editor/integrated-terminal

Managing extensions for VS Code (includes themes): https://code.visualstudio.com/docs/editor/extension-gallery

Launching VS Code from a terminal: https://code.visualstudio.com/docs/setup/mac

Setting up VS Code:

https://www.youtube.com/watch?v=SYRwSyjD8oI

Setting up Atom (free)

Downloading Atom: https://atom.io/

Atom themes: https://atom.io/themes

Video on setting up Atom:

https://www.youtube.com/watch?v=U5POoGSrtGg

Problem solving as a software engineer

How to become a programmer, or the art of Googling well: https://okepi.wordpress.com/2014/08/21/how-to-become-a-programmer-or-the-art-of-googling-well/

How to ask a good question on Stackoverflow: http://stackoverflow.com/help/how-to-ask

How to ask smart questions as a software engineer: http://www.catb.org/~esr/faqs/smart-questions.html

Software engineer career

Map of modern software engineering:

https://www.youtube.com/watch?v=zXqs6X0lzKI

Impostor syndrome (we're all in this together) http://www.hanselman.com/blog/ImAPhonyAreYou.aspx

crom-course's People

Contributors

markgeeromano avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.