This document provides an overview of programming for non-programmers. It discusses the typical web development process, including planning, design, and development phases. In the planning phase, it covers understanding the problem, users, and goals through research. In design, it discusses information architecture, wireframes, and visual design. For development, it explains front-end and back-end development and common programming languages used. The goal is to help non-programmers understand the tools and process used in programming.
10. PEANUT BUTTER & JELLY SANDWICH
‣ find two slices of bread
‣ spread peanut butter on one slice of bread
11. 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
12. 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
20. 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
21. 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
23. PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]
A TYPICAL WEB DEVELOPMENT CYCLE
User-Experience Information Visual Design Development
(UX) Architecture (IA)
24. PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]
A TYPICAL WEB DEVELOPMENT CYCLE
Information Visual Design Development
Architecture (IA)
User-Experience
(UX)
26. 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?
27. PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]
UX
IDEAL EXPERIENCE BUSINESS
NEEDS
BEST USER
PRACTICES NEEDS
32. PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]
CASE STUDY PERSONAS
Mary
Dickinson, North Dakota
John
Long Island, New York
33. 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.
34. 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?
36. PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]
A TYPICAL WEB DEVELOPMENT CYCLE
User-Experience Information Visual Design Development
(UX) Architecture (IA)
37. PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]
A TYPICAL WEB DEVELOPMENT CYCLE
User-Experience Visual Design Development
(UX)
Information
Architecture (IA)
38. 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
39. 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
53. 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.
54. 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.
57. PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]
A TYPICAL WEB DEVELOPMENT CYCLE
User-Experience Information Visual Design Development
(UX) Architecture (IA)
58. PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]
A TYPICAL WEB DEVELOPMENT CYCLE
User-Experience Information Development
(UX) Architecture (IA)
Visual Design
64. PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]
A TYPICAL WEB DEVELOPMENT CYCLE
User-Experience Information Visual Design Development
(UX) Architecture (IA)
65. PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]
A TYPICAL WEB DEVELOPMENT CYCLE
User-Experience Information Visual Design
(UX) Architecture (IA)
Development
67. 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
70. PROGRAMMING FOR NON-PROGRAMMERS
[ 1. PLAN ] [ 2. DESIGN ] [ 3. DEVELOP ]
DEVELOPMENT
The development process can be broken into two separate responsibilities:
70
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
1.Client Side
2.How things look to the user
3.Involves: Images, content, structure
4.HTML, CSS, JavaScript
71
72. 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
80. 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
81. 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
82. 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
83. 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
84. 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
85. 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
98. PROGRAMMING FOR NON-PROGRAMMERS
THE WEB WEB SITES
WEB APPS
MOBILE WEB
In a browser
‣ CHROME ‣ FIREFOX ‣ INTERNET
‣ SAFARI ‣ OPERA EXPLORER
99. 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
127. 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
132. 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
134. 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
135. 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
136. 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
}
147. 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
174. 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