Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GA | Programming For Non-Programmers (Aug)

GA | Programming For Non-Programmers (Aug)

"Programming For Non-Programmers" is a 3h workshop for GeneralAssemb.ly that serves as a first contact to the world of programming and web development.

Fer Martin

August 18, 2014
Tweet

More Decks by Fer Martin

Other Decks in Programming

Transcript

  1. WHAT IS PROGRAMMING? WHAT CAN YOU BUILD? WEB DEVELOPMENT WEB-SITE

    VS WEB-APP STAGES OF WEB DEVELOPMENT FRONTEND VS BACKEND DEVELOPMENT QUESTIONS AGENDA
  2. Programming for non-Programmers PROGRAMMING LANGUAGE GENERATIONS 1GL 2GL 3GL 4GL

    5GL Machine Language Assembly Language General Purpose Languages Natural Language Neural Networks http://en.wikipedia.org/wiki/Programming_language_generations
  3. Programming for non-Programmers Ada Lovelace (1815-1852) Mother of Programming -

    Daughter of Lord Byron - Not just number crunching: General Computing! - “The Enchantress of Numbers” WHERE DID EVERYTHING START?
  4. Programming for non-Programmers RESPONSIVE DESIGN RESPONSIVE INSPECTOR | CHROME EXTENSION

    https://chrome.google.com/webstore/detail/responsive-inspector/memcdolmmnmnleeiodllgpibdjlkbpim?hl=en
  5. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? WEB TECHNOLOGIES OVERVIEW

    HTML Content Structure, Links Style Sheets Presentation JavaScript Interactivity
  6. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? WEB TECHNOLOGIES OVERVIEW

    HTML Content Structure, Links Style Sheets Presentation JavaScript Interactivity
  7. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? HTML: HYPER-TEXT* MARKUP*

    LANGUAGE Standard defined by World Web Consortium (W3C) that allow us to create web pages in a language that all browsers understand *Hyper-Text - you can cross reference pages *Markup – content is annotated
  8. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? HTML: ROOT ELEMENT

    Every single HTML web page has a top element that describes the type of document it is. <html>                   </html>  
  9. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? HTML: HEAD &

    BODY ELEMENTS <html>                   </html>   <head>   Gives the browser more info on your page   </head>   <body>   Here is where the actual content goes   </body>  
  10. Programming for non-Programmers HTML | COMMON TAGS HTML  TAG  

    Defini6on   Example   <h1>..<h6>   Headers  for  their  sec3ons   <h1>  Programming  is  easy  </h1>   <p>   Parragraph   <p>  This  is  a  rather  short  parragraph….</P   <strong>   Emphasize  text  -­‐  bold   Which  <strong>word</strong>  is  bold?   <em>   Emphasize  text  -­‐  italic   Which  word  <i>is</i>  is  italic?   <ul>  /  <li>   Unnumbered  Lists   <ul>        <li>  first  element  </li>        <li>  second  element  </li>   </ul>   <ol>  /  <li>   Numbered  Lists   <ol>        <li>  first  element  </li>        <li>  second  element  </li>   </ol>   <hr>   Horizontal  Rule   <hr>   <a>   Link   <a  href=hMp://www.generalAssemb.ly>  GA  </a>  
  11. Programming for non-Programmers HTML EXERCISE | 15 MINUTES HTML  TAG

      Example   <h1>..<h6>   <h1>  Programming  is  easy  </h1>     <p>   <p>  This  is  a  rather  short  paragraph….</p>   <strong>   Which  <strong>word</strong>  is  bold?   <em>   Which  word  <em>happens  to  be</em>  italic  now?   <ul>  /  <li>   <ul>        <li>  Element  </li>        <li>  Element  </li>   </ul>   <ol>  /  <li>   <ol>        <li>  first  element  </li>        <li>  second  element  </li>   </ol>   <hr>   Horizontal  Rule   <a>   <a  href=hHp://www.generalAssemb.ly>  GA  </a>   YOUR TURN!
  12. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? WEB TECHNOLOGIES OVERVIEW

    HTML Content Structure, Links Style Sheets Presentation JavaScript Interactivity
  13. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? CSS: CASCADING* STYLE*

    SHEETS Standard defined by World Web Consortium (W3C) that allow us to style web pages in a language that all browsers understand *Style: fonts, colors, spacing, animations, etc *Cascading: styles can inherit from each other
  14. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? CSS: CASCADING STYLE

    SHEETS Style should be separate from content - Help avoid duplication - Allows Reusability - Homogeneous look & feel - Make a site-wide changes in one place - Easier to maintain
  15. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? CSS: MIND BLOWING

    EXAMPLE <strong> Important text! </strong> strong { color: red; } HTML   CSS  
  16. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? CSS: ELEMENTS strong

    { color: red; } CSS  Example   1. Selector 2. Declaration 2.1 Property name 2.2 Property value CSS  Elements  
  17. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? CSS: SELECTORS CSS1

    CSS1   Example   What  elements  apply  to?   .class   .intro   All  elements  with  class=“intro”   #id   #firstName   All  elements  with  id=“firstName”   *   *   All  Elements   element   p   All  <p>  Elements   element  >   p  >  ul   All  <ul>  elements  with  parent  <p>   aHribute  
  18. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? CSS: SELECTOR BY

    ELEMENT #ID <h1 id=“welcome”> Welcome Title </h1> #welcome { border-left: solid 1px green; } HTML   CSS  
  19. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? CSS: SELECTOR BY

    ELEMENT .CLASS <p> Welcome Title </p> <p class=“highlight”> Welcome Title </p> .highlight { background-color: green; font-size: 200%; } HTML   CSS  
  20. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? CSS SELECTORS: LET’S

    PLAY | 5 MINUTES http://tinyurl.com/pfnp-css-selectors
  21. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? CSS: DECLARATION strong

    { color: red; } CSS  Example   1. Selector 2. Declaration 2.1 Property name 2.2 Property value CSS  Elements  
  22. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? CSS: PROPERTIES strong

    { color: red; } CSS  Example   1. Selector 2. Declaration 2.1 Property name 2.2 Property value CSS  Elements  
  23. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? CSS: PROPERTY GROUPS

    Color Background and Borders Basic Box Flexible Box Text Text Decoration Fonts Writing Modes Table Lists and Counters Animation Transform Transition Basic User Interface Multi-column Paged Media Generated Content Filter Effects Image/Replaced Content Masking Speech Marquee
  24. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? CSS: PROPERTY GROUPS

    Color Background and Borders Basic Box Flexible Box Text Text Decoration Fonts Writing Modes Table Lists and Counters Animation Transform Transition Basic User Interface Multi-column Paged Media Generated Content Filter Effects Image/Replaced Content Masking Speech Marquee
  25. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? CSS: PROPERTIES strong

    { color: red; } CSS  Example   1. Selector 2. Declaration 2.1 Property name 2.2 Property value CSS  Elements  
  26. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? CSS: EMBEDDING CSS

    IN YOUR HTML <h1 style=“background-color: red;”> Welcome Title </h1> INLINE  
  27. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? CSS: EMBEDDING CSS

    IN YOUR HTML INTERNAL   <head> <style> h1 { margin-left: 2px; } </style> </head> <body> <h1>Welcome Title </h1> </body>
  28. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? CSS: EMBEDDING CSS

    IN YOUR HTML EXTERNAL   body { background-color: blue; } h1 { margin-left: 2px; } .intro { font-weight: bold; } <head> <link rel=“stylesheet” type=“text/css” href=“styles.css”> </head> <body> <h1> Welcome Title </h1> <p class=“intro”> Parragraph of content </p> </body> styles.css home.html
  29. Programming for non-Programmers WHAT IS WEB DEVELOPMENT? WEB TECHNOLOGIES OVERVIEW

    HTML Content Structure, Links Style Sheets Presentation JavaScript Interactivity
  30. Programming for non-Programmers JAVASCRIPT WEBSITE VS WEBAPP Full programming language

    Dynamic Functional Object Oriented Language Features | client-side Interact with the user Control the browser Communicate Asynchronously Alter the document it’s displayed
  31. Programming for non-Programmers JAVASCRIPT WEBSITE VS WEBAPP Can also run

    in the server ~ Node.js Features | Server-Side Fast, scalable network applications Event-driven Non-blocking I/O Data-intensive real-time applications
  32. Programming for non-Programmers JAVASCRIPT | JQUERY WEBSITE VS WEBAPP Basic

    use: Adds dynamic behaviour to websites Animations & Effects | fade in, sliding, … Events Handling| keyboard, mouse click, … DOM Manipulation | change website on demand AJAX | send & receive info in the background $(‘.MESSAGE-BOX’).HIDE(); $(‘#LOADING’).FADEIN();
  33. Programming for non-Programmers JAVASCRIPT | JQUERY-UI WEBSITE VS WEBAPP Full

    programming language Basic use: Adds components to websites Interactions | draggable, droppable, resizeable, sortable,… Widgets| accordion, datepicker, sliders, tabs,… Effects| change website on demand
  34. Programming for non-Programmers A set of new JavaScript APIs to

    interact with the new HTML5 tags : ‣ Storing persistent data in client-side ‣ Offline cache ‣ Getting Geo-Location ‣ Video and Audio playback controls Cross-platform HTML5 WEBSITE VS WEBAPP
  35. Programming for non-Programmers FRONTENT FRONTEND VS BACKED Frontend is what

    you can see and interact with a browser. Usually Refers to: - HTML - CSS - Client-side Javascript
  36. Programming for non-Programmers BACKEND FRONTEND VS BACKED Backend is what

    happens in the server Includes stuff like: - Server-side logic * rails, django, node.js, - Database management - Caching