In this unit, we’ll look briefly into some intermediate and advanced level concepts that pertain to the Web Developer career. This section is intended to expose you to things that you would otherwise not encounter if you hadn’t learned the basics of web development. We won’t go deep here- we just want to give you a sense of what it’s like to be a web developer once you have mastered the basics of the syntax of a language and the technologies of the web. You could say that this is where the artistry of the career starts to come into play. Beyond technological understanding, being a web developer is really creative and design-oriented. The challenges in this unit will uncover why.
It’s hard to read about technology in the news without hearing the term algorithm. So, it’s likely that most people, even those not working in technology, have a working definition of the term. This is a useful entry point.
Algorithms, at their highest level, are used for calculating or generating something that would normally take a lot of time and resources to figure out. An algorithm in it’s broadest sense is a repeatable set of instructions to follow that, when given an input or a set of inputs, can produce some useful output or set of outputs. An algorithm is like a recipe for calculating something that’s otherwise complex or difficult to produce.
Algorithms aren’t just technological- they can be completed by humans too. A cooking recipe is, in itself, an algorithm. There are inputs—ingredients, a set of instructions—how to mix, how long to bake something and at what temperature, and outputs—the delicious food to eat when you’re finished. But algorithms tend to deal with intellectual matter rather than solid matter.
We see algorithms for:
Algorithms have become technological because when we make complex processes into a repeatable set of steps, it’s possible to have a computer complete those steps.
This is exciting because it means that the creation of sophisticated algorithms can automate what would otherwise take a lot of time and effort for a human to complete. Many companies invest in the development of algorithms because there is value in providing automatic steps for complex processes.
In order to understand the way that algorithms are implemented using code, we’ll look at the example of the recommendation algorithm- the ability to take a user’s history and predict what products or content they would like to buy or see in the future.
The utility of recommendation algorithms is clear—almost any e-commerce or streaming platform will benefit greatly from being able to steer their users’ toward new products and content that they will enjoy.
In this example, we’ll imagine an e-commerce platform where people purchase makeup and skincare. The goal is to utilize a user’s past shopping history to make engaging recommendations on a user’s homepage for products that they might like to purchase next.
The input for the algorithm is the user profile that we are trying to recommend products for and the products that the user has purchased in the past.
The output for the algorithm is the set of the top five products to recommend to the user.
It’s worth noting here that the output for the algorithm is dynamic- it’s changing perhaps all the time, and is different from user to user. If it were the same all the time, or the same from every user, we might not require a computational algorithm to provide a recommendation.
These are the steps for two possible algorithms for recommending things based on a user’s preference.
After walking through the steps to create and use this recommendation algorithm, next time you are ordering something online, think about how many algorithms could be involved in each part of the ordering process.