
Hi and welcome to the course!
In this lecture I'll give you an introduction to the topics that we'll go through during our learning journey,
By the end of this lesson, you'll have a clear idea of the many tools and technologies you'll come to master by the end of the course.
In this lecture I'll introduce the browser that we'll be using during all of our course for development, Google chrome and I'll explain why it's my program of choice for Front End Web Development.
In this lecture I'll introduce the editor that we'll be using during this course, Sublime Text.
A free copy of the editor (for personal use and evaluation purposes) can be downloaded from the following link:
In this lesson we'll see how to install Sublime Text 3 on a Mac OSX System
In this lesson we'll see how to install Sublime Text 3 on a MS Windows System
In this lesson we'll see how to install Sublime Text 3 on a Linux System (Ubuntu)
In this lesson we'll see how to run Sublime Text 3 from the command line in a Mac OSX System,
In this lecture we'll learn how to expand the functionalities of Sublime Text 3 using Package Control, that will give us access to a huge number of third party plugins.
In this lecture we'll see how a webserver works and how a few files on a computer can be turned into a web site
In this lecture, you'll learn what HTML is and what's its use in modern web application development.
In this lecture, we'll take a look at how a HTML page is structured and how it's evaluated by the browser when loaded and parsed.
In this lecture we'll learn what an HTML tag is and what are its purpose and structure
In this lecture we'll apply what we've seen so far and we'll learn how to write our first HTML file!
In this lecture, we'll learn how to use the free online service JSBIN to experiment with HTML in real time, within the browser!
In this lecture, we'll learn about the structure of an HTML page and we'll take a first look at the first two main section, HEAD and BODY.
External Resources for this lecture:
In this lecture, we'll learn about the page title tag, the header tag and the paragraph tag.
JSBIN session for this lecture: JSBIN session
External Resources for this lecture
In this lecture we'll learn what DIV and SPAN are and what they are used for. Through them we'll learn the difference between a block level element and an inline element.
JSBIN session for this lecture: JSBIN session
In this lecture we'll recap what we've seen so far and we'll expand on the browser Document Object Model.
In this lecture we'll take a look at some more semantic tags available in the current version of HTML: Section, Article, Header and Footer.
in the downloadable resources you'll find the compressed html file used for this lecture (index.html.zip)
External Resources:
In this lecture we'll take a look at one of the most popular HTML markup language Tag of all time: the Anchor tag.
In the downloadable resources you'll find the compressed files used in this lecture (anchor-tag.zip)
In this lecture we'll learn how to use form tags, that allow us to collect information from the user and send it to the server.
In the downloadable resources you'll find the compressed html file used for this lecture (form.html.zip)
External Resources
In this lecture we'll continue exploring how HTML forms work and how form data get transferred from the browser to the server when clicking on the submit button.
In the downloadable resources you'll find the compressed html file used for this lecture (form.html.zip)
In this lecture we'll take a look at the HTML list tag.
External Resources
In this lecture we'll take a look at how to present tabular information in our page using the table HTML tag.
In the downloadable resources you'll find the compressed html file used for this lecture (tables.html.zip)
In this lesson we'll see how to add cool images to our web page!
Remember to uncompress the images.zip file to your experiments folder, where we have all our html files.
In this lecture we'll learn how two additional HTML5 tags, Nav and Aside, can be used to add more meaning to our markup when creating navigation bars and tangential content (like sidebars) in our page.
In the downloadable resources you'll find the compressed html file used for this lecture (navaside.html.zip)
External Resources
In this lecture we'll put together what we've seen so far and we'll create a small minisite with a homepage and a contact us page.
In this lecture we'll learn what CSS is and how it's used to apply styles and color to a markup document
In this lecture we'll take a look at how a set of CSS rules (also called stylesheet) can be applied to a webpage.
In the downloadable resources you'll find the compressed project files used for this lecture (css-1.zip)
In this lecture will take a quick look at the major categories of CSS properties we'll deal with and what units of measure are used to express their values.
In this lecture will introduce the ID and CLASS markup attributes, detailing their purpose and how they differ between each others
JSBIN Session: JSBIN session
In this lecture we'll take a look at how ID and CLASS attributes can be targeted and used by CSS selectors.
JSBIN Session: JSBIN Session
In this lecture we'll take a look at what element sectors are and how we can use them to style our markup.
JSBIN session: JSBIN Session
In this lecture we'll take a look at the attribute selector and we'll see how it can be used for CSS styling.
JSBIN Session: JSBIN Session
External Resources
In this lecture we'll see what the shortcomings are with the CSS selectors that we've seen so far and why we need more specialised selectors to overcome these limitations.
In the downloadable resources you'll find the compressed html file used in this lecture (relationships-part1.html.zip)
In this video we'll take a look at relationship selectors; CSS has a way to select elements based on their relationships.
In the downloadable material you'll find the compressed html file used for this lecture (relationships.html.zip).
Icons made by Freepik from www.flaticon.com is licensed under CC BY 3.0
In this lecture we're going to take a look at pseudo class selectors, used to specify a special state for the element to be selected.
External Resources
JSBIN for experimenting with pseudo classes: JSBIN Session
In this lecture we'll take a look at the CSS position property, that determine the way an element get positioned in the webpage.
JSBIN session for positioning elements: JSBIN session
JSBIN session for positioning example: JSBIN session
In this lecture we'll learn and understand how the browser determines which rule to apply when more than one rules match the same element.
External Resources
In this lecture we'll learn that CSS rules are not influenced by HTML elements proximity when computing specificity values
In this lecture we'll see how rules can be overridden, no matter how specific they are.
Overriding rules this way is something you won't do usually (and you should really avoid doing that if possible, since it makes maintenance of your CSS really difficult) but it's an useful tool to have in your toolbelt for those emergency situations when no other options are available.
JSBIN for this lecture: JSBIN session
In this lecture we'll have a look at the CSS properties that affect the way text gets rendered in your web page.
JSBIN for this lecture: JSBIN session
In this lecture we'll take a look at how color properties can be used in CSS to affect the color of the various elements of our User Interface.
JSBIN as starting point for the lecture: JSBIN Session
JSBIN at the end of the lecture: JSBIN Session
External Resources
In this lecture we'll discuss how properties are inherited by descendants of an element.
In particular we'll see how text-related properties are generally inherited, while box-related ones not.
Properties than can be inherited are: color, font, letter-spacing, line-height, list-style, text-align text-indent, text-transform, visibility, white-space and word-spacing
Properties that cannot be inherited are background, border, display, float and clear, height and width, margin, min- and max-height and -width, outline, overflow, padding, position, text-decoration, vertical-align and z-index.
JSBIN for this lesson: JSBIN session
External Resources
In this lecture we'll take a look at some of the properties available that define shape and boundaries of an element.
In the downloadable materials you'll find the compressed html file used for this lecture (boundaries.html.zip)
External Resources
In this lecture we'll talk about the way elements size are computed by the browser, using a default box model (called content-box) and how to change it to a more convenient type (border-box) to better control the size of our HTML elements on the page.
In the downloadable materials you'll find the compressed html file used for this lecture (boxmodel.html.zip)
External Resources
In this lecture we'll take a look at how inline elements and block level elements work with dimension properties.
JSBIN session for inline element: JSBIN session
JSBIN session for block element: JSBIN session
JSBIN session for align: JSBIN session
Attributions: icon "new" has been provided by http://www.webdesignerdepot.com/
In this lecture we'll recap briefly what we've seen so far about the CSS position property and how it affects elements.
JSBIN example on fixed positioning:
In this lecture we'll take a look at floating elements and how they relate to the document flow.
JSBIN used for this lecture:
In this lecture we'll take a look at how we can solve the containment issue when dealing with floated elements (see lecture on floating elements for a detailed explanation of this issue).
JSBIN Sessions used for this lecture:
In this lecture we'll start creating the basic folder structure and files for our project and we'll see how to add custom fonts to our index.html file.
In the downloadable materials you'll find the compressed project files used for this lecture (cssws-code-1.zip)
External Resources
In this worskhop lecture we'll focus our attention on the header of the page.
In the downloadable materials you'll find the compressed project files used for this lecture (cssws-code-2.zip)
External Resources
In this workshop lecture we'll continue and finish working on our page header.
In the downloadable resources you'll find the compressed project files used for this lecture (cssws-code-3.zip)
External Resources
In this workshop lecture we'll focus on the footer of our web page.
In the downloadable materials you'll find:
In this workshop lecture we'll focus on the main visual for the page, our "hero" image.
In the downloadable materials you'll find the compressed project files used for this lecture (cssws-code-5.zip)
External Resources
In this workshop lecture we'll focus on the marketing claims area and their column layout.
In the downloadable materials you'll find the compressed project files used for this lecture (cssws-code-6.zip)
In this workshop lecture we'll focus our attention on the portfolio section, finishing up our general work on the web page.
In the downloadable materials you'll find the compressed project files used for this lecture (csws-code-7.zip)
There's a small fix we need to add to the portfolio section that didn't make its way into the video and the code. This fix will solve an issue with the last portfolio image horizontally overflowing outside of the section.
In this workshop lecture we'll add a few final touches to our complete homepage, making it more SEO friendly and cross browser compatible.
In the downloadable materials you'll find the compressed project files used for this lecture (cssws-code-8.zip)
In this introductory lecture we'll take a look at what Javascript is and what it's used for in a typical rich interactive application.
In this lecture we'll start writing some Javascript!
In the downloadable materials you'll find the compressed project files used for this lecture (js-code-1.zip)
External Resources
In this lecture we'll learn what Javascript variables are and how they can be used to store information used by our running code.
External Resources
In this lecture we'll learn how to 'create' new variables through a variable declaration and the difference between an undefined value and a null value.
External Resources
In this lecture we'll take a look at the basic variable data types we've access to in Javascript.
External Resources
In this lecture we'll learn how variables types in Javascript are dynamic in nature, compared to other programming languages.
In this lecture we'll take a look at "functions", the reusable unit of code in Javascript.
We follow up from the last lecture and try to put in practice what we just learned about functions..
JSBIN session for this lecture: JSBIN session
External Resources
In this lecture we'll take a look at the difference between a Javascript library and an API.
External Resources
In this short lecture we'll take a quick look at the return statement.
JSBIN Session for this lecture: JSBIN session
External Resources
In this lecture we'll take a look at variable scope, that defines what your code can "see" when it's executing.
JSBIN session for this lecture: JSBIN session
In this lecture we'll talk about what javascript objects are and how we can create.
JSBIN session for this lecture: JSBIN session
External Resources
In this lecture we'll take a closer look at objects and we'll see how they influence functions when called through an object.
JSBIN session for this lecture: JSBIN session
External Resources
In this lecture we'll learn how assignments in Javascript work by value or by reference, depending on the nature of the operand on the right side of the assignment. We'll see how assignment work when applied to primitive values, objects and functions
JSBIN session for this lecture: JSBIN session
In this lecture we'll learn another way to create an object, beside the object literal technique we've learnt so far.
JSBIN session for this lecture: JSBIN session
In this lecture we'll take a look at the "prototype" property, that we've access to within a function.
JSBIN session for this lecture: JSBIN session
In this lecture we'll expand on the function prototype and experiment with it with practical applications.
JSBIN session for this lecture: JSBIN session
In this video we'll talk about strings again, but with a new perspective on them and we'll uncover additional truths about them.
JSBIN session for this lecture: JSBIN session
External Resources
In this video we'll take a look at Callbacks, a way of using functions to be "called back" later.
JSBIN session for the first part of the lecture: JSBIN session
JSBIN session used from 2'52" in the lecture: JSBIN session
In this lecture we'll take a look at Arrays and how we can inspect their content.
JSBIN session for this lecture: JSBIN session
In this video we'll take a look at conditional statements. A conditional statement is just a way to check for a condition and act on it.
JSBIN session for this lecture: JSBIN session
External Resources:
In this lecture we'll learn how to iterate over the properties of an Array using another method, called "explicit iteration"
JSBIN session for this lecture: JSBIN session
In this lecture we'll have a super quick look at the Objects and functions that the javascript runtime provides us when working in a browser environment.
Externa Resources
In this lecture we'll experiment with the DOM, creating new HTML element using the rich set of Objects and functions available in the DOM.
JSBIN session for this lecture: JSBIN session
External Resources
In this video we'll talk about DOM events and how to be notified when something happens in the web page.
External Resources
In this lecture we'll try to put in practice what we've just seen about the DOM and DOM events with a practical exercise.
JSBIN session for this lecture: JSBIN session
External References
In this lecture we'll continue and finish our exercise in handling DOM events.
JSBIN session for this lecture: JSBIN session
With our DOM exercise complete, we'll take a look at the code again to see if we can further improve it.
JSBIN session for this lecture: JSBIN session
In this lecture, we'll take a look at jQuery, probably the most popular Javascript library in the Web ecosystem.
External Resources
In this lecture we'll take a look at how jQuery can simplify listening and reacting to browser events.
JSBIN session for this and the next lecture: JSBIN session
External Resources
In this lecture we'll complete our exercise, using jQuery to simplify DOM manipulation.
JSBIN session for the previous and this lecture: JSBIN session
External Resources
A quick recap on what we've seen so far with jQuery.
In this lecture we'll take a look at what HTTP, REST and JSON have in common.
External Resources
In this lecture we'll introduce Ajax and we'll see how jQuery simplifies something that would otherwise require a fair amount of work.
External Resources
In this lecture we'll see what the Same Origin Policy is and how to deal with it in our experiments with Ajax.
External Resources
In this short video update we discuss how to make our Ajax code run in Chrome since the latest updates in Chrome security policy, that prevents us from running Ajax code in scripts loaded directly from the filesystem (this happens all the time we open an html file in our computer directly with our browser, using the special URL format "file:///<path in our computer>").
Very recently Chrome stopped supporting Ajax code in files loaded this way and the workaround we illustrated in lesson 95 doesn't work anymore.
To get around this limitation, we have 2 options:
1) Use Firefox, that is more permissive and allows local files to issue Ajax calls
2) Continue to use Chrome but through a proper Web Server, a program that will run on our machine with the purpose of serving our html files to the browser connected to it via our local network.
In the video I'll show you how to implement the second option, but keep in mind that option 1 is still available if you don't feel comfortable in dealing with the installation of python and in running a local web server.
See also https://github.com/mrdoob/three.js/wiki/How-to-run-things-locally for a more thorough discussion of the problem with Chrome security policy and the illustrated solution.
In this lecture we'll put to practice what we've seen so far about jQuery and Ajax, building a data-driven menu system.
We'll start by picking up the code a few videos ago for our horizontal menu with overlaid panels. We'll change this code in order to make the menu and its info panel completely dynamic, inspired by engadget.com
In the downloadable materials tab you'll find the compressed project files used for this lecture (jquery-ws-1.zip)
Let's continue working on our interactive menu using Ajax and jQuery
In the downloadable materials tab you'll find the compressed project files used for this lecture (jquery-ws-2.zip)
Let's complete our workshop, bringing our project to completion!
In the downloadable materials tab you'll find the compressed project files used for this lecture (jquery-ws-3.zip)
In this video we'll take a look at one of the most popular front end frameworks on the market, Backbone.js.
External Resources
In this lecture we'll take a look at Backbone Models.
Backbone models are used to represent the data your application is working with, along with the logic that surrounds that data and that allows you to retrieve and store that information on a server.
JSBIN session for this lecture: JSBIN session
External Resources
In this lesson we'll cement what we've just seen about Backbone Models with a quick recap.
JSBIN session for this lecture: JSBIN session
In this video we'll take a look at Backbone.Collections. A Backbone.Collection is a wrapper around a collection of Backbone.Models;
JSBIN session for this lecture: JSBIN session
External Resources
In this lecture we'll take a look at Backbone Views, that allow us to provide a visual representation for our models.
JSBIN session for this lecture: JSBIN session
External Resources
In this lecture we'll see how a view can also react on events generated by the User Interface (the web page).
JSBIN session as a starting point for this lecture: JSBIN session
JSBIN session for this lecture: JSBIN session
In this lecture we'll take a look at the Backbone.Router.
in the downloadable resources you'll find the compressed project files used for this lecture: (bb-code-router.zip)
In this lecture we'll take a look at our next Backbone project, the Foogle play store.
The Idea is to implement a simple Rich Single page web application using all the technologies we've seen so far.
Our application we'll be loosely modelled around the Google play book store.
In the downloadable resources you'll find the API json files required (api.zip)
In the downloadable resources you'll find also the complete compressed project files for this lecture (bb-ws-1.zip)
In this lecture we'll start creating the markup for the header for out Single Page Web Application.
In the downloadable resources you'll find the compressed project files for this lecture (bb-ws-2.zip)
In this lecture we continue working on the markup of our application, dealing with the sidebar with the category navigation.
In the downloadable resources you'll find the compressed project files for this lecture (bb-ws-3.zip)
In this lecture we continue working on the markup of our application, dealing with the content area for the list of books within a category.
In the downloadable resources you'll find the compressed project files for this lecture (bb-ws-4.zip)
In this lecture we continue working on the markup of our application, dealing with the content area for the detail of a single book.
In the downloadable resources you'll find the compressed project files for this lecture (bb-ws-5.zip)
In this lecture we'll switch to the Javascript side, starting coding the Router first.
In the downloadable resources you'll find the compressed project files for this lecture (bb-ws-6.zip)
In this lecture we'll focus on coding the Books list area.
In the downloadable resources you'll find the compressed project files for this lecture (bb-ws-7.zip)
In this lecture we'll continue working on the Books list area.
In the downloadable resources you'll find the compressed project files for this lecture (bb-ws-8.zip)
In this lecture we'll finishing up working with the Books list area.
In the downloadable resources you'll find the compressed project files for this lecture (bb-ws-9.zip)
In this lecture we'll focus our efforts on the Book detail panel.
In the downloadable resources you'll find the compressed project files for this lecture (bb-ws-10.zip)
In this lecture we'll see how to deal with unexpected bugs in our code and how to troubleshoot and fix them.
In the downloadable resources you'll find the compressed project files for this lecture (bb-ws-11.zip)
In this lecture we'll see how we can further improve the code of our Foogle play web application by using Underscore templating.
JSBIN session for the lecture: JSBIN session
In the downloadable resources you'll find the compressed project files for this lecture (bb-ws-12.zip)
A polite request
Please watch the presentation video BEFORE joining the course; If you don't like what you see (or my accent at the time of recording) please DO NOT enroll. I've seen many people enrolling (since, you know, it's FREE) and then leaving negative scores because they didn't fancy the accent of the instructor or because the course was "too basic" (even though it's basically written everywhere that this is a foundation course for absolute beginners).
So, don't be that guy/girl, and join only if you believe this course is right for you. If you don't like how the course is structured or its content please do not hesitate to leave a negative score but in doing so add a comment explaining your reasons; This will help the instructor. A negative score without any comment or feedback is not useful to anyone and detrimental to other potential students.
This course was made in 2015 and, apart from a few tweaks in 2016 it hasn't seen further updates (that is one of the reasons why it's now offered for free). So, you won't find things like CSS Flexbox/Grid here. Though, its content is still super relevant nowadays and important in building a solid foundation in Front-End Development. No matter what latest technology you want to learn, you need the basics first and this is exactly what this course is for!
- What is this course all about?
Front End Development is a trending job, engaging, well paid and full of challenges and wonders.
This course will teach you the skills to kick-start a career in Front End Development, assuming no previous knowledge of any of the topics presented.
NOTE: a basic knowledge of how to use your computer and run programs is assumed.
This course is all about helping you changing your career path (or creating a new one) and acquire the necessary skills to jump into the job market as soon as possible.
Are you tired of courses teaching you skills that you cannot easily convert into a salary ? If so, this is the course for you.
Front End Development is an area of Web Development that includes all of the skills required to create the visual and interactive part of a Website. It's a complex mix of skills and technologies and one of the most fast growing and well paid IT sectors of the moment.
A Front End Developer is the link between the graphic designer, responsible for creating the visual design of a Web Application and the Backend Developer responsible for creating the computational logic behind the application. The Front End Developer brings the application to life creating rich, compelling experiences and allowing the user to interact with the data behind the application.
This comprehensive course is aimed at students with no previous experience with Web Development or programming at all;
The course was recorded on a Mac OSX machine; You can still benefit from this course if you're using Windows but you are required to have basic knowledge on how to use the Windows Explorer and create folders and files with it. You can easily avoid using the Windows command prompt (in the very rare videos that use the Terminal) and instead do what the video shows just using your WIndows Explorer (it's mostly creating folders and files).
- What will I learn taking this course?
We'll touch on all the foundational topics that form the toolbelt of a professional Front End Developer:
Semantic HTML
CSS
Responsive Web Development
Javascript, Ajax and a dash of jQuery
Backbone.js!
The art of Unit Testing (brownie points during an Interview!)
We'll learn by doing, building projects and adding functionalities over time, as our knowledge expands.
- What will I get from this course?
By the end of the course, you'll have all the tools and practical knowledge necessary to build visually rich Single page Web applications, try your luck with job interviews and kick-start your career as a Front End Developer!