How to choose programming stack for web development
To start your career in website development, the first thing you need to choose is the programming language. Below mentioned are some of the deciding factors to choose the language:
- Demand in the market / Jobs
- Have Good community support
As web developers, we have to manage (code) different services of the website. For that, we can choose different programming stacks. But first, we need to know about the different website services as below:
Sr. | Services | Description |
---|---|---|
1. | Front End | It is what users see on the browser (Client-Side) like text, images, animation, etc. |
2. | Back End | It performs logical operations on the server. |
3. | DataBase | It stores the data so that we can query the data as requested. |
To manage (code) each of the above services, we can choose different languages. Here are a few examples
Front-End / Client-Side | Back-End / Server-Side | Database |
---|---|---|
HTML | NodeJS | MongoDB |
CSS | PHP | MySQL |
Javascript | Python | Firebase |
Ruby | PostgreSQL |
Every programming language is ok if you are comfortable with writing the code. Some people have a good taste in RUBY, or PHP than Node.
To code the website, you have to master (learn) the stack. So what does stack mean 🤔 . Stack refers to the set of languages or frameworks that allow you to build a complete website (front-end, back-end, database). Below are the popular stack available on the internet:
Stack | Abbreviation |
---|---|
MERN | MongoDB, Express.js, React, Node.js |
MEAN | MongoDB, Express.js, Angular, Node.js |
MEVN | MongoDB, Express.js, Vue, Node.js |
LAMP (e.g. WordPress) | LINUX, APACHE, MYSQL, PHP |
JAMstack | JavaScript, APIs, and Markup |
Choosing Front-End / client-side
The client-side languages HTML, CSS, and JavaScript refer to the code that can be visualized on a browser screen.
HTML is the markup language that tells the browser what content to display. For example, the <img>
tag in HTML is used to display the image on the browser screen, etc.
CSS (cascading styles sheet) styles HTML elements. We can use different CSS Properties to customize the look of the HTML element. To learn more about CSS, you can follow this link.
JavaScript is used to manage the behavior of website applications. The basic purpose of JavaScript is to appear dynamic content without refreshing the page. JavaScript is one of the most popular languages; has a growing number of frameworks and libraries on the internet. JavaScript can work on most devices and technologies as mentioned below:
- Front end: JavaScript
- Mobile apps: JavaScript (React Native)
- Machine learning: JavaScript (Tensorflow.js)
- Backend: JavaScript (Node.js)
You can learn more about JavaScript here.
Choosing Back-End
Back-end language (e.g. NodeJS or PHP) is used to perform computerized things like a filesystem, handle the HBeforet, etc.
Before, PHP is the most popular language for writing server-side due to the popularity of WordPress. But after the JAMstack becomes popular for modern websites, NodeJS language becomes popular for write server-side code.
NodeJS is the runtime that allows running JavaScript on the server. Javascript was a scripting language to run in the browser. If you have learned the syntax of JavaScript, you learn half of Node.
The back-end server is not accessible by the user. Unlike, in the client-side (browser), we can use inspect tool to change the script, markdown, and styles of the website. For example, if you want to perform logical checks for a very secure bank application, then writing logic on the browser (client-side) might not be a good option. Because someone can use inspect tool of the browser to change the logic and validate their information. That’s where back-end servers are useful.
Choosing DataBase
We use the database to organize or store the collection of data and later we can query the data based on our request. Below is the list the popular database for the web:
Stack | Abbreviation |
---|---|
MYSQL | MySQL is a relational database management system. |
Firebase Database | Firebase is Well Documented, cloud-hosted NoSQL database. |
MonogoDB | MongoDB is that it is a powerful query language, that uses JSON-like documents with optional schemas. |
We can also store the data onto a sheet, table, etc programmatically. For example, google sheets, Airtable, and Notion. Rather than access the database, we use their API endpoints to perform CRUD (create, read, update and delete) operations on the database. We can send an HTTP request with the payload to the API endpoint and if the request is valid, it stores the data in their database.
Conclusion
You should choose the website stack that you are comfortable with. I’ve also written a blog about my website stack. Most of the companies prefer to work with particular stack while hiring the candidate. But… In business terms, the programming stack does not matter; the customer only cares about end results, not the programming stack.