SlideShare a Scribd company logo
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
Why Learn Python?
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 (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.
Nishan Barot
 
Initial Java Core Concept
Initial Java Core ConceptInitial Java Core Concept
Initial Java Core Concept
Rays Technologies
 
Functional Algebra: Monoids Applied
Functional Algebra: Monoids AppliedFunctional Algebra: Monoids Applied
Functional Algebra: Monoids Applied
Susan 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 Groovy
Codecamp Romania
 
C# - What's next
C# - What's nextC# - What's next
C# - What's next
Christian Nagel
 
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
Ganesh Samarthyam
 
Kotlin, why?
Kotlin, why?Kotlin, why?
Kotlin, why?
Paweł Byszewski
 
07. Java Array, Set and Maps
07.  Java Array, Set and Maps07.  Java Array, Set and Maps
07. Java Array, Set and Maps
Intro C# Book
 
Java Concurrency by Example
Java Concurrency by ExampleJava Concurrency by Example
Java Concurrency by Example
Ganesh Samarthyam
 
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 programs
VEERA RAGAVAN
 
Java Class Design
Java Class DesignJava Class Design
Java Class Design
Ganesh Samarthyam
 
Scala - where objects and functions meet
Scala - where objects and functions meetScala - where objects and functions meet
Scala - where objects and functions meet
Mario Fusco
 
The Magic Of Elixir
The Magic Of ElixirThe Magic Of Elixir
The Magic Of Elixir
Gabriele Lana
 
Swift internals
Swift internalsSwift internals
Swift internals
Jung Kim
 
Unit Testing with Foq
Unit Testing with FoqUnit Testing with Foq
Unit Testing with Foq
Phillip Trelford
 
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
Fabio Collini
 
Network security
Network securityNetwork security
Network security
babyangle
 
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
 
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 Applied
Susan 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 Groovy
Codecamp 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 Examples
Ganesh Samarthyam
 
07. Java Array, Set and Maps
07.  Java Array, Set and Maps07.  Java Array, Set and Maps
07. Java Array, Set and Maps
Intro 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 programs
VEERA RAGAVAN
 
Scala - where objects and functions meet
Scala - where objects and functions meetScala - where objects and functions meet
Scala - where objects and functions meet
Mario Fusco
 
Swift internals
Swift internalsSwift internals
Swift internals
Jung 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 Milan
Fabio Collini
 
Network security
Network securityNetwork security
Network security
babyangle
 
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
 

Viewers also liked (20)

Why I Love Python
Why I Love PythonWhy I Love Python
Why I Love Python
didip
 
Python Presentation
Python PresentationPython Presentation
Python Presentation
Narendra Sisodiya
 
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
Matt 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 syndrome
Javier 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 Rosenfeld
Ben Rosenfeld
 
Ruby vs python
Ruby vs pythonRuby vs python
Ruby vs python
Igor Leroy
 
Awaken The Giant Within
Awaken The Giant WithinAwaken The Giant Within
Awaken The Giant Within
Aishwarya Bhavsar
 
Python Programming - I. Introduction
Python Programming - I. IntroductionPython Programming - I. Introduction
Python Programming - I. Introduction
Ranel Padon
 
Mind, Brain and Relationships
Mind, Brain and RelationshipsMind, Brain and Relationships
Mind, Brain and Relationships
Daniel Siegel
 
Awaken the giant within
Awaken the giant withinAwaken the giant within
Awaken the giant within
supermaverick
 
PHP, Java EE & .NET Comparison
PHP, Java EE & .NET ComparisonPHP, Java EE & .NET Comparison
PHP, Java EE & .NET Comparison
Haim Michael
 
Comparison of Programming Platforms
Comparison of Programming PlatformsComparison of Programming Platforms
Comparison of Programming Platforms
Anup Hariharan Nair
 
Python Programming Language
Python Programming LanguagePython Programming Language
Python Programming Language
Dr.YNM
 
Python PPT
Python PPTPython PPT
Python PPT
Edureka!
 
Jython: Integrating Python and Java
Jython: Integrating Python and JavaJython: Integrating Python and Java
Jython: Integrating Python and Java
Charles Anderson
 
Mixing Python and Java
Mixing Python and JavaMixing Python and Java
Mixing Python and Java
Andreas Schreiber
 
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 languages
Varun Garg
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
Natasha Murashev
 
Why I Love Python
Why I Love PythonWhy I Love Python
Why I Love Python
didip
 
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
Matt 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 syndrome
Javier 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 Rosenfeld
Ben Rosenfeld
 
Ruby vs python
Ruby vs pythonRuby vs python
Ruby vs python
Igor Leroy
 
Python Programming - I. Introduction
Python Programming - I. IntroductionPython Programming - I. Introduction
Python Programming - I. Introduction
Ranel Padon
 
Mind, Brain and Relationships
Mind, Brain and RelationshipsMind, Brain and Relationships
Mind, Brain and Relationships
Daniel Siegel
 
Awaken the giant within
Awaken the giant withinAwaken the giant within
Awaken the giant within
supermaverick
 
PHP, Java EE & .NET Comparison
PHP, Java EE & .NET ComparisonPHP, Java EE & .NET Comparison
PHP, Java EE & .NET Comparison
Haim Michael
 
Comparison of Programming Platforms
Comparison of Programming PlatformsComparison of Programming Platforms
Comparison of Programming Platforms
Anup Hariharan Nair
 
Python Programming Language
Python Programming LanguagePython Programming Language
Python Programming Language
Dr.YNM
 
Python PPT
Python PPTPython PPT
Python PPT
Edureka!
 
Jython: Integrating Python and Java
Jython: Integrating Python and JavaJython: Integrating Python and Java
Jython: Integrating Python and Java
Charles 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 languages
Varun Garg
 
Ad

Similar to Why Learn Python? (20)

Java Simple Programs
Java Simple ProgramsJava Simple Programs
Java Simple Programs
Upender 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.pdf
kokah57440
 
Sam wd programs
Sam wd programsSam wd programs
Sam wd programs
Soumya Behera
 
PRACTICAL COMPUTING
PRACTICAL COMPUTINGPRACTICAL COMPUTING
PRACTICAL COMPUTING
Ramachendran Logarajah
 
Java practical
Java practicalJava practical
Java practical
shweta-sharma99
 
Computer science-2010-cbse-question-paper
Computer science-2010-cbse-question-paperComputer science-2010-cbse-question-paper
Computer science-2010-cbse-question-paper
Deepak Singh
 
Java Programming - 06 java file io
Java Programming - 06 java file ioJava Programming - 06 java file io
Java Programming - 06 java file io
Danairat Thanabodithammachari
 
Understanding java streams
Understanding java streamsUnderstanding java streams
Understanding java streams
Shahjahan Samoon
 
C#.net
C#.netC#.net
C#.net
vnboghani
 
54240326 (1)
54240326 (1)54240326 (1)
54240326 (1)
Vinayak Shedgeri
 
54240326 copy
54240326   copy54240326   copy
54240326 copy
Vinayak Shedgeri
 
Mouse programming in c
Mouse programming in cMouse programming in c
Mouse programming in c
gkgaur1987
 
Presentation1 computer shaan
Presentation1 computer shaanPresentation1 computer shaan
Presentation1 computer shaan
walia Shaan
 
Python for Penetration testers
Python for Penetration testersPython for Penetration testers
Python for Penetration testers
Christian Martorella
 
.net progrmming part1
.net progrmming part1.net progrmming part1
.net progrmming part1
Dr.M.Karthika parthasarathy
 
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
Timur Safin
 
Python-GTK
Python-GTKPython-GTK
Python-GTK
Yuren Ju
 
TechTalk - Dotnet
TechTalk - DotnetTechTalk - Dotnet
TechTalk - Dotnet
heinrich.wendel
 
C programs
C programsC programs
C programs
Koshy Geoji
 
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
deepakangel
 
Java Simple Programs
Java Simple ProgramsJava Simple Programs
Java Simple Programs
Upender 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.pdf
kokah57440
 
Computer science-2010-cbse-question-paper
Computer science-2010-cbse-question-paperComputer science-2010-cbse-question-paper
Computer science-2010-cbse-question-paper
Deepak Singh
 
Understanding java streams
Understanding java streamsUnderstanding java streams
Understanding java streams
Shahjahan Samoon
 
Mouse programming in c
Mouse programming in cMouse programming in c
Mouse programming in c
gkgaur1987
 
Presentation1 computer shaan
Presentation1 computer shaanPresentation1 computer shaan
Presentation1 computer shaan
walia 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 BoF
Timur Safin
 
Python-GTK
Python-GTKPython-GTK
Python-GTK
Yuren 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 .pdf
deepakangel
 
Ad

Recently uploaded (20)

Domino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use CasesDomino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use Cases
panagenda
 
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
Safe Software
 
Secure Access with Azure Active Directory
Secure Access with Azure Active DirectorySecure Access with Azure Active Directory
Secure Access with Azure Active Directory
VICTOR MAESTRE RAMIREZ
 
PyData - Graph Theory for Multi-Agent Integration
PyData - Graph Theory for Multi-Agent IntegrationPyData - Graph Theory for Multi-Agent Integration
PyData - Graph Theory for Multi-Agent Integration
barqawicloud
 
Murdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementaryMurdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementary
JorgeSemperteguiMont
 
Azure vs AWS Which Cloud Platform Is Best for Your Business in 2025
Azure vs AWS  Which Cloud Platform Is Best for Your Business in 2025Azure vs AWS  Which Cloud Platform Is Best for Your Business in 2025
Azure vs AWS Which Cloud Platform Is Best for Your Business in 2025
Infrassist Technologies Pvt. Ltd.
 
Oracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI ProfessionalOracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI Professional
VICTOR MAESTRE RAMIREZ
 
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Anish Kumar
 
Kubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too LateKubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too Late
Michael Furman
 
Introduction to Internet of things .ppt.
Introduction to Internet of things .ppt.Introduction to Internet of things .ppt.
Introduction to Internet of things .ppt.
hok12341073
 
Trends Artificial Intelligence - Mary Meeker
Trends Artificial Intelligence - Mary MeekerTrends Artificial Intelligence - Mary Meeker
Trends Artificial Intelligence - Mary Meeker
Clive Dickens
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
Oracle Cloud and AI Specialization Program
Oracle Cloud and AI Specialization ProgramOracle Cloud and AI Specialization Program
Oracle Cloud and AI Specialization Program
VICTOR MAESTRE RAMIREZ
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdfArtificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
“Solving Tomorrow’s AI Problems Today with Cadence’s Newest Processor,” a Pre...
“Solving Tomorrow’s AI Problems Today with Cadence’s Newest Processor,” a Pre...“Solving Tomorrow’s AI Problems Today with Cadence’s Newest Processor,” a Pre...
“Solving Tomorrow’s AI Problems Today with Cadence’s Newest Processor,” a Pre...
Edge AI and Vision Alliance
 
Your startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean accountYour startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean account
angelo60207
 
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
Domino IQ – Was Sie erwartet, erste Schritte und AnwendungsfälleDomino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
panagenda
 
Ben Blair - Operating Safely in a Vibe Coding World
Ben Blair - Operating Safely in a Vibe Coding WorldBen Blair - Operating Safely in a Vibe Coding World
Ben Blair - Operating Safely in a Vibe Coding World
AWS Chicago
 
Domino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use CasesDomino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use Cases
panagenda
 
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
Safe Software
 
Secure Access with Azure Active Directory
Secure Access with Azure Active DirectorySecure Access with Azure Active Directory
Secure Access with Azure Active Directory
VICTOR MAESTRE RAMIREZ
 
PyData - Graph Theory for Multi-Agent Integration
PyData - Graph Theory for Multi-Agent IntegrationPyData - Graph Theory for Multi-Agent Integration
PyData - Graph Theory for Multi-Agent Integration
barqawicloud
 
Murdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementaryMurdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementary
JorgeSemperteguiMont
 
Azure vs AWS Which Cloud Platform Is Best for Your Business in 2025
Azure vs AWS  Which Cloud Platform Is Best for Your Business in 2025Azure vs AWS  Which Cloud Platform Is Best for Your Business in 2025
Azure vs AWS Which Cloud Platform Is Best for Your Business in 2025
Infrassist Technologies Pvt. Ltd.
 
Oracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI ProfessionalOracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI Professional
VICTOR MAESTRE RAMIREZ
 
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Scaling GenAI Inference From Prototype to Production: Real-World Lessons in S...
Anish Kumar
 
Kubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too LateKubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too Late
Michael Furman
 
Introduction to Internet of things .ppt.
Introduction to Internet of things .ppt.Introduction to Internet of things .ppt.
Introduction to Internet of things .ppt.
hok12341073
 
Trends Artificial Intelligence - Mary Meeker
Trends Artificial Intelligence - Mary MeekerTrends Artificial Intelligence - Mary Meeker
Trends Artificial Intelligence - Mary Meeker
Clive Dickens
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
Oracle Cloud and AI Specialization Program
Oracle Cloud and AI Specialization ProgramOracle Cloud and AI Specialization Program
Oracle Cloud and AI Specialization Program
VICTOR MAESTRE RAMIREZ
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdfArtificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
“Solving Tomorrow’s AI Problems Today with Cadence’s Newest Processor,” a Pre...
“Solving Tomorrow’s AI Problems Today with Cadence’s Newest Processor,” a Pre...“Solving Tomorrow’s AI Problems Today with Cadence’s Newest Processor,” a Pre...
“Solving Tomorrow’s AI Problems Today with Cadence’s Newest Processor,” a Pre...
Edge AI and Vision Alliance
 
Your startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean accountYour startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean account
angelo60207
 
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
Domino IQ – Was Sie erwartet, erste Schritte und AnwendungsfälleDomino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
panagenda
 
Ben Blair - Operating Safely in a Vibe Coding World
Ben Blair - Operating Safely in a Vibe Coding WorldBen Blair - Operating Safely in a Vibe Coding World
Ben Blair - Operating Safely in a Vibe Coding World
AWS Chicago
 

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
  • 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