I started my journey into web development 2.5 years ago with Bitmaker!
Since then, I've worked with various startups as a front-end web developer
Admittedly, it was an uphill battle. This techno-mumbo-jumbo didn't come easily.
I've been teaching front-end web development at Bitmaker for about 1.5 years.
I'm really passionate about Pokemon.
You can find me on the web in these places
betty@bitmaker.co
@bettymakes
bettymakes.com
I started programming for the web 15 years ago.
I studied Computer Engineering at the University of Waterloo.
Since then I've worked on many web projects, big and small.
I've been teaching web development at Bitmaker for the past two years.
I'm really passionate about technology and the web (and movies!).
You can find me on the web in these places
mina@bitmaker.co
@fightingtheboss
fightingtheboss.com
They're here to help :D.
Don't be shy to ask them questions!
INTRO
INTRO // The Internet
A connection of computers through a network
Tim Berners-Lee invents the World Wide Web in 1990
50 websites exist by 1993
Wikipedia, Yahoo, Ebay, Hotmail, Craigslist, Paypal, Youtube, Myspace, Twitter, Facebook, etc. etc...
»
»
»
»
1,000,000,000+ websites by 2014
»
More than just pictures of cats
»
INTRO // How The Web Works
A simplified look at a typical web architecture
Client
(Web Browser, Mobile App)
Web Server
Database
Requests
Responses
INTRO // Web Site vs Web App
What's the difference between
Web Sites
and
Web Apps
???????
INTRO // Web Development
The development process can be broken into two areas
FRONT-END WEB DEVELOPMENT
BACK-END WEB DEVELOPMENT
How things look to the user
Involves: Images, Content, Structure
HTML, CSS, & Javascript
How things work
Involves: "business logic"
Ruby, PHP, C++, Java, etc.
_________________________________________________________________________________________
INTRO // Front-End Technologies
HTML
Content
CSS
Presentation
JavaScript
Interactivity
We'll be learning about all of these this weekend
INTRO // Back-End Technologies
Ruby
Dynamic, elegant programming language
We'll be learning about these two tomorrow
Sinatra
A simple library for quickly creating web applications with Ruby
INTRO
INTRO // Tools
We'll be using Google Chrome
It provides many developer-friendly tools ("inspect element")
INTRO // Tools
We'll be using Cloud9
INTRO // Goal
INTRO
HyperText Markup Language describes the structure of your web document
HTML
HTML
Think of HTML as ....
HTML
HTML
<p>Content</p>The tag above represents a paragraph
HTML
<p>Content</p>This is the opening tag.
It always starts with a tag name ('p' in this case).
HTML tags always start with a < and end with a >
HTML
<p>Content</p>This is the closing tag.
Most (but not all) HTML tags have a closing tag.
Closing tags always start with a forward slash ( / )
followed by the tag name.
HTML
<p>Content</p>This is the content of the tag.
The content appears between the opening and closing tags. This is the content that will appear on your page.
HTML
Some tags don't have closing tags.
Tags such as image do not enclose any content
(in the case of an image, it points to the location of a file) ...
So it doesn't need an opening and closing tag.
<img src="picture.jpg" />
Note: the / at the end is optional
HTML
This is an example of an attribute.
They provide further description of the content or purpose of the tag. Attributes are always in the form of key="value"
<a href="http://www.google.ca">
Google Please!
</a>HTML
Certain attributes may only have use for specific tags.
In the case above, we used "href" which is very specific to the "a" tag. The "src" attribute is needed by the "img" tag. If these attributes were used on a paragraph, they would be ignored.
<a href="http://www.google.ca">
Google Please!
</a><img src="picture.jpg" />HTML
<section>
<p>
Some text in a paragraph.
<a href="http://www.cbc.ca">CBC</a>
</p>
</section>HTML tags can be nested inside on another.
HTML is represented as a tree. That means you can put tags inside other tags as their content. The outer tag is the parent and the inner tag(s) are the children.
HTML
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>HTML
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>Can be though of as the brain of the document
Its properties are not part of the physical layout of the page
Holds all of the properties like the document's title as shown here
HTML
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>Represents the area from the top left corner of our page, to the bottom right
Holds the physical structure of the page, much like our own body
All of our work today will be done here!
HTML
We write elements (content wrapped in tags) to the document's body
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<p>Content</p>
</body>
</html>HTML
Inline text elements
Text wrappers
Content containers
List containers
<a> <span> <em> <strong>
<p> <h1> to <h6> <blockquote> <li>
<header> <footer> <main> <section> <article> <nav> <aside> <div>
<ul> <ol>
Your browser has some very powerful built-in tools to help you inspect your web page
Dev Tools
You can open the developer tools by
Dev Tools
Let's take a look
Rules that specify how your elements should appear in your document
CSS
Before
After
CSS
h1 {
font-size: 16px;
color: red;
}CSS
p {
font-size: 16px;
color: red;
}Properties:
Values:
Pre-defined terms that will change the way elements look and behave.
Properties are set with values using a colon.
Declaration:
Together, each property-value pair form a declaration
CSS
article {
background-color: red;
}The rule's selector will define which elements in the HTML document will have this rule's declarations applied.
CSS
p {
text-align: center;
}<p>
It's morphing time!
</p>CSS
.box {
width: 100px;
height: 100px;
background-color: green;
}We don't just have to select by element type...
Custom rules can be written using the class selector. In order to apply a class, we add a class attribute to our HTML element.
CSS
<div class="box">
<p>I'm shaped like a box</p>
</div>This is the class attribute.
A class is a way of grouping similar things together, like how cars and trucks are both automobiles. The class attribute is useful for styling and adding interaction to many elements at once.
CSS
.highlight {
background-color: red;
}<h1 class="highlight">
Hello there!
</h1>CSS
<div id="unique">
<p>I'm the only box like me</p>
</div>This is the id attribute.
It’s used to uniquely identify an HTML element in a document. You can add this attribute to any tag. It’s useful for styling and adding interaction.
CSS
#page-title {
background-color: red;
}<h1 id="page-title">
Hello there!
</h1>CSS
The dynamic programming language built into every web browser
What's JavaScript used for?
JS
Adds interactivity to your web pages
Check out this fun lightbox example!
JS
JavaScript is available in every browser
JS
A little background info on JS ...
JS
Created by Netscape back in 1994
JS
JavaScript is NOT Java
This is a common misconception
JS
View > Developer > JavaScript Console
or
JS
Basic Syntax
var someNumber = 10;JS
Comments
// This is a single line commentJS
How do you store values?
Values are stored in variables
JS
Variables
JS
Declaring a variable
var someNumber = 5;JS
Data Types
JS
There are 6 different types of values:
Let's look at a few data types ...
JS
Number
var someDecimalNumber = 3.1415926;JS
String
var someString = "Some random text here";JS
Boolean
var aTruthyValue = true;
var aFalseyValue = false;JS
undefined
var someUndefinedValue;
var someVariable = undefined;JS
Arrays
var someArray = [45, "bloop", true, null];JS
Arrays cont'd
var someArray = [45, "bloop", true, null];
someArray[1] // returns "bloop"JS
Arrays cont'd
var someArray = [45, "bloop", true, null];
someArray.length // returns 4JS
Objects
var someObject = { key: "value" };
someObject["key"] // returns "value"
someObject.key // returns "value"JS
Time to try it yourself!
JS
http://bettymakes.github.io/fed-intro-to-js-variables/
A dynamic, open source programming language with a focus on simplicity and productivity
It has an elegant syntax that is natural to read and easy to write.
def say(speech)
puts speech
end
say "Hello World!"
# => Prints 'Hello World!' to the screenYukihiro Matsumoto aka Matz released Ruby in 1995 and says "I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language."
Origins
Gained a lot of popularity in the developer community around 2005 with the advent of Ruby on Rails, a web framework used to quickly create web applications.
Popularity