Top Banner
Learning Computer Programming Programming Overview Presenter: Frank Amankwah ([email protected] )
31

Programming overview

Jun 24, 2015

Download

Software

Frank Amankwah

General (non-technical) overview of Computer Programming and how to choose your first language
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Programming overview

Learning Computer ProgrammingProgramming Overview

Presenter: Frank Amankwah ([email protected])

Mani Sarkar
Merging of the slides into two slides- summarising to link up with the two slides with images of paradigms
Page 2: Programming overview

Contents

● Programming: What & Why● Programming Paradigms● Programming Languages● Choosing a Language● Wrap up

Page 3: Programming overview

Programming Overview

Page 4: Programming overview

What is programming?

● Instructing a computer to carry out a task

● Creative process of turning ideas into software

● Empowers you to make computers do anything you want...?

Page 5: Programming overview

Why do we program?

● A natural, satisfying and creative experience● Enables accomplishments previously

impossible.● Opens new world of intellectual endeavor● It is cool, fun and potentially very rewarding● Anyone can do it!

Page 6: Programming overview

Programming Paradigms

Page 7: Programming overview

Programming Paradigm

● A way of building the structure and elements of computer programs

Page 8: Programming overview

In the early days...

Structured

Procedural

Page 9: Programming overview

More recently…

Object-oriented

+

Page 10: Programming overview

Programming Paradigms

● Languages can support one or more paradigms

Page 11: Programming overview

Programming Languages

Page 12: Programming overview

Programming Language Generations● Machine Language (1GL)

o Very low level, tedious and error-prone

● Assembly Language (2GL)o Usually specific to a particular processor family and

environment

● High-level Languages (3GL)o Independent of a particular type of computer

hardware

● Fourth Generation Languages (4GL)o Provides a higher level of abstraction than 3GLso Closer to natural human languages

● Natural Languageo Ambiguous and hard for computer to understand

Page 13: Programming overview

Programming Languages

Page 14: Programming overview

Common Language Features● Data Types & Structures● Operators, Conditionals and Loops● Functions and Procedures● Exception Handling

Page 15: Programming overview

Choosing a Language

Page 16: Programming overview

Where do you begin?● Depends on your problem domain

o High performance, low latency applications

o Complex computation and data analysis

o Embedded and control systems

o Enterprise applications

o Dynamic web applications, widgets and APIs

o Computer graphics and animation

o Computer and console games

o Mobile applications and games

Page 17: Programming overview

Choosing a Language● Best suited to the problem you are trying to solve

● Widely availableo Runs on various hardware platforms

o Supports multiple operating systems

● Widely usedo Large, active community

o Readily available libraries and frameworks

Page 18: Programming overview

TIOBE Programming Language Index

Source: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Page 19: Programming overview

RedMonk Programming Language Rankings

Source: http://sogrady-media.redmonk.com/sogrady/files/2014/01/lang-rank-114-wm.png

Page 20: Programming overview

● Problem Domainso High performance applicationso Complex computations o Embedded systemso Computer and console gameso Mobile applications and games

● Communitieso C - http://www.cprogramming.como C++ -

https://plus.google.com/communities/116007775542700637383

o Objective-C - https://plus.google.com/communities/103997592872376747208

Page 21: Programming overview

● Problem Domains

● Client/server applications

● Web/mobile applications and APIs,

● Web Plugins and widgets

● Web/mobile games

● Communitieso http://www.meetup.com/Londonjavaco

mmunity/

o https://plus.google.com/communities/100875929141897651837

o http://www.csharpforums.net o http://androidcommunity.com

Page 22: Programming overview

● Problem Domainso Dynamic web sites and applications o Automation of system admin taskso Popular choices for learning

programming

● Communitieso http://phpcommunity.orgo https://www.python.org/community/o https://www.ruby-lang.org/en/communit

y/

Page 23: Programming overview

Why Learning by Yourself is Hard

● Commitmentso Flexible o Intensiveo Relevant

Page 24: Programming overview

Why Learning by Yourself is Hard

● Motivationo Autonomyo Masteryo Purpose

Mani Sarkar
Another word for mastery or verbally explain what it means in this context.
Page 25: Programming overview

Learning the Language● Intensive Courses

o http://www.makersacademy.com o https://generalassemb.ly

● Online courseso https://www.coursera.org/ o https://www.udacity.com/ o https://developers.google.com/university/

● Online tutorialso https://www.khanacademy.org/ o http://www.codecademy.com

● Other online resourceso http://www.w3schools.com o http://learncodethehardway.org/

Page 26: Programming overview

Aim of this Meetup Group

● Help you to Learn Computer Programmingo “Overview” Meetups & Eventso Hands-on Workshops/Webinarso Flexible Software Development Courseso Coaching & Mentoring

● Build a vibrant community

Page 27: Programming overview

Wrap Up

Page 28: Programming overview

● It’s really not just about learning a language!

● Software Development involves a lot more…

● So think big and work smart!

In Summary...

Page 29: Programming overview
Page 30: Programming overview

Recommended Approach

● Find an interesting problem to solve● Choose a language and Learn the

fundamentals and language features● Practice, practice, practice…..● Have fun!

Lim Soon Sim
I think "Find a problem" should be the first before you pick the language.
Frank Amankwah
yup, swapped them around.
Page 31: Programming overview

Questions?