programming skills

46
Programming Skills: A look back to peer into the future. Pete Massiello iTech Solutions [email protected] Twitter: PeteM59 1

Upload: common-europe

Post on 24-May-2015

368 views

Category:

Technology


0 download

DESCRIPTION

COMMON Europe Congress 2012 - Vienna

TRANSCRIPT

Page 1: Programming skills

Programming Skills:

A look back to peer into the future.

Pete Massiello

iTech Solutions

[email protected]

Twitter: PeteM59

1

Page 2: Programming skills

Prehistory

• The first Programming languages predate the computer.

• Languages were codes

• 1890 Herman Hollerith – Census data

Page 3: Programming skills

Early programming

Page 4: Programming skills

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.

Page 5: Programming skills

Analytical Engine: Built 63 years later

Page 6: Programming skills

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.

Page 7: Programming skills

Programming the ENIAC

Page 8: Programming skills

Operating ENIACs main control panel

Page 9: Programming skills

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).

Page 10: Programming skills

EDVAC

Page 11: Programming skills

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.

Page 12: Programming skills

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

Page 13: Programming skills

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)

Page 14: Programming skills

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

Page 15: Programming skills

The great debate starts

• Programming:

Structured Programming

GOTO

• Machines:

Page 16: Programming skills

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

Page 17: Programming skills

My college Final Project

Page 18: Programming skills

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)

Page 19: Programming skills

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

Page 20: Programming skills

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)

Page 21: Programming skills

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

Page 22: Programming skills

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

Page 23: Programming skills

Evolution of Computer Programming languages

Page 24: Programming skills

Programmers

Page 25: Programming skills

Occupation or a personality

Page 26: Programming skills

Words to describe a programmer

• Practical

• Introvert

• Alone

• Socially Inept

• Geek

• Nerd

• Logical Thinker

• Analytical

Page 27: Programming skills

April 1967 – Women are natural Programmers

Page 28: Programming skills

Perhaps a little more Coffee

Page 29: Programming skills

Amazing what a few Billion will do

Start young…….

Page 30: Programming skills

COMMON Europe President at an Early Age

Page 31: Programming skills

How to successfully prepare your students for college?

Page 32: Programming skills

A recent Dot Net Rocks show…….Teach them early

Page 33: Programming skills

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

Page 34: Programming skills

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

Page 35: Programming skills

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

Page 36: Programming skills

What Shape are you?

----------------------------- Skills ------------------------------------

M

a

s

t

e

r

y

Page 37: Programming 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.

Page 38: Programming skills

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

Page 39: Programming skills

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

Page 40: Programming skills

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

Page 41: Programming skills

Exact Skills of the Future

Page 42: Programming skills

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

Page 43: Programming skills

Who will be the successful programmer of the future?

• Integrator

Understands different Technology

Knows the benefits of each

Knows how to unite them

Page 44: Programming skills

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

Page 45: Programming skills

Your Career

Page 46: Programming skills

Your Turn!

How to contact me:

Pete Massiello

Email: [email protected]

Twitter: petem59