2. 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
5. 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.
7. 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
NodeJS
Express
Meteor
PHP
Zend
Laravel
Phalcon
Ruby
Ruby on Rails
Sinatra
9. 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.
11. Full Stack
One 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.
12. 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.
15. 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
16. 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, worldn");
}
C#
Java
Javascript
Python
17. 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";
}
18. 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!");
}
}
19. 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;
}
20. 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!';
?>
21. 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"
22. 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"
23. 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");
24. 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;
25. 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.
26. 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.
HAI
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE
27. 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.
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.
28. 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.
29. 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?