Top Banner
Programming for non-tech Entrepreneurs AKA Programming Kindergarten
31
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Programming for non tech entrepreneurs

Programming for non-tech Entrepreneurs

AKA Programming Kindergarten

Page 2: Programming for non tech entrepreneurs

Introduction - Who am I!

Founder Mycrogifts

Rodrigo Gil

Founder DigitalAger

T +351 967 566 932E [email protected] [email protected] @rgilpt

Page 3: Programming for non tech entrepreneurs

Introduction - What is Programming Definition:

A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer.

Page 4: Programming for non tech entrepreneurs

Introduction - Programming History IIn 1801 Joseph Marie Jacquard created Jacquard Loom that simplifies the process of manufacturing textiles with complex patterns. The Loom is controlled by punched cards.

● Ada Lovelace● Turing Machine ● IBM● Apple● Microsoft

Page 5: Programming for non tech entrepreneurs

Introduction - Programming History II

1957 FORTRAN first compiler

1959 COBOL Still used a lot in business applications

1964 BASIC

1972 C Unix, Linux and Windows OS

1978 SQL Database main language

1980 C++ Object oriented language used in many fields

1986 Objective-C iOS, Mac OS

1991 Python Django used a lot for web apps Youtube, Google

1991 HTML Web

1993 Ruby Ruby on Rails used a lot for web apps Twitter, Groupon, Hulu

1995 Java Web, Android, etc...

1995 PHP Wikipedia, Facebook

2001 C# Microsoft

Programming Languages

Page 6: Programming for non tech entrepreneurs

Architectures● Landing Pages - Static Pages● Web oriented - Dynamic Pages● Mobile oriented - Android, iOS● Backends - Web Services● Databases - MySQL, MongoDB,

PostgresSQL, MS SQL

Page 7: Programming for non tech entrepreneurs

Architectures● APIs - Facebook API, Foursquare API,

Google APIs ( Google maps API), ○ Means to communicate between systems.

● Arduino - Controllers and electronic systems

Page 8: Programming for non tech entrepreneurs

Roles in Programming● Programmer

○ Coder, create modules, programs and algorithms ● Project Manager

○ Prioritize, manage development process, timing, risks

● User Experience/User Interface Designer○ Develop views, usability by interviewing users to

improve apps.● Software Architect

○ Design software modules and systems.● Quality Assurance

○ Check the quality of products and services

Page 9: Programming for non tech entrepreneurs

ProcessesWaterfall

● Requirements● Design● Implementation● Verification● Maintenance

Page 10: Programming for non tech entrepreneurs

Processes - Agile Dev.SCRUM● Product Backlog● Sprint Backlog● Sprints

Page 11: Programming for non tech entrepreneurs

Processes - OtherDesign● Design Thinking● Systems ThinkingTDD● Test Driven Development

Page 12: Programming for non tech entrepreneurs

Processes - Where to Start?Planning● Brainstorm● Research (interviews, surveys, use cases)● IA (Information architecture)● Flow diagram or SitemapDesign● Wireframes● UI/UX● SpecificationsDevelop● Start coding!

Page 13: Programming for non tech entrepreneurs

Tools - IDEsDefinition:● Integrated Development Environment

Tool to code your application!

Examples: ● Eclipse● NetBeans● Visual Studio● XCode

Page 14: Programming for non tech entrepreneurs

Tools - How to Start?Editors● Coda● Textmate● Sublime Text● TextEditHosting● Shared vs Dedicated● Cloud processing (Amazon, Heroku, etc)● CMS (Wordpress, etc)FTP● FileZilla● Cyberduck

Page 15: Programming for non tech entrepreneurs

Tools - Revision ControlConcepts: Tools:

Baseline - An approved revision of a document or source file;Branch - A set of files under version control may be branched or forked at a point in time;Checkout - A check-out (or co) is the act of creating a local working copy from the repository;Commit - is the action of writing or merging the changes made in the working copy back to the repository;Merge - A merge or integration is an operation in which two sets of changes are applied to a file or set of files;Repository - The repository is where files' current and historical data are stored, often on a server;

Git

SVN

Team Foundation

Page 16: Programming for non tech entrepreneurs

Basic Programming ConceptsCode (Java):● Variables:

○ int age = 23;○ String name = "Marco Polo";○ float height = "1.70";

● Expressions:○ if (age == 23) (...)

● Cycles:○ for(int i = 0; i < age; i++){ //Happy birthday}

● Classes:○ class BetaStartEntrepreneur (...)

● Objects:○ BetaStartEntrepreneur marco = new BetaStartEntrepreneur()

Page 17: Programming for non tech entrepreneurs

Basic Concepts● Debug:

○ Find Errors (bugs) in code● Test:

○ Automated tests (unit tests) to find bugs○ Users or colleagues test your code to find bugs

● Deploy:○ Actions that make a software system available to use

Page 18: Programming for non tech entrepreneurs

Not so Basic Concepts

MVC● Model - A database, a file or object state● View - Output representation of the model● Controller - Manipulates the model, send

commands to the view

Others: MVVM, MVP, MVT

Design Patterns

Page 19: Programming for non tech entrepreneurs

Why create a web page?● The perfect business card for your enterprise● A detailed and permanent ad● A place that's open 24/7 all year round● Increased competitiveness● Better responsiveness● Increased credibility

Page 20: Programming for non tech entrepreneurs

● It’s the first page the visitors view● Good source of getting details and contact information

from visitors● Visitors become familiar with your product; more likely

they spread the word of your product.

Landing PagesLaunch Rock:

http://launchrock.com/WordPress.com:

Blogs and Product presentationFacebook Pages

Page 21: Programming for non tech entrepreneurs

Web Apps - FrontendLanguages and frameworks:

● HTML● Javascript, JQuery● CSS● AJAX

Page 22: Programming for non tech entrepreneurs

Web Apps - Backend & APIsLanguages and frameworks:● Ruby on Rails● Django (Python)● Java● ASP.Net● PHP

Languages:● JSON● XML

Page 23: Programming for non tech entrepreneurs

Mobile AppsWhy not?● Increased number of mobile devices● Create Mobile Websites● Be closer to the end user● Earn money with mobile paid apps● Promotions, coupons and other related● Location based Services● Mobile campaigns and ads● People spend more time with tablets and

smartphones than PC

Page 24: Programming for non tech entrepreneurs

Mobile AppsWhy not!● Mobile apps need to add new value for the

users● Can be expensive: "you need to be the first,

the best or have the most money"

Page 25: Programming for non tech entrepreneurs

Mobile Apps - Non NativeFrameworks:Phone Gap - http://phonegap.com/● HTML, CSS, Javascript● FreeMonotouch - http://xamarin.com/monotouch● C#● PaidTitanium - http://www.appcelerator.com/● JavaScript-based SDK● Free and paid

Page 26: Programming for non tech entrepreneurs

Mobile Apps - NativeiOS - Apple iPhone, iPad● IDE: XCode● Needs to have a Mac● Programming Language: Objective-C

Android - Google● IDE: Eclipse● Programming Language: Java

Others - Windows Phone, RIM (Java), Symbian

Page 27: Programming for non tech entrepreneurs

Advanced StuffGamification● Increase User Engagement● User feedback● User Onboarding● Create Fun● Improve Business Objectives● Examples

○ FourSquare○ StackOverflow○ Fitocracy○ LinkedIn

Page 28: Programming for non tech entrepreneurs

Advanced Stuff● Machine Learning● Analysis● Business Intelligence

Page 29: Programming for non tech entrepreneurs

Where to go nextW3SchoolsCodeacademyCode SchoolGoogleKodingCourseraStack Overflow

Find a Tech partner

Page 30: Programming for non tech entrepreneurs

References~ http://www.w3schools.com/ ~ http://en.wikipedia.org/wiki/Model–view–controller~ http://en.wikipedia.org/wiki/Software_deployment~ http://en.wikipedia.org/wiki/Revision_control~ http://en.wikipedia.org/wiki/Computer_programming#History~ http://en.wikipedia.org/wiki/History_of_programming_languages~ http://www.webself.net/why-create-a-website.ws~ http://www.inc.com/ss/6-reasons-why-you-need-a-mobile-strategy#0~ http://lifebyexperimentation.com/2011/06/why-you-should-not-have-a-mobile-app/~ http://www.codecademy.com/~ http://www.codeschool.com/~ http://code.google.com/intl/pt-PT/edu/languages/google-python-class/~ https://koding.com/~ https://www.coursera.org/course/programming1~ https://www.coursera.org/course/interactivepython~ http://stackoverflow.com/~ http://www.entrepreneur.com/article/220416~ http://phonegap.com/~ http://xamarin.com/monotouch~ http://www.entrepreneur.com/article/220416

Page 31: Programming for non tech entrepreneurs

Thanks ToBeta-Start (Super - Mega - Faster Accelerator)Miguel Campião (iOS Champion)

ReviewerLuis Reis (Tech Superstar)

ReviewerHugo Bernardo (Entrepreneur - Easy Vino)

ReviewerAll Beta-Starters