coLearning:  Intro to Programming

COURSE GOALS:

LIFE OF A PROJECT

A successful project hinges on good communication with your client. Learn how to establish with your client the minimum viable product, user stories, and regular status showcases along the way. We'll also talk about how to choose the right language for your program.

PROGRAMMER'S TOOLKIT
Ready to start? What tools do you even need? Modern developers have a variety to choose from; we'll cover a few of our favorite text editors, how to use the terminal, and developer tools in popular browsers.

VERSION CONTROL
An absolute necessity in any project life is version control. During this course you’ll create your own GitHub account and learn how to use commits, branching, pull requests, and issues to help keep you on task and give you rollback options when something doesn’t go right.

DATA & CONTROL STRUCTURES
Programming languages need a way to store data. We’ll cover strings, integers, floats, and more. Don’t know what this means? Don’t worry. That’s what this class is for! We’ll also cover how a program makes decisions and manipulates or uses the data that we provide to it.

FUNCTIONS
As a program grows more complex, bits of logic need to be encapsulated. That's what functions do. You'll learn how to use them.

OBJECTS & DATABASES
Object-Oriented programming is used in many modern programming languages. We'll learn why objects are so useful, and how to write your own, and how to store the data that your program is accessing.

FRAMEWORKS, LIBRARIES, AND APIS
No program lives in isolation. Programs stack on top of each other, talk to each other, and rely on each other. We'll learn about this stack, where our program fits in, and how to find and talk to other useful programs.

TESTING AND REFACTORING
Great software isn't an accident. Good programmers test their code. We'll explain why this is so important, why even a beginner,especially a beginner, should learn to test. We'll also address the challenges of programs as they mature, and describe why testing and refactoring go hand-in-hand in building and maintaining programs over time.

A DAY IN THE LIFE
We'll go over what work is like, day to day, as a professional programmer. We'll talk about how to collaborate with colleagues, how to read documentation, how to stay focused, and why programming is such a great career.