entrepreneur’s guide to programming
DESCRIPTION
Presentation from StartupPB resident developer Edgar GarciaTRANSCRIPT
Entrepreneur’s GuideTO 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
Nerd Talk
Platform
Framework
Middleware
Full Stack
Compiled vs Interpreted
Platform
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.
Framework
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
Middleware
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.
Full Stack
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.
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.
Compile vs Interpreted
Programming Languages
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
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
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";}
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!"); }}
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;}
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!';?>
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"
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"
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");
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;
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.
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
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.
++++++++++[>+++++++>++++++++++>+++>+<<<<-] >++.>+.+++++++..+++.>++.<<+++++++++++++++. >.+++.------.--------.>+.>.
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.
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?