Skip to content

JSLAB2017/JSLAB

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JSLAB

JSLAB

Welcome to JSLAB (JavaScript Lab) pronounced "JS Lab".

Too long didn't read... (tldr;)

Our goal here is to get you interested in the world of Programming and Computer Science through weekly workshops (labs). Each lab will have the same format every week and will consist of an official two-hour meeting (1 hour basic JS lecture and 1 hour lab), followed by an unofficial happy hour (socializing).

Lab starts at every other Wednesday 7:00 sharp as of 12/21/2016. If this lab becomes more successful, we might change the meetup time. Eventually, we want to make this a weekly program, so you will be able to get credit for your lab work and labs will be a sort of cheaper and less formal kind of code camp. If you are interested in receiving lab credit, please let a volunteer know after the lab is over and please sign-up for the next meeting.

  • Hour 1: The Basics

    • Every week, we will cover the very basics of the JavaScript language (ES5-ES7 - The ECMAScript Specification). This is important because it allows new people to join us every week, regardless of their experience level. This hour will become redundant for many attendees, so the basics are optional. Eventually, you can receive partial credit (0.5) for every time you attend a follow-up basics session. 1 Credit
  • Hour 2: The Lab

    • You learn by doing. So bring your most polite and professional self to the lab to participate with other attendees and volunteers. This will be an open lab session, where you can ask any questions and receive direct help from volunteers, professionals and enthusiasts. We will be happy to go over your projects and problems, homework, etc. In fact, your project does not strictly have to be JavaScript. It may be math homework, another CS language, statistics, whatever. Just remember that this is JSLAB, so our JS volunteers might not have the expertise you are looking for. You may have to ask around to see if someone else can help. 1 Credit
  • Hour 3: Socializing

    • You are human. We are all friends (or will be). Use this time to work on human skills. Feel free to talk about coding, work, politics, economics, whatever. Just be polite, friendly and kind. This is a strictly no-conflict zone. People who don't respect other people may be asked to leave and may be put on a permanent black list. Please keep this time safe and family friendly. No drinking if there are minors present. Also use this time to clean up before you leave. Bottles and cans should be recycled. Please plan on staying no more than one hour per lab. No Credit

The Basics

WHOAMI

  • Professional Programmer with > 10 years of experience. Self-taught, I don't have a CS degree.
  • Amir Djavaherian
  • LinkedIn
  • GitHub
  • Programmer, Musician, Maker, Pizza Connoseiur

What is this?

What is JavaScript?

Demo: Let's demonstrate some Javascript.

Here's our first task. Login to GitHub (or sign up) and add your name to the Attendees section of the JSLAB Wiki. See what happened? You just used JavaScript. In fact if you're using a computer and surfing the Internet, JavaScript is everywhere. Pretty much every interaction you have with a web site is using JavaScript under the hood. That's work to be done, and you can do it!

The Math

Let's talk about Math. You might be good at it, bad at it, really bad at it, whatever. Just don't be scared of it. Although pretty much everything related to computers and computer science is made up or backed up by some serious math, you'll find that once you get familiar with some of the core concepts of computer science and programming, you may not even use very much or any math in your day to day programming. Don't get me wrong, the more math and science you know, the better. Don't be scared of it. Its just like pitching a softball, you start slow and eventually with practice, you master the art of the strikeout.

Core Concepts

At the heart of any programming language are usually a few consistent concepts.

  • You have concepts like state which is kind of like your application's memory eg. heap and stack.
  • And speed which is how fast your application can do something eg. Big O Notation.
  • You have structures like objects {hello: 'world'} and arrays ['hello', 'world'].
  • You may have classes which are like collections of objects.
  • You'll see functions or methods which are generally interchangeable terms for doing some kind of work
  • There's variables either strongly or weakly typed, which are like little units of memory or references to memory that help you do work. eg. var theMatrix = "Good Movie!"
  • There's booleans true and false, 0 or 1, on or off, whatever. Computers work in binary or boolean numbers.
  • There's loops which are like built-in functions
  • You'll have operators like aritmetic, logical and relational +,-,&&,||,etc...
  • And conditionals if, else, switch, etc.... that help you make descisions about what your code should do in real time
  • And comments which are human readable lines, that don't effect the flow of your program. eg. //this is a comment!

All these concepts are usually working together in the same application. Their syntax and implementation might be different from language to language, but just like the difference between Mandarin Chinese, and American English, there are always words for "mom" or "water" or "food" or "friend".

Let's take a look at the language

Wrap-up.

Let's move over to the Wiki to get you jazzed about JavaScript. Do your homework, read, watch videos, do something, get inspired and we'll help you work on your project for another hour or so. Don't forget to sign up for the next meetup.

Releases

No releases published

Packages

No packages published