This course offers a beginner-friendly introduction to fundamental computer science concepts. It serves as a starting point for understanding essential ideas and lays the groundwork for deeper exploration in future courses.
Chapters
Introduction
Let's start by laying out the goals, the path we'll follow, and, most importantly, what you'll know by the time we're done.
Operating systems
Our journey starts at a crucial point, the place where many of the tools and abstractions that app developers use every day have their origins. The operating system.
Standards and protocols
Many of the things you'll encounter in the realm of computer science are related to one standard or another. There's not much of a natural order beyond hardware constraints. Everything we work with is a product of the creative minds of other software engineers, both past and present.
Programming languages
Until machines reach true intelligence, they rely on us to precisely define their tasks. The challenge lies in the fact that the language they naturally communicate in is often nearly incomprehensible to humans. Programming languages are like a bridge, helping people express themselves in a way that machines can also understand.
Tools of the trade
Let's explore some key tools we'll use extensively in app development.
What exactly is an app, anyway?
With apps for just about everything, they're all around us. Yet, grasping the true nature of an app and its place within the intricate layers of abstraction that span from the user to the hardware is no simple feat.
Packaging and distribution
After completion, apps need a way to reach the hardware where they run and carry out their functions. This is the point at which we explore the solutions that software engineers have created to address this.
The app development cycle
Each app progresses through a series of stages to reach a production-ready state. In fact, successful apps continue to pass through these stages even after their initial release, as new features are added.
Working in a team
Most of your career as an app developer will most likely involve collaboration with various professionals, including designers, product managers, and fellow developers. This is where we'll explore the tools and techniques that teams employ to enhance productivity while collectively working on the same app.