SlideShare a Scribd company logo
1 of 84
Why Learn Python?
Intro by Christine Cheung
Programming
Programming

How many of you have programmed before?
Programming

How many of you have programmed before?

What is the purpose?
Programming

How many of you have programmed before?

What is the purpose?

 Make - create an app
Programming

How many of you have programmed before?

What is the purpose?

 Make - create an app

 Break - edit an app
Programming

How many of you have programmed before?

What is the purpose?

 Make - create an app

 Break - edit an app

 Understand - how or why does it work?
Okay cool, but why
Python?
Okay cool, but why
Python?
Make - simple to get started
Okay cool, but why
Python?
Make - simple to get started


Break - easy to read and edit code
Okay cool, but why
Python?
Make - simple to get started


Break - easy to read and edit code


Understand - modular and abstracted
Show me the Money
Show me the Money
IT Salaries are up
Show me the Money
IT Salaries are up

  Python is 4th top growing skill in past 3
  months
Show me the Money
IT Salaries are up

  Python is 4th top growing skill in past 3
  months

Average starting Python programmer salary
Show me the Money
IT Salaries are up

  Python is 4th top growing skill in past 3
  months

Average starting Python programmer salary

  70k+
Show me the Money
   IT Salaries are up

       Python is 4th top growing skill in past 3
       months

   Average starting Python programmer salary

       70k+

Sources:
- http://www.readwriteweb.com/enterprise/2011/05/it-hiring-and-salaries-up---wh.php
- http://www.payscale.com/research/US/Skill=Python/Salary
History + Facts
History + Facts

Created by Guido van Rossum in late 80s
History + Facts

Created by Guido van Rossum in late 80s

 “Benevolent Dictator for Life” now at Google
History + Facts

Created by Guido van Rossum in late 80s

  “Benevolent Dictator for Life” now at Google

Fun and Playful
History + Facts

Created by Guido van Rossum in late 80s

  “Benevolent Dictator for Life” now at Google

Fun and Playful

  Name is based off Monty Python
History + Facts

Created by Guido van Rossum in late 80s

  “Benevolent Dictator for Life” now at Google

Fun and Playful

  Name is based off Monty Python

    Spam and Eggs!
Strengths
Strengths
 Easy for beginners
Strengths
 Easy for beginners

   ...but powerful enough for professionals
Strengths
 Easy for beginners

   ...but powerful enough for professionals

 Clean and elegant code
Strengths
 Easy for beginners

   ...but powerful enough for professionals

 Clean and elegant code

   whitespace enforcement
Strengths
 Easy for beginners

   ...but powerful enough for professionals

 Clean and elegant code

   whitespace enforcement

 Many modules and libraries to import from
Strengths
 Easy for beginners

   ...but powerful enough for professionals

 Clean and elegant code

   whitespace enforcement

 Many modules and libraries to import from

 Cross platform - Windows, Mac, Linux
Strengths
 Easy for beginners

   ...but powerful enough for professionals

 Clean and elegant code

   whitespace enforcement

 Many modules and libraries to import from

 Cross platform - Windows, Mac, Linux

 Supportive, large, and helpful community
BASIC
BASIC
10   INPUT A
20   INPUT B
30   C=A+B
40   PRINT C

RUN
C
C
#include <stdio.h>

int main(int argc, char*argv[])
{
    int a,b,c;

    scanf("%d",&a);
    scanf("%d",&b);

    c = a+b;
    printf("%dn",c);
}

$ gcc -o add add.c
$ ./add
C
#include <stdio.h>

int main(int argc, char*argv[])
{
    int a,b,c;
                                  standard input/output
    scanf("%d",&a);
    scanf("%d",&b);

    c = a+b;
    printf("%dn",c);
}

$ gcc -o add add.c
$ ./add
C
#include <stdio.h>

int main(int argc, char*argv[])
{
    int a,b,c;
                                  standard input/output
    scanf("%d",&a);
    scanf("%d",&b);               return types

    c = a+b;
    printf("%dn",c);
}

$ gcc -o add add.c
$ ./add
C
#include <stdio.h>

int main(int argc, char*argv[])
{
    int a,b,c;
                                  standard input/output
    scanf("%d",&a);
    scanf("%d",&b);               return types

    c = a+b;                      scanf limitations
    printf("%dn",c);
}

$ gcc -o add add.c
$ ./add
C
#include <stdio.h>

int main(int argc, char*argv[])
{
    int a,b,c;
                                  standard input/output
    scanf("%d",&a);
    scanf("%d",&b);               return types

    c = a+b;                      scanf limitations
    printf("%dn",c);
                                  compiling
}

$ gcc -o add add.c
$ ./add
C
#include <stdio.h>

int main(int argc, char*argv[])
{
    int a,b,c;
                                  standard input/output
    scanf("%d",&a);
    scanf("%d",&b);               return types

    c = a+b;                      scanf limitations
    printf("%dn",c);
                                  compiling
}
                                  ...and not to mention memory
$ gcc -o add add.c                allocation, pointers, variable types...
$ ./add
Java
Java
import java.io.*;
public class Addup
{
    static public void main(String args[]) {
        InputStreamReader stdin = new InputStreamReader(System.in);
        BufferedReader console = new BufferedReader(stdin);
        int i1 = 0,i2 = 0;
        String s1,s2;
        try {
            s1 = console.readLine();
            i1 = Integer.parseInt(s1);
            s2 = console.readLine();
            i2 = Integer.parseInt(s2);
        }
        catch(IOException ioex) {
            System.out.println("Input error");
            System.exit(1);
        }
        catch(NumberFormatException nfex) {
            System.out.println(""" + nfex.getMessage() + "" is not
numeric");
            System.exit(1);
        }
        System.out.println(i1 + " + " + i2 + " = " + (i1+i2));
        System.exit(0);
    }
}
$ javac Addup.java
$ java Addup
Java
import java.io.*;
public class Addup
{                                                                      classes, arguments
    static public void main(String args[]) {
        InputStreamReader stdin = new InputStreamReader(System.in);
        BufferedReader console = new BufferedReader(stdin);
        int i1 = 0,i2 = 0;
        String s1,s2;
        try {
            s1 = console.readLine();
            i1 = Integer.parseInt(s1);
            s2 = console.readLine();
            i2 = Integer.parseInt(s2);
        }
        catch(IOException ioex) {
            System.out.println("Input error");
            System.exit(1);
        }
        catch(NumberFormatException nfex) {
            System.out.println(""" + nfex.getMessage() + "" is not
numeric");
            System.exit(1);
        }
        System.out.println(i1 + " + " + i2 + " = " + (i1+i2));
        System.exit(0);
    }
}
$ javac Addup.java
$ java Addup
Java
import java.io.*;
public class Addup
{                                                                      classes, arguments
    static public void main(String args[]) {
        InputStreamReader stdin = new InputStreamReader(System.in);
        BufferedReader console = new BufferedReader(stdin);
        int i1 = 0,i2 = 0;
                                                                       input stream, buffer
        String s1,s2;
        try {
            s1 = console.readLine();
            i1 = Integer.parseInt(s1);
            s2 = console.readLine();
            i2 = Integer.parseInt(s2);
        }
        catch(IOException ioex) {
            System.out.println("Input error");
            System.exit(1);
        }
        catch(NumberFormatException nfex) {
            System.out.println(""" + nfex.getMessage() + "" is not
numeric");
            System.exit(1);
        }
        System.out.println(i1 + " + " + i2 + " = " + (i1+i2));
        System.exit(0);
    }
}
$ javac Addup.java
$ java Addup
Java
import java.io.*;
public class Addup
{                                                                      classes, arguments
    static public void main(String args[]) {
        InputStreamReader stdin = new InputStreamReader(System.in);
        BufferedReader console = new BufferedReader(stdin);
        int i1 = 0,i2 = 0;
                                                                       input stream, buffer
        String s1,s2;
        try {
            s1 = console.readLine();                                   variable types
            i1 = Integer.parseInt(s1);
            s2 = console.readLine();
            i2 = Integer.parseInt(s2);
        }
        catch(IOException ioex) {
            System.out.println("Input error");
            System.exit(1);
        }
        catch(NumberFormatException nfex) {
            System.out.println(""" + nfex.getMessage() + "" is not
numeric");
            System.exit(1);
        }
        System.out.println(i1 + " + " + i2 + " = " + (i1+i2));
        System.exit(0);
    }
}
$ javac Addup.java
$ java Addup
Java
import java.io.*;
public class Addup
{                                                                      classes, arguments
    static public void main(String args[]) {
        InputStreamReader stdin = new InputStreamReader(System.in);
        BufferedReader console = new BufferedReader(stdin);
        int i1 = 0,i2 = 0;
                                                                       input stream, buffer
        String s1,s2;
        try {
            s1 = console.readLine();                                   variable types
            i1 = Integer.parseInt(s1);
            s2 = console.readLine();
            i2 = Integer.parseInt(s2);                                 try, catch, exceptions
        }
        catch(IOException ioex) {
            System.out.println("Input error");
            System.exit(1);
        }
        catch(NumberFormatException nfex) {
            System.out.println(""" + nfex.getMessage() + "" is not
numeric");
            System.exit(1);
        }
        System.out.println(i1 + " + " + i2 + " = " + (i1+i2));
        System.exit(0);
    }
}
$ javac Addup.java
$ java Addup
Java
import java.io.*;
public class Addup
{                                                                      classes, arguments
    static public void main(String args[]) {
        InputStreamReader stdin = new InputStreamReader(System.in);
        BufferedReader console = new BufferedReader(stdin);
        int i1 = 0,i2 = 0;
                                                                       input stream, buffer
        String s1,s2;
        try {
            s1 = console.readLine();                                   variable types
            i1 = Integer.parseInt(s1);
            s2 = console.readLine();
            i2 = Integer.parseInt(s2);                                 try, catch, exceptions
        }
        catch(IOException ioex) {
            System.out.println("Input error");                         system.out
            System.exit(1);
        }
        catch(NumberFormatException nfex) {
            System.out.println(""" + nfex.getMessage() + "" is not
numeric");
            System.exit(1);
        }
        System.out.println(i1 + " + " + i2 + " = " + (i1+i2));
        System.exit(0);
    }
}
$ javac Addup.java
$ java Addup
Java
import java.io.*;
public class Addup
{                                                                      classes, arguments
    static public void main(String args[]) {
        InputStreamReader stdin = new InputStreamReader(System.in);
        BufferedReader console = new BufferedReader(stdin);
        int i1 = 0,i2 = 0;
                                                                       input stream, buffer
        String s1,s2;
        try {
            s1 = console.readLine();                                   variable types
            i1 = Integer.parseInt(s1);
            s2 = console.readLine();
            i2 = Integer.parseInt(s2);                                 try, catch, exceptions
        }
        catch(IOException ioex) {
            System.out.println("Input error");                         system.out
            System.exit(1);
        }
        catch(NumberFormatException nfex) {
            System.out.println(""" + nfex.getMessage() + "" is not
                                                                       compiling
numeric");
            System.exit(1);
        }
        System.out.println(i1 + " + " + i2 + " = " + (i1+i2));
        System.exit(0);
    }
}
$ javac Addup.java
$ java Addup
Java
import java.io.*;
public class Addup
{                                                                      classes, arguments
    static public void main(String args[]) {
        InputStreamReader stdin = new InputStreamReader(System.in);
        BufferedReader console = new BufferedReader(stdin);
        int i1 = 0,i2 = 0;
                                                                       input stream, buffer
        String s1,s2;
        try {
            s1 = console.readLine();                                   variable types
            i1 = Integer.parseInt(s1);
            s2 = console.readLine();
            i2 = Integer.parseInt(s2);                                 try, catch, exceptions
        }
        catch(IOException ioex) {
            System.out.println("Input error");                         system.out
            System.exit(1);
        }
        catch(NumberFormatException nfex) {
            System.out.println(""" + nfex.getMessage() + "" is not
                                                                       compiling
numeric");
            System.exit(1);
        }                                                              however, at least you don’t
        System.out.println(i1 + " + " + i2 + " = " + (i1+i2));
        System.exit(0);
                                                                       have to deal with garbage
    }                                                                  collection... :)
}
$ javac Addup.java
$ java Addup
Python
Python
a = input()
b = input()
c = a + b
print c

$ python add.py
More Tech Talking
Points
More Tech Talking
Points
Indentation enforces good programming style
More Tech Talking
Points
Indentation enforces good programming style

  can read other’s code, and not obfuscated
More Tech Talking
Points
Indentation enforces good programming style

  can read other’s code, and not obfuscated

  sub b{$n=99-@_-$_||No;"$n bottle"."s"x!!--$n." of beer"};$w=" on the
  wall"; die map{b."$w,n".b.",nTake one down, pass it around,
  n".b(0)."$w.nn"}0..98
More Tech Talking
Points
Indentation enforces good programming style

  can read other’s code, and not obfuscated

  sub b{$n=99-@_-$_||No;"$n bottle"."s"x!!--$n." of beer"};$w=" on the
  wall"; die map{b."$w,n".b.",nTake one down, pass it around,
  n".b(0)."$w.nn"}0..98


  No more forgotten braces and semi-colons! (less debug time)
More Tech Talking
Points
Indentation enforces good programming style

  can read other’s code, and not obfuscated

  sub b{$n=99-@_-$_||No;"$n bottle"."s"x!!--$n." of beer"};$w=" on the
  wall"; die map{b."$w,n".b.",nTake one down, pass it around,
  n".b(0)."$w.nn"}0..98


  No more forgotten braces and semi-colons! (less debug time)

Safe - dynamic run time type checking and bounds checking on arrays
More Tech Talking
    Points
    Indentation enforces good programming style

         can read other’s code, and not obfuscated

         sub b{$n=99-@_-$_||No;"$n bottle"."s"x!!--$n." of beer"};$w=" on the
         wall"; die map{b."$w,n".b.",nTake one down, pass it around,
         n".b(0)."$w.nn"}0..98


         No more forgotten braces and semi-colons! (less debug time)

    Safe - dynamic run time type checking and bounds checking on arrays


Source
http://www.ariel.com.au/a/teaching-programming.html
Scripting and what else?
Scripting and what else?
Application GUI Programming
Scripting and what else?
Application GUI Programming

  Gtk, Qt, Tk, WxWidgets, and MANY more...
Scripting and what else?
Application GUI Programming

  Gtk, Qt, Tk, WxWidgets, and MANY more...

  IronPython (.NET), Jython (Java)
Scripting and what else?
Application GUI Programming

  Gtk, Qt, Tk, WxWidgets, and MANY more...

  IronPython (.NET), Jython (Java)

Web Frameworks
Scripting and what else?
Application GUI Programming

  Gtk, Qt, Tk, WxWidgets, and MANY more...

  IronPython (.NET), Jython (Java)

Web Frameworks

  Django, Pylons, TurboGears, Zope, ...
Scripting and what else?
Application GUI Programming

  Gtk, Qt, Tk, WxWidgets, and MANY more...

  IronPython (.NET), Jython (Java)

Web Frameworks

  Django, Pylons, TurboGears, Zope, ...

Hardware
Scripting and what else?
Application GUI Programming

  Gtk, Qt, Tk, WxWidgets, and MANY more...

  IronPython (.NET), Jython (Java)

Web Frameworks

  Django, Pylons, TurboGears, Zope, ...

Hardware

  Arduino interface, pySerial
Is it really that perfect?
Is it really that perfect?
Interpreted language
Is it really that perfect?
Interpreted language

  slight overhead
Is it really that perfect?
Interpreted language

  slight overhead

  dynamic typing
Is it really that perfect?
Interpreted language

  slight overhead

  dynamic typing

Complex systems (compute bound)
Is it really that perfect?
Interpreted language

  slight overhead

  dynamic typing

Complex systems (compute bound)

Limited systems
Is it really that perfect?
Interpreted language

  slight overhead

  dynamic typing

Complex systems (compute bound)

Limited systems

  low level, limited memory on system
Who else uses it?
Who else uses it?
Who else uses it?
Who else uses it?
Who else uses it?
Who else uses it?
Who else uses it?
Who else uses it?
Who else uses it?
Who else uses it?

More Related Content

What's hot

Final JAVA Practical of BCA SEM-5.
Final JAVA Practical of BCA SEM-5.Final JAVA Practical of BCA SEM-5.
Final JAVA Practical of BCA SEM-5.Nishan Barot
 
Functional Algebra: Monoids Applied
Functional Algebra: Monoids AppliedFunctional Algebra: Monoids Applied
Functional Algebra: Monoids AppliedSusan Potter
 
CodeCamp Iasi 10 march 2012 - Practical Groovy
CodeCamp Iasi 10 march 2012 - Practical GroovyCodeCamp Iasi 10 march 2012 - Practical Groovy
CodeCamp Iasi 10 march 2012 - Practical GroovyCodecamp Romania
 
Design Patterns - Compiler Case Study - Hands-on Examples
Design Patterns - Compiler Case Study - Hands-on ExamplesDesign Patterns - Compiler Case Study - Hands-on Examples
Design Patterns - Compiler Case Study - Hands-on ExamplesGanesh Samarthyam
 
07. Java Array, Set and Maps
07.  Java Array, Set and Maps07.  Java Array, Set and Maps
07. Java Array, Set and MapsIntro C# Book
 
Important java programs(collection+file)
Important java programs(collection+file)Important java programs(collection+file)
Important java programs(collection+file)Alok Kumar
 
Java simple programs
Java simple programsJava simple programs
Java simple programsVEERA RAGAVAN
 
Scala - where objects and functions meet
Scala - where objects and functions meetScala - where objects and functions meet
Scala - where objects and functions meetMario Fusco
 
Swift internals
Swift internalsSwift internals
Swift internalsJung Kim
 
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf MilanFrom Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf MilanFabio Collini
 
Network security
Network securityNetwork security
Network securitybabyangle
 
TDC2016POA | Trilha .NET - C# como você nunca viu: conceitos avançados de pro...
TDC2016POA | Trilha .NET - C# como você nunca viu: conceitos avançados de pro...TDC2016POA | Trilha .NET - C# como você nunca viu: conceitos avançados de pro...
TDC2016POA | Trilha .NET - C# como você nunca viu: conceitos avançados de pro...tdc-globalcode
 

What's hot (19)

Final JAVA Practical of BCA SEM-5.
Final JAVA Practical of BCA SEM-5.Final JAVA Practical of BCA SEM-5.
Final JAVA Practical of BCA SEM-5.
 
Initial Java Core Concept
Initial Java Core ConceptInitial Java Core Concept
Initial Java Core Concept
 
Functional Algebra: Monoids Applied
Functional Algebra: Monoids AppliedFunctional Algebra: Monoids Applied
Functional Algebra: Monoids Applied
 
CodeCamp Iasi 10 march 2012 - Practical Groovy
CodeCamp Iasi 10 march 2012 - Practical GroovyCodeCamp Iasi 10 march 2012 - Practical Groovy
CodeCamp Iasi 10 march 2012 - Practical Groovy
 
C# - What's next
C# - What's nextC# - What's next
C# - What's next
 
Design Patterns - Compiler Case Study - Hands-on Examples
Design Patterns - Compiler Case Study - Hands-on ExamplesDesign Patterns - Compiler Case Study - Hands-on Examples
Design Patterns - Compiler Case Study - Hands-on Examples
 
Kotlin, why?
Kotlin, why?Kotlin, why?
Kotlin, why?
 
07. Java Array, Set and Maps
07.  Java Array, Set and Maps07.  Java Array, Set and Maps
07. Java Array, Set and Maps
 
Java Concurrency by Example
Java Concurrency by ExampleJava Concurrency by Example
Java Concurrency by Example
 
Important java programs(collection+file)
Important java programs(collection+file)Important java programs(collection+file)
Important java programs(collection+file)
 
Java simple programs
Java simple programsJava simple programs
Java simple programs
 
Java Class Design
Java Class DesignJava Class Design
Java Class Design
 
Scala - where objects and functions meet
Scala - where objects and functions meetScala - where objects and functions meet
Scala - where objects and functions meet
 
The Magic Of Elixir
The Magic Of ElixirThe Magic Of Elixir
The Magic Of Elixir
 
Swift internals
Swift internalsSwift internals
Swift internals
 
Unit Testing with Foq
Unit Testing with FoqUnit Testing with Foq
Unit Testing with Foq
 
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf MilanFrom Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan
 
Network security
Network securityNetwork security
Network security
 
TDC2016POA | Trilha .NET - C# como você nunca viu: conceitos avançados de pro...
TDC2016POA | Trilha .NET - C# como você nunca viu: conceitos avançados de pro...TDC2016POA | Trilha .NET - C# como você nunca viu: conceitos avançados de pro...
TDC2016POA | Trilha .NET - C# como você nunca viu: conceitos avançados de pro...
 

Viewers also liked

Why I Love Python
Why I Love PythonWhy I Love Python
Why I Love Pythondidip
 
Learn 90% of Python in 90 Minutes
Learn 90% of Python in 90 MinutesLearn 90% of Python in 90 Minutes
Learn 90% of Python in 90 MinutesMatt Harrison
 
Learn to Find Your Dream Job with Your Dream Employer with DreamPath
Learn to Find Your Dream Job with Your Dream Employer with DreamPath Learn to Find Your Dream Job with Your Dream Employer with DreamPath
Learn to Find Your Dream Job with Your Dream Employer with DreamPath pdx MindShare
 
From Java to Python: beating the Stockholm syndrome
From Java to Python: beating the Stockholm syndromeFrom Java to Python: beating the Stockholm syndrome
From Java to Python: beating the Stockholm syndromeJavier Arias Losada
 
How To Find Your Passion by Ben Rosenfeld
How To Find Your Passion by Ben RosenfeldHow To Find Your Passion by Ben Rosenfeld
How To Find Your Passion by Ben RosenfeldBen Rosenfeld
 
Ruby vs python
Ruby vs pythonRuby vs python
Ruby vs pythonIgor Leroy
 
Python Programming - I. Introduction
Python Programming - I. IntroductionPython Programming - I. Introduction
Python Programming - I. IntroductionRanel Padon
 
Mind, Brain and Relationships
Mind, Brain and RelationshipsMind, Brain and Relationships
Mind, Brain and RelationshipsDaniel Siegel
 
Awaken the giant within
Awaken the giant withinAwaken the giant within
Awaken the giant withinsupermaverick
 
PHP, Java EE & .NET Comparison
PHP, Java EE & .NET ComparisonPHP, Java EE & .NET Comparison
PHP, Java EE & .NET ComparisonHaim Michael
 
Comparison of Programming Platforms
Comparison of Programming PlatformsComparison of Programming Platforms
Comparison of Programming PlatformsAnup Hariharan Nair
 
Python Programming Language
Python Programming LanguagePython Programming Language
Python Programming LanguageDr.YNM
 
Python PPT
Python PPTPython PPT
Python PPTEdureka!
 
Jython: Integrating Python and Java
Jython: Integrating Python and JavaJython: Integrating Python and Java
Jython: Integrating Python and JavaCharles Anderson
 
Introduction to Python
Introduction to Python Introduction to Python
Introduction to Python amiable_indian
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languagesVarun Garg
 

Viewers also liked (20)

Why I Love Python
Why I Love PythonWhy I Love Python
Why I Love Python
 
Python Presentation
Python PresentationPython Presentation
Python Presentation
 
Learn 90% of Python in 90 Minutes
Learn 90% of Python in 90 MinutesLearn 90% of Python in 90 Minutes
Learn 90% of Python in 90 Minutes
 
Learn to Find Your Dream Job with Your Dream Employer with DreamPath
Learn to Find Your Dream Job with Your Dream Employer with DreamPath Learn to Find Your Dream Job with Your Dream Employer with DreamPath
Learn to Find Your Dream Job with Your Dream Employer with DreamPath
 
From Java to Python: beating the Stockholm syndrome
From Java to Python: beating the Stockholm syndromeFrom Java to Python: beating the Stockholm syndrome
From Java to Python: beating the Stockholm syndrome
 
How To Find Your Passion by Ben Rosenfeld
How To Find Your Passion by Ben RosenfeldHow To Find Your Passion by Ben Rosenfeld
How To Find Your Passion by Ben Rosenfeld
 
Ruby vs python
Ruby vs pythonRuby vs python
Ruby vs python
 
Awaken The Giant Within
Awaken The Giant WithinAwaken The Giant Within
Awaken The Giant Within
 
Python Programming - I. Introduction
Python Programming - I. IntroductionPython Programming - I. Introduction
Python Programming - I. Introduction
 
Mind, Brain and Relationships
Mind, Brain and RelationshipsMind, Brain and Relationships
Mind, Brain and Relationships
 
Awaken the giant within
Awaken the giant withinAwaken the giant within
Awaken the giant within
 
PHP, Java EE & .NET Comparison
PHP, Java EE & .NET ComparisonPHP, Java EE & .NET Comparison
PHP, Java EE & .NET Comparison
 
Comparison of Programming Platforms
Comparison of Programming PlatformsComparison of Programming Platforms
Comparison of Programming Platforms
 
Python Programming Language
Python Programming LanguagePython Programming Language
Python Programming Language
 
Python PPT
Python PPTPython PPT
Python PPT
 
Jython: Integrating Python and Java
Jython: Integrating Python and JavaJython: Integrating Python and Java
Jython: Integrating Python and Java
 
Mixing Python and Java
Mixing Python and JavaMixing Python and Java
Mixing Python and Java
 
Introduction to Python
Introduction to Python Introduction to Python
Introduction to Python
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languages
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 

Similar to Why Learn Python?

Java Simple Programs
Java Simple ProgramsJava Simple Programs
Java Simple ProgramsUpender Upr
 
java slip for bachelors of business administration.pdf
java slip for bachelors of business administration.pdfjava slip for bachelors of business administration.pdf
java slip for bachelors of business administration.pdfkokah57440
 
Computer science-2010-cbse-question-paper
Computer science-2010-cbse-question-paperComputer science-2010-cbse-question-paper
Computer science-2010-cbse-question-paperDeepak Singh
 
Understanding java streams
Understanding java streamsUnderstanding java streams
Understanding java streamsShahjahan Samoon
 
Mouse programming in c
Mouse programming in cMouse programming in c
Mouse programming in cgkgaur1987
 
Presentation1 computer shaan
Presentation1 computer shaanPresentation1 computer shaan
Presentation1 computer shaanwalia Shaan
 
Go vs C++ - CppRussia 2019 Piter BoF
Go vs C++ - CppRussia 2019 Piter BoFGo vs C++ - CppRussia 2019 Piter BoF
Go vs C++ - CppRussia 2019 Piter BoFTimur Safin
 
Python-GTK
Python-GTKPython-GTK
Python-GTKYuren Ju
 
Factors.javaimport java.io.; import java.util.Scanner; class .pdf
Factors.javaimport java.io.; import java.util.Scanner; class .pdfFactors.javaimport java.io.; import java.util.Scanner; class .pdf
Factors.javaimport java.io.; import java.util.Scanner; class .pdfdeepakangel
 

Similar to Why Learn Python? (20)

Java Simple Programs
Java Simple ProgramsJava Simple Programs
Java Simple Programs
 
java slip for bachelors of business administration.pdf
java slip for bachelors of business administration.pdfjava slip for bachelors of business administration.pdf
java slip for bachelors of business administration.pdf
 
Sam wd programs
Sam wd programsSam wd programs
Sam wd programs
 
PRACTICAL COMPUTING
PRACTICAL COMPUTINGPRACTICAL COMPUTING
PRACTICAL COMPUTING
 
Java practical
Java practicalJava practical
Java practical
 
Computer science-2010-cbse-question-paper
Computer science-2010-cbse-question-paperComputer science-2010-cbse-question-paper
Computer science-2010-cbse-question-paper
 
Java Programming - 06 java file io
Java Programming - 06 java file ioJava Programming - 06 java file io
Java Programming - 06 java file io
 
Understanding java streams
Understanding java streamsUnderstanding java streams
Understanding java streams
 
C#.net
C#.netC#.net
C#.net
 
54240326 (1)
54240326 (1)54240326 (1)
54240326 (1)
 
54240326 copy
54240326   copy54240326   copy
54240326 copy
 
Mouse programming in c
Mouse programming in cMouse programming in c
Mouse programming in c
 
Presentation1 computer shaan
Presentation1 computer shaanPresentation1 computer shaan
Presentation1 computer shaan
 
Python for Penetration testers
Python for Penetration testersPython for Penetration testers
Python for Penetration testers
 
.net progrmming part1
.net progrmming part1.net progrmming part1
.net progrmming part1
 
Go vs C++ - CppRussia 2019 Piter BoF
Go vs C++ - CppRussia 2019 Piter BoFGo vs C++ - CppRussia 2019 Piter BoF
Go vs C++ - CppRussia 2019 Piter BoF
 
Python-GTK
Python-GTKPython-GTK
Python-GTK
 
TechTalk - Dotnet
TechTalk - DotnetTechTalk - Dotnet
TechTalk - Dotnet
 
C programs
C programsC programs
C programs
 
Factors.javaimport java.io.; import java.util.Scanner; class .pdf
Factors.javaimport java.io.; import java.util.Scanner; class .pdfFactors.javaimport java.io.; import java.util.Scanner; class .pdf
Factors.javaimport java.io.; import java.util.Scanner; class .pdf
 

Recently uploaded

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Recently uploaded (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

Why Learn Python?

  • 1. Why Learn Python? Intro by Christine Cheung
  • 3. Programming How many of you have programmed before?
  • 4. Programming How many of you have programmed before? What is the purpose?
  • 5. Programming How many of you have programmed before? What is the purpose? Make - create an app
  • 6. Programming How many of you have programmed before? What is the purpose? Make - create an app Break - edit an app
  • 7. Programming How many of you have programmed before? What is the purpose? Make - create an app Break - edit an app Understand - how or why does it work?
  • 8. Okay cool, but why Python?
  • 9. Okay cool, but why Python? Make - simple to get started
  • 10. Okay cool, but why Python? Make - simple to get started Break - easy to read and edit code
  • 11. Okay cool, but why Python? Make - simple to get started Break - easy to read and edit code Understand - modular and abstracted
  • 12. Show me the Money
  • 13. Show me the Money IT Salaries are up
  • 14. Show me the Money IT Salaries are up Python is 4th top growing skill in past 3 months
  • 15. Show me the Money IT Salaries are up Python is 4th top growing skill in past 3 months Average starting Python programmer salary
  • 16. Show me the Money IT Salaries are up Python is 4th top growing skill in past 3 months Average starting Python programmer salary 70k+
  • 17. Show me the Money IT Salaries are up Python is 4th top growing skill in past 3 months Average starting Python programmer salary 70k+ Sources: - http://www.readwriteweb.com/enterprise/2011/05/it-hiring-and-salaries-up---wh.php - http://www.payscale.com/research/US/Skill=Python/Salary
  • 19. History + Facts Created by Guido van Rossum in late 80s
  • 20. History + Facts Created by Guido van Rossum in late 80s “Benevolent Dictator for Life” now at Google
  • 21. History + Facts Created by Guido van Rossum in late 80s “Benevolent Dictator for Life” now at Google Fun and Playful
  • 22. History + Facts Created by Guido van Rossum in late 80s “Benevolent Dictator for Life” now at Google Fun and Playful Name is based off Monty Python
  • 23. History + Facts Created by Guido van Rossum in late 80s “Benevolent Dictator for Life” now at Google Fun and Playful Name is based off Monty Python Spam and Eggs!
  • 25. Strengths Easy for beginners
  • 26. Strengths Easy for beginners ...but powerful enough for professionals
  • 27. Strengths Easy for beginners ...but powerful enough for professionals Clean and elegant code
  • 28. Strengths Easy for beginners ...but powerful enough for professionals Clean and elegant code whitespace enforcement
  • 29. Strengths Easy for beginners ...but powerful enough for professionals Clean and elegant code whitespace enforcement Many modules and libraries to import from
  • 30. Strengths Easy for beginners ...but powerful enough for professionals Clean and elegant code whitespace enforcement Many modules and libraries to import from Cross platform - Windows, Mac, Linux
  • 31. Strengths Easy for beginners ...but powerful enough for professionals Clean and elegant code whitespace enforcement Many modules and libraries to import from Cross platform - Windows, Mac, Linux Supportive, large, and helpful community
  • 32. BASIC
  • 33. BASIC 10 INPUT A 20 INPUT B 30 C=A+B 40 PRINT C RUN
  • 34. C
  • 35. C #include <stdio.h> int main(int argc, char*argv[]) { int a,b,c; scanf("%d",&a); scanf("%d",&b); c = a+b; printf("%dn",c); } $ gcc -o add add.c $ ./add
  • 36. C #include <stdio.h> int main(int argc, char*argv[]) { int a,b,c; standard input/output scanf("%d",&a); scanf("%d",&b); c = a+b; printf("%dn",c); } $ gcc -o add add.c $ ./add
  • 37. C #include <stdio.h> int main(int argc, char*argv[]) { int a,b,c; standard input/output scanf("%d",&a); scanf("%d",&b); return types c = a+b; printf("%dn",c); } $ gcc -o add add.c $ ./add
  • 38. C #include <stdio.h> int main(int argc, char*argv[]) { int a,b,c; standard input/output scanf("%d",&a); scanf("%d",&b); return types c = a+b; scanf limitations printf("%dn",c); } $ gcc -o add add.c $ ./add
  • 39. C #include <stdio.h> int main(int argc, char*argv[]) { int a,b,c; standard input/output scanf("%d",&a); scanf("%d",&b); return types c = a+b; scanf limitations printf("%dn",c); compiling } $ gcc -o add add.c $ ./add
  • 40. C #include <stdio.h> int main(int argc, char*argv[]) { int a,b,c; standard input/output scanf("%d",&a); scanf("%d",&b); return types c = a+b; scanf limitations printf("%dn",c); compiling } ...and not to mention memory $ gcc -o add add.c allocation, pointers, variable types... $ ./add
  • 41. Java
  • 42. Java import java.io.*; public class Addup { static public void main(String args[]) { InputStreamReader stdin = new InputStreamReader(System.in); BufferedReader console = new BufferedReader(stdin); int i1 = 0,i2 = 0; String s1,s2; try { s1 = console.readLine(); i1 = Integer.parseInt(s1); s2 = console.readLine(); i2 = Integer.parseInt(s2); } catch(IOException ioex) { System.out.println("Input error"); System.exit(1); } catch(NumberFormatException nfex) { System.out.println(""" + nfex.getMessage() + "" is not numeric"); System.exit(1); } System.out.println(i1 + " + " + i2 + " = " + (i1+i2)); System.exit(0); } } $ javac Addup.java $ java Addup
  • 43. Java import java.io.*; public class Addup { classes, arguments static public void main(String args[]) { InputStreamReader stdin = new InputStreamReader(System.in); BufferedReader console = new BufferedReader(stdin); int i1 = 0,i2 = 0; String s1,s2; try { s1 = console.readLine(); i1 = Integer.parseInt(s1); s2 = console.readLine(); i2 = Integer.parseInt(s2); } catch(IOException ioex) { System.out.println("Input error"); System.exit(1); } catch(NumberFormatException nfex) { System.out.println(""" + nfex.getMessage() + "" is not numeric"); System.exit(1); } System.out.println(i1 + " + " + i2 + " = " + (i1+i2)); System.exit(0); } } $ javac Addup.java $ java Addup
  • 44. Java import java.io.*; public class Addup { classes, arguments static public void main(String args[]) { InputStreamReader stdin = new InputStreamReader(System.in); BufferedReader console = new BufferedReader(stdin); int i1 = 0,i2 = 0; input stream, buffer String s1,s2; try { s1 = console.readLine(); i1 = Integer.parseInt(s1); s2 = console.readLine(); i2 = Integer.parseInt(s2); } catch(IOException ioex) { System.out.println("Input error"); System.exit(1); } catch(NumberFormatException nfex) { System.out.println(""" + nfex.getMessage() + "" is not numeric"); System.exit(1); } System.out.println(i1 + " + " + i2 + " = " + (i1+i2)); System.exit(0); } } $ javac Addup.java $ java Addup
  • 45. Java import java.io.*; public class Addup { classes, arguments static public void main(String args[]) { InputStreamReader stdin = new InputStreamReader(System.in); BufferedReader console = new BufferedReader(stdin); int i1 = 0,i2 = 0; input stream, buffer String s1,s2; try { s1 = console.readLine(); variable types i1 = Integer.parseInt(s1); s2 = console.readLine(); i2 = Integer.parseInt(s2); } catch(IOException ioex) { System.out.println("Input error"); System.exit(1); } catch(NumberFormatException nfex) { System.out.println(""" + nfex.getMessage() + "" is not numeric"); System.exit(1); } System.out.println(i1 + " + " + i2 + " = " + (i1+i2)); System.exit(0); } } $ javac Addup.java $ java Addup
  • 46. Java import java.io.*; public class Addup { classes, arguments static public void main(String args[]) { InputStreamReader stdin = new InputStreamReader(System.in); BufferedReader console = new BufferedReader(stdin); int i1 = 0,i2 = 0; input stream, buffer String s1,s2; try { s1 = console.readLine(); variable types i1 = Integer.parseInt(s1); s2 = console.readLine(); i2 = Integer.parseInt(s2); try, catch, exceptions } catch(IOException ioex) { System.out.println("Input error"); System.exit(1); } catch(NumberFormatException nfex) { System.out.println(""" + nfex.getMessage() + "" is not numeric"); System.exit(1); } System.out.println(i1 + " + " + i2 + " = " + (i1+i2)); System.exit(0); } } $ javac Addup.java $ java Addup
  • 47. Java import java.io.*; public class Addup { classes, arguments static public void main(String args[]) { InputStreamReader stdin = new InputStreamReader(System.in); BufferedReader console = new BufferedReader(stdin); int i1 = 0,i2 = 0; input stream, buffer String s1,s2; try { s1 = console.readLine(); variable types i1 = Integer.parseInt(s1); s2 = console.readLine(); i2 = Integer.parseInt(s2); try, catch, exceptions } catch(IOException ioex) { System.out.println("Input error"); system.out System.exit(1); } catch(NumberFormatException nfex) { System.out.println(""" + nfex.getMessage() + "" is not numeric"); System.exit(1); } System.out.println(i1 + " + " + i2 + " = " + (i1+i2)); System.exit(0); } } $ javac Addup.java $ java Addup
  • 48. Java import java.io.*; public class Addup { classes, arguments static public void main(String args[]) { InputStreamReader stdin = new InputStreamReader(System.in); BufferedReader console = new BufferedReader(stdin); int i1 = 0,i2 = 0; input stream, buffer String s1,s2; try { s1 = console.readLine(); variable types i1 = Integer.parseInt(s1); s2 = console.readLine(); i2 = Integer.parseInt(s2); try, catch, exceptions } catch(IOException ioex) { System.out.println("Input error"); system.out System.exit(1); } catch(NumberFormatException nfex) { System.out.println(""" + nfex.getMessage() + "" is not compiling numeric"); System.exit(1); } System.out.println(i1 + " + " + i2 + " = " + (i1+i2)); System.exit(0); } } $ javac Addup.java $ java Addup
  • 49. Java import java.io.*; public class Addup { classes, arguments static public void main(String args[]) { InputStreamReader stdin = new InputStreamReader(System.in); BufferedReader console = new BufferedReader(stdin); int i1 = 0,i2 = 0; input stream, buffer String s1,s2; try { s1 = console.readLine(); variable types i1 = Integer.parseInt(s1); s2 = console.readLine(); i2 = Integer.parseInt(s2); try, catch, exceptions } catch(IOException ioex) { System.out.println("Input error"); system.out System.exit(1); } catch(NumberFormatException nfex) { System.out.println(""" + nfex.getMessage() + "" is not compiling numeric"); System.exit(1); } however, at least you don’t System.out.println(i1 + " + " + i2 + " = " + (i1+i2)); System.exit(0); have to deal with garbage } collection... :) } $ javac Addup.java $ java Addup
  • 51. Python a = input() b = input() c = a + b print c $ python add.py
  • 53. More Tech Talking Points Indentation enforces good programming style
  • 54. More Tech Talking Points Indentation enforces good programming style can read other’s code, and not obfuscated
  • 55. More Tech Talking Points Indentation enforces good programming style can read other’s code, and not obfuscated sub b{$n=99-@_-$_||No;"$n bottle"."s"x!!--$n." of beer"};$w=" on the wall"; die map{b."$w,n".b.",nTake one down, pass it around, n".b(0)."$w.nn"}0..98
  • 56. More Tech Talking Points Indentation enforces good programming style can read other’s code, and not obfuscated sub b{$n=99-@_-$_||No;"$n bottle"."s"x!!--$n." of beer"};$w=" on the wall"; die map{b."$w,n".b.",nTake one down, pass it around, n".b(0)."$w.nn"}0..98 No more forgotten braces and semi-colons! (less debug time)
  • 57. More Tech Talking Points Indentation enforces good programming style can read other’s code, and not obfuscated sub b{$n=99-@_-$_||No;"$n bottle"."s"x!!--$n." of beer"};$w=" on the wall"; die map{b."$w,n".b.",nTake one down, pass it around, n".b(0)."$w.nn"}0..98 No more forgotten braces and semi-colons! (less debug time) Safe - dynamic run time type checking and bounds checking on arrays
  • 58. More Tech Talking Points Indentation enforces good programming style can read other’s code, and not obfuscated sub b{$n=99-@_-$_||No;"$n bottle"."s"x!!--$n." of beer"};$w=" on the wall"; die map{b."$w,n".b.",nTake one down, pass it around, n".b(0)."$w.nn"}0..98 No more forgotten braces and semi-colons! (less debug time) Safe - dynamic run time type checking and bounds checking on arrays Source http://www.ariel.com.au/a/teaching-programming.html
  • 59.
  • 61. Scripting and what else? Application GUI Programming
  • 62. Scripting and what else? Application GUI Programming Gtk, Qt, Tk, WxWidgets, and MANY more...
  • 63. Scripting and what else? Application GUI Programming Gtk, Qt, Tk, WxWidgets, and MANY more... IronPython (.NET), Jython (Java)
  • 64. Scripting and what else? Application GUI Programming Gtk, Qt, Tk, WxWidgets, and MANY more... IronPython (.NET), Jython (Java) Web Frameworks
  • 65. Scripting and what else? Application GUI Programming Gtk, Qt, Tk, WxWidgets, and MANY more... IronPython (.NET), Jython (Java) Web Frameworks Django, Pylons, TurboGears, Zope, ...
  • 66. Scripting and what else? Application GUI Programming Gtk, Qt, Tk, WxWidgets, and MANY more... IronPython (.NET), Jython (Java) Web Frameworks Django, Pylons, TurboGears, Zope, ... Hardware
  • 67. Scripting and what else? Application GUI Programming Gtk, Qt, Tk, WxWidgets, and MANY more... IronPython (.NET), Jython (Java) Web Frameworks Django, Pylons, TurboGears, Zope, ... Hardware Arduino interface, pySerial
  • 68. Is it really that perfect?
  • 69. Is it really that perfect? Interpreted language
  • 70. Is it really that perfect? Interpreted language slight overhead
  • 71. Is it really that perfect? Interpreted language slight overhead dynamic typing
  • 72. Is it really that perfect? Interpreted language slight overhead dynamic typing Complex systems (compute bound)
  • 73. Is it really that perfect? Interpreted language slight overhead dynamic typing Complex systems (compute bound) Limited systems
  • 74. Is it really that perfect? Interpreted language slight overhead dynamic typing Complex systems (compute bound) Limited systems low level, limited memory on system

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n