DEV Community

Cover image for Frameworks are Powerful and Awesome and Frightening
Ghaleb
Ghaleb

Posted on

Frameworks are Powerful and Awesome and Frightening

I am new to all this. I haven't worked in the industry yet, and I am only now building my first project for my final year at college. I played with Flutter a bit before and, more recently, with VueJS a little bit more.

Frameworks, for me, seem to be a double-edged sword. On one end, they make more projects feasible to individual developers and small teams. Projects are the best way to learn, and good projects enrich the industry, so that's cool. On the other end, they seriously lower the barriers to entry and make it harder to distinguish experience by looking at the end result alone. The code will always be revealing, of course, but the code is rarely looked at.

For my final-year project I am using Firebase with Quasar. This is where the fear kicked in. The combination of tools I am using made things easy; maybe even too easy.

Initially, I planned out long durations for small tasks to account for my lack of experience. However, once the work began, the time in which I learned the concepts and finished my authentication form with the accompanying services, surprised me. I thought I would need two weeks just for tutorials, let alone having something functional. I needed three days for both.

The Firebase SDK and Firestore rules did all the backend heavy-lifting, and Quasar made me laugh at myself as I looked at the elegant form that would have maybe cost me a month to build without those out-of-the-box components.

So the natural question that followed was this:

How afraid should we - the new kids on the block - be from competition in such a hot industry that keeps lowering the barriers to entry? What is the most efficient approach for a noob web developer to stand out?

I would love to hear how my fears are unfounded and how my question is invalid. This may be one of the rare occasions where one wishes for disapproving opinions.

So, whether you agree, have tips on how to compete, or you completely disagree; please, do share.

Oldest comments (11)

Collapse
 
mepda profile image
Ben

I think knowing the logic behind why things work is pretty vital. Sure, somethings work awesome out of the box, but what if you need an edge case that's not covered there? For some projects, these pre-built SaaS tools are the right choice for the job, for others, you may need to make your own, and in many cases, you'll inherit whatever the company was using before you came onboard.

Collapse
 
ghamadi profile image
Ghaleb

The "edge case" point you make is definitely convincing.

Would you say that building small, barebone projects (no frameworks, no libraries) is required to demonstrate a good understanding of the fundamentals?

Or should one invest time in learning and utilizing the tools surrounding the basics, and let the interviews challenge his understanding of fundamentals?

Collapse
 
trashhalo profile image
Stephen Solka

This blog post about frameworks vs libraries has stuck in my brain since I read it.

brandonsmith.ninja/blog/libraries-...

Collapse
 
tominekan profile image
Tomi Adenekan

If you know the fundamental concepts that the framework is built on and you can implement it then there should be good. I believe that libraries are slightly better because they are less opinionated than frameworks. (This is my opinion).

Collapse
 
masterroshan profile image
TJ Johnson

Quick story from when I was a beginner:

I was discussing my project with a security team member, when he said "Make sure your code isn't vulnerable to SQL injection." I kind of freaked out, but I later found out by reading the docs that all of my queries we're automatically being escaped, and that's because I was using the framework's Query API.

If you can use a framework there's more power to you, but there will be times when you have to know what's happening underneath

Collapse
 
andrewbaisden profile image
Andrew Baisden

Frameworks are great and because they have huge communities behind them its much easier to find solutions to problems. So long as you understand the core concepts like vanilla javascript for example then you are more than equipped to tackle various projects.

Collapse
 
medsaad profile image
Ahmed Said-ahmed

It's easy just now .. in a college project. But in real life projects, you may use an elegant form build only to find out that it does not match the design made by you ux designer, so you will then have to choose between finding a way to customize the plugin or rebuild it yourself. All this is just one example, but you can use it with other aspects of application development.

Collapse
 
ghamadi profile image
Ghaleb • Edited

One other comment suggested that knowing the fundamentals is important because there might be edge cases. I think your comment is a perfect example of a similar idea.

I will reiterate, here, the same question I asked there:

For the market, do you believe one is better off creating barebone projects with no frameworks or libraries to demonstrate a solid grasp of the fundamentals?

Or is it better to know the basics, invest the time in more complex projects that utilize these tools, and let the interview questions challenge that grasp of the fundamentals?

Collapse
 
medsaad profile image
Ahmed Said-ahmed

You can use native language to develop some projects but let those be personal project. It's better not deliver a project with native language with no framework. First, you will take too much time to achieve tasks that your client expect it be quicker to finish and you will find your self behind schedule a lot.

Collapse
 
zimlearn profile image
Dr Abstract

Of course, some Frameworks are easier than others... I would not blame you for balking at Flutter for instance... here is ZIM on the Canvas at 26% Flutter and way, way more readable - youtube.com/watch?v=V66OpDIFCvE - I guess it depends on what you are making...

Collapse
 
hemiltherebel profile image
Hemil Ruparel

I think some things need frameworks. Like flutter. I would not imagine creating my own graphics API or using android's (yes it works, but after using flutter it feels unnecessarily complicated). And I really want my web server to be a framework. But here is the thing. I want my frameworks to be small and do only one thing. So they can get out of my way and let me do my job.