KEMBAR78
Programming skills | PDF
Programming Skills:
    A look back to peer into the future.


Pete Massiello
iTech Solutions
pmassiello@itechsol.com
Twitter: PeteM59

                                           1
Prehistory
•   The first Programming languages predate the computer.
•   Languages were codes
•   1890 Herman Hollerith – Census data
Early programming
When do we start?
•   The Analytical Engine, an important step in the history of
    computers, is a design for a mechanical general-purpose
    computer first described by English mathematician Charles
    Babbage in 1837. It was the successor to Babbage's difference
    engine, a design for a mechanical calculator. The Analytical
    Engine incorporated an arithmetical unit, control flow in the form
    of conditional branching and loops, and integrated memory,
    making it the first Turing-complete design for a general-purpose
    computer.
•   Programming supposed to be by punch cards.
Analytical Engine: Built 63 years later
ENIAC
•   Designed in 1942 General-purpose Electronic computer
•   Electronic Numerical Integrator and Computer (ENIAC).
•   Enormous speed advantage by using digital electronics with no
    moving parts.
•   Called Project-PX as its code name.
•   Started in 1943, completed in 1946 costing $500,000 ( $6,000,000
    in 2010 dollars).
•   Designed to calculate artillery firing tables for the Army.
•   First project was computations for the hydrogen bomb.
•   Decimal based.
Programming the ENIAC
Operating ENIACs main control panel
EDVAC
•   Electronic Discrete Variable Automatic Computer
•   Binary serial computer with automatic addition, subtraction,
    multiplication, programmed division and automatic checking with
    an ultrasonic serial memory.
•   Capacity of 1,000 44-bit words, later set to 1,024 words: 5.5KB
•   6,000 vacuum tubes, 12,000 diodes, consumed 56kW of power,
    and covered 490 Sq. Ft. Weighed 17,300 pounds.
•   Designed 1946 built and operational 1949.
•   Magnetic tape (Wire recorder).
EDVAC
What is a Programming Language
•   A programming language is an artificial language designed to
    communicate instructions to a machine, particularly a computer.
    Programming languages can be used to create programs that
    control the behavior of a machine and/or to express algorithms
    precisely.

•   The earliest programming languages predate the invention of the
    computer, and were used to direct the behavior of machines such
    as Jacquard looms and player pianos. Thousands of different
    programming languages have been created, mainly in the
    computer field, with many more being created every year. Most
    programming languages describe computation in an imperative
    style, i.e., as a sequence of commands, although some languages,
    such as those that support functional programming or logic
    programming, use alternative forms of description.
Early Languages
•   1837 - Analytical Engine Order Code – Charles Babbage
•   1943 to 1946 - ENIAC coding System
•   1943 – Plankalkul (designed) – First High Level
•   1947 - ARC Assembly
•   1948 – Curry notation system
•   1948 - CPC Coding scheme
•   1949 - C10
Languages of the 1950s
•   1951 - Superplan
•   1951 – ALGAE
•   1952 – Autocode / AUTOCODER
•   1954 – Fortran (Concept)
•   1954 - IPL
•   1955 – PACT I
•   1956 – LISP (Concept)
•   1957 – Fortran
•   1957 – UNICODE
•   1958 – ALGOL 58
•   1959 – COBOL (Concept)
Languages of the 1960s
•   1960 – ALGOL 60
•   1960 - COBOL 61
•   1962 – Fortran IV
•   1962 - SNOBOL
•   1963 – CPL
•   1964 – BASIC
•   1964 – IBM RPG
•   1966 – Fortran 66
•   1967 – APL
•   1968 – DIBOL-8
•   1969 – PL/I
The great debate starts
•   Programming:
     Structured Programming

     GOTO

•   Machines:
Languages of the 1970s



•   1970 - Pascal
•   1972 – Smalltalk
•   1972 – C
•   1972 – Prolog
•   1972 – SQL
•   1975 - Modula
•   1977 – Bourne Shell (sh)
•   1977 – Commodore BASIC
•   1977 – Green, Red, Blue, Yellow for Dept. of Defense
•   1978 - VisiCalc
My college Final Project
Languages of 1980
•   1980 – Ada
•   1980 - C with classes
•   1982 – PostScript
•   1983 – C++
•   1984 – Korn Shell (ksh)
•   1984 – GOM (Good Old Mad)
•   1985 – PARADOX
•   1987 – Perl
•   1987 – HyperTalk
•   1987 – Turbo Basic
•   1988 – SPARK
•   1989 – FL (Backus)
Languages of 1990s
•   1990 – AMPL
•   1991 – GNU E
•   1991 – Python
•   1991 – Visual Basic
•   1992 – Borland Pascal
•   1992 – Dylan
•   1993 – Self
•   1993 – Applescript
•   1995 – Borland Delphi
•   1995 – ColdFusion
•   1995 – Java
•   1995 – PHP
Languages of 1990s (cont.)
•   1995 – Ruby
•   1996 – JavaScript
•   1996 – Perl Data Language (PDL)
•   1997 - Rebol
•   1998 – Standard C++
•   1998 – Pikt
•   1999 – Game Maker Language (GML)
Languages of 2000s
•   2000 – D
•   2000 – C#
•   2001 – Visual Basic .NET
•   2003 – Scala
•   2003 – Squirrel
•   2004 – Groovy
•   2005 – F#
•   2006 – Cobra
•   2008 – Pure
•   2009 – Go
•   2009 – CoffeeScript
•   2010 - Fancy
Generations
•   1GL – UNIVAC 1 & IBM 701 – Machine language programs
•   2GL – Machine specific but mnemonic
     Assembler

•   3GL – More abstract & portable
     FORTRAN, LISP, RPG, & COBOL

     Continued growth & still in use

•   4GL – domain specific, as SQL
     Code generators
Evolution of Computer Programming languages
Programmers
Occupation or a personality
Words to describe a programmer
•   Practical
•   Introvert
•   Alone
•   Socially Inept
•   Geek
•   Nerd
•   Logical Thinker
•   Analytical
April 1967 – Women are natural Programmers
Perhaps a little more Coffee
Amazing what a few Billion will do




                         Start young…….
COMMON Europe President at an Early Age
How to successfully prepare your students for college?
A recent Dot Net Rocks show…….Teach them early
Remember back 10 to 15 years ago

•   Learn Java or Flip Hamburgers
•   No need for programmers after Y2K
•   Everything will be packages
•   COBOL/RPG are dead
•   Offshore programmers
•   The AS/400 is going away
Jobs
•   Ability to Change
•   Competing against students
•   Ability to Change
•   Outside or off-shore programmers
•   Ability to Change
•   More company knowledge than programming knowledge
•   Ability to Change
•   It’s worked fine for 15 years, why change
•   Ability to Change
•   What’s wrong with “the Cycle”
•   Ability to Change
•   We don’t use ILE in this shop
•   Under the Radar
Change

•   Break from your Comfort Zone
•   Coder, Designer, Business Analyst
•   Engineer                or            Artist
•   Learn a new Skill
•   See what co-workers are doing
•   See what other companies are doing
•   What if I pick the wrong new Skill?
•   Don’t be Afraid
What Shape are you?




M
a
s
t
e
r
y




    ----------------------------- Skills ------------------------------------
Top 10 reasons you might be a has-been programmer?
•   Every program you write use the RPG Cycle
•   You can write that program more efficiently in Assembler
•   You know what COBOL stands for
•   You boast that you know the IBM SE’s home phone number
•   You have the 15 floppy diskettes for Windows 3.1.1 on your shelf.
•   You have the yellow trifold EBCIDIC/ASCII Hex sheets
•   Your home internet is a dial-up modem
•   When you think DDS you think *PF & *LF, not Dentist
•   You think RPG stands for Report Program Generator
•   You wonder why there are no System/36 jobs on Monster.
Current RPG Programmer needs:
•   Get your shop up to IBM i 7.1
•   Learn and use ILE & RPG-IV
•   Learn and use SQL
•   Learn and use RDp (WDSc, RDi)
•   Learn HTML5 & XML
•   Create a webpage
•   Integrate an RPG program with the web
•   Learn and use PHP
•   Learn mySQL
•   Learn .Net
•   Learn and use DB2/Webquery
•   Learn Java
Other skills
•   LINUX
•   Windows
•   Business skills
•   Understand TCP/IP, firewalls, routing
•   Understand Virtualization
•   Distributed Processing
•   Refacing/modernization of the Interface (Open Access)
•   Open Source
•   Ruby on Rails
•   Cell Phone applications
•   Games
•   Explore, investigate, & play
How will we get those skills

•   User Groups
•   Night Classes
•   Networking
•   On-Line courses
•   On-line discussion forums: Midrange-l, RPG400-L
•   Books, Podcasts, Blogs
Exact Skills of the Future
Skills are important but the future …….
•   Attitude
•   Work-Ethic
•   Dress for success
•   Understanding the business & creating value
•   Coder, Designer, Business Analyst
•   Computer-Savvy Kids
•   Facebook, Twitter, LinkedIn, …….
•   Ability to Change
Who will be the successful programmer of the future?

•   Integrator
     Understands different Technology

     Knows the benefits of each

     Knows how to unite them
Investment
•   Invest in yourself
•   Your compensation package should include:
     1 Week of Education per year (COMMON)

     Reimbursement to attend monthly user group meeting

•   Company purchased training programs
•   Don’t make yourself unemployable
Your Career
Your Turn!




                   How to contact me:
                     Pete Massiello
             Email: pmassiello@itechsol.com
                    Twitter: petem59

Programming skills

  • 1.
    Programming Skills: A look back to peer into the future. Pete Massiello iTech Solutions pmassiello@itechsol.com Twitter: PeteM59 1
  • 2.
    Prehistory • The first Programming languages predate the computer. • Languages were codes • 1890 Herman Hollerith – Census data
  • 3.
  • 4.
    When do westart? • The Analytical Engine, an important step in the history of computers, is a design for a mechanical general-purpose computer first described by English mathematician Charles Babbage in 1837. It was the successor to Babbage's difference engine, a design for a mechanical calculator. The Analytical Engine incorporated an arithmetical unit, control flow in the form of conditional branching and loops, and integrated memory, making it the first Turing-complete design for a general-purpose computer. • Programming supposed to be by punch cards.
  • 5.
  • 6.
    ENIAC • Designed in 1942 General-purpose Electronic computer • Electronic Numerical Integrator and Computer (ENIAC). • Enormous speed advantage by using digital electronics with no moving parts. • Called Project-PX as its code name. • Started in 1943, completed in 1946 costing $500,000 ( $6,000,000 in 2010 dollars). • Designed to calculate artillery firing tables for the Army. • First project was computations for the hydrogen bomb. • Decimal based.
  • 7.
  • 8.
    Operating ENIACs maincontrol panel
  • 9.
    EDVAC • Electronic Discrete Variable Automatic Computer • Binary serial computer with automatic addition, subtraction, multiplication, programmed division and automatic checking with an ultrasonic serial memory. • Capacity of 1,000 44-bit words, later set to 1,024 words: 5.5KB • 6,000 vacuum tubes, 12,000 diodes, consumed 56kW of power, and covered 490 Sq. Ft. Weighed 17,300 pounds. • Designed 1946 built and operational 1949. • Magnetic tape (Wire recorder).
  • 10.
  • 11.
    What is aProgramming Language • A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely. • The earliest programming languages predate the invention of the computer, and were used to direct the behavior of machines such as Jacquard looms and player pianos. Thousands of different programming languages have been created, mainly in the computer field, with many more being created every year. Most programming languages describe computation in an imperative style, i.e., as a sequence of commands, although some languages, such as those that support functional programming or logic programming, use alternative forms of description.
  • 12.
    Early Languages • 1837 - Analytical Engine Order Code – Charles Babbage • 1943 to 1946 - ENIAC coding System • 1943 – Plankalkul (designed) – First High Level • 1947 - ARC Assembly • 1948 – Curry notation system • 1948 - CPC Coding scheme • 1949 - C10
  • 13.
    Languages of the1950s • 1951 - Superplan • 1951 – ALGAE • 1952 – Autocode / AUTOCODER • 1954 – Fortran (Concept) • 1954 - IPL • 1955 – PACT I • 1956 – LISP (Concept) • 1957 – Fortran • 1957 – UNICODE • 1958 – ALGOL 58 • 1959 – COBOL (Concept)
  • 14.
    Languages of the1960s • 1960 – ALGOL 60 • 1960 - COBOL 61 • 1962 – Fortran IV • 1962 - SNOBOL • 1963 – CPL • 1964 – BASIC • 1964 – IBM RPG • 1966 – Fortran 66 • 1967 – APL • 1968 – DIBOL-8 • 1969 – PL/I
  • 15.
    The great debatestarts • Programming:  Structured Programming  GOTO • Machines:
  • 16.
    Languages of the1970s • 1970 - Pascal • 1972 – Smalltalk • 1972 – C • 1972 – Prolog • 1972 – SQL • 1975 - Modula • 1977 – Bourne Shell (sh) • 1977 – Commodore BASIC • 1977 – Green, Red, Blue, Yellow for Dept. of Defense • 1978 - VisiCalc
  • 17.
  • 18.
    Languages of 1980 • 1980 – Ada • 1980 - C with classes • 1982 – PostScript • 1983 – C++ • 1984 – Korn Shell (ksh) • 1984 – GOM (Good Old Mad) • 1985 – PARADOX • 1987 – Perl • 1987 – HyperTalk • 1987 – Turbo Basic • 1988 – SPARK • 1989 – FL (Backus)
  • 19.
    Languages of 1990s • 1990 – AMPL • 1991 – GNU E • 1991 – Python • 1991 – Visual Basic • 1992 – Borland Pascal • 1992 – Dylan • 1993 – Self • 1993 – Applescript • 1995 – Borland Delphi • 1995 – ColdFusion • 1995 – Java • 1995 – PHP
  • 20.
    Languages of 1990s(cont.) • 1995 – Ruby • 1996 – JavaScript • 1996 – Perl Data Language (PDL) • 1997 - Rebol • 1998 – Standard C++ • 1998 – Pikt • 1999 – Game Maker Language (GML)
  • 21.
    Languages of 2000s • 2000 – D • 2000 – C# • 2001 – Visual Basic .NET • 2003 – Scala • 2003 – Squirrel • 2004 – Groovy • 2005 – F# • 2006 – Cobra • 2008 – Pure • 2009 – Go • 2009 – CoffeeScript • 2010 - Fancy
  • 22.
    Generations • 1GL – UNIVAC 1 & IBM 701 – Machine language programs • 2GL – Machine specific but mnemonic  Assembler • 3GL – More abstract & portable  FORTRAN, LISP, RPG, & COBOL  Continued growth & still in use • 4GL – domain specific, as SQL  Code generators
  • 23.
    Evolution of ComputerProgramming languages
  • 24.
  • 25.
    Occupation or apersonality
  • 26.
    Words to describea programmer • Practical • Introvert • Alone • Socially Inept • Geek • Nerd • Logical Thinker • Analytical
  • 27.
    April 1967 –Women are natural Programmers
  • 28.
    Perhaps a littlemore Coffee
  • 29.
    Amazing what afew Billion will do Start young…….
  • 30.
    COMMON Europe Presidentat an Early Age
  • 31.
    How to successfullyprepare your students for college?
  • 32.
    A recent DotNet Rocks show…….Teach them early
  • 33.
    Remember back 10to 15 years ago • Learn Java or Flip Hamburgers • No need for programmers after Y2K • Everything will be packages • COBOL/RPG are dead • Offshore programmers • The AS/400 is going away
  • 34.
    Jobs • Ability to Change • Competing against students • Ability to Change • Outside or off-shore programmers • Ability to Change • More company knowledge than programming knowledge • Ability to Change • It’s worked fine for 15 years, why change • Ability to Change • What’s wrong with “the Cycle” • Ability to Change • We don’t use ILE in this shop • Under the Radar
  • 35.
    Change • Break from your Comfort Zone • Coder, Designer, Business Analyst • Engineer or Artist • Learn a new Skill • See what co-workers are doing • See what other companies are doing • What if I pick the wrong new Skill? • Don’t be Afraid
  • 36.
    What Shape areyou? M a s t e r y ----------------------------- Skills ------------------------------------
  • 37.
    Top 10 reasonsyou might be a has-been programmer? • Every program you write use the RPG Cycle • You can write that program more efficiently in Assembler • You know what COBOL stands for • You boast that you know the IBM SE’s home phone number • You have the 15 floppy diskettes for Windows 3.1.1 on your shelf. • You have the yellow trifold EBCIDIC/ASCII Hex sheets • Your home internet is a dial-up modem • When you think DDS you think *PF & *LF, not Dentist • You think RPG stands for Report Program Generator • You wonder why there are no System/36 jobs on Monster.
  • 38.
    Current RPG Programmerneeds: • Get your shop up to IBM i 7.1 • Learn and use ILE & RPG-IV • Learn and use SQL • Learn and use RDp (WDSc, RDi) • Learn HTML5 & XML • Create a webpage • Integrate an RPG program with the web • Learn and use PHP • Learn mySQL • Learn .Net • Learn and use DB2/Webquery • Learn Java
  • 39.
    Other skills • LINUX • Windows • Business skills • Understand TCP/IP, firewalls, routing • Understand Virtualization • Distributed Processing • Refacing/modernization of the Interface (Open Access) • Open Source • Ruby on Rails • Cell Phone applications • Games • Explore, investigate, & play
  • 40.
    How will weget those skills • User Groups • Night Classes • Networking • On-Line courses • On-line discussion forums: Midrange-l, RPG400-L • Books, Podcasts, Blogs
  • 41.
    Exact Skills ofthe Future
  • 42.
    Skills are importantbut the future ……. • Attitude • Work-Ethic • Dress for success • Understanding the business & creating value • Coder, Designer, Business Analyst • Computer-Savvy Kids • Facebook, Twitter, LinkedIn, ……. • Ability to Change
  • 43.
    Who will bethe successful programmer of the future? • Integrator  Understands different Technology  Knows the benefits of each  Knows how to unite them
  • 44.
    Investment • Invest in yourself • Your compensation package should include:  1 Week of Education per year (COMMON)  Reimbursement to attend monthly user group meeting • Company purchased training programs • Don’t make yourself unemployable
  • 45.
  • 46.
    Your Turn! How to contact me: Pete Massiello Email: pmassiello@itechsol.com Twitter: petem59