Ada Build - Learning at Ada - Lesson 0
- Develop an understanding of how languages are used in combination to create a web application
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.
There are two main ways we can classify programming languages, by level and by type (compiled or interpreted).
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.
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.
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.
Python is a high-level, dynamically typed language. It was created by Guido van Rossum in 1991. Originally Python was a hobby programming project that 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:
- Web development (server side)
- OS Scripting
- Mathematical Operations
- Artificial Intelligence
- Data Science
- And much more!
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.
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 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 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 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 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).
Below are a few sites which can help you with your journey in software development.