What does “STEM” mean & what about a Full-Stack Web Developers

Definition of STEM:

Elmustapha Abourar
5 min readOct 9, 2022

STEM (Science, Technology, Engineering and mathematics), is a term used by those concerned with the method of teaching the field of science, technology, engineering and mathematics. The term was originally used in 2011 by biologist Judith A. Ramaley, who, as director of the Natural Science Institution of the USA, was responsible for developing new educational programs. STEM is an educational approach to combining technology and engineering with science and math, which are essential to understanding the laws of the universe.

STEM is everywhere and impacts every part of modern life. Pretty much every job has a requirement for some form of STEM-related skill, from computer use to a soft skill like critical thinking or problem solving.

Full Stack Web Development :

The definition of a Full Stack developer is an engineer who can work on different levels of an application

STACK : the term stack refers to the combination of components and tools that make up the application. The components can be in the front-end or back-end of the system.
The primary objective of the full stack engineer is to ensure the proper functioning of each part of the system. A Full Stack developer
can perform tasks ranging from resizing an image or text in a web page to fixing the kernel.

Software engineering & Full-Stack :

Software engineers and full-stack developers are often used synonymously in the industry. Sometimes these job titles will mean the same thing. While at other employers, these two job titles may mean completely different things. Some employers designate back-end tasks to software engineers while keeping their full-stack developer a generalist who works with every layer of the web application. Some employers expect software engineers to work with local computer systems instead of web applications and websites. Then some companies assign software engineers to code-heavy tasks while putting full-stack developers on tasks like user experience research, front-end design, architecture planning, and deployment, along with some coding tasks.

Modern Application Architecture:

Modern applications are developed to be installed on mobile devices or hosted on the web. This is the result of trends of accelerating internet access speeds, increasing web access and penetration, and the development of more powerful mobile devices.
As a result, there is a need to rethink application development. Instead of an isolated desktop or mobile application, modern applications have a distributed backend infrastructure that interactively serves a variety of front-end clients on the the web.

System parts :

• Back-End

Operating System (OS)

Firewall

Web server

Database (SQL or NoSQL)

Caches

Message queuing software

Application

• Front-End

HTML

CSS

JavaScript

Dart

Frameworks and libraries:

Frameworks and libraries: React, Vue, JQuery, Django, Flask, Laravel, ASP.net, Spring, Maven

Version control: Git, Github.

What is an example of a problem or a challenge a Full-Stack developer could solve or be asked to work on?

As a Full-Stack developer, you must be prepared to take on huge challenges, for example, if someone asks you to put their business online, you have to be prepared to take that project and make the most out of it since gathering all the needed information about the business until deploying your solution and helping the business growth, you’ll learn that being a Full-Stack developer is much more than just knowing how to write code, besides from writing code, you must be able to ask the appropriate questions to develop a system that supports the business processes and also you must take into account adequate quality indicators that will ensure the success of the project, examples of this indicator could be: extensibility, maintainability, scalability, etc.

A simplified example of a challenge could be building an e-commerce app, for example, under this project, you can be asked to build an e-commerce for some business, the goal would be to develop a standard e-commerce website that displays products to be sold, allows users to purchase those products and give the owner some metrics of his/her business.

The website should display the products and their stock

Users should be able to select products and add them to the cart

The app should be highly available, and allow users from different countries to purchase at any time.

The app should display content in the customer’s preferred language.

The owner should have a dashboard where he/she can see daily reports of income and products sold.

The system should give feedback and alerts to help to anticipate being out of stock.

The system should show recommendations for customers based on his/her preferences.

The system should allow making payments online.

The system should be secure and ensure customers’ data privacy.

What are some positives and negatives about Full-Stack?

Positives:

Due to the responsibility the job requires, it helps improve not only your technical but also soft skills.

Can adapt to the working environment, if asked to work on back-end he/she can do it, the same for front-end

Able to work on multiple projects at the same time

Can develop an entire app from scratch.

Negatives:

You could feel overwhelmed by the number of tasks that need to be done

A full-stack developer is not a specialist in any technology, he/she know enough to understand it by not master it

Sometimes, the deadline comes before expected because of bad time management

Only works with the technologies he/she knows, and forget about the trends

Responsibilities could not be well defined in some working environments.

I hope this blog post helped you learn something new, and as always, take care and see you soon! … to the next one.

Sources :

Southern New Hampshire University.

Indeed

freecodecamp

--

--

Elmustapha Abourar

Software Engineer Student @Holberton School & Pro Dancers Choreographer DeeJay / Beat Maker