Included in the course
16 lessons (video or text)
18 exercises in the IDE
54 quizzes
Assistance in Discussions on the website
What you'll learn
- Use basic language constructs: conditions, loops, functions, and others
- Divide code into modules for reuse and no name conflicts
- Understand key concepts for writing good code, such as code cleanliness and determinism
Description
What actually are computers? Do they speak programming languages? Is it hard to write your own programs? The answer to these, and many other questions, can be found in this course. We'll explore the nature of computers and code, and some fascinating ideas that allowed us to create modern computers, mobile phones, the internet and, you know, pretty much everything we rely on every day.
Course program
Estimated time: 21 hours
-
1
What is a computer anyway?
We'll ask and try to answer some simple but important questions: What is a computer anyway? Is it smart? Do computers speak programming languages? -
2
Human and computer languages
Let's explore the idea of programming languages themselves and figure out what language should you start with. -
3
Writing your first program
Write your very first program in JavaScript and get to know Hexlet's virtual computer, which is what you'll be working in during the course. -
4
Constants and E=mc2
Learn about basic math in JavaScript, and work with numbers and constants to calculate the total energy of your body using Einstein's famous formula. -
5
Making functions — black boxes
Learn about functions — the building blocks of programs, and how to create and run functions. -
6
IF conditions and programs that make decisions
Learn about conditions and boolean algebra, the mechanism that allows programs to do one thing or another based on information given to them. -
7
Oh, no, errors! (And how to deal with them)
Understand how errors arise in computer programs, how to recognize them, and how to fix them. -
8
Recursion: when a function calls itself
Wrap your head around one very powerful and extremely important concept in programming — recursion. -
9
The iterative process and how to not be lazy
Recursion is great, but the basic recursion process isn't especially efficient. Learn about an alternative way to compute recursively. -
10
Variables and repetitions
Learn about variables and a way of repeating code with loops. Understand the important distinction between declarative and imperative programming. -
11
Mutators and for loop
Learn some arithmetic shortcuts to quickly change the values of variables, and get to know the for loop — another way to create repeating code. -
12
Dividing code into modules
Learn about dividing code into meaningful and reusable modules. -
13
Expressions vs. Statements
Understand the important distinction between expressions and statements in JavaScript, and how this knowledge will help you. -
14
Environment, scope, and closures
Understand how and why isolated environments are created in JS, what scoping is, and just how cool are closures? -
15
Typing: dynamic vs. static and weak vs. strong
Learn about typing in JavaScript, and understand the difference between dynamic and static typing and weak and strong typing. -
16
Pure functions and side effects
Explore the idea of determinism, side effects, and purity in functions. Get to know the beauty of pure functions. -
17
Additional resources
Some materials the Hexlet team have picked up. This will give you a more in-depth understanding of the topic
Challenges
We recommend working on these challenges after completing the course. They'll help you obtain more experience in programming and strengthen your new skills.
#
Challenge
completion rate