Entrepreneur’s guide to programming

29
Entrepreneur’s Guide TO PROGRAMMING

description

Presentation from StartupPB resident developer Edgar Garcia

Transcript of Entrepreneur’s guide to programming

Page 1: Entrepreneur’s guide to programming

Entrepreneur’s GuideTO PROGRAMMING

Page 2: Entrepreneur’s guide to programming

Rundown

Terminology - Nerd talk

Programming Languages Why do we have so many languages

Code Examples

Bizarre coding languages

What to look for in a developer

F.A.Q

Page 3: Entrepreneur’s guide to programming

Nerd Talk

Platform

Framework

Middleware

Full Stack

Compiled vs Interpreted

Page 4: Entrepreneur’s guide to programming

Platform

Page 5: Entrepreneur’s guide to programming

Platform

Provides a base to deploy and run apps

Hardware Architecture & some software on top of which other apps operate

Multitasking, Memory management, access to disk & file system, networking, security, etc..

Platform as a service (PaaS) – Heroku The provider(Heroku) provides the networks, servers, storage, and

other services that are required to host the consumer's application.

Page 6: Entrepreneur’s guide to programming

Framework

Page 7: Entrepreneur’s guide to programming

Framework

Helps design, develop & bind together different components of

your app

Collection of support programs, a scripting language, code libraries. Each library provides specific functionality

Functions provided by framework are exposed through API’s

Highly flexible and reusable

NodeJSExpressMeteor

PHPZend

LaravelPhalcon

RubyRuby on Rails

Sinatra

Page 8: Entrepreneur’s guide to programming

Middleware

Page 9: Entrepreneur’s guide to programming

Middleware

Allows apps to communicate with each other, regardless of platform or vendor

Support your apps from the outside, not tied/bundled with your code.

“Software Glue” which helps software developers perform communication and input/output, so they can focus on the specific purpose of their application.

Page 10: Entrepreneur’s guide to programming

Full Stack

Page 11: Entrepreneur’s guide to programming

Full StackOne with familiarity in each layer, if not

mastery in many and a genuine interest in all software technology.

Good developers who are familiar with the entire stack know how to make life easier for those around them.

1. Server, Network, and Hosting

2. Data Modeling

3. Business Logic

4. API Layer / Action Layer / MVC

5. User Interface

6. User Experience

7. Understanding what the customer and

business need.

Page 12: Entrepreneur’s guide to programming

Compile vs Interpreted

Compile – Turning high level source code into low level machine code, code specific to a processor or operating system. Usually faster.

Interpreted – Another program reads and then executes the original source code. More portable and easier to create.

Page 13: Entrepreneur’s guide to programming

Compile vs Interpreted

Page 14: Entrepreneur’s guide to programming

Programming Languages

Page 15: Entrepreneur’s guide to programming

Java

It is intended to let application developers "write once, run anywhere" (WORA).

class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); // Display the string. }}

Enterprise software

Web based content

Games

Mobile apps

Android Operating System

Page 16: Entrepreneur’s guide to programming

C Language

General purpose programming language.

Building Block for:

Mostly used for implementing operating systems and embedded apps.

#include <stdio.h> int main(void){ printf("hello, world\n");}

C#

Java

Javascript

Python

Page 17: Entrepreneur’s guide to programming

C++

A general purpose programming language that is free-form and compiled.

Mostly used in systems software, application software, device drivers, embedded software, high-performance server and client applications, and entertainment software such as video games

# include <iostream> int main(){ std::cout << "Hello, world!\n";}

Page 18: Entrepreneur’s guide to programming

C#

C♯ is intended to be a simple, modern, general-purpose, object-oriented programming language.

Developed by Microsoft

using System; class Program{ static void Main() { Console.WriteLine("Hello, world!"); }}

Page 19: Entrepreneur’s guide to programming

Objective-C

A general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.

It is the main programming language used by Apple for the OS X and iOS operating systems.

#include <stdio.h>#include <objpak.h>int main(int argc,char **argv){ id set = [Set new]; argv++;while (--argc) [set add:[String str:*argv++]]; [set do:{ :each | printf("hello, %s!\n",[each str]); }]; return 0;}

Page 20: Entrepreneur’s guide to programming

PHP

PHP started life as a series of perl scripts for homepages, hence its original name, "Personal Home Pages". It has now grown to be a fully fledged language, with its own advantages and quirks.

Originally designed to create dynamic web pages, PHP now focuses mainly on server-side scripting.

<?php // Hello World in PHP echo 'Hello World!';?>

Page 21: Entrepreneur’s guide to programming

Python

Emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than would be possible in languages such as C.

Python is used as a scripting language for web applications, video games, artificial intelligence tasks, operating systems.

print "hello world"

Page 22: Entrepreneur’s guide to programming

Ruby

"I wanted a scripting language that was more powerful than Perl, and more object-oriented than Python. That's why I decided to design my own language.“

Used to develop web applications, to web servers themselves, to intelligent graphing libraries, to picture recognition engines, to threaded database servers, to low-level system utilities

puts "Hello, world"

Page 23: Entrepreneur’s guide to programming

Javascript

Dynamic computer programming language. It is most commonly used as part of web browsers, whose implementations allow client-side scripts to interact with the user, control the browser, communicate asynchronously, and alter the document content that is displayed.

Also used in server-side programming, game development and the creation of desktop and mobile applications.

document.writeln("Hello, World");

Page 24: Entrepreneur’s guide to programming

SQL

Not a programming language, but a query language designed for managing data held in a relational database management system

SELECT 'Hello World!' FROM dual WHERE id = 1;

Page 25: Entrepreneur’s guide to programming

Bizarre languages - Whitespace

Whitespace Most modern programming languages do not consider white space

characters (spaces, tabs and newlines) syntax, ignoring them, as if they weren't there. We consider this to be a gross injustice to these perfectly friendly members of the character set. Should they be ignored, just because they are invisible? Whitespace is a language that seeks to redress the balance. Any non whitespace characters are ignored; only spaces, tabs and newlines are considered syntax.

Page 26: Entrepreneur’s guide to programming

Bizarre languages - LOLCODE

LOLCODE The language is based off of the LOLCats phenomenon, and uses

LOLCats syntax to make programs run. Or something like that.

HAICAN HAS STDIO?VISIBLE "HAI WORLD!"KTHXBYE

Page 27: Entrepreneur’s guide to programming

Bizarre languages - Brainfuck

Brainfuck is the most famous esoteric programming language, and has inspired the creation of a host of other languages. Noted for its extreme minimalism, it is designed to challenge and amuse programmers, and is not suitable for practical use.

++++++++++[>+++++++>++++++++++>+++>+<<<<-] >++.>+.+++++++..+++.>++.<<+++++++++++++++. >.+++.------.--------.>+.>.

Page 28: Entrepreneur’s guide to programming

What to look for in a developer

Knowledge/Comfort - Expertise with a language. Efficiency

Experience

Extendibility – Code can easily be picked up by another developer Code commenting

Version control

Communication – Ability to explain what is happening Customer Service

Accessibility

Attitude

Network – Ability to work with others and get help when needed.

Independent – Make smart, consistent decisions regarding the app.

Marketing – Creative ability to increase engagement.

Price – It’s a business.

Page 29: Entrepreneur’s guide to programming

Project F.A.Q

What do I need to get started?

Will everyone see my website the same way?

I built a website, how come I don’t have any traffic?

Who owns the website once design work is complete?

How long does it take to develop a website?