Please login to post comment

Roadmap To becoming a Full-Stack Developer

  • Amruta Bhaskar
  • Jan 18, 2021
  • 0 comment(s)

A Full-Stack Web Developer is someone who can work on both the front-end and back-end portions of an application. Front-end generally refers to the portion of an application the user will see or interact with, and the back-end is the part of the application that handles the logic, database interactions, user authentication, server configuration, etc. Being a Full-Stack Developer doesn’t mean that you have necessarily mastered everything required to work with the front-end or back-end, but it means that you are able to work on both sides and understand what is going on when building an application.

While WordPress isn’t going anywhere, the serverless and JAMstack architectures are building momentum. For those unfamiliar, the idea isn’t that there are no servers, but it’s more about using servers that are managed for you in the cloud.

Services like AWS Lambda let you build a “function” that processes simple input and output. Attach that to API Gateway and you immediately have an endpoint you can interface with without ever having to actually manage a server.

Others like S3 let you dump HTML, CSS, JS, images, and whatever other static assets into storage and serve the site directly from it. Nothing gets processed on the server, you’re simply serving the static files to the client.

The brilliant part about this is there’s a lot less overhead and it's typically a whole heck of a lot cheaper. Many cases, you’ll also get a huge performance boost was serving a site from s3 will require less processing to get that the first response to the browser, which can directly equate to improved user experience.

The front end of a website or application is typically the UI that the person using your service interacts with. The biggest language player in the game is Javascript, where you’ll typically lean on UI libraries such as React or Vue to manage the components of your project.

Using these UI frameworks will allow you to create “components”, essentially blocks of code, that will end up producing HTML with the ability to create interactions and dynamic states right along with your code. This becomes powerful, and while there might be a little curve to start, it becomes pretty delightful to work with once you get the hang of it.

Whether new to the field or well experienced, you might eventually run into jQuery. While it has it’s merited and has served the community well, Javascript’s native features have grown and created less demand for the functionality jQuery was able to provide. Now devs lean on the UI frameworks and native Javascript instead.

So it’s good to understand what jQuery is, but I don’t recommend taking the time to learn it at this point. The good thing is, if you land a job that uses it, you can write native Javascript right along with jQuery, so learning vanilla Javascript itself is the right answer.

In the JAMstack world, the back end will generally refer to the APIs that our front ends use to create dynamic experiences by interacting with endpoints from the client (like those in CRUD APIs). Being able to make those requests from the client will remove the need to have to do any of that processing before the page is served to the browser.

Though you shouldn’t feel like you can only ever code in one language, being able to write in Javascript gives a nice advantage here, as you can grow into the fundamentals of working with the back end side of things with a familiar language (or vice versa with the front end).

NodeJS is a common runtime that you’ll find in most cloud environments as an option and will give you a similar experience to what you’d expect in a browser. The main difference is that you won’t have access to certain browser APIs nor will there be a window object and the APIs associated with it.

That said, Python is also another popular language and is growing, especially given its popularity in the data science and engineering community. PHP and Ruby, while both are valid and will give you options in the job market, don’t seem to be as popular and not as much on an overall upward trend as Javascript and Python.

With the language of your choice, your best bet will be learning how to create cloud services that your applications can interface with.

Creating a simple lambda that you can play around with, whether, in AWS, Netlify or any other cloud provider will give you a good experience as to what you might expect when working in the field.

And even if you may not develop directly in a lambda in the job you find, you’ll be able to start getting familiar with concepts that are fundamental to working with the back end. And you'll ultimately use those functions to connect with other services and databases to create your dynamic services.

The advantage of being a full stack web developer is:

  • You can master all the techniques involved in a development project
  • You can make a prototype very rapidly
  • You can provide help to all the team members
  • You can reduce the cost of the project
  • You can reduce the time used for team communication
  • You can switch between front and back end development based on requirements
  • You can better understand all aspects of new and upcoming technologies
Please login to post comment

( 0 ) comment(s)