Condensed Syllabus for a Full-Stack Software Engineer (or Developer)

Here’s the condensed version of a full-stack software engineer syllabus. If you’d like the full version, please click here.

Portfolio projects are highlighted in blue / black.

1. Introduction

Introduction to Software Engineering

Set up your developer environment: Learn about the field of web development and the tools developers use to create websites

2. JavaScript

JavaScript Syntax, Part I: Introduce yourself to JavaScript and learn the basics of writing JavaScript programs

JavaScript Syntax, Part II: Discover more JavaScript techniques and features such as arrays, looping, and objects

Git and GitHub, Part I: Learn how to use the Git version control system to keep track of changes and document your work. Learn markdown and publish your first content

JavaScript Syntax Portfolio Project: Build a Node.js console app that generates random messages each time a user runs the program and version your project with Git/GitHub

3. Front-End Web Development

Web Development Fundamentals: Be introduced to the field of front-end web development and create your first web page on the internet

Web Foundations: HTML, CSS, Git, JavaScript, and UI Principles

Bringing Your Site Online: Learn about different methods for hosting your site, like GitHub pages and how to use a custom domain name

Improved Styling with CSS: Dig deeper into CSS and improve your ability to layout and style websites

Building Interactive Websites with JavaScript: Understand how JavaScript is used to add interactive experiences to a website

Making a Website Responsive: Learn how to create websites that can be viewed on a variety of devices and use different layers and positioning

Making a Website Accessible: Refactor your website to follow the best accessibility (a11y) practices.… CONTINUE READING

Syllabus for a Full-Stack Software Engineer (or Developer)

I create this syllabus as a draft guide on learning full-stack software development. Basically, I combined two curriculums, one from Codecademy and the other from Lambda School.

If you’d like to see the condensed version that I refined to make it easier to learn the best from both curriculums, click here for the Condensed Syllabus for a Full-Stack Software Engineer (or Developer).

1. Codecademy

Introduction to Software Engineering

Set up your developer environment: Learn about the field of web development and the tools developers use to create websites

JavaScript Syntax, Part I: Introduce yourself to JavaScript and learn the basics of writing JavaScript programs

JavaScript Syntax, Part II: Discover more JavaScript techniques and features such as arrays, looping, and objects

Git and GitHub, Part I: Learn how to use the Git version control system to keep track of changes and document your work. Learn markdown and publish your first content

JavaScript Syntax Portfolio Project: Build a Node.js console app that generates random messages each time a user runs the program and version your project with Git/GitHub

Web Development Fundamentals: Be introduced to the field of front-end web development and create your first web page on the internet

Bringing Your Site Online: Learn about different methods for hosting your site, like GitHub pages and how to use a custom domain name

Improved Styling with CSS: Dig deeper into CSS and improve your ability to layout and style websites

Building Interactive Websites with JavaScript: Understand how JavaScript is used to add interactive experiences to a website

Making a Website Responsive: Learn how to create websites that can be viewed on a variety of devices and use different layers and positioning

Making a Website Accessible: Refactor your website to follow the best accessibility (a11y) practices.… CONTINUE READING

Loops

When writing programs, it’s always a good idea to save more time, write cleaner code, and be more efficient. Loops help us do these, and more.

With loops, you’ll write code that:

  • Saves you time
  • Helps your program be more efficient
  • Makes your code easier to read, and
  • Helps you avoid a ton of errors and mistakes

So, how does a loop help you achieve this?

Here’s how: Give a set of instructions to a computer that lets it repeat the instructions for a specified number of times.

You can do this by using a type of control structures called Loops.

Loops let you write the instructions once, so that a computer can execute those instructions multiple times.

In other words, loops let computers execute instructions multiple times, without you having to manually write out the instructions for each execution.

Each execution of the instructions is known as an iteration (or each execution of a loop). The number of iterations is also called the number of repetitions.

So how do we create a loop?

First, let’s do a recap of what we’ve done.

So far, we’ve learned how to:

Let’s now go on to see how to create the various types of loops that we have.… CONTINUE READING

Lists

List is another data type, just like a number, string, or boolean value.

A list is an ordered and linear sequence of information. We need this order, so that the whole list makes sense and works as intended.

Each item in a list has its unique position. This unique position of each item is known as its index. Like a home address, this index is what’s used to describe the location of an item on the list.

When a list has more than one index, the list has indices (where indices = more than one index). List indices are denoted with numbers.

Generally, we start the numbering of a list’s indices at 0 and then add one for each successive value. That mean, the first index on a list has position 0, the second index has position 1, and so on.

Here’s an example of a list:

States = ['Georgia', 'New York', 'California'];

‘Georgia’ is at the first position, so it’s INDEX0, ‘New York’ is INDEX1, and on and on.

It’s important that we know the index of an item in a list. This would help us access any item that we wish to work on.

That way, we can:

  • select that item from the list, and do something with it (for example, save the item to a variable)
  • modify the whole list (for example, by adding to the list or removing from it)

How to Create a List… In JavaScript

How to create a list will vary depending on the programming language you’re using.… CONTINUE READING

Control Flow

Computers can perform instructions on their own, but they can’t make decisions on their own.

Control flow is the order of execution in a program.

We use control flow to help guide computers to make the decisions that we want.

The concept of control flow answers the question: “how do computers decide how to perform a series of actions, and in what order?”

For example, take a program that lets you browse the web.

To browse the web, you might go through the following steps – Start, Open Browser, Load Text, Load Images, End.

This program is a set of steps (or instructions) that is performed in a certain order. This order is called Control Flow.

In its basic form, control flow works in a way similar to a flow chart, starting from the top all the way to the end.

Therefore, we see that the concept of control flow is very vital, if we want computers to do what we tell them to do, and do it how we want it.

So, how do we use control flow to guide the computers?

Answer: By using control structures.

That’s right – we use control structures to adjust our control flow.… CONTINUE READING

Functions

A function is a named sequence of instructions written as a unit, that performs a specific task. Functions help make your code organized, arranged, modular, flexible, and nimble/agile.

To define a function (and for the function to work), you’ll need to:

  • Name the function. For example function writeanEssay() {
  • Define the function: Give the function some inputs (called parameters) and instructions to work with
  • Use the function by calling it – that way, the function can execute all of its instructions or steps

Each time you call the function, you’ll give actual values for each input (known as arguments).

How We Use Functions

We use functions to:

  1. reuse (or recall) stuff we’d need later – multiple times,
  2. generalize or make flexible,
  3. organize, group or arrange multiple functions (sometimes within a bigger function)

1. To reuse (or recall):

function writeanArgumentativeEssay() {
   Write headline
   Write introduction
   Develop your arguments
   Write a conclusion
   Edit your essay
}

2. To generalize

function writeanEssay(thoughts1, thoughts2, thoughts3) {
   Write headline
   Write introduction
   Explain your thoughts1
   Explain your thoughts2
   Explain your thoughts3
   Write a conclusion
   Edit your essay
}

The function now has a new name: writeanEssay. Also, thoughts1, thoughts2, and thoughts3 are the three inputs (or parameters).… CONTINUE READING

Operators

We use operators to adjust, compare, or evaluate information.

Specifically, we can use operators to make calculations (using arithmetic operators), compare two values (using comparison operators), or compare multiple values and expressions (using logic or boolean operators).

1. Arithmetic operators

We use arithmetic operators to make calculations based on the outcomes we need. The operators are: +, -, *, and /.

2. Comparison operators

We use comparison operators to compare and evaluate the relationship between two values. This comparison results in a boolean. The comparison operators are: < (less than), (more than), and == (equal to).

For the ==, we’re not assigning a variable, rather we’re checking a value (or comparing if a value equals another).

3. Logical (or boolean) operators

We use logical operators to compare multiple boolean values and expressions.

Think of logical operators as ‘advanced comparison operators.’ Because rather than comparing just two values (as is the case with comparison operators), we’re comparing multiple values.

The logical operators are: AND, OR, and NOT.

Keep in mind: Operators may look different, depending on the programming language that you’re working with. This is because different programming languages have different syntax (or the set of rules that defines how each programming language is written).… CONTINUE READING

Data Types

Data: a basic unit in programming. Data represent the pieces of information that come together to make a program.

Primitives are the most basic types of data (or data types). We can find primitives in almost any kind of programming language.

Primitives include:

  1. Numbers
  2. Strings
  3. Boolean values (True or False)

1. Numbers

We use numbers to describe, calculate, or count.

Describe: The distance around the block is 200 meters.

Calculate: 2 + 3 = 5

Count: Odd numbers between 2 and 10.

2. Strings

Strings are individual characters strung together. They’re mainly used to represent text or speech. We use single quotes ‘….’ or double quotes “….” to represent strings.

With strings, characters are being strung together into a sequence of symbols – similar to the connecting earring pods in a bracelet.

For example, this is a string: ’35’; and this is not a string: 35 (this is a numerical value). A string of characters is different from a numerical value.

We use strings to display data, add or remove text, modify characters, or display words.

Display data: using texts or symbols

Add or remove text: to break strings into smaller sizes, or combine individual strings into longer ones

Adjust characters: like capitalizing the first letter of every word in a string

Display words: give words on a scree, for example, instructions on a test.… CONTINUE READING