What Is Software Engineering? A Simple Guide Without the Jargon

Description

Ever wonder how your favorite apps work behind the scenes?
Whether you send a text, order dinner through DoorDash, or binge-watch your favorite show on Netflix, you're interacting with software.

In this article, we'll peel back the curtain and take a high-level look at web-based software development and its different aspects.

It's Like Following a Recipe

If you're unfamiliar with software development, a good way to think about it is like this: writing software is much like telling a computer to follow a detailed recipe.

Just like a recipe can tell you exactly how to make your favorite dish step-by-step, software engineers write specific instructions - the code - that tell computers exactly what to do.

Imagine telling someone how to make a peanut butter and jelly sandwich. You might say, "Spread peanut butter on the bread," but a computer needs more specific instructions:

Step 1: Start by gathering your ingredients.
Step 2: Put both slices of bread next to each other on a plate.
Step 3: Open the peanut butter jar.
Step 4: Etc.

Software engineering is similar. It's all about writing detailed instructions for the computer to follow.

Now that we have an idea of the level of detail you need to follow when writing code, let's look at the two main groups that software developers belong to.

Front-End and Back-End

Front-End: The Part You See

The front-end is everything you can see and interact with on your screen when you visit a website. If you're at a restaurant, think of the front-end as the meal you ordered, right before you take the first bite.

The front-end of your favorite website might include the following:

  • The photos you see
  • A button to "react" to different posts or pictures
  • The search bar at the top of the page
  • The layout and styling of the page

Back-End: Behind the Scenes

Returning to our restaurant analogy, back-end software development is like the kitchen. You don't see it, but it's essential. It's where your food is stored and then prepared when you order it.

The back-end might include things like:

  • Storing your photos and comments
  • Processing your reaction to different posts or pictures
  • Performing a search

Breaking Down a Simple To-Do List App

To understand how the front-end and back-end work together, let's look at a simple to-do list app. It might seem basic, but there's quite a bit happening!

Front-end:

  • A form where you type new tasks
  • List of existing tasks
  • Button to "complete" a task
  • Nice animations that happen when you add or complete a task

Back-end:

  • When a task is added to the app, it's stored on the back-end
  • It determines whether a task is completed or not
  • Your list stays organized even when you close the app
  • Ensuring your to-do list is synced across devices

Tools of the Trade

Code Editors

A code editor is a specialized type of text editor that's designed specifically for writing code. For example, if a salesperson uses Microsoft Word to write up a sales proposal, a software engineer would use a code editor. Instead of running spell-check, a code editor helps catch coding mistakes like typos and formatting.

Popular beginner-friendly editors include Sublime Text or Visual Studio Code.

Web Browsers

Browsers like Chrome, Firefox, and Safari do more than show you websites. They're powerful tools that read and process code.

Each browser has a feature called "developer tools" built in. This is a great way to learn to code and see how changes to a page's HTML and CSS can update it in real-time!

Programming Languages: The Building Blocks

Just like a chef might have different kitchen tools—a knife, pots and pans, an oven—software engineers have different programming languages and technologies to help them accomplish different tasks.

Front-End Languages:

  • HTML: Provides structure of a website
  • CSS: Adds style and color to a website.
  • JavaScript: Adds interaction.

Back-End Languages:

  • Python: Great for beginners, used by Instagram and YouTube
  • Java: Powers Android apps and enterprise software
  • PHP: Runs websites like Facebook
  • Ruby: Runs websites like Shopify and GitHub

Is Software Engineering Right for You?

Do you think you need to love math to learn to code? Or maybe you think it's too late to learn—that if you didn't learn at a young age, you can't now? This just isn't true.

If you want to become a software engineer, it's much more important to have:

  • Logical thinking
  • A love of problem-solving
  • Attention to detail

It's also just as important to have more "soft skills" like:

  • Communication - you'll work with teams!
  • Willingness to learn - technology is constantly changing
  • Persistence - debugging code takes patience

Learning a new skill can take time. Remember to have patience and work at it every day.

Our curated list of learning resources is coming soon!