# [The Self-taught Programmer: The Definitive Guide to Programming Professionally]() by Cory Althoff

## Introduduction to Programming

### Chapter 1: Introduduction

- this book is for you, if your goal is:
  - to become a software engineer
  - an entrepreneur
  - to use your new programming skills in another profession
- learning a programming language is only a part, there are other skills you need in order to speak the language of computer scientists
- book structured (divided into six parts):
  - learning to program
  - learning object-oriented programming
  - learning to use programs
  - learning Computer Science
  - learning to program for production
  - getting a job and working on a team
- no programming experience? try to practice programming on your own between each section
- endgame first
  - learn to program first, then learn theory later to make it even more valuable
- self-taught advantage
  - self-taught has a desire to learn, and wanting to learn is the biggest advantage you can have
- why you should program
  - programming can help your career regardless of your profession
  - programming will also make you be better at everything, because of problem-solving skills
  - learning to program is empowering, write a program to do the work for you
  - learning to program will free you from repetitive tasks forever
- stick with it
  - no programming experience, nervous about the journey? you are capable of doing it
  - you don't need to be really good at math to be a programmer, it's hard work
  - practice programming every day to improve programming skills
  - make a checklist to stay focused, and practice every day
  - challenge yourself with a timeframe like what Tim Ferriss did, to stay motivated
- format
  - if you don't understand something, go back to previous chapter
  - important words are italized
  - check vocabulary section at the end of each chapter
- technology used
  - Version Control System (git)
  - Python
  - computer/laptop
  - Operating System (OS)


## Vocabulary

- **FizzBuzz**: a programming test used in programming interviews to weed out candidates.
- **Operating System**: A program that is the middleman between the physical components of the computer and you.
- **open-source**: Software that is not owned by a company or individual, but is instead maintained by a group of volunteers.
- **Windows**: Microsoft’s operating system.
- **Unix**: An operating system created in the 1970s. Apple’s OS X is a version of Unix.
- **Linux**: An open-source operating system used by the majority of the world’s servers.
- **server**: A computer or computer program that performs tasks like hosting a website.
