SlideShare a Scribd company logo
1 of 181
Download to read offline
PROGRAMMING FOR
NON-PROGRAMMERS
Chris Castiglione
@castig | pfnp.me
THE QUESTION
How do I communicate an idea
from my head… to a computer?
PROGRAMMING FOR NON-PROGRAMMERS



                         1. WEB DEV PROCESS
                         2. WHICH LANGUAGE?
                                  3. CODE!
PROGRAMMING FOR NON-PROGRAMMERS



                         1. WEB DEV PROCESS
                         2. WHICH LANGUAGE?
                                  3. CODE!
PROGRAMMING FOR NON-PROGRAMMERS



                         1. WEB DEV PROCESS
                         2. WHICH LANGUAGE?
                                  3. CODE!
What is Programming?
(...and why do I care?)
PROGRAMMING
‣   a set of instructions
‣   used to solve a problem
PEANUT BUTTER & JELLY SANDWICH
PEANUT BUTTER & JELLY SANDWICH
‣   find two slices of bread
PEANUT BUTTER & JELLY SANDWICH
‣   find two slices of bread
‣   spread peanut butter on one slice of bread
PEANUT BUTTER & JELLY SANDWICH
‣   find two slices of bread
‣   spread peanut butter on one slice of bread
‣   spread jelly on the other slice of bread
PEANUT BUTTER & JELLY SANDWICH
‣   find two slices of bread
‣   spread peanut butter on one slice of bread
‣   spread jelly on the other slice of bread
‣   put the two slices of bread together
PROBLEM SOLVED!
PROGRAMMING
‣   a set of instructions
‣   used to solve a problem
WHY ARE WE HERE?
‣   to learn to think like a developer
WHY ARE WE HERE?
‣   to learn to think like a developer
‣   to understand the tools (aka. Programming Languages)
WHY ARE WE HERE?
‣   to learn to think like a developer
‣   to understand the tools (aka. Programming Languages)
‣   and to understand the constraints
I. WEB DEV PROCESS
Understand the Problem
Vocabulary
PROGRAMMING FOR NON-PROGRAMMERS


VOCABULARY


         THE WEB WEB SITES
                                                     NATIVE APPS
                 WEB APPS                                                                OTHER
                MOBILE WEB
                                                                               ‣ DECODE THE    ‣ OTHER
                                           Directly on your Operating System     GENOME          HARDWARE
                                                                               ‣ XBOX          ‣ ANYTHING
                                                 ‣   IPHONE    ‣ OSX                             ELSE I MAY
               In a browser                      ‣   ANDROID   ‣ WINDOWS
                                                                               ‣ VIDEO GAMES
                                                                                                 HAVE MISSED
  ‣   CHROME    ‣   FIREFOX   ‣ INTERNET
  ‣   SAFARI    ‣   OPERA      EXPLORER
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


PRODUCT DEVELOPMENT
                            ‣   MVP - Minimal Viable Product
                                ‣   Minimum features needed to test your assumptions
                                ‣   Build, Measure, Learn
                                ‣   Validate your idea
PROGRAMMING FOR NON-PROGRAMMERS




           The worst thing
               is to build something
                that no body wants.
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


A TYPICAL WEB DEVELOPMENT CYCLE



    User-Experience                          Information       Visual Design   Development
         (UX)                              Architecture (IA)
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


A TYPICAL WEB DEVELOPMENT CYCLE



                                             Information       Visual Design   Development
                                           Architecture (IA)
User-Experience
     (UX)
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


USER-EXPERIENCE (UX)
                            ‣   Who are our users?
                            ‣   How do we know if the user is hitting their goals?
                            ‣   What are the most important features of this site?
                            ‣   What does the program do when there are errors?
                            ‣   What are the biggest risks?
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


UX
                    IDEAL EXPERIENCE                   BUSINESS
                                                        NEEDS



                                             BEST                 USER
                                           PRACTICES              NEEDS
PROGRAMMING FOR NON-PROGRAMMERS




         “I want all of the features!”
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


CASE STUDY: IDEAS, FEATURES, GOALS
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]




                                           Who is our user?
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


CASE STUDY: USER RESEARCH
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


CASE STUDY PERSONAS



Mary
Dickinson, North Dakota



                                           John
                                           Long Island, New York
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


PERSONAS: WHAT JOHN CARES ABOUT…
‣ Has5+ computers in his home but says he would     ‣ Has a Facebook and Twitter profile but would not
 gamble on his iPad or a PC netbook running          want to use it to setup an account. He would like
 Firefox primarily.                                  to be able to see who of his Twitter and Facebook
‣ Hasan iPhone 4, can’t wait to convince his wife    friends is playing the game however.
 he needs the new one. Doesn’t think he would       ‣ Watches    video online, sports clips mostly.
 gamble on the iPhone but could see wanting to      ‣ Pays   for Netflix.
 check his account.                                 ‣ Doesmost, if not all, shopping online out of
                                                     convenience and selection.
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


PERSONAS: WHAT JOHN CARES ABOUT
                                ‣ This isn’t sketchy is it?
                                ‣ How can I get my friends involved?

                                ‣ How often are the races on the weekends?
                                ‣ How good quality are the videos?
                                ‣ How will the load time be on my iPad?
                                ‣ How much do I need to play?
                                ‣ How much could I win?

                                ‣ Do I need to know about horses to make smart bets?
Information Architecture
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


A TYPICAL WEB DEVELOPMENT CYCLE



    User-Experience                          Information       Visual Design   Development
         (UX)                              Architecture (IA)
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


A TYPICAL WEB DEVELOPMENT CYCLE



    User-Experience                                            Visual Design   Development
         (UX)
                                             Information
                                           Architecture (IA)
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


INFORMATION ARCHITECTURE (IA)
                            A model or blueprint for the site, resulting in
                            deliverables such as:
                            ‣   wireframes
                            ‣   flow diagrams
                            ‣   sitemap
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


IA: THE BLUEPRINT
                            SITEMAPS & FLOW DIAGRAMS   WIREFRAMES & CONTENT
                            Establish flow and order   Define the user interaction
                                                       and ease the handoff
                                                       process to the creative
                                                       team
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


BRAINSTORMING
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


BRAINSTORMING
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]




TWITTER
(PROTOTYPE)
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


LOW FIDELITY MOCKUPS
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


HIGH FIDELITY MOCKUPS
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


SMALL SITE
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


LARGE SITE
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


FUNCTIONAL
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


FLOW DIAGRAM
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


FLOW DIAGRAM
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


iPHONE WIREFRAMES
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


FOURSQUARE
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


FOURSQUARE
PUT STUFF HERE LATER
HEADER 2
Sed posuere consectetur est at lobortis. Vivamus sagittis lacus vel augue
laoreet rutrum faucibus dolor auctor. Cum sociis natoque penatibus et
magnis dis parturient montes, nascetur ridiculus mus. Maecenas faucibus
mollis interdum.
CONTENT STRATEGY
TREAT TEXT AS USER-INTERFACE
Typography has one plain duty before it and that is to convey information in
writing. No argument or consideration can absolve typography from this duty.
A printed work which cannot be read becomes a product without purpose.
DESIGN. IS ABOUT WORDS.


     TREAT TEXT AS USER-INTERFACE
Visual Design
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


A TYPICAL WEB DEVELOPMENT CYCLE



    User-Experience                          Information       Visual Design   Development
         (UX)                              Architecture (IA)
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


A TYPICAL WEB DEVELOPMENT CYCLE



    User-Experience                          Information                       Development
         (UX)                              Architecture (IA)
                                                               Visual Design
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


VISUAL DESIGN
Wireframes become design comps




                                           59
PROGRAMMING FOR NON-PROGRAMMERS                            source: www.risk-show.com

[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


VISUAL DESIGN
Each wireframe template becomes a comp template




             Homepage                      Listen   Blog
                                                                                       60
PROGRAMMING FOR NON-PROGRAMMERS                    source: www.risk-show.com

[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


STYLE GUIDE




                      Style Tile
                                           Final
                                                                               61
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]




VISUAL DESIGN
PRINT                                      DIGITAL
‣   CMYK                                   ‣   RGB
‣   inches                                 ‣   pixels
‣   300 dpi                                ‣   72 dpi
‣   Illustrator / InDesign                 ‣   Photoshop (for the Web)
‣   PDF, Word Doc                          ‣   PNG, JPG, GIF


                                                                         62
Development
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


A TYPICAL WEB DEVELOPMENT CYCLE



    User-Experience                          Information       Visual Design   Development
         (UX)                              Architecture (IA)
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


A TYPICAL WEB DEVELOPMENT CYCLE



    User-Experience                          Information       Visual Design
         (UX)                              Architecture (IA)
                                                                               Development
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


DEVELOPMENT
Comps become graphics & real text




                                           66
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


DEVELOPMENT
Comps become graphics & real text


                         general-assembly-logo.png




                     social-media.png
                                                     mailer.png



  Real Text:
  General Assembly offers classes, and events at the intersection of
  technology, design, and entrepreneurship. Together with our members,
  thought leaders, and seasoned practitioners, we offer a robust
  curriculum focused on

                                                                         67
PROGRAMMING FOR NON-PROGRAMMERS



FRONT-END
DEVELOPMENT (noun)
the client-side structure and behavior
of a web site; put simply it mostly concerns
how things look on the page
PROGRAMMING FOR NON-PROGRAMMERS



BACK-END
DEVELOPMENT (noun)
the server-side programming that
processes the “business logic”, database,
web services and other utilities
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


DEVELOPMENT
The development process can be broken into two separate responsibilities:




                                                                            70
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


DEVELOPMENT
The development process can be broken into two separate responsibilities:


FRONT-END WEB DEVELOPMENT
1.Client Side
2.How things look to the user
3.Involves: Images, content, structure
4.HTML, CSS, JavaScript




                                                                            71
PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]


DEVELOPMENT
The development process can be broken into two separate responsibilities:


FRONT-END WEB DEVELOPMENT                     BACK-END WEB DEVELOPMENT
1.Client Side                                 1.Server Side
2.How things look to the user                 2.How things works
3.Involves: Images, content, structure        3.Involves: “business logic” and data
4.HTML, CSS, JavaScript                       4.Ruby, PHP C++, Java, etc
                                                           ,




                                                                                      72
PROGRAMMING FOR NON-PROGRAMMERS


ZAPPOS.COM                  process.php



                BACK-END




FRONT-END




            homepage               cart   registration
PROGRAMMING FOR NON-PROGRAMMERS


WEB DEVELOPMENT PROCESS
                                  ‣ Product Development
                                  ‣ User Experience
                                  ‣ Information Architecture
                                  ‣ Content Strategy
                                  ‣ Project Manager
                                  ‣ Business Analyst

                                  ‣   Visual Designer
                                  ‣ Front-end developer
                                  ‣ Back-end developer
                                  ‣ Usability
                                  ‣ Security
                                  ‣ SEO Expert
                                  ‣ Analytics Expert
                                  ‣ Quality Assurance (QA) Tester
                                  ‣ Server Administrator
                                  ‣ Growth Hacking
PROGRAMMING FOR NON-PROGRAMMERS


POST-LAUNCH ROLES
1.Growth Hacker
2.SEO
3.Analytics Expert
4.Quality Assurance
PROGRAMMING FOR NON-PROGRAMMERS
PROGRAMMING FOR NON-PROGRAMMERS




                                  WATERFALL
PROGRAMMING FOR NON-PROGRAMMERS




      AGILE                       WATERFALL
II. WHICH LANGUAGE?
Understand the Tools
PROGRAMMING FOR NON-PROGRAMMERS

                                                   Java
 PHP                       Perl          .NET                    ADA

             Lisp                                      R
                                            C
                              ABC                          Objective C
   COBOL
                    Ruby                        Logo
                                   ASP                          Clu
Smalltalk

                     Ruby                   Visual Basic
    Python                        C++                          ActionScript
PROGRAMMING FOR NON-PROGRAMMERS

                                                   Java
 PHP                       Perl          .NET                    ADA

             Lisp                                      R
                                            C
                              ABC                          Objective C
   COBOL
                    Ruby                        Logo
                                   ASP                          Clu
Smalltalk

                     Ruby                   Visual Basic
    Python                        C++                          ActionScript
PROGRAMMING FOR NON-PROGRAMMERS

                                                   Java
 PHP                       Perl          .NET                    ADA

             Lisp                                      R
                                            C
                              ABC                          Objective C
   COBOL
                    Ruby                        Logo
                                   ASP                          Clu
Smalltalk

                     Ruby                   Visual Basic
    Python                        C++                          ActionScript
PROGRAMMING FOR NON-PROGRAMMERS


HIGH TO LOW LANGUAGES
                HIGH LEVEL
                                  PHP   Ruby       Python

                                    Java       .NET
                                   C++         Objective C

                                           C


                LOW LEVEL         Assembly Language
                                    Machine Code
PROGRAMMING FOR NON-PROGRAMMERS


HIGH TO LOW LANGUAGES
        Machine Code          jQUERY
        1000   CLC      
        1001   LDA $80        $("#submit-button").click(function(){
        1003   ADC $4009        $(".ball").animate({"left": "-=50px"}, "slow");
        1006   STA $80        });
        1008   LDA $81   
        100A   ADC $400A
        100D   STA $81 
PROGRAMMING FOR NON-PROGRAMMERS


INFLUENCED BY?
            PHP                    RUBY                  JAVA
   ‣C        ‣ C++         ‣ ADA     ‣ EIFFEL   ‣ ADA   83   ‣ EIFFEL

   ‣ PERL    ‣ TCL         ‣ C++     ‣ LISP     ‣ MESA       ‣ SmallTalk

   ‣ JAVA                  ‣ CLU     ‣ PERL     ‣ C++

                           ‣ DYLAN   ‣ PYTHON
PROGRAMMING FOR NON-PROGRAMMERS


THE MOTHER OF ALL LANGUAGES



                 C
PROGRAMMING FOR NON-PROGRAMMERS




                             THE WEB WEB SITES
                                     WEB APPS
                                    MOBILE WEB




                                   In a browser
                      ‣   CHROME    ‣   FIREFOX   ‣ INTERNET
                      ‣   SAFARI    ‣   OPERA      EXPLORER
PROGRAMMING FOR NON-PROGRAMMERS


WHAT TO LOOK FOR WHEN CHOOSING A LANGUAGE:
‣   Difficulty level
PROGRAMMING FOR NON-PROGRAMMERS


WHAT TO LOOK FOR WHEN CHOOSING A LANGUAGE:
‣   Difficulty level
‣   Community
PROGRAMMING FOR NON-PROGRAMMERS


WHAT TO LOOK FOR WHEN CHOOSING A LANGUAGE:
‣   Difficulty level
‣   Community
‣   Development time to build an app
PROGRAMMING FOR NON-PROGRAMMERS


WEB PROGRAMMING LANGUAGES
         PHP                      RUBY       PYTHON
          Wikipedia                Twitter     Youtube


          Vimeo                    Hulu+       Google


          Facebook                 Groupon
PROGRAMMING FOR NON-PROGRAMMERS




                     PHP vs. Ruby
PROGRAMMING FOR NON-PROGRAMMERS




                PHP                 RUBY
           EASIER TO               STEEPER
              GET                 LEARNING
            STARTED                 CURVE
             WITH
PROGRAMMING FOR NON-PROGRAMMERS




       1995
       PHP
       RUBY
PROGRAMMING FOR NON-PROGRAMMERS




       1995                2001
       PHP                 PHP
       RUBY
PROGRAMMING FOR NON-PROGRAMMERS




       1995                2001   2006
       PHP                 PHP    RUBY
       RUBY
PROGRAMMING FOR NON-PROGRAMMERS




       1995                2001   2006   today
       PHP                 PHP    RUBY   PHP
       RUBY                              RUBY
PROGRAMMING FOR NON-PROGRAMMERS




                             THE WEB WEB SITES
                                     WEB APPS
                                    MOBILE WEB




                                   In a browser
                      ‣   CHROME    ‣   FIREFOX   ‣ INTERNET
                      ‣   SAFARI    ‣   OPERA      EXPLORER
PROGRAMMING FOR NON-PROGRAMMERS




        USER DRIVEN                             CONTENT DRIVEN
        DATA DRIVEN
                                                                 BLOG
                      WEB APP        WEB SITE
       CUSTOM TASKS                             COMMON TASKS     “OUT OF THE BOX” CMS

                                                                 PLUGINS
                            In a browser
PROGRAMMING FOR NON-PROGRAMMERS




                 RUBY                PHP


             WEB APP              WEB SITE
PROGRAMMING FOR NON-PROGRAMMERS




                 Pop Quiz: Review!
PROGRAMMING FOR NON-PROGRAMMERS


TIMELINE:
THE BLACK EYED PEAS
• Main task: blog
• Agency project
• Large budget
• 6 page content site


                           WEB SITE
PROGRAMMING FOR NON-PROGRAMMERS
Timeline: The Black Eyed Peas
                   30 HOURS



       UX
                   40 HOURS


       IA
                   60 HOURS


     DESIGN

                   120+ HOURS



   DEVELOPMENT
PROGRAMMING FOR NON-PROGRAMMERS


TIMELINE:
THE STORY STUDIO
• Main task: classes
• Consulting
• Low budget
• 4 page navigation site


                           WEB SITE
PROGRAMMING FOR NON-PROGRAMMERS
Timeline: The Story Studio
                     8-12 HOURS



  UX            IA
                     10 HOURS


       DESIGN
                     35 HOURS


   DEVELOPMENT
PROGRAMMING FOR NON-PROGRAMMERS


TIMELINE:
DERBY JACKPOT
• Main task: an online horse
gambling platform
• Start-up Consulting
• Decent-sized budget
• High risk: APIs
                           WEB APP
PROGRAMMING FOR NON-PROGRAMMERS
Timeline: Derby Jackpot
                   45 HOURS



       UX
                   45 HOURS


       IA
                   120 HOURS


     DESIGN

                   500+ HOURS



   DEVELOPMENT
PROGRAMMING FOR NON-PROGRAMMERS


TIMELINE:
GENERALASSEMB.LY
Main tasks:
   • classes
   • about us
   • video
   • social network
   • custom payment gateway
                                  WEB APP
PROGRAMMING FOR NON-PROGRAMMERS


TIMELINE:                         WEB SITE

GENERALASSEMB.LY
Main tasks:
   • classes
   • about us
   • video
   • social network
   • custom payment gateway
PROGRAMMING FOR NON-PROGRAMMERS




             Which Language for...?
                 Native Apps
PROGRAMMING FOR NON-PROGRAMMERS




                               NATIVE APPS



                     Directly on your Operating System
                           ‣   IPHONE    ‣ OSX
                           ‣   ANDROID   ‣ WINDOWS
PROGRAMMING FOR NON-PROGRAMMERS


iPHONE, iPAD, MAC OS
‣   Objective-C
PROGRAMMING FOR NON-PROGRAMMERS


ANDROID
‣   java
PROGRAMMING FOR NON-PROGRAMMERS


MOBILE DEVELOPMENT FRAMEWORKS: NATIVE




             Appcelerator/Titanium      Phone Gap
               “cross-compiler”      “native wrapper”
PROGRAMMING FOR NON-PROGRAMMERS


CROSS COMPILE W/ APPCELERATOR


               Java
                                          Objective-C




                         Javascript-ish
PROGRAMMING FOR NON-PROGRAMMERS


MOBILE WEB / RESPONSIVE DESIGN




                                  Safari on iPhone
               Desktop Browser
PROGRAMMING FOR NON-PROGRAMMERS


MOBILE WEB: FRAMEWORKS




                    Sencha        jQuery Mobile
                 Javascript-ish    jQuery-ish
Content Management Systems
          (CMS)
PROGRAMMING FOR NON-PROGRAMMERS


CONTENT MANAGEMENT SYSTEMS (CMS)
PROGRAMMING FOR NON-PROGRAMMERS


CONTENT MANAGEMENT SYSTEMS (CMS)


                                               ?
     Wordpress           Expression Engine   Custom
PROGRAMMING FOR NON-PROGRAMMERS


CMS DISTRIBUTION IN TOP MILLION SITES
PROGRAMMING FOR NON-PROGRAMMERS




          Which languages are left?
PROGRAMMING FOR NON-PROGRAMMERS


ANALYTICS, QUICK PROCESSES
‣   C++
PROGRAMMING FOR NON-PROGRAMMERS


“REAL-TIME” IS MOST IMPORTANT
‣   Node.js
PROGRAMMING FOR NON-PROGRAMMERS
PROGRAMMING FOR NON-PROGRAMMERS




        And then you were all like...
PROGRAMMING FOR NON-PROGRAMMERS


Q: WELL WHAT ABOUT...                 DJANGO

                                                                            SASS
                                                      EXTJS

                             JQUERY

                                                              BACKBONE.JS
   AJAX*

                                      RUBY ON RAILS
                 PROTOTYPE

                                                                      *Ajax is a JavaScript related technique
Frameworks
LET’S CODE SOME
and come back to frameworks
PROGRAMMING FOR NON-PROGRAMMERS


Q: WELL WHAT ABOUT...                 DJANGO


                                                      EXTJS

                             JQUERY
    BLUEPRINT
                                                              BACKBONE.JS


                                      RUBY ON RAILS
                 PROTOTYPE
PROGRAMMING FOR NON-PROGRAMMERS

                                                     Functions
                         *
  FUNCTION                                     *      Methods

   defines a block of code                             Classes




                                  *I’m giving you permission
                                  to use this in the general sense
PROGRAMMING FOR NON-PROGRAMMERS


FRAMEWORK: Login Example

                login()




                          The “perfect registration form”
PROGRAMMING FOR NON-PROGRAMMERS


FRAMEWORK: Login Example
                      1. Create an email field
                      2. Create a password field
                      3. Create a button that reads “Submit”
            login()
                      4. Check to see that the username isn’t taken
                      5. Validate that the email is real
                      6. Add this user to the database
PROGRAMMING FOR NON-PROGRAMMERS




              1. Advance right leg forward 0.5697 feet
              2. Shift weight to right foot
    walk()
              3. Advance left leg forward 0.5697 feet
              4. Shift weight to left foot
PROGRAMMING FOR NON-PROGRAMMERS


   WALK() {
              1. Advance right leg forward 0.5697 feet
              2. Shift weight to right foot
              3. Advance left leg forward 0.5697 feet
              4. Shift weight to left foot



    }
Frameworks
PROGRAMMING FOR NON-PROGRAMMERS




  FRAMEWORKS
   a collection of pre-baked code
   ...mostly “functions”, and other great stuff
PROGRAMMING FOR NON-PROGRAMMERS


FRAMEWORKS                            DJANGO
                                                                      TWITTER
                                                      EXTJS
                                                                     BOOTSTRAP
                             JQUERY
    BLUEPRINT
                                                              BACKBONE.JS


                                      RUBY ON RAILS
                 PROTOTYPE
PROGRAMMING FOR NON-PROGRAMMERS


WHAT IS TWITTER BOOTSTRAP?



                     http://twitter.github.com/
WHAT IS TWITTER BOOTSTRAP?
A: Pre-baked...        CSS   JS
Frameworks
PROGRAMMING FOR NON-PROGRAMMERS


A: JAVASCRIPT FRAMEWORKS & HELPERS
                                                      EXTJS

                             JQUERY
   AJAX*
                                                              BACKBONE.JS


                                      COFFEE SCRIPT
                 PROTOTYPE

                                                                      *Ajax is a JavaScript related technique
PROGRAMMING FOR NON-PROGRAMMERS


A: CSS FRAMEWORKS & HELPERS

                         SASS
                                                960 GRID SYSTEM
        LESS
                                  COMPASS
                                            BLUEPRINT
Tech Stack
PROGRAMMING FOR NON-PROGRAMMERS


WHAT IS A TECH STACK?
PROGRAMMING FOR NON-PROGRAMMERS


WHAT IS A TECH STACK?
         FRONT-END LANGUAGE        CSS     HTML   JS



         SERVER-SIDE LANGUAGE      PHP



         DATABASE                 MYSQL



         WEB SERVER               APACHE



         OPERATING SYSTEM         LINUX
III. CODE!
Use the Tools
PROGRAMMING FOR NON-PROGRAMMERS



HTML -structure
CSS - style
JS - behavior
PROGRAMMING FOR NON-PROGRAMMERS



HTML (noun)
CSS (adjective)
JS (verb)
PROGRAMMING FOR NON-PROGRAMMERS


HEY CHRIS, CAN YOU...


              make the logo bigger?
PROGRAMMING FOR NON-PROGRAMMERS


HEY CHRIS, CAN YOU...
                                  HTML

              make the logo bigger?
                                         CSS
PROGRAMMING FOR NON-PROGRAMMERS


HEY CHRIS, CAN YOU...


    make that grey heading fadein?
PROGRAMMING FOR NON-PROGRAMMERS


HEY CHRIS, CAN YOU...
                                  HTML

    make that grey heading fadein?
                       CSS               JAVASCRIPT
PROGRAMMING FOR NON-PROGRAMMERS



7 CONCEPTS
...that are the same in every
programming language
PROGRAMMING FOR NON-PROGRAMMERS



1. EVENTS
PROGRAMMING FOR NON-PROGRAMMERS



2. COMMENTS
PROGRAMMING FOR NON-PROGRAMMERS



3. PRINT
PROGRAMMING FOR NON-PROGRAMMERS



4. VARIABLES
PROGRAMMING FOR NON-PROGRAMMERS


POP QUIZ!
                        a=1
                        b=2
                        c=a+b
                        c=?
PROGRAMMING FOR NON-PROGRAMMERS


POP QUIZ!
                        a=1
                        b=2
                        c=a+b
                        c=3
PROGRAMMING FOR NON-PROGRAMMERS



5. DATATYPES
PROGRAMMING FOR NON-PROGRAMMERS



6. CONDITIONALS
PROGRAMMING FOR NON-PROGRAMMERS



7. FUNCTIONS
PROGRAMMING FOR NON-PROGRAMMERS


PROGRAMMING CONCEPTS
1. Events                    6. Conditionals
2. Comments                  7. Functions
3. Print
4. Variables
5. Datatypes
PROGRAMMING FOR NON-PROGRAMMERS


 JAVASCRIPT
 document.write(“Good morning”);
PROGRAMMING FOR NON-PROGRAMMERS


 JAVASCRIPT                        PHP
 document.write(“Good morning”);   echo “Good morning”;
PROGRAMMING FOR NON-PROGRAMMERS


 JAVASCRIPT                        PHP
 document.write(“Good morning”);   echo “Good morning”;




 RUBY
 print “Good morning”
PROGRAMMING FOR NON-PROGRAMMERS


 JAVASCRIPT                        PHP
 document.write(“Good morning”);   echo “Good morning”;




 RUBY                              PERL
 print “Good morning”              say “Good morning”
PROGRAMMING FOR NON-PROGRAMMERS

               1. WEB DEV PROCESS

PFNP 1         2. WHICH LANGUAGE?

                     3. CODE!




PFNP 2          FRONT-END WEB DEV   PFNP 3   BACK-END, SQL, APIS
FRONT-END
HTML, CSS, JS
PROGRAMMING FOR NON-PROGRAMMERS



WHAT IS HTML5?
BACK-END
PHP & SQL
PROGRAMMING FOR NON-PROGRAMMERS


WHAT IS A TECH STACK?
         FRONT-END LANGUAGE                CSS      HTML        JS



         SERVER-SIDE LANGUAGE              JAVA     PYTHON     RUBY      PHP



                                                             POSTGRES
         DATABASE               ORACLE   MONGO DB   MYSQL      SQL



         WEB SERVER                       APACHE    NGINX



                                                             MICROSOFT
         OPERATING SYSTEM                  OSX      LINUX       IIS
PROGRAMMING FOR NON-PROGRAMMERS




                 File Under:
      “not a programming language”
PROGRAMMING FOR NON-PROGRAMMERS


OPEN SOURCE
PROGRAMMING FOR NON-PROGRAMMERS


FTP
PROGRAMMING FOR NON-PROGRAMMERS


GIT
PROGRAMMING FOR NON-PROGRAMMERS


GIT
‣   Revisions
PROGRAMMING FOR NON-PROGRAMMERS


GIT
‣   Revisions
‣   Collaboration
PROGRAMMING FOR NON-PROGRAMMERS


DATABASES (YOU CHOOSE ONE)
‣   MySQL (“My Sequel”)
‣   PostgreSQL
‣   ORACLE
‣   Mongo DB
‣   Reddis



                              SELECT post_title FROM wp_users WHERE post_title = “Joy”

More Related Content

What's hot

457 WWDC08 Student Welcome
457 WWDC08 Student Welcome457 WWDC08 Student Welcome
457 WWDC08 Student Welcomerentzsch
 
Design For Multiple Touchpoints
Design For Multiple TouchpointsDesign For Multiple Touchpoints
Design For Multiple TouchpointsShane Morris
 
Responsive Design Workflow
Responsive Design WorkflowResponsive Design Workflow
Responsive Design WorkflowIntergen
 
Designing The Interface For Use
Designing The Interface For UseDesigning The Interface For Use
Designing The Interface For UseChristina Wodtke
 
Morris prototyping - oredev - share
Morris   prototyping - oredev - shareMorris   prototyping - oredev - share
Morris prototyping - oredev - shareShane Morris
 
Presenting Usable Research Results
Presenting Usable Research ResultsPresenting Usable Research Results
Presenting Usable Research ResultsDiane Loviglio
 
Processes should serve creativity - Which processes help creatives to work be...
Processes should serve creativity - Which processes help creatives to work be...Processes should serve creativity - Which processes help creatives to work be...
Processes should serve creativity - Which processes help creatives to work be...Jan Korsanke
 
20 tips for product owners 2014 NewYearEdition
20 tips for product owners 2014 NewYearEdition20 tips for product owners 2014 NewYearEdition
20 tips for product owners 2014 NewYearEditionBjörn Schotte
 
UX Design for the Responsive Web - UX London 2014 Workshop
UX Design for the Responsive Web - UX London 2014 WorkshopUX Design for the Responsive Web - UX London 2014 Workshop
UX Design for the Responsive Web - UX London 2014 WorkshopMatt Gibson
 
Become a webdeveloper - AKAICamp Beginner #1
Become a webdeveloper - AKAICamp Beginner #1Become a webdeveloper - AKAICamp Beginner #1
Become a webdeveloper - AKAICamp Beginner #1Jacek Tomaszewski
 

What's hot (13)

The Next Generation Website
The Next Generation WebsiteThe Next Generation Website
The Next Generation Website
 
457 WWDC08 Student Welcome
457 WWDC08 Student Welcome457 WWDC08 Student Welcome
457 WWDC08 Student Welcome
 
Design For Multiple Touchpoints
Design For Multiple TouchpointsDesign For Multiple Touchpoints
Design For Multiple Touchpoints
 
Responsive Design Workflow
Responsive Design WorkflowResponsive Design Workflow
Responsive Design Workflow
 
Designing The Interface For Use
Designing The Interface For UseDesigning The Interface For Use
Designing The Interface For Use
 
Morris prototyping - oredev - share
Morris   prototyping - oredev - shareMorris   prototyping - oredev - share
Morris prototyping - oredev - share
 
Presenting Usable Research Results
Presenting Usable Research ResultsPresenting Usable Research Results
Presenting Usable Research Results
 
Processes should serve creativity - Which processes help creatives to work be...
Processes should serve creativity - Which processes help creatives to work be...Processes should serve creativity - Which processes help creatives to work be...
Processes should serve creativity - Which processes help creatives to work be...
 
20 tips for product owners 2014 NewYearEdition
20 tips for product owners 2014 NewYearEdition20 tips for product owners 2014 NewYearEdition
20 tips for product owners 2014 NewYearEdition
 
UX Design for the Responsive Web - UX London 2014 Workshop
UX Design for the Responsive Web - UX London 2014 WorkshopUX Design for the Responsive Web - UX London 2014 Workshop
UX Design for the Responsive Web - UX London 2014 Workshop
 
Become a webdeveloper - AKAICamp Beginner #1
Become a webdeveloper - AKAICamp Beginner #1Become a webdeveloper - AKAICamp Beginner #1
Become a webdeveloper - AKAICamp Beginner #1
 
Snapchat
SnapchatSnapchat
Snapchat
 
Blogging & Podcasting
Blogging & PodcastingBlogging & Podcasting
Blogging & Podcasting
 

Viewers also liked

Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languagesVarun Garg
 
C Programming Language Tutorial for beginners - JavaTpoint
C Programming Language Tutorial for beginners - JavaTpointC Programming Language Tutorial for beginners - JavaTpoint
C Programming Language Tutorial for beginners - JavaTpointJavaTpoint.Com
 
Programming for the non-programmer
Programming for the non-programmerProgramming for the non-programmer
Programming for the non-programmerStelian Firez
 
Programming for Non-Programmers - SXSW Vegas 2014
Programming for Non-Programmers - SXSW Vegas 2014Programming for Non-Programmers - SXSW Vegas 2014
Programming for Non-Programmers - SXSW Vegas 2014Chris Castiglione
 
Basics of c++ Programming Language
Basics of c++ Programming LanguageBasics of c++ Programming Language
Basics of c++ Programming LanguageAhmad Idrees
 
Startup Secrets - Getting Behind the Perfect Investor Pitch
Startup Secrets - Getting Behind the Perfect Investor PitchStartup Secrets - Getting Behind the Perfect Investor Pitch
Startup Secrets - Getting Behind the Perfect Investor PitchMichael Skok
 
Programming language
Programming languageProgramming language
Programming languageMakku-Sama
 
Unit1 principle of programming language
Unit1 principle of programming languageUnit1 principle of programming language
Unit1 principle of programming languageVasavi College of Engg
 
Computer programing
Computer programingComputer programing
Computer programingJT Taylor
 
ICT across the curriculum - Mathematics
ICT across the curriculum - MathematicsICT across the curriculum - Mathematics
ICT across the curriculum - Mathematicsmrpeddle
 
Object-Oriented Programming 2
Object-Oriented Programming 2Object-Oriented Programming 2
Object-Oriented Programming 2Warawut
 
System software lecture infs429
System software lecture infs429System software lecture infs429
System software lecture infs429Edmund Sowah
 
Computer science class 1
Computer science class 1Computer science class 1
Computer science class 1Holly Akers
 

Viewers also liked (20)

Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languages
 
C Programming Language Tutorial for beginners - JavaTpoint
C Programming Language Tutorial for beginners - JavaTpointC Programming Language Tutorial for beginners - JavaTpoint
C Programming Language Tutorial for beginners - JavaTpoint
 
APIs
APIsAPIs
APIs
 
Programming for the non-programmer
Programming for the non-programmerProgramming for the non-programmer
Programming for the non-programmer
 
Programming for Non-Programmers - SXSW Vegas 2014
Programming for Non-Programmers - SXSW Vegas 2014Programming for Non-Programmers - SXSW Vegas 2014
Programming for Non-Programmers - SXSW Vegas 2014
 
Basics of c++ Programming Language
Basics of c++ Programming LanguageBasics of c++ Programming Language
Basics of c++ Programming Language
 
Object-Oriented Programming Using C++
Object-Oriented Programming Using C++Object-Oriented Programming Using C++
Object-Oriented Programming Using C++
 
Startup Secrets - Getting Behind the Perfect Investor Pitch
Startup Secrets - Getting Behind the Perfect Investor PitchStartup Secrets - Getting Behind the Perfect Investor Pitch
Startup Secrets - Getting Behind the Perfect Investor Pitch
 
Programming language
Programming languageProgramming language
Programming language
 
Unit1 principle of programming language
Unit1 principle of programming languageUnit1 principle of programming language
Unit1 principle of programming language
 
Basic programming
Basic programmingBasic programming
Basic programming
 
Optimizely
OptimizelyOptimizely
Optimizely
 
Computer Programing
Computer ProgramingComputer Programing
Computer Programing
 
Computer programing
Computer programingComputer programing
Computer programing
 
Programing techniques
Programing techniquesPrograming techniques
Programing techniques
 
ICT across the curriculum - Mathematics
ICT across the curriculum - MathematicsICT across the curriculum - Mathematics
ICT across the curriculum - Mathematics
 
Object-Oriented Programming 2
Object-Oriented Programming 2Object-Oriented Programming 2
Object-Oriented Programming 2
 
PHP vs. Ruby on Rails
PHP vs. Ruby on RailsPHP vs. Ruby on Rails
PHP vs. Ruby on Rails
 
System software lecture infs429
System software lecture infs429System software lecture infs429
System software lecture infs429
 
Computer science class 1
Computer science class 1Computer science class 1
Computer science class 1
 

Similar to Programming for Non-Programmers: A Guide to Communicating Ideas to Computers

Programming for non-Programmers
Programming for non-ProgrammersProgramming for non-Programmers
Programming for non-ProgrammersEvgeny Tsarkov
 
Programming for non-programmers
Programming for non-programmersProgramming for non-programmers
Programming for non-programmersPancho Goldaracena
 
APPLICATIONS AND DEVICES-DRIVERS REVIEW NOTES.pdf
APPLICATIONS AND DEVICES-DRIVERS REVIEW NOTES.pdfAPPLICATIONS AND DEVICES-DRIVERS REVIEW NOTES.pdf
APPLICATIONS AND DEVICES-DRIVERS REVIEW NOTES.pdfAirrahArishaPialaAlc
 
BLUG 2013 - Mobile Application Delivery - Choices, choices, choices
BLUG 2013 - Mobile Application Delivery - Choices, choices, choicesBLUG 2013 - Mobile Application Delivery - Choices, choices, choices
BLUG 2013 - Mobile Application Delivery - Choices, choices, choicesRené Winkelmeyer
 
Preparing for the WebGeek DevCup
Preparing for the WebGeek DevCupPreparing for the WebGeek DevCup
Preparing for the WebGeek DevCupbryanbibat
 
SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
SEARIS 2014 Keynote - MiddleVR - Philosophy and architectureSEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
SEARIS 2014 Keynote - MiddleVR - Philosophy and architectureSebastien Kuntz
 
Overboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaOverboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaChristian Heilmann
 
Mobile Prototyping
Mobile PrototypingMobile Prototyping
Mobile PrototypingDonna Lichaw
 
Mobile App Performance Optimization to Improve User Experience - by Supercharge
Mobile App Performance Optimization to Improve User Experience - by SuperchargeMobile App Performance Optimization to Improve User Experience - by Supercharge
Mobile App Performance Optimization to Improve User Experience - by SuperchargeSupercharge
 
Mobile User Experience
Mobile User ExperienceMobile User Experience
Mobile User ExperienceDonna Lichaw
 
Internet application
Internet applicationInternet application
Internet applicationRezaul Rahat
 
Responsive Web Design (Microsoft Web & Phone UX Tour 2011)
Responsive Web Design (Microsoft Web & Phone UX Tour 2011)Responsive Web Design (Microsoft Web & Phone UX Tour 2011)
Responsive Web Design (Microsoft Web & Phone UX Tour 2011)Bram Vanderhaeghe
 
Usability Design: Because it's awesome
Usability Design: Because it's awesomeUsability Design: Because it's awesome
Usability Design: Because it's awesomeJen Yu
 
AIR Mobile Development Overview
AIR Mobile Development OverviewAIR Mobile Development Overview
AIR Mobile Development Overviewmario_vieira
 
Developing for Windows Phone: A Guide for iOS Developers
Developing for Windows Phone: A Guide for iOS DevelopersDeveloping for Windows Phone: A Guide for iOS Developers
Developing for Windows Phone: A Guide for iOS DevelopersQubop Inc.
 
2022 COMP4010 Lecture 6: Designing AR Systems
2022 COMP4010 Lecture 6: Designing AR Systems2022 COMP4010 Lecture 6: Designing AR Systems
2022 COMP4010 Lecture 6: Designing AR SystemsMark Billinghurst
 

Similar to Programming for Non-Programmers: A Guide to Communicating Ideas to Computers (20)

Programming for non-Programmers
Programming for non-ProgrammersProgramming for non-Programmers
Programming for non-Programmers
 
Programming for non-programmers
Programming for non-programmersProgramming for non-programmers
Programming for non-programmers
 
APPLICATIONS AND DEVICES-DRIVERS REVIEW NOTES.pdf
APPLICATIONS AND DEVICES-DRIVERS REVIEW NOTES.pdfAPPLICATIONS AND DEVICES-DRIVERS REVIEW NOTES.pdf
APPLICATIONS AND DEVICES-DRIVERS REVIEW NOTES.pdf
 
BLUG 2013 - Mobile Application Delivery - Choices, choices, choices
BLUG 2013 - Mobile Application Delivery - Choices, choices, choicesBLUG 2013 - Mobile Application Delivery - Choices, choices, choices
BLUG 2013 - Mobile Application Delivery - Choices, choices, choices
 
Preparing for the WebGeek DevCup
Preparing for the WebGeek DevCupPreparing for the WebGeek DevCup
Preparing for the WebGeek DevCup
 
Thinking mobile
Thinking mobileThinking mobile
Thinking mobile
 
Android game ppt
Android game pptAndroid game ppt
Android game ppt
 
SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
SEARIS 2014 Keynote - MiddleVR - Philosophy and architectureSEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
 
Overboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaOverboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasia
 
Mobile Prototyping
Mobile PrototypingMobile Prototyping
Mobile Prototyping
 
Yahoo @ Nike
Yahoo @ NikeYahoo @ Nike
Yahoo @ Nike
 
Mobile Apps Portfolio
Mobile Apps PortfolioMobile Apps Portfolio
Mobile Apps Portfolio
 
Mobile App Performance Optimization to Improve User Experience - by Supercharge
Mobile App Performance Optimization to Improve User Experience - by SuperchargeMobile App Performance Optimization to Improve User Experience - by Supercharge
Mobile App Performance Optimization to Improve User Experience - by Supercharge
 
Mobile User Experience
Mobile User ExperienceMobile User Experience
Mobile User Experience
 
Internet application
Internet applicationInternet application
Internet application
 
Responsive Web Design (Microsoft Web & Phone UX Tour 2011)
Responsive Web Design (Microsoft Web & Phone UX Tour 2011)Responsive Web Design (Microsoft Web & Phone UX Tour 2011)
Responsive Web Design (Microsoft Web & Phone UX Tour 2011)
 
Usability Design: Because it's awesome
Usability Design: Because it's awesomeUsability Design: Because it's awesome
Usability Design: Because it's awesome
 
AIR Mobile Development Overview
AIR Mobile Development OverviewAIR Mobile Development Overview
AIR Mobile Development Overview
 
Developing for Windows Phone: A Guide for iOS Developers
Developing for Windows Phone: A Guide for iOS DevelopersDeveloping for Windows Phone: A Guide for iOS Developers
Developing for Windows Phone: A Guide for iOS Developers
 
2022 COMP4010 Lecture 6: Designing AR Systems
2022 COMP4010 Lecture 6: Designing AR Systems2022 COMP4010 Lecture 6: Designing AR Systems
2022 COMP4010 Lecture 6: Designing AR Systems
 

More from Chris Castiglione

Bitcoin, Ethereum, and Blockchain - Digital Literacy @ Columbia University Bu...
Bitcoin, Ethereum, and Blockchain - Digital Literacy @ Columbia University Bu...Bitcoin, Ethereum, and Blockchain - Digital Literacy @ Columbia University Bu...
Bitcoin, Ethereum, and Blockchain - Digital Literacy @ Columbia University Bu...Chris Castiglione
 
Food is confusing: Plant vs. Paleo
Food is confusing: Plant vs. Paleo Food is confusing: Plant vs. Paleo
Food is confusing: Plant vs. Paleo Chris Castiglione
 
The China study and Plant Based Protein - NYC Vegetarian Food Festival 2015
The China study and Plant Based Protein - NYC Vegetarian Food Festival 2015The China study and Plant Based Protein - NYC Vegetarian Food Festival 2015
The China study and Plant Based Protein - NYC Vegetarian Food Festival 2015Chris Castiglione
 

More from Chris Castiglione (6)

Bitcoin, Ethereum, and Blockchain - Digital Literacy @ Columbia University Bu...
Bitcoin, Ethereum, and Blockchain - Digital Literacy @ Columbia University Bu...Bitcoin, Ethereum, and Blockchain - Digital Literacy @ Columbia University Bu...
Bitcoin, Ethereum, and Blockchain - Digital Literacy @ Columbia University Bu...
 
Food is confusing: Plant vs. Paleo
Food is confusing: Plant vs. Paleo Food is confusing: Plant vs. Paleo
Food is confusing: Plant vs. Paleo
 
The China study and Plant Based Protein - NYC Vegetarian Food Festival 2015
The China study and Plant Based Protein - NYC Vegetarian Food Festival 2015The China study and Plant Based Protein - NYC Vegetarian Food Festival 2015
The China study and Plant Based Protein - NYC Vegetarian Food Festival 2015
 
Wordpress
WordpressWordpress
Wordpress
 
Up & Running Web Hosting
Up & Running Web HostingUp & Running Web Hosting
Up & Running Web Hosting
 
Ids classes-floats
Ids classes-floatsIds classes-floats
Ids classes-floats
 

Recently uploaded

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Recently uploaded (20)

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

Programming for Non-Programmers: A Guide to Communicating Ideas to Computers