*Copy and save this document to make necessary changes to it. Feel free to use it as a worksheet.
Hi and welcome to a very unique English For Tech audio lesson. This is Anna Gandrabura aka
Annglish speaking. Get yourself comfortable, in order to make this lesson even more useful, get
a pen and a notebook to take notes while you listen. Feel free to listen to this lesson several
times if needed. It would also be helpful if you went through the lesson vocabulary list before
you start listening.
English For Tech Level 2 Module 1. Vocabulary booster. Topic: Tech Stack
First off, let’s focus on the definition of what a tech stack is.
A technology stack (or tech stack) is a set of tools that work together to bring a product or a
service to end-users. That typically includes programming languages, frameworks, databases,
and libraries. A tech stack mainly consists of two parts: client-side and server-side (or front-end
and back-end respectively). It’s extremely important to decide on the tech stack before you
launch into creating an app. Choosing the wrong tools or changing them halfway through the
development process will only result in disagreements between team members, unhappy
clients, and time lost. So how do you choose the right tech stack?
Well, let me give you some examples of commonly used technologies that many developers
include in their tech stacks because they are widely used by companies and are highly
in-demand. You may be able to guess some of them just by looking at their logos.
HTML and CSS are markup languages for creating the content and styling of websites. This is
what most beginners start out with.
React is a powerful JS library for building user interfaces and UI components. Fun fact: it has
been developed by Facebook and pretty much all companies owned by Facebook use React
Nodejs is a runtime environment primarily used for communicating with a server. If you have a
background in JS, learning [Link] will not pose a problem
Postgress (or Postgres S Q-L) is an open-source system for managing relational databases that
store data in columns and rows. Since it’s free and easy-to-learn, it is a popular choice with
many startups and bigger companies. However, if you’re dealing with a non-relational database,
you’ll have to opt for a different tool like MongoDB for example.
Python is a high-level programming language that keeps gaining popularity. One of its biggest
strengths is that it can be used for a vast number of purposes: from front-end development to
machine learning.
*Copy and save this document to make necessary changes to it. Feel free to use it as a worksheet.
Let’s look at some popular tech stacks. There are four major ones. They all consist of 4 different
technologies that are used together to build end-to-end software solutions in the most
optimized way.
LAMP: Linux, Apache, MySQL, PHP (is considered a bit outdated)
[Link]
MEAN - MongoDB, Expressjs, Angular, Nodejs
MERN - MongoDB, Expressjs, React, Nodejs
MEVN - MongoDB, Expressjs, Vuejs, Nodejs [Link]
As you’ve probably noticed, all three modern tech stacks use MongoDB for database
management and Nodejs paired with Expressjs for server work but the choice of the front-end
library is up to the developer or the company. It has to be said that Angular is slowly fading out
of use, these days it’s mostly used for maintaining old projects. Vuejs is slightly marginal, there
aren’t as many developers using Vue as there as those who use React. So it’s safe to say that
React is leading this race.
Before adopting a certain tech stack you’ve got to adopt a certain mindset. Most people get
into programming because they are excited about writing code and learning new technologies.
However, writing code cannot be divorced from such pragmatic things as business and
marketing. Whether you’re a newbie or a seasoned professional, you need to understand the
business needs that are driving the adoption of a certain tech stack. In business terms, if a new
technology isn’t going to help you save time and money or help optimize a process, it’s not
worth implementing. Developers are often biased towards a particular technology because it’s
the one they’re excited to use, but being able to see things from a business perspective and
recommend solutions that will help the company achieve its goals faster is way more important
and valuable. When choosing a tech stack the following things have to be taken into account:
1. Project requirements - simple projects do not require complex solutions. The complexity of
your tech stack depends on the size and scope of your project. Don’t automatically go for
something trendy. Just because a technology is new doesn’t mean it’s going to solve the user’s
problem in the best way. LET ME GIVE YOU A really simple example: if you need to create a
basic website to host a blog etc., a simple solution like WordPress may do. But if you need to
create a full-stack web app with custom styling, client-side rendering, and other fancy stuff,
WordPress obviously won’t get the job done.
2. Scalability - this is a pressing issue especially for companies that make their own products.
*Copy and save this document to make necessary changes to it. Feel free to use it as a worksheet.
You want to ask yourself: “How is this solution going to impact the project at scale?” “Which has
a higher priority: flexibility or speed?” If the company’s only priority is to get the product to
market fast, the tradeoff can be that the app will require a lot more maintenance.
3. Maintainability - at some point another developer might have to take over your work and
they’ll have to be able to wrap their head around your code. So adding Scala to a Java project
just because you think Scala is cool wouldn’t really make sense business-wise.
4. Price - it’s worth thinking about the cost vs benefit ratio even if you’re a developer. If you ever
decide to pitch an idea, you may be asked to “do the math”, that is to explain how much a
certain solution will cost the company versus how much money it can save them in the future or
how much revenue it can bring.
You may have to describe some of your personal projects to prospective employers or fellow
developers. When it comes to explaining your choice of a tech stack for a personal project,
there are also intelligent ways to go about it. You want to be able to articulate why you chose a
particular technology over its alternatives. In a world where new technologies are emerging at
an incredible speed, you want to be able to show that you’re not just chasing trends or picking at
random, you are making informed choices based on some kind of selection criteria you’ve
defined.
The first thing you need to be able to explain is how a technology you’ve chosen helped you
solve a particular problem or remove a roadblock that you’ve run into in your project.
Another reason to pick one solution over the others is that it has given you a substantial
increase in productivity and efficiency.
And of course, your personal projects are your own so factors like fun and convenience are also
not to be neglected. You may choose one technology over the other because it’s similar to
something you’ve used in the past and the learning curve for it is not gonna be too high or too
big. And if you’re passionate about your profession, you will want to try out some new
technologies that are coming out, just to be able to play around with them, get your hands on
them and see how they work.
Now, what is your tech stack?
Phrase Meaning Translation
halfway through In the middle
*Copy and save this document to make necessary changes to it. Feel free to use it as a worksheet.
result in Result in + noun:
Implementing this technology
will result in significant
increase in productivity
adopt a certain mindset Assume some concrete
mindset
biased towards / against Liking / disliking something
for no particular reason
see things from a business Consider business needs first
perspective
be taken into account Be taken into consideration
trendy fashionable , hot and hip
get the job done Achieve the needed result
at scale As (the project / business)
grows
to get/bring/rush the product To release / launch / go live
to market
tradeoff A balance between 2
desirable but incompatible
features
take over / hand off assume control / give control
to someone else
wrap their head around Understand how something
works
business-wise In terms of (speaking of)
business
ratio correlation
do the math Perform the calculations