SlideShare a Scribd company logo
1 of 22
Download to read offline
Build an App with Javascript & jQuery
August 2017
WIFI: TBD
Password: TBD
bit.ly/jsapp-pdx
1
Welcome to "Build an App with Javascript and jQuery". The Wi-Fi network is X and the password is Y The website for this class is Z.
Speaker notes
Instructor
TAs
Toby Fee
Web Developer for 5 Years
Thinkful Mentor
2
Let me start with a little about me. My name is X and my background is Y. We have some TA's that will be helping us today. I'm going to go around
and have them introduce themselves.
Speaker notes
About you
What's your name?
Why do you want to learn JavaScript/jQuery?
http://www.loremipsum.com/example
Wi-Fi: orem Ipsum
PW: orem Ipsum
L
L 3
I'd love to learn a little more about you guys. So can we go around the room and can everyone give us your name, what your goal is for attending
the class and your programming background?
Speaker notes
About Thinkful
Thinkful helps people become developers or data scientists
through one-on-one mentorship and project-based learning
These workshops are built using this approach.
4
Thinkful is hosting the event tonight. Thinkful is a coding bootcamp built on a belief in one-on-one mentorship and project based learning. This
workshop today is designed using this approach. The bulk of the workshop will be you guys working one-on-one with our TA’s to build a real project.
Speaker notes
Suggestions for learning
Don't treat this as a drill, we're making something real
Don't get discouraged, struggle leads to mastery
Don't be shy, take full advantage of our support
5
To get the most out of this class, we have three suggestions for getting the most our of this experience.
The first suggestion is to realize we're building something real and accept that's going to be messy. There will be many right answers and a good
project is never done. There will always be ways you can make it better.
Whatever your level, we're going to push you so it's a little hard. Even basic addition was hard at one point. Struggle is a part of mastery. Try not to
get discouraged.
Finally, we're here to help. Take advantage of that support, make sure to ask questions during lecture when you're confused. Make sure you call
your TA when you need help. When coding, be resourceful. Always!
Speaker notes
This is what we're making
http://www.loremipsum.com/example
Wi-Fi: orem Ipsum
PW: orem Ipsum
L
L 6
Today we're building a shopping list app. This app does three things. First you can type the list of an item to add and click the "add item" button to
add it to your shopping list. Second you can click on an item to check it off the list. Third you can click the X to remove the item altogether.
Speaker notes
Agenda
Go over starter code (10 min)
Learn key jQuery & Javascript concepts (30 min)
Build your app! (30 min)
Go over solutions (10 min)
Next steps (10 min)
http://www.loremipsum.com/example
Wi-Fi: orem Ipsum
PW: orem Ipsum
L
L 7
I’ll start by walking you through the HTML/CSS starter code so you have a reference of what you’ll be working with. Then I’ll go over important
Javascript and jQuery concepts that you’ll need to complete the app. You’ll then build the app during which time the TA’s and myself will be walking
around to help you guys out. At the end we’ll go over solutions and then cover next steps for continuing your learning.
Speaker notes
Quick HTML/CSS Refersher
8
HTML defines the content and the structure of a page. We use "tags" to divide our HTML into sections. Each section of HTML has an opening tag,
and a closing tag (demonstrate).
In our HTML, we can create labels for our sections. We create labels by adding a "class=" some name in our opening tag. These labels help us
"grab" these sections both to add styles. But also as we'll see with jQuery, to manipulate our HTML with Javascript.
Lets start with adding styles. We add styles with CSS. We can basically grab a section using it's class. Then we can define different aspects of the
section we want to change. (demonstrate)
In this case, we are going to grab the "title" section, then make it blue and put a line through it.
Speaker notes
Starter code walkthrough
http://bit.ly/tf-shopping-list
9
Alright, now let's dive into the starter code. Go ahead and go to this url to get the starter code. We’re using a online code editor called Glitch which
will let us see the result of our code really quickly.
On the README.MD file you should see an overview of the project and the challenges you'll be completing. The files we’ll be using today on the left
are client.js, style.css, and index.html. You can ignore server.js, package.json and .env. Once you’ve written some code, click the “Show Live” button
at the top to open a new tab that will automatically update as you edit your code.
Next let's go over the starter code so you guys know what’s going on. At the top of our index.html, we have a head element. This element is different
from most others because what it contains won’t actually show up on the page. The main purpose of the head section is to pull other files into our
app. This is known as “importing”. You can see here that we're importing our styles.css, our client.js, and jQuery which will be discussing soon.
We generally put the content of our HTML, the stuff people might see, in the "body" section of our HTML (versus the "head" section).
The "list-content" section houses the three main components of our app. The first component is the text box where a user will type in their shopping
list item. The second component is a list where we will add items to our shopping cart. It's empty for now but as we add items to our list, it will show
up here. The third component is a button called Add Item. When people click on this button, the item they type in will be added to the list.
Speaker notes
Think of our HTML as a "tree"
<form>
list-content
<input>
item-input
<ul>
shopping-list
<button>
add-item
10
We can visualize these HTML components as a tree. We have a list-content section but inside that section, we have three smaller sections: our text
input, our shopping list, and our button.
In HTML, we call this tree the DOM or the "Document Object Model". In this system, list-content is the "parent" to the three components and the
three components are the "children" to list-content.
Speaker notes
What is Javascript? What is jQuery?
<input>
<ul>
shopping-list <button>
<li>
String
cheese
<li>
Summer
sausage
<li>
Chicken
nuggets
11
<div>
jQuery is an extension of Javascript. jQuery does a bunch of things one of which is to make it easy to add, modify and remove items from our DOM.
70% of websites use jQuery.
For this app, what we want to do is add sections to our shopping list after someone adds a grocery item to the input box and then taps the button. So
when someone taps the button, we'll add a new section to the shopping list section, one section for each item added. Those items will be children to
shopping list, which is a child to list-content.
Speaker notes

More Related Content

What's hot

20 Office 365 Productivity Tips That You've Probably Never Used But Should sh...
20 Office 365 Productivity Tips That You've Probably Never Used But Should sh...20 Office 365 Productivity Tips That You've Probably Never Used But Should sh...
20 Office 365 Productivity Tips That You've Probably Never Used But Should sh...Thomas Duff
 
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-53
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-53Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-53
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-53Ivy Rueb
 
How To Post A Blog
How To Post A BlogHow To Post A Blog
How To Post A BlogA4ID
 
AJAX Workshop Notes
AJAX Workshop NotesAJAX Workshop Notes
AJAX Workshop NotesPamela Fox
 
Intro wordpress (1) copy with dipesh sharma
Intro wordpress (1)   copy with dipesh sharmaIntro wordpress (1)   copy with dipesh sharma
Intro wordpress (1) copy with dipesh sharmadegana2009
 
Office 365 Productivity Tips "New Year Brouhaha"
Office 365 Productivity Tips "New Year Brouhaha"Office 365 Productivity Tips "New Year Brouhaha"
Office 365 Productivity Tips "New Year Brouhaha"Christian Buckley
 
Office 365 Productivity Tips -- January Joust
Office 365 Productivity Tips -- January JoustOffice 365 Productivity Tips -- January Joust
Office 365 Productivity Tips -- January JoustChristian Buckley
 
Eugene Andruszczenko: jQuery
Eugene Andruszczenko: jQueryEugene Andruszczenko: jQuery
Eugene Andruszczenko: jQueryRefresh Events
 
Hướng dẫn tạo blogspot
Hướng dẫn tạo blogspotHướng dẫn tạo blogspot
Hướng dẫn tạo blogspotTrần Duy Thức
 
Create online forms using google docs
Create online forms using google docsCreate online forms using google docs
Create online forms using google docsFrances O'Neill
 
JavaScript Workshop
JavaScript WorkshopJavaScript Workshop
JavaScript WorkshopPamela Fox
 
AskDrWiki.com WikiText Tutoral
AskDrWiki.com WikiText TutoralAskDrWiki.com WikiText Tutoral
AskDrWiki.com WikiText Tutoraldoctorwiki
 
How to - Edit the Settings and Layout on Netvibes
How to - Edit the Settings and Layout on NetvibesHow to - Edit the Settings and Layout on Netvibes
How to - Edit the Settings and Layout on Netvibesmmoore17
 
How To Start A Discussion
How To Start A DiscussionHow To Start A Discussion
How To Start A DiscussionA4ID
 
Unit 30 Learning Objective 3
Unit 30 Learning Objective 3Unit 30 Learning Objective 3
Unit 30 Learning Objective 3BradleyStone3050
 
How Usable is Wordpress?
How Usable is Wordpress?How Usable is Wordpress?
How Usable is Wordpress?nicolibrarian
 
Using Wordpress with Reclaim Hosting
Using Wordpress with Reclaim HostingUsing Wordpress with Reclaim Hosting
Using Wordpress with Reclaim HostingCindy Royal
 
How To - Add a Text Widget to Netvibes
How To - Add a Text Widget to NetvibesHow To - Add a Text Widget to Netvibes
How To - Add a Text Widget to Netvibesmmoore17
 

What's hot (20)

20 Office 365 Productivity Tips That You've Probably Never Used But Should sh...
20 Office 365 Productivity Tips That You've Probably Never Used But Should sh...20 Office 365 Productivity Tips That You've Probably Never Used But Should sh...
20 Office 365 Productivity Tips That You've Probably Never Used But Should sh...
 
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-53
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-53Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-53
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-53
 
How To Post A Blog
How To Post A BlogHow To Post A Blog
How To Post A Blog
 
AJAX Workshop Notes
AJAX Workshop NotesAJAX Workshop Notes
AJAX Workshop Notes
 
Intro wordpress (1) copy with dipesh sharma
Intro wordpress (1)   copy with dipesh sharmaIntro wordpress (1)   copy with dipesh sharma
Intro wordpress (1) copy with dipesh sharma
 
Office 365 Productivity Tips "New Year Brouhaha"
Office 365 Productivity Tips "New Year Brouhaha"Office 365 Productivity Tips "New Year Brouhaha"
Office 365 Productivity Tips "New Year Brouhaha"
 
Office 365 Productivity Tips -- January Joust
Office 365 Productivity Tips -- January JoustOffice 365 Productivity Tips -- January Joust
Office 365 Productivity Tips -- January Joust
 
Eugene Andruszczenko: jQuery
Eugene Andruszczenko: jQueryEugene Andruszczenko: jQuery
Eugene Andruszczenko: jQuery
 
Hướng dẫn tạo blogspot
Hướng dẫn tạo blogspotHướng dẫn tạo blogspot
Hướng dẫn tạo blogspot
 
Form 1 Term 2 Week 6.0
Form 1   Term 2   Week 6.0Form 1   Term 2   Week 6.0
Form 1 Term 2 Week 6.0
 
How To Use A Blog
How To Use A BlogHow To Use A Blog
How To Use A Blog
 
Create online forms using google docs
Create online forms using google docsCreate online forms using google docs
Create online forms using google docs
 
JavaScript Workshop
JavaScript WorkshopJavaScript Workshop
JavaScript Workshop
 
AskDrWiki.com WikiText Tutoral
AskDrWiki.com WikiText TutoralAskDrWiki.com WikiText Tutoral
AskDrWiki.com WikiText Tutoral
 
How to - Edit the Settings and Layout on Netvibes
How to - Edit the Settings and Layout on NetvibesHow to - Edit the Settings and Layout on Netvibes
How to - Edit the Settings and Layout on Netvibes
 
How To Start A Discussion
How To Start A DiscussionHow To Start A Discussion
How To Start A Discussion
 
Unit 30 Learning Objective 3
Unit 30 Learning Objective 3Unit 30 Learning Objective 3
Unit 30 Learning Objective 3
 
How Usable is Wordpress?
How Usable is Wordpress?How Usable is Wordpress?
How Usable is Wordpress?
 
Using Wordpress with Reclaim Hosting
Using Wordpress with Reclaim HostingUsing Wordpress with Reclaim Hosting
Using Wordpress with Reclaim Hosting
 
How To - Add a Text Widget to Netvibes
How To - Add a Text Widget to NetvibesHow To - Add a Text Widget to Netvibes
How To - Add a Text Widget to Netvibes
 

Similar to bawawjspdx082117

La build your own website september 5
La build your own website september 5La build your own website september 5
La build your own website september 5Thinkful
 
Android tutorials7 calculator
Android tutorials7 calculatorAndroid tutorials7 calculator
Android tutorials7 calculatorVlad Kolesnyk
 
Create yourfirstandroidapppdf
Create yourfirstandroidapppdfCreate yourfirstandroidapppdf
Create yourfirstandroidapppdfmurad3003
 
Bavpwjs1113
Bavpwjs1113Bavpwjs1113
Bavpwjs1113Thinkful
 
Vpet sd-1.25.18
Vpet sd-1.25.18Vpet sd-1.25.18
Vpet sd-1.25.18Thinkful
 
[DCTPE2011] Drupal 7 的Fields/Views 運用
[DCTPE2011] Drupal 7 的Fields/Views 運用[DCTPE2011] Drupal 7 的Fields/Views 運用
[DCTPE2011] Drupal 7 的Fields/Views 運用Drupal Taiwan
 
Project guideline
Project guidelineProject guideline
Project guidelineAdrian Yi
 
Spiffy Applications With JavaScript
Spiffy Applications With JavaScriptSpiffy Applications With JavaScript
Spiffy Applications With JavaScriptMark Casias
 
BP304 - Blog It Up, Baby! Extending the new IBM Lotus Domino Blog Template
BP304 - Blog It Up, Baby! Extending the new IBM Lotus Domino Blog TemplateBP304 - Blog It Up, Baby! Extending the new IBM Lotus Domino Blog Template
BP304 - Blog It Up, Baby! Extending the new IBM Lotus Domino Blog TemplateSean Burgess
 
How to use a blog for publishing scientific research: A training guide part 2
How to use a blog for publishing scientific research: A training guide part 2How to use a blog for publishing scientific research: A training guide part 2
How to use a blog for publishing scientific research: A training guide part 2AfricanCommonsProject
 
Code inhtml5andcss3
Code inhtml5andcss3Code inhtml5andcss3
Code inhtml5andcss3Irfan Razzaq
 

Similar to bawawjspdx082117 (20)

La build your own website september 5
La build your own website september 5La build your own website september 5
La build your own website september 5
 
Tfbyoweb.4.9.17
Tfbyoweb.4.9.17Tfbyoweb.4.9.17
Tfbyoweb.4.9.17
 
Tfbyoweb.4.9.17
Tfbyoweb.4.9.17Tfbyoweb.4.9.17
Tfbyoweb.4.9.17
 
Android tutorials7 calculator
Android tutorials7 calculatorAndroid tutorials7 calculator
Android tutorials7 calculator
 
Create yourfirstandroidapppdf
Create yourfirstandroidapppdfCreate yourfirstandroidapppdf
Create yourfirstandroidapppdf
 
Bavpwjs1113
Bavpwjs1113Bavpwjs1113
Bavpwjs1113
 
BYOWHC823
BYOWHC823BYOWHC823
BYOWHC823
 
Vpet sd-1.25.18
Vpet sd-1.25.18Vpet sd-1.25.18
Vpet sd-1.25.18
 
[DCTPE2011] Drupal 7 的Fields/Views 運用
[DCTPE2011] Drupal 7 的Fields/Views 運用[DCTPE2011] Drupal 7 的Fields/Views 運用
[DCTPE2011] Drupal 7 的Fields/Views 運用
 
Project guideline
Project guidelineProject guideline
Project guideline
 
Spiffy Applications With JavaScript
Spiffy Applications With JavaScriptSpiffy Applications With JavaScript
Spiffy Applications With JavaScript
 
HTML Tutorial
HTML TutorialHTML Tutorial
HTML Tutorial
 
BP304 - Blog It Up, Baby! Extending the new IBM Lotus Domino Blog Template
BP304 - Blog It Up, Baby! Extending the new IBM Lotus Domino Blog TemplateBP304 - Blog It Up, Baby! Extending the new IBM Lotus Domino Blog Template
BP304 - Blog It Up, Baby! Extending the new IBM Lotus Domino Blog Template
 
How to use a blog for publishing scientific research: A training guide part 2
How to use a blog for publishing scientific research: A training guide part 2How to use a blog for publishing scientific research: A training guide part 2
How to use a blog for publishing scientific research: A training guide part 2
 
Code inhtml5andcss3
Code inhtml5andcss3Code inhtml5andcss3
Code inhtml5andcss3
 
React projects for beginners
React projects for beginnersReact projects for beginners
React projects for beginners
 
django
djangodjango
django
 
Knockout in action
Knockout in actionKnockout in action
Knockout in action
 
forms
formsforms
forms
 
forms
formsforms
forms
 

More from Thinkful

893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-25-46-115-141-308-324-370
893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-25-46-115-141-308-324-370893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-25-46-115-141-308-324-370
893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-25-46-115-141-308-324-370Thinkful
 
LA 1/31/18 Intro to JavaScript: Fundamentals
LA 1/31/18 Intro to JavaScript: FundamentalsLA 1/31/18 Intro to JavaScript: Fundamentals
LA 1/31/18 Intro to JavaScript: FundamentalsThinkful
 
LA 1/31/18 Intro to JavaScript: Fundamentals
LA 1/31/18 Intro to JavaScript: FundamentalsLA 1/31/18 Intro to JavaScript: Fundamentals
LA 1/31/18 Intro to JavaScript: FundamentalsThinkful
 
Twit botsd1.30.18
Twit botsd1.30.18Twit botsd1.30.18
Twit botsd1.30.18Thinkful
 
Build your-own-instagram-filters-with-javascript-202-335 (1)
Build your-own-instagram-filters-with-javascript-202-335 (1)Build your-own-instagram-filters-with-javascript-202-335 (1)
Build your-own-instagram-filters-with-javascript-202-335 (1)Thinkful
 
Baggwjs124
Baggwjs124Baggwjs124
Baggwjs124Thinkful
 
Become a Data Scientist: A Thinkful Info Session
Become a Data Scientist: A Thinkful Info SessionBecome a Data Scientist: A Thinkful Info Session
Become a Data Scientist: A Thinkful Info SessionThinkful
 
LA 1/18/18 Become A Web Developer: A Thinkful Info Session
LA 1/18/18 Become A Web Developer: A Thinkful Info SessionLA 1/18/18 Become A Web Developer: A Thinkful Info Session
LA 1/18/18 Become A Web Developer: A Thinkful Info SessionThinkful
 
How to Choose a Programming Language
How to Choose a Programming LanguageHow to Choose a Programming Language
How to Choose a Programming LanguageThinkful
 
Batbwjs117
Batbwjs117Batbwjs117
Batbwjs117Thinkful
 
1/16/18 Intro to JS Workshop
1/16/18 Intro to JS Workshop1/16/18 Intro to JS Workshop
1/16/18 Intro to JS WorkshopThinkful
 
LA 1/16/18 Intro to Javascript: Fundamentals
LA 1/16/18 Intro to Javascript: FundamentalsLA 1/16/18 Intro to Javascript: Fundamentals
LA 1/16/18 Intro to Javascript: FundamentalsThinkful
 
(LA 1/16/18) Intro to JavaScript: Fundamentals
(LA 1/16/18) Intro to JavaScript: Fundamentals(LA 1/16/18) Intro to JavaScript: Fundamentals
(LA 1/16/18) Intro to JavaScript: FundamentalsThinkful
 
Websitesd1.15.17.
Websitesd1.15.17.Websitesd1.15.17.
Websitesd1.15.17.Thinkful
 
Bavpwjs110
Bavpwjs110Bavpwjs110
Bavpwjs110Thinkful
 
Byowwhc110
Byowwhc110Byowwhc110
Byowwhc110Thinkful
 
Getting started-jan-9-2018
Getting started-jan-9-2018Getting started-jan-9-2018
Getting started-jan-9-2018Thinkful
 
Introjs1.9.18tf
Introjs1.9.18tfIntrojs1.9.18tf
Introjs1.9.18tfThinkful
 
Proglangauage1.10.18
Proglangauage1.10.18Proglangauage1.10.18
Proglangauage1.10.18Thinkful
 

More from Thinkful (20)

893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-25-46-115-141-308-324-370
893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-25-46-115-141-308-324-370893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-25-46-115-141-308-324-370
893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-25-46-115-141-308-324-370
 
LA 1/31/18 Intro to JavaScript: Fundamentals
LA 1/31/18 Intro to JavaScript: FundamentalsLA 1/31/18 Intro to JavaScript: Fundamentals
LA 1/31/18 Intro to JavaScript: Fundamentals
 
LA 1/31/18 Intro to JavaScript: Fundamentals
LA 1/31/18 Intro to JavaScript: FundamentalsLA 1/31/18 Intro to JavaScript: Fundamentals
LA 1/31/18 Intro to JavaScript: Fundamentals
 
Itjsf129
Itjsf129Itjsf129
Itjsf129
 
Twit botsd1.30.18
Twit botsd1.30.18Twit botsd1.30.18
Twit botsd1.30.18
 
Build your-own-instagram-filters-with-javascript-202-335 (1)
Build your-own-instagram-filters-with-javascript-202-335 (1)Build your-own-instagram-filters-with-javascript-202-335 (1)
Build your-own-instagram-filters-with-javascript-202-335 (1)
 
Baggwjs124
Baggwjs124Baggwjs124
Baggwjs124
 
Become a Data Scientist: A Thinkful Info Session
Become a Data Scientist: A Thinkful Info SessionBecome a Data Scientist: A Thinkful Info Session
Become a Data Scientist: A Thinkful Info Session
 
LA 1/18/18 Become A Web Developer: A Thinkful Info Session
LA 1/18/18 Become A Web Developer: A Thinkful Info SessionLA 1/18/18 Become A Web Developer: A Thinkful Info Session
LA 1/18/18 Become A Web Developer: A Thinkful Info Session
 
How to Choose a Programming Language
How to Choose a Programming LanguageHow to Choose a Programming Language
How to Choose a Programming Language
 
Batbwjs117
Batbwjs117Batbwjs117
Batbwjs117
 
1/16/18 Intro to JS Workshop
1/16/18 Intro to JS Workshop1/16/18 Intro to JS Workshop
1/16/18 Intro to JS Workshop
 
LA 1/16/18 Intro to Javascript: Fundamentals
LA 1/16/18 Intro to Javascript: FundamentalsLA 1/16/18 Intro to Javascript: Fundamentals
LA 1/16/18 Intro to Javascript: Fundamentals
 
(LA 1/16/18) Intro to JavaScript: Fundamentals
(LA 1/16/18) Intro to JavaScript: Fundamentals(LA 1/16/18) Intro to JavaScript: Fundamentals
(LA 1/16/18) Intro to JavaScript: Fundamentals
 
Websitesd1.15.17.
Websitesd1.15.17.Websitesd1.15.17.
Websitesd1.15.17.
 
Bavpwjs110
Bavpwjs110Bavpwjs110
Bavpwjs110
 
Byowwhc110
Byowwhc110Byowwhc110
Byowwhc110
 
Getting started-jan-9-2018
Getting started-jan-9-2018Getting started-jan-9-2018
Getting started-jan-9-2018
 
Introjs1.9.18tf
Introjs1.9.18tfIntrojs1.9.18tf
Introjs1.9.18tf
 
Proglangauage1.10.18
Proglangauage1.10.18Proglangauage1.10.18
Proglangauage1.10.18
 

Recently uploaded

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Recently uploaded (20)

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

bawawjspdx082117

  • 1. Build an App with Javascript & jQuery August 2017 WIFI: TBD Password: TBD bit.ly/jsapp-pdx 1
  • 2. Welcome to "Build an App with Javascript and jQuery". The Wi-Fi network is X and the password is Y The website for this class is Z. Speaker notes
  • 3. Instructor TAs Toby Fee Web Developer for 5 Years Thinkful Mentor 2
  • 4. Let me start with a little about me. My name is X and my background is Y. We have some TA's that will be helping us today. I'm going to go around and have them introduce themselves. Speaker notes
  • 5. About you What's your name? Why do you want to learn JavaScript/jQuery? http://www.loremipsum.com/example Wi-Fi: orem Ipsum PW: orem Ipsum L L 3
  • 6. I'd love to learn a little more about you guys. So can we go around the room and can everyone give us your name, what your goal is for attending the class and your programming background? Speaker notes
  • 7. About Thinkful Thinkful helps people become developers or data scientists through one-on-one mentorship and project-based learning These workshops are built using this approach. 4
  • 8. Thinkful is hosting the event tonight. Thinkful is a coding bootcamp built on a belief in one-on-one mentorship and project based learning. This workshop today is designed using this approach. The bulk of the workshop will be you guys working one-on-one with our TA’s to build a real project. Speaker notes
  • 9. Suggestions for learning Don't treat this as a drill, we're making something real Don't get discouraged, struggle leads to mastery Don't be shy, take full advantage of our support 5
  • 10. To get the most out of this class, we have three suggestions for getting the most our of this experience. The first suggestion is to realize we're building something real and accept that's going to be messy. There will be many right answers and a good project is never done. There will always be ways you can make it better. Whatever your level, we're going to push you so it's a little hard. Even basic addition was hard at one point. Struggle is a part of mastery. Try not to get discouraged. Finally, we're here to help. Take advantage of that support, make sure to ask questions during lecture when you're confused. Make sure you call your TA when you need help. When coding, be resourceful. Always! Speaker notes
  • 11. This is what we're making http://www.loremipsum.com/example Wi-Fi: orem Ipsum PW: orem Ipsum L L 6
  • 12. Today we're building a shopping list app. This app does three things. First you can type the list of an item to add and click the "add item" button to add it to your shopping list. Second you can click on an item to check it off the list. Third you can click the X to remove the item altogether. Speaker notes
  • 13. Agenda Go over starter code (10 min) Learn key jQuery & Javascript concepts (30 min) Build your app! (30 min) Go over solutions (10 min) Next steps (10 min) http://www.loremipsum.com/example Wi-Fi: orem Ipsum PW: orem Ipsum L L 7
  • 14. I’ll start by walking you through the HTML/CSS starter code so you have a reference of what you’ll be working with. Then I’ll go over important Javascript and jQuery concepts that you’ll need to complete the app. You’ll then build the app during which time the TA’s and myself will be walking around to help you guys out. At the end we’ll go over solutions and then cover next steps for continuing your learning. Speaker notes
  • 16. HTML defines the content and the structure of a page. We use "tags" to divide our HTML into sections. Each section of HTML has an opening tag, and a closing tag (demonstrate). In our HTML, we can create labels for our sections. We create labels by adding a "class=" some name in our opening tag. These labels help us "grab" these sections both to add styles. But also as we'll see with jQuery, to manipulate our HTML with Javascript. Lets start with adding styles. We add styles with CSS. We can basically grab a section using it's class. Then we can define different aspects of the section we want to change. (demonstrate) In this case, we are going to grab the "title" section, then make it blue and put a line through it. Speaker notes
  • 18. Alright, now let's dive into the starter code. Go ahead and go to this url to get the starter code. We’re using a online code editor called Glitch which will let us see the result of our code really quickly. On the README.MD file you should see an overview of the project and the challenges you'll be completing. The files we’ll be using today on the left are client.js, style.css, and index.html. You can ignore server.js, package.json and .env. Once you’ve written some code, click the “Show Live” button at the top to open a new tab that will automatically update as you edit your code. Next let's go over the starter code so you guys know what’s going on. At the top of our index.html, we have a head element. This element is different from most others because what it contains won’t actually show up on the page. The main purpose of the head section is to pull other files into our app. This is known as “importing”. You can see here that we're importing our styles.css, our client.js, and jQuery which will be discussing soon. We generally put the content of our HTML, the stuff people might see, in the "body" section of our HTML (versus the "head" section). The "list-content" section houses the three main components of our app. The first component is the text box where a user will type in their shopping list item. The second component is a list where we will add items to our shopping cart. It's empty for now but as we add items to our list, it will show up here. The third component is a button called Add Item. When people click on this button, the item they type in will be added to the list. Speaker notes
  • 19. Think of our HTML as a "tree" <form> list-content <input> item-input <ul> shopping-list <button> add-item 10
  • 20. We can visualize these HTML components as a tree. We have a list-content section but inside that section, we have three smaller sections: our text input, our shopping list, and our button. In HTML, we call this tree the DOM or the "Document Object Model". In this system, list-content is the "parent" to the three components and the three components are the "children" to list-content. Speaker notes
  • 21. What is Javascript? What is jQuery? <input> <ul> shopping-list <button> <li> String cheese <li> Summer sausage <li> Chicken nuggets 11 <div>
  • 22. jQuery is an extension of Javascript. jQuery does a bunch of things one of which is to make it easy to add, modify and remove items from our DOM. 70% of websites use jQuery. For this app, what we want to do is add sections to our shopping list after someone adds a grocery item to the input box and then taps the button. So when someone taps the button, we'll add a new section to the shopping list section, one section for each item added. Those items will be children to shopping list, which is a child to list-content. Speaker notes
  • 23. "Grabbing" a section directly $('.shopping-list') jQuery always starts with this Element to grab 12
  • 24. jQuery makes it really easy to add, change, and remove sections from our HTML. In this case we want to add to a section. The first thing we must do is to tell the computer which section we want to grab. In jQuery, the first thing we'll do is start our line of code with a "$". This tells the computer we're writing a jQuery command. Then inside the parentheses, we add the "class" of the section we want to grab. So in this case, "shopping-list" but starting with a ".". Speaker notes
  • 26. NOTE: All lines for the walkthrough are accessible in the Javascript tab of the demo. Once we grab the right section, we can then use jQuery to perform some action: to add, change, or remove, that section. Lets start by seeing how we can use jQuery to add and remove sections from our app. To add a section, the first thing we want to do is grab the section we want to add to. In this case, we want to add our shopping items to the shopping-list section. So we'll $('.shopping-list'). Then we want to perform an add action. One add action is .append. So lets say we want to add an apple to our shopping list we can do this: $('.shopping-list').append(" apples ") Now we've added this item and given it a label "item". To remove the items we added, we can then do this: $('.item').remove() Another thing we can use jQuery for is to change how a section looks. There are a number of ways to do this but the best way to do this is to define a new class in your CSS and then add or remove those "labels" or "classes" to sections. (enable the CSS tab for this section) Lets say we wanted to use jQuery to change the background color of our header section to pink. In this case, we'd define a new class called "pink". When we add "pink" as a class to the header section, background color will change to pink. $('header').addClass('pink') You can see here that in this case, header is not a class, but the name of a tag. To grab all sections with a specific HTML tag, we just give the tag name without the period in front. With jQuery, we can "chain" actions together. So once we grab a section, we can perform action after action on it in a particular order. Here's an example of using chaining to change the button. $('.add-item').text("Add Shopping Item").css("background", "pink") Finally, you can use jQuery to "traverse" or move up and down the HTML tree to select elements. The easiest way to grab an element is to grab it directly via it's class label. But in some cases, you might not know the class label you want to grab, just where it is in relation to another section. In those cases, you can "traverse" the tree to grab the right section before acting on it. Here's an example: Speaker notes
  • 28. Attaching an "Event Listener" http://www.loremipsum.com/example Wi-Fi: orem Ipsum PW: orem Ipsum L L 14
  • 29. jQuery also lets us manage what happens when some event occurs, say when someone clicks on our button. We do this by attaching a "listener" on a section. A section would then listen, for say, a "click" and then execute the actions we tell it to once that section is clicked. The code will run every time it "hears" that event. The easiest way to attach a listener is when a section has been loaded. There are, however, ways to add listeners to sections that we expect will be loaded but haven't yet. In this case, we want to add an event listener to our button so when someone clicks on it, the text of the button changes and as well as the background color of the button. We see here that we've added a listener to add-item and then we grab add-item again. Instead of repeating ourselves, jQuery lets us refer to thing that was clicked by just saying event.currentTarget. This is an important concept that you'll build on later as you do more programming. Speaker notes
  • 30. Real developers use Google... a lot 15
  • 31. Google is an everyday part of being a developer. A key part of becoming a developer is getting comfortable using Google to learn and look up things. The more you code, the more you will use Google, not the other way around. When you get stuck tonight, or whenever, make sure to Google it first! Speaker notes
  • 32. Let's work on the first step together http://bit.ly/tf-shopping-list http://www.loremipsum.com/example Wi-Fi: orem Ipsum PW: orem Ipsum L L 16
  • 33. Alright, with that let's start building our app. On the left, you can see the files you'll be working on. The Readme will give you instructions. You'll be writing your code in client.js but referring to style.css and index.html. You shouldn't need to touch any of the other files. After you write your code, it will automatically be saved. At any point you can hit "Show Live" to see a live version of your app. Let's start the first step together. So in this first step, we're adding an event listener to the add-item button so when it's clicked, we're going to execute this code which should grab the text in the input box and add that item to our shopping list. The first thing we want to do is grab the value in our input box. How would we grab that element? (Ultimately fill in answer) Alright, once we grab that element, how might we pull out the text inside it? We haven't shown you this yet so I want you guys to Google "getting a value out of an input box with jQuery". Does anyone know the right function to use? (Ultimately fill in the answer) Alright so now we've stored the text from our input box in this variable listItem. So when we write listItem, that value will show up. We've combined that listItem with some HTML to add to our shopping list. Then once you're done with that, we want to zero out the text in our input box. Take it from here! (Assign TA's to different sections of class) Speaker notes
  • 35. Alright. Let's go over the solutions to the main challenges. The first task was to add HTML to the shopping list. We do that with the "prepend" or "append" action. In the parentheses we just give the computer the HTML we want to add. To zero-out the input box, we grab the item-input section and use the .val function to set the box to "". For the second challenge, the user will click on the X button. When we try to remove it, it just removed the X. What we need to do is "traverse" to the parent of the X which is the entire section and remove that. We can chain these actions together. Finally, when we click on the checkbox next to the item, we want to add or remove the "complete" class to add and remove the checkmark. We can do this pretty easily with the toggleClass function. Speaker notes
  • 36. Ways to keep learning More Structure Less Structure More SupportLess Support 18
  • 37. 325+ mentors325+ mentors with an average of 10 years of experience10 years of experience in the field 19
  • 38. In terms of structure, students should be asking what does the program look like - is it 1:1, 1:15 1:30? and what is the frequency? From our experience with students, we've learned that the most effective support is 1:1 - this way each student can get their specific questions and challenges addressed to keep learning and building. In our program, each student is working 1:1 with a mentor throughout the program and these mentoring sessions can be scheduled around your schedule, allowing students to have flexibility to learn how to program while maintaining their job Speaker notes
  • 39. Support 'round the clock Your Mentor Q&A Sessions Career Coach In-person Workshops Slack Program Manager YouYou 20
  • 40. The second thing I tell students to look for is support, both technically and professionally. On the technical side of things, how often are they able to meet with a professional - 1x/week, 3 x/week 24 /7? And on the career side of things, are they working with someone to make sure that they are really job ready? Does this career support happen during the program? We dont want students to sacrifice flexibility for support and this high level of support is really what drives our high placement rate. Speaker notes
  • 41. Our results 93%93%job-placement rate + job guarantee Kaeside IwuagwuKaeside Iwuagwu Link for the third party audit jobs report: https://www.thinkful.com/bootcamp-jobs-https://www.thinkful.com/bootcamp-jobs- statsstats Frontend Developer Sierra GreggSierra Gregg Software Engineer JP EarnestJP Earnest Web Developer 21
  • 42. In our program we have a 93% job placement rate. And this type of data is the last thing I tell students to look for when looking at different paths to keep learning. Does the path offer placement data or information about the roles of the graduates - are the placed positions in industry, such as programming or developer roles, or are they out of industry, such as Ta ships. Additionally, I encourage students to make sure that the data is validated by a third party or auditor. Speaker notes
  • 43. Give Thinkful a try Talk to me (or email noel@thinkful.com) if you're interestedTalk to me (or email noel@thinkful.com) if you're interested Initial 2-week trial includes six mentor sessions for $50 Learn HTML/CSS/Javascript Option to continue into web development bootcamp 22
  • 44. As a thank you for attending our workshop today, we have a two week trial of the flexible program where students have the ability to enroll in the program and see our 1:1 mentorship and support resources. Then, at the end of the two week trial, students have the option to continue into the program. If you are interested in this two week trial, please come talk to me afterward and I'm happy to send you the enrollment link. Thank you again for attending. Speaker notes