Talentbuddy’s Full Stack Web Development Program Explained

Talentbuddy
5 min readJul 29, 2014

--

During Talentbuddy’s advanced mentorship program, you’ll be creating and implementing a complex web application from the ground up using the MEEN stack (MongoDB, Ember.js, Express.js, Node.js). We call it Telegram, and it’s an application that replicates the functionality of Twitter.

To build the user interface (UI), you will utilize front-end technologies — most notably HTML/CSS, JavaScript, jQuery, and Ember.js — as well as back-end technologies — Node.js, Express.js, and MongoDB — to store, retrieve, and manipulate data behind the scenes.

You’ll also learn about the processes, techniques and services needed to build your project. These include agile development, scaling the technology to millions of users, email delivery, and cloud hosting. This post will give you a better understanding of why we chose to work with these technologies versus competing technologies.

Front-end

The user interface (UI) of Telegram is built using a variety of front-end technologies. The UI collectively refers to the visual controls that trigger changes in the information or views that are presented to the user. A simplistic way to think about the UI is as a set of knobs on a radio that the user manipulates to control the behind-the-scenes processes of receiving the signal, converting it to sound, and playing it through the speakers.

HTML is used to describe the structure of the UI. CSS, or cascading style sheets, are used to format various properties of the elements laid out with the help of HTML (e.g.: size and colour). You should be familiar with HTML and CSS from Talentbuddy’s beginner course, or from your own experience with web development.

JavaScript is the language used to produce much of the behaviour and functionality of the UI. JavaScript is used on the front-end because it is the only language that a web browser can actually read and its usage is steadilytrending upwards.

Ember.js is a JavaScript framework used to make the creation of your user interface easy. While HTML defines the static (unchanging) content of your web app, Ember.js is used to quickly update the UI based on the user’s request, without reloading the entire page.

Just like JavaScript, Ember.js is becoming increasingly popular for coding apps with a “native feel” (are just as fast as desktop apps). It helps the programmer to be highly productive, which means you’re going to be able to create the bulk of your UI very quickly. Ember.js is more suitable for building complex applications, as opposed to others like Angular.js and Knockout.js, which are better for writing smaller, one-page projects (Ben Lesh does an in-depth comparison of these two frameworks for those interested in going deeper).

Ember.js also has the added bonus of forcing you to adhere to coding best practices, and is built with the future in mind, making it easy to adapt to emerging technologies.

The most widely used JavaScript library, jQuery, exposes methods that allow you to quickly and easily implement common JavaScript functionality. It is most often used to animate HTML elements based on user input and to make HTTP requests to remote servers. Its large community and extensive documentation makes it easy for learners to find the information they need, making it a powerful tool to have at your disposal.

Back-end

The back-end of your app collectively refers to all the behind-the-scenes processes that store, retrieve, and manipulate information so it can be displayed to your users through the UI. This involves writing information to the database, requesting that information when it is needed, and sending that information to the UI.

Like the front-end, the back-end of Telegram will be coded usingJavaScript based technologies.

Node.js is a web server that uses JavaScript to implement client-server interactions in a fast and efficient way. Node.js is used to create full-featured web apps that run very quickly, and is primarily responsible for sending information over the internet between your database and your UI. For more information on Node.js, check out this video explanation by Jeff Kunkle.

To create Telegram, you’ll also use Express.js, which is a web application framework for Node.js that increases programmer productivity when serving HTTP requests. You can think of Express.js as a layer on top of Node.js, much like the buttons and joystick for an arcade game, that gives you a set of controls for facilitating information transfer over the internet for a web app. While Node.js is built for networking applications, it takes a lot of time and effort to work directly with it. Some pre-built functionality for creating web apps is necessary, and that’s exactly what Express.js provides.

The database behind Telegram will be implemented using MongoDB, a NoSQL database system. NoSQL is a competing technology to the popular SQL style of databases, and uses a non-relational style of data storage.

There are as many opinions on NoSQL database systems as there are stars in the sky, however the benefits to Telegram are clear. It increases your productivity as a web developer and is easily scalable to accommodate large amounts of data.

All The Rest

You will learn to use a number of other technologies in the process of implementing Telegram.

Postfix and Sendgrid are two technologies that allow Telegram to send automated emails based on certain events and user preferences. Digital Ocean offers cloud computing services on a Linux-based operating system called Ubuntu, allowing you to host Telegram and make it accessible to anyone on the internet. Nginx and Haproxy are used to direct and balance the load of your server requests, enabling Telegram to communicate with your cloud server quickly and in a scalable way.

While coding Telegram, there are a number of technologies to help you manage the process. Git and Github are tools that allow you to track changes as the code evolves.

You’ll also be learning about the principles of agile development. Agile development is a style of project management that focuses on collaboration and release of the most primitive version of your final project first, and then continual improvement upon that version with regular updates until you’ve implemented your final project.

Building a single application over a 3-month period means you get to understand what it takes to build a complex app where you go deeper into its features, as opposed to scratching the surface by building multiple apps with simple, isolated features. This allows the student to cover more advanced technologies and programming techniques (for example: how to scale the application to millions of users).

By the end of the course, you’ll have the skills necessary to compete for employment as a junior full-stack developer. Not only will you understand how to create a web app UI with back-end functionality, you’ll know how to get your app live quickly and efficiently, truly making you a full-stack developer.

Written by Dexter Mcmillan. A version of this post first appeared on the Talentbuddy blog. Talentbuddy helps you learn to build web applications with a mentor in 3 months. Find out more.

--

--

Talentbuddy

Learn The Skills To Land Your JavaScript Web Development Job