The Perplexities of a Front-end developer: Full Stack or a Specialization

Saloni Parekh
GDSC VIT Vellore
Published in
8 min readJun 11, 2020

To all the Front-end Vanilla JS developers out there! Have you, at some point in your lifetime, arrived at two crossroads: making a choice of starting back-end development and moving ahead to become a full-stack web developer or specializing in the Front-end domain itself and go for the very popular libraries like React, Angular or Vue? Then this blog might just be able to give you some insight in helping you choose how to proceed!

I happened to face the same situation sometime back as the lockdown gave me a lot of time to explore the field. The speed with which JavaScript is engulfing the IT industry, I had no plans of quitting just by learning VanillaJS. The one thing that my mind was clear about was to continue with the language unless I become worthy of calling myself an advanced web developer. I was compelled to think - If I were to choose one domain as of now, which of the two would help me grow better, give more prominence to job openings, and help boost my resume?

A short and sweet choice to clear the confusion

Done with HTML, CSS, Javascript. What next?

What fascinates you?

  1. The magic of Display with Beautiful, Intelligent, and Clean UI:

Dig deep into the front-end development. Focus on the more advanced part of HTML, CSS, JS, including the CSS Flexbox, Animations, HTML data rendering, transitions, and the entire visual intelligence of a website. Start figuring out which of the popular advanced libraries are you comfortable with.

2. Algorithms, workflows, logic building, and what happens behind the scenes:

Well. It’s the server-side domain for you then. You must take a break from the designing part for a while and jump onto some programming skills like PHP, Ruby, Python, or Node. Start working towards becoming a full-stack web developer by developing robust end-to-end platforms using these technologies.

Honestly, the back-end was not really in my to-do list anytime soon. This reminds me of another perception I would like to share. People do ask me sometimes, do you think starting with the front-end is better than back-end? Well, there is no hard and fast rule. It completely depends on whatever floats your boat. What matters is, you should love what you learn. I had been acquainted with HTML in school and being just a beginner in programming during my first year, I felt more confident to start with something that I was at least aware of.

Often, people tend to get caught up in false notions about a particular language or say a technical domain without even having a rough idea about it. One such myth is that the “front-end is way easier than the back-end.”

Let me tell you, no doubt HTML, CSS may be quite straightforward to learn or understand, but trust me developing a web page from scratch takes endurance. It can be tedious most of the time. A few years back people hardly had 2–3 choices to choose a particular CSS framework. But today, a quick search for “CSS frameworks” gives you around 100 different options.

The augmentation of frameworks, libraries, and other lingo in the JS world is expanding so much day by day that it can be overwhelming to decide which one to go forward with. I won’t tell you which one might suit you better or the pros and cons of each. I am sure the internet has enough sources to help you get a better picture. But yes, I do intend to shed a light on the choices as far as the zone of web development is concerned and my outlook upon it.

A personal perspective — Why React happened to be my go-to place

What I want to share through this blog is my point of view and what made me decide to choose React first over Node or anything else. Since I am more intrigued by the way the UI works rather than the server-side logic, I dove into it a bit, watched tutorials, and implemented it in several mini-projects.

Before it was created in 2011, by Facebook, the developers used to build UIs manually with Vanilla JS or with less UI-focused predecessors like jQuery. It meant a longer duration of coding and of course, huge chances of an error-prone code. The main aim was to improve the UI development.

I do not aim to go into a detailed tutorial here. Let me share with you some of its interesting perks, though, that motivated me to go forward with it.

  1. Several JS frameworks enhance HTML to make it work with the data on which it depends, but in our case, we rely on the power of JavaScript to generate HTML that depends on some data.
  2. It is just JavaScript, with a small API to grasp along with learning to use a few functions. If you are confident with your JS skills, you will easily able to grasp the way it functions in no time.
  3. Since web browsers understand JavaScript, we can use this library to describe Web User Interfaces. being declarative, it builds the actual User Interfaces, the way we want, on our behalf. Without such libraries, we actually need to manually build User Interfaces with native Web APIs and JavaScript. Basically, after telling it “what” is needed, it takes care of “how” we need the desired output.
  4. The idea of dividing the whole website structure into reusable, composable, and stateful components and creating them individually makes it unique. The whole process of developing becomes extra smooth since the effort of rework on frequently changing codes reduces a whole lot by at least 50%.
  5. The concept of using states and props eases up the tasks of storing different changes at different locations and passing custom data to a specific component respectively.

Here are some amazing links that can help you get started and fall in love with the library!

  1. How to Learn React — A roadmap from beginner to advanced
  2. A crash course by Traversy Media
  3. Projects for Beginners

When it comes to building user interfaces — this is a life-changing tool you need to get your hands dirty with. So, take the plunge and dive straight away. You will not regret it.

For all those who want to break new ground in Back-end

NodeJS, being by far the most demanding and fastest-growing language in use is a must-know skill for any full-stack specialist. It has become a universal platform for web applications nowadays. Right from Streaming data to creating APIs, Chat Applications, or Proxys, it has found to be efficient and multipurpose at the same time.

Something to get you familiar with the run-time environment:

  1. Setting up your development Environment
  2. NodeJS Tutorial: Step-by-step guide for getting started
  3. Creating your first app with NodeJS

Learning React and Node simultaneously?

Both complement each other, so you will always be at an advantage if you learn both. All you need to know is JS for both front-end and back end developments. That’s the charm of JavaScript. You can learn to integrate both and make a full-fledged working app all by yourself. I understand that’s one of the major motivations to become a full-stack web developer i.e. being self-sufficient. At times, you might feel a lot to take in. If you find it getting overwhelming or frustrating, then scale back and concentrate on one thing before moving on to the other.

Here are a couple of articles that can come in handy while you beat your brains out!

1. How to make create-react-app work with a Back-end API

2. Connecting ReactJS front-end with NodeJS back-end

3. 5 Reasons to use Nodejs with React for Web Development

After all, gaining success in the web development field means using the right tools to make your code as effective and efficient as possible and never stop learning.

Conclusion

To conclude, learning both tools just for the sake of it and not being able to implement either of them efficiently is just stupidity in my opinion. Trust me, even if you focus on one of them and master it, you can qualify for an equally high pay job and do wonders!

Long story short, the way in which JavaScript ecosystem is growing, it is the future, so hang in there and keep developing.

Do not get intimidated and try diving into everything that comes your way! As a web-developer, there shall be a plethora of resources, languages, and tools that you would come across. It is not possible that you can know everything. Choose what makes you comfortable and go forward with it.

Keep learning through projects and master implementation rather than just registering courses for certifications because without getting hands-on experience, your efforts might just be going down the drain.

We are all familiar with the concept of being the “Jack of all and master of none” now aren’t we?

An opinion: Do not force yourself to learn a language just because you think it’s “cool” to know it. Try it only if you are interested to build something that involves the use of it or if you think it might help you in the future. No doubt, it’s amazing to get curious about and acquainted with new technologies and tools, but if you think it is taking too much of your time and leading you nowhere, stop right there.

This one’s for all those beginners who are contemplating whether diving so deep into the domain is worth it.

There is no feeling in the world that can match when you see a perfectly created application of yours. A single, fully functioning, self-created project is enough to boost your confidence up and encourage you to explore more. It might require a tad-bit of patience or you might not be able to implement it as desired at first, but the strategy is to keep going on no matter what!

--

--