ada-build

The Ada Developers Academy Jump Start program, which is intended for anyone who is interested in beginning their journey into coding.

View the Project on GitHub Ada-Developers-Academy/ada-build

Programming Languages

Ada Build - Learning at Ada - Lesson 0

Learning Goal

Overview

During the course of the Build curriculum we will be primarily focused on learning Python. Later, during the classroom curriculum, we will learn some other programming languages. In this lesson, we will discuss the different languages that can be used along with Python and how those all play together in your journey in learning to program. In a discussion about programming languages, a preliminary question that one might ask is: why are there so many programming languages? Are some languages better at certain things than others?

Programming languages exist so that humans can give instructions to computers. Fundamentally, programming is about communication. Programming languages are similar to human spoken languages: they have dialects, grammars, colloquialisms, idioms, and parts of speech.

Classification

There are two main ways we can classify programming languages, by level and by type (compiled or interpreted).

By level

The level describes how close the language is to being binary code. Low-level languages, like C, tend to be more difficult for humans to read than other languages. High-level languages like Java, Python, and Ruby tend to be more abstract and easier for humans to read. High-level languages also do a lot more of the background tasks for the software developer.

By type (compiled or interpreted)

Compiled languages are converted to binary code (e.g., C, C++, Java) before they are executed. Interpreted languages can be translated or directly executed, the code does not get directly converted to binary, the program that runs the code is the one that communicates directly with the computer.

Compiled vs Interpreted

In addition, these compiled and interpreted languages can be divided into dynamically typed and statically typed languages. Statically typed programming languages do type checking (the process of verifying and enforcing the constraints of types) at compile-time as opposed to run-time. Dynamically typed programming languages do type checking at run-time as opposed to compile-time.

Languages

Python

Python is a high-level, dynamically typed language. It was created by Guido van Rossum in 1991. Originally Python was a hobby programming project to Van Rossum wrote to keep busy during the holidays. He chose the name Python because he is a fan of Monty Python’s Flying Circus.

Python can run on a great number of platforms (Windows, Mac, Linux, etc) and it has straightforward syntax similar to the English language. It is designed to provide “Computer Programming for Everybody.” As such the language has powerful and intuitive syntax, and it is open source so anyone can contribute and examine the underlying code and suitable for a variety of tasks.

Python is a language widely used for:

At Ada we teach introductory Object-Oriented programming in Python and server-side web development. Students often build capstone projects using Python and many students use the language in internship and professionally after graduation.

Guido Van Rossum Courtesy of Wikipedia

Guido van Rossum in 2019

HTML & CSS

HTML (Hyper-Text Markup Language) is a markup language. CSS (Cascading Style Sheets) is a style sheet language. These two technologies work together for structuring and styling the content on a web page.

You can think of the HTML as the “skeleton” of a web page. HTML provides the set up and structure for how each piece of a web page is organized. The CSS is the “clothes” of the skeleton. It specifies how each piece looks, including colors, sizes, styles and relationship to other elements on the page.

JavaScript

JavaScript is a another high-level dynamically typed language. JavaScript is used along side HTML and CSS as one of the most important languages in web programming. In many applications, we use JavaScript to provide a more dynamic and responsive experience for the end user.

Frameworks

Frameworks allow us to leverage the hard work of the software developers that came before us so that we can create software more quickly. Frameworks make it possible to build and deploy applications. Frameworks may include programs, compilers, code libraries, tool sets, and application programming interfaces (APIs).

Flask

Flask is a Python micro-framework for creating web applications. Flask has a simple core which is designed to be extensible to build powerful web applications. At Ada, Flask is our tool for teaching server-side web development.

ReactJS

ReactJS is a JavaScript framework for building user interfaces. React allows front-end developers organize their application and provide quick and powerful single-page-applications (SPAs).

Learning Resources

Below are a few sites which can help you with your journey in software development.