The Language of Languages – 1st Generation Languages – What makes up a language?



The Language of Languages – 1st Generation Languages – What makes up a language?

5 3


thelanguagesoflanguages

The Languages of Languages talk.

On Github womenwhocodedc / thelanguagesoflanguages

The Language of Languages

Languages, variables, and other words you don't know... yet.

@womenwhocodedc

What is a programming language?

A programming language is a human readable set of commands to communicate between machines and humans. It usually comprises of a set of instructions for the machine to perform specific tasks.

1st Generation Languages (1GLs)

  • machine-level language (0s and 1s)
  • no compiler (or translator) needed
  • used to program lower level functions of a system, such as drivers and interfaces with hardware
  • difficult to learn and understand errors difficult to find

Type 's' in the presentation to bring up notes. Programmers code in languages. Java, Python, JS, Ruby, PHP, and Objective-C are all examples of languages. Languages are how we as humans can communicate with computers.

2nd Generation Languages (2GLs)

  • Assembly languages
  • Allow for use of symbolic names
  • Can be read and written by a programmer
  • Language specific to particular machines (not portable)
  • Used in intensive processing in games, video editing, graphic manipulation/rendering

3rd Generation Languages (3GLs)

  • Words-like commands make languages more programmer friendly
  • Known as high level languages
  • Compiler or interpreter needed
  • Programs independent from computer types (portable)
  • Examples: Fortran, COBOL, C, C++, BASIC, Pascal, Java, Javascript, PHP, Ruby, Python, Objective C

4th Generation Languages (4GLs)

  • Syntax used very close to human language
  • Designed to:
    • reduce programming effort
    • time it takes to develop software
    • cost of software development
  • Typically used to access databases
  • Examples: SQL and ColdFusion

5th Generation Languages (5GLs)

  • Languages used to support artificial intelligence
  • Example: Prolog

What makes up a language?

Variables Arrays Methods, Functions Loops Conditionals

Tools in every language that let humans communicate with computers.

Computers need cold, hard facts and simple, unnuanced instructions: languages provide you with tools to create logic for computers including ways to store data, get data once you've stored it, manipulate data, and serve it all up to a user.

What makes one language different from another?

  • Syntax
  • Usage
  • Difficulty

What you want to build dictates what tools you should use.

Every language is different and better suited for some things over others. Lots of programmers know a handful of languages and will choose the language best suited to solve the problem at hand. Languages will differ from one another based on what the code you're writing looks like (called Syntax), when it's best to use it, and just how difficult the language is. Some languages are very difficult but what you can accomplish with them is worth the pain of having to learn a harder language.

Where are HTML and CSS?

Not programming languages MarkupSmall pieces in a very, very big puzzle

Some of you want to learn HTML and CSS. These are not programming languages, they're something known as markup. Markup is a way of tagging information so that you can manipulate with a programming language. HTML and CSS are incredibly easy t learn but won't take you very far: you can build a simple web page with HTML and CSS but you can't build a web app people can log into. If learning HTML and CSS are your main goals, we can point you in the direction of some other groups that will help you learn these.

Web Developement: Frontend vs Backend

Frontend

What the user interacts with

  • HTML
  • CSS
  • JavaScript
  • Preprocessors
  • Client-Side Frameworks

Backend (Programming Languages)

A vocabulary and set of grammatical rules for instructing a computer to perform specific tasks. Concerned with launching website, maintenance, version updates etc. Popular Languages include:

  • JAVA
  • Python
  • Ruby
  • PHP
  • NodeJS

Backend (Databases)

Where you store information. A structured set of data stored in a computer/machine, that is accessible in various ways

  • Relational
    • MSSQL
    • MYSQL
    • PostgreSQL
  • Non-Relation (NoSQL)
    • MongoDB
    • CouchDB
    • Redis

Frameworks

  • Programming frameworks work with languages to help you clean up and structure your code.
  • With frameworks you can develop better and faster!
  • They also make your code more maintainable, and easily upgradable
  • They allow programmers to save time by using generic modules in order to focus on other aspects of a web app

Types of Frameworks

  • There are two types of frameworks, client-side and server-side
  • Client-side = front-end languages, mainly CSS and Javascript
  • Server-side = mainly used with back-end languages to bootstrap full web apps

Examples of Client-side Frameworks

CSS Frameworks

  • Bootstrap
  • Foundation
  • Pure

Javascript Frameworks

  • Angular.js, Ember and React (Top 3)
  • Backbone, Knockout.js (older, popular frameworks)
  • Up and coming.lesser known frameworks include: Meteor, Can.js, Aurora and many more ...

Examples of Server-side Frameworks

  • Ruby - Ruby on Rails
  • Python - Django, Flask
  • Javascript(Node.js) - Mean.io
  • PHP - CakePHP, Symphony
  • Objective C, Java - Xcode
  • .NET - Sitecore

The good news about coding is that lots of developers contribute to open-source - meaning that they release code they've written to make it easier to build apps. These are known as frameworks and tons of them exist and are always language-specific. You have probably heard of Ruby on Rails, which helps people build web apps using Ruby. There's also Angular, which helps people build web apps with Javascript. Part of building an app means researching tools and deciding whether or not you think they'll help you or make your life more difficult.

Python - Data Science

  • Scientific libraries in Python - Numphy, SciPy, MatPlotlib, and Pandas
  • R and R Studio
  • Hadoop. Open source platform that is written in Java that allows for storing, managing, and processing large amounts of data

Which language should I learn?

From Mashable's 15 Programming languages you need to know in 2015

Java
  • enterprise software
  • web-based content
  • games and mobile apps
  • Android operating system
JavaScript
  • client and server side scripting language
  • considered essential for developing interactive or animated web functions
  • used in game development

Which language should I learn?

C# (pronounced C sharp)
  • general purpose language
  • used for Microsoft and Windows platforms
PHP
  • server side scripting language
  • used to make dynamic websites and app development
  • used to make Facebook, Wordpress, and more
C++
  • powers major software like Firefox, Adobe
  • used in engineering

Which language should I learn?

Python
  • server side scripting language
  • used for websites and mobile apps
  • simple syntax (easy for beginners to pick up!)
  • Powers Instagram, Pinterest
C
  • embedded applications
  • implementing operating systems

Which language should I learn?

SQL
  • manages data in relational database management systems
Ruby
  • object-oriented scripting language
  • considered fairly user-friendly for beginners
  • used to make dynamic websites and app development
  • used to make Groupon, Shopify, GitHub, and more
Objective-C
  • used by Apple
  • powers OSX and iOS
  • used for iPhone apps

Which language should I learn?

Other popular langauges include:
  • Perl
  • .NET
  • Visual Basic
  • R
  • Swift

What We Build With Code

  • iOS (iPad/iPhone apps
  • Android apps
  • Web apps
  • Libraries
  • Frameworks
  • Games and much more ...

Some of the things that we build include apps, website sites, web aps, libraries, and frameworks. Apps will run on your phone or on a tablet. A website or a web app can be accessed on the internet with a URL. A webapp might do similar things to an app on your phone, meaning users can log in and save data. You might build a library, which would be tiny packets of code that other poeple find useful and can use in their own projects. You might build a framework, which can help other people build their own applications. You might build a computer program that others can download onto their computers. The sky's the limit if you have an idea and a willingness to learn.

So What Should I Learn to Build x?

Web App

  • Front end: HTML, CSS, Javascript, Back end: could be anything, Python and Ruby are popular
  • Editor: Sublime Text
  • Environment: Terminal, Editor, Browser

iOS App(ipad, iphone)

  • Language: Objective-C, SWIFT
  • Editor: X-Code (IDE)
  • Additional Notes: You need to have a Mac.

Android App

  • Language: Java with the Android SDK
  • Editor: Eclipse (IDE) or Android Studio (IDE)

Tools We Use for Coding

  • Text editor
  • IDE (Integrated Development Environment)
  • Environment(You're operating system)

Moving forward...

How We Suggest You Get Started

  • Pick your language of choice.
  • Attend and learn at your own pace with study groups.
  • Start learning a framework that's in the language you're studying.
  • Deploy an app or a webapp!

But I want to learn something else! How do I get started with x?

Study Groups are your friends

  • Post on the Meetups discussion board about what you want to learn
  • Google for free online classes
  • Come to the hack nights
  • All developers learn autonomously

What you should expect

  • It will be hard.
  • You will get errors.
  • You will get frustrated and angry with your computer.

But...don't lose hope!

  • It will be rewarding.
  • You will get better.
  • You will create amazing things if you stick to practicing.

Women Who Code Leadership Team

Study Group leads

Front End (HTML/CSS, Javascript)

  • Alex Ulsh
  • Isa Conteh
  • Sarah Kleinman

Android (Java)

  • Tabitha Corp
  • Ijeoma Ezeonyebuchi
  • Malynda CF

Python

  • Clara Bennet
  • Tammy Barbee
  • Annesa Johnson
  • Jamie Johnson

Ruby

  • Katherine McClintic
  • Zuri Hunter

Algorithms

  • Amy Ghate

Directors

Emma Grasmeder @emma_Gras Kaylyn Gibilterra @kGibilterra Nupur Kapoor @kapoornupur