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

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 

Recently uploaded (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 

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