2. Introduction - Who am I!
Rodrigo Gil
T +351 967 566 932
E rodrigo@digitalager.com
E rodrigo@mycrogifts.com
Twitter @rgilpt
Founder Mycrogifts Founder DigitalAger
3. Introduction - What is
Programming
Definition:
A programming language is an artificial
language designed to communicate instructions
to a machine, particularly a computer.
4. Introduction - Programming
History I
In 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
5. Introduction - Programming
History II Programming Languages
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
6. Architectures
● Landing Pages - Static Pages
● Web oriented - Dynamic Pages
● Mobile oriented - Android, iOS
● Backends - Web Services
● Databases - MySQL, MongoDB,
PostgresSQL, MS SQL
7. Architectures
● APIs - Facebook API, Foursquare API,
Google APIs ( Google maps API),
○ Means to communicate between systems.
● Arduino - Controllers and electronic systems
8. 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
12. Processes - Where to Start?
Planning
● Brainstorm
● Research (interviews, surveys, use cases)
● IA (Information architecture)
● Flow diagram or Sitemap
Design
● Wireframes
● UI/UX
● Specifications
Develop
● Start coding!
13. Tools - IDEs
Definition:
● Integrated Development Environment
Tool to code your application!
Examples: ● Eclipse
● NetBeans
● Visual Studio
● XCode
14. Tools - How to Start?
Editors
● Coda
● Textmate
● Sublime Text
● TextEdit
Hosting
● Shared vs Dedicated
● Cloud processing (Amazon, Heroku, etc)
● CMS (Wordpress, etc)
FTP
● FileZilla
● Cyberduck
15. Tools - Revision Control
Concepts: Tools:
Baseline - An approved revision of a document or source file; Git
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;
SVN
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 Team
sets of changes are applied to a file or set of files;
Foundation
Repository - The repository is where files' current and
historical data are stored, often on a server;
16. Basic Programming Concepts
Code (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()
17. 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
18. Not so Basic Concepts
Design Patterns
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
19. 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
20. Landing Pages
Launch Rock:
http://launchrock.com/
WordPress.com:
Blogs and Product presentation
Facebook Pages
● 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.
21. Web Apps - Frontend
Languages and frameworks:
● HTML
● Javascript, JQuery
● CSS
● AJAX
22. Web Apps - Backend & APIs
Languages and frameworks:
● Ruby on Rails
● Django (Python)
● Java
● ASP.Net
● PHP
Languages:
● JSON
● XML
23. Mobile Apps
Why 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
24. Mobile Apps
Why 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"
25. Mobile Apps - Non Native
Frameworks:
Phone Gap - http://phonegap.com/
● HTML, CSS, Javascript
● Free
Monotouch - http://xamarin.com/monotouch
● C#
● Paid
Titanium - http://www.appcelerator.com/
● JavaScript-based SDK
● Free and paid
26. Mobile Apps - Native
iOS - 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
27. Advanced Stuff
Gamification
● Increase User Engagement
● User feedback
● User Onboarding
● Create Fun
● Improve Business Objectives
● Examples
○ FourSquare
○ StackOverflow
○ Fitocracy
○ LinkedIn
31. Thanks To
Beta-Start (Super - Mega - Faster Accelerator)
Miguel Campião (iOS Champion)
Reviewer
Luis Reis (Tech Superstar)
Reviewer
Hugo Bernardo (Entrepreneur - Easy Vino)
Reviewer
All Beta-Starters