Welcome back! If you’ve been reading along, I mentioned at the end of my last post that I wanted to cover an introduction to back-end development. Wether you’re teaching yourself how to code or are learning in a structured classroom setting, the back-end can be difficult to conceptualize.
Most introductory courses and resources teach aspiring programmers front-end development first. Why is that? Because a student is able to see and affect what the user sees. It’s easy to see how their work manipulates the content on the browser. The back-end, however, is hidden from the user. It’s less intuitive because it does its work behind the scenes. It’s abstract.
I want to demystify that perceived abstraction. There are few technologies that people are more universally familiar with than the browser but how many people understand how it fundamentally works? It’s just a page on the internet, right? The internet may drive modern technology, commerce, and communication but all of these feats are accomplished at their core over a relatively simple process.
- A user makes a request for specific pieces of data that are sent out over the internet.
- Depending on what type of information they are requesting and the application or program they are using, that request attempts to gather that information.
- These processes are communicated to a server that, much like an old-school telephone operator, connects the request to the desired data.
- That data is retrieved from a database and returned to a specific API — application program interface.
- The request has been fulfilled and the relevant data is returned over the internet and back to the user navigating the browser!
That, my friends, is just the tip of the iceberg…
As you can see from the figure above, Node.js does not wait for an available thread. Handling events, or requests to the server, are done over a single asynchronous thread. This creates very fast and smooth communication to occur over the server.
Express.js is a Node.js framework that accelerates the process further by adding functionality to connect and build on top of middleware and enables it to respond to the browser via HTTP requests. What connects Express.js to the database is your preference of Node.js driver. My recommendation is PostgreSQL.
Databases store information and at their simplest create, update, retrieve, and delete data — you may have heard this referred to as the CRUD model. What becomes interesting is what else you are able to do with that data. Further study and manipulation of databases can lead to exciting projects in machine learning, IoT, artificial intelligence…etc.
When you break it down, back-end development is really just handling requests over servers that talk to databases and return data. If you’re interested in a good place to start learning back-end development on your own, NodeSchool is a great place to start!
I hope this basic introduction is helpful and encourages you to explore unleashing the power of back-end development on your next project.
Until next time, best of luck and code on!