There are nine units in Lambda School’s Full Stack Web Development Pre-course. I’m going to summarize what the pre-course covers for each of them. This material is basically ground-floor information that students need to know before they start the full course.

Learn to “think like a Software Engineer”
The first lesson asks the following questions:
- What is a software engineer?
- How do we communicate with computers to accomplish tasks?
- How do we learn a programming language?
- Which language should we learn?
- Where do we write code (text editors and sandbox environments)?
- How do we execute code?
What is a software engineer?
This question is answered with the idea that “a software engineer is someone who writes computer code in order to create and maintain software.” It goes on to explain that software engineers must understand programming languages, but that – most importantly – they must be able to think on their feet. They need to be able to maintain, expand and debug existing software (or codebases, as the text states). They might also need to learn new languages or frameworks (language extensions) while on the job.
The text also states that, “The greatest skill a software engineer must possess is being able to stay calm in the face of a complex problem, and using his or her own creativity (and with the aid of online resources), he or she finds the solution to that problem.” I’ve seen this validated with the programming team that I work with for my regular job (I write logic for our software, in English, not in a programming language, and wireframe modules, along with using design software to create the front-end). Customer requests are one thing, but changes to federal or state regulations, which require changes to our software, are sometimes very complex and we have to consider how these changes affect user data, not just going forward, but legacy data as well.
Our team has come up with different solutions, based on the specific changes we’re asked to make. One solution includes branches of code which know when data was finalized and locked before the government needed it to be submitted, so our software then runs code which applies rules based on regulatory statutes for a given time period. For example, a change to some kind of data being gathered and processed might use a particular formula or read from certain data sources for submissions from 2010-2012, but then a revision was made to the formula which now affects submissions from 2012 onward, and then the data sources might have been changed in late 2012, so we have to read from new sources for part of the year and then forward, and then in 2017 certain fields might have been discontinued, or entire sections retired, and then in 2019 an entire new format for a section is created, etc.
The team is able to come up with programmatic solutions pretty quickly, often to problems that initially would take me an entire morning to wrap my head around. Their calmness and ability to subdivide a task into smaller components has rubbed off on me over time, and I think has made me a stronger conceptualist.
How do we communicate with computers to accomplish tasks?
The short answer to this is that human beings use programming languages to provide computers with instructions as to how to perform specific tasks. The longer answer ruminates on the prevalence of computers – from smartphones and those now in our cars to more traditional laptops and desktops – and how they’re used for a vast number of tasks which most people don’t even consider the complexity or conveniences of while they’re using what’s essentially magic to get work done, or entertain themselves.
Examples of what programmers instruct computers to do include “build a website, create an AI chess player, store and retrieve data in a database, and even drive our cars for us”.
Three basic steps to writing code are also given, although specifics vary based on the task and programming language:
- Understand the rules of the language
- Use those rules to construct a set of instructions (write a program)
- Allow the computer to read those instructions (execute the program).
How do we learn a programming language?
This section begins with the following preface:
Learning your first computer language can be intimidating. It requires a level of precision that we may not be used to. However, just like human languages, the more programming languages you learn, the easier it gets.
It then goes on to explain that in most programming languages, the core structure is made up of keywords and syntax.
Keywords are special words built into the language that cue the computer as to what your intentions are. For example, in JavaScript the keyword ‘const’ tells the computer that you are about to store a piece of data in memory. These keywords are built into the language and are designed to accomplish specific tasks.
Syntax is a built-in system of “grammar” that each language has. It tells us how we are supposed to construct commands, such as the word order and the use of symbols and punctuation (such as brackets, semicolons, and equal signs).
Combining keywords and syntax allows programmers to issue commands which, when taken together, allow people to task a computer to perform an action or actions. Essentially, this is what allows us to write programs. Resources about keywords and syntax for a given language are often available online, usually through official websites or online repositories, which include examples of usage. Other resources, like YouTube, StackOverflow, and coding blogs, are also mentioned.
Which language should we learn?
This is actually a hotly-debated topic online. I’ve seen cases made for and against several different languages on Reddit, in YouTube comments, in Facebook groups and other places. Python is one of the big languages that are suggested for beginners, due to its ease of use compared to languages like C++ or Java.
The Lambda School text for this section basically says that there are many different languages with their own structures and uses, and new ones are created when programmers find a current language lacking in certain functionality. Due to this, there are specialty languages for different areas – like web development, gaming, manipulating databases, and so on.
The course will go over three web development languages: HTML, CSS, and JavaScript. My understanding is that HTML and CSS are used for formatting web pages – placing text or images in specific areas, controlling their sizes and colors, and so on. I believe that JavaScript is used to perform actions with these page elements – basically, anything that’s clicked on, or otherwise interacted with by a human being, executes JavaScript code to perform those operations.
The text closes with the following idea: As you move through Lambda School and then your career, you will learn more languages as the need arises, but as we mentioned, the more you know, the easier it gets to learn a new one.
Where do we write code (text editors and sandbox environments)?
Code is generally written in text editors of some sort. Some are made to recognize programming languages and have special features built-in which will help format code, color-code certain words or otherwise help make code more readable to mere humans.
At work, the team uses Visual Studio to do most of their coding. In previous versions of our software, the team used a language called Powerbuilder to write the software, and it came with its own integrated development environment (IDE).
The text for this section says:
In most of Lambda School and our careers, we’ll be writing code directly in a text editor. Some great free text editors we recommend are Sublime, Atom, and VSCode. In this course, however, we will not need a text editor. We will be writing our code directly in sandbox environments (e.g., CodePen and repl.it). Sandbox environments are websites designed to allow you to write and immediately run small pieces of code. They are great learning tools for beginners and excellent debugging tools for experts.
Here are links to the tools mentioned in Lambda’s text:
How do we execute code?
After code has been written, it must be fed to the computer so that it can be acted upon. This process is called executing, or running, the code. The process itself varies depending on the programming language. Some types of code are automatically run if opened using the right program – like opening an HTML file using a web browser automatically executes the code in that file. Opening a file written in a language like C++ in a browser would do nothing, however, as the browser doesn’t innately understand that language.
From what I remember from high school, in the 1990s, some languages need to be compiled, or transformed from a human-readable form to binary (zeroes and ones) for the computer to be able to execute code written in them. Others can be executed by a program without being compiled. These are interpreted by software, like the web browser and HTML example, above.
The Lambda School text for this section ends with the following statement:
In this course, we will be using two sandbox environments to both write and execute our code: CodePen and repl.it. The first automatically runs our code as we write it while the second runs it with the click of a button. Executing our code will be very straightforward in this course. It’s something that we need to keep considering as we continue to grow as programmers.
Here’s some additional information about compilers vs interpreters:
- GeeksforGeeks: Compilers vs Interpreters
- Programiz: Interpreter Vs Compiler : Difference Between Interpreter and Compiler
One thought on “Lambda School Pre-course 1: Learn to Think Like a Software Engineer”