DEV Community

You're not a software engineer; you're a "frameworker"

Muneeb Hussain on May 01, 2024

In the present time, it's really hard to stay simple. I have seen many developers using a combination of 6 to 10 technologies to build a simple CRU...
Collapse
 
zachbryant profile image
Zach • Edited

This feels nit-picky and gate-keepy and I don't know where to start.

I'm not going to deny that more knowledge is better, or say that your frustration is invalid, but... this is derisive, not inspiring.

You don't start by learning how printf works in assembly before you get going in a C++ project do you? That would be quite unnecessary, and the wrong place to start. It's a simplification compared to the levels of frameworks JS has but I think it holds.

Tell me, what good does this article do for people who are likely at the start of their careers? They don't deserve the label of engineer because they aren't advanced enough? Terms like "Frameworker", code monkey, etc is not how we build people's confidence. Words like these assassinate interest in participating in a community that would ever call others that. This is the attitude that earned StackOverflow its reputation of being jerks, and why engineers I know personally will never post there. It can be a problem to jump right into frameworks, but your frustration is misdirected.

Even if someone doesn't know how React or GraphQL works under the hood, that's kind of the point is it not? We want our software to be so good that it can be used without being an expert in every layer. Nobody would get anything done if that was a prerequisite to start. Especially since the web has always been a sandbox easy-entry platform.

From a personal standpoint, I think CSS is an antique with bad developer ergonomics. Tailwind makes my life easier because it allows me to focus on delivering without affecting page performance. I dive deeper into other topics and languages that I actually appreciate. Does that mean I'm a frameworker or a software engineer?

Part of being an effective engineer is knowing how to curb your Rockstar enthusiasm to meet the needs of the business in a timely manner. Runway is only infinite when you're working for free. Being "curious about how things work behind the scenes" is good, pursuing that curiosity depends on your monetary and emotional budget.


The beauty of writing software is that you can dive as deep or shallow as you want with it. It is not a delusion to tell ourselves that we "can build anything", it is an affirmation of our tenacity and imagination. I would actually argue the opposite of what you've said, which is that frameworks make it even easier to build anything without knowing how they work. The entire point of any framework or library is to remove the barriers of entry.

I also disagree heavily with your assertion that understanding an entire system is easy. It's an ideal; it's not easy. Have you ever tried to write a basic operating system, where mission critical is knowing how the entire system works from bare metal and up? Understanding even a bite-sized Unix clone for teaching such as Xinu is a feat to be quite proud of, given that such a thing is possible for a student. In an enterprise setting, understanding the entire system is a pipe dream you spend a career pursuing. Even principal engineers probably don't understand an entire enterprise system + every layer top to bottom. That would be anywhere from tens of thousands to millions of lines of code.

I have been developing software and participating in online dev communities for over a decade now. From everything I've learned, this is not the attitude that inspires anyone.

Collapse
 
eteimz profile image
Youdiowei Eteimorde

It's crazy how this comment is longer than the original post 😄

Giving people the title engineer just to make them feel welcome is just wrong and deceitful in my opinion. A lot of platforms have taken advantage of this to create courses like "Become an Engineer in 6 months" or "The one course you need to be a Software Engineer". A lot of people taking these courses aren't aware that these platforms aren't giving them the full picture🖼

So we can look at this post as more of enlightenment for someone. Also companies are at disadvantage too. They would hire someone with the label Engineer only to find out they can't deliver. This would also be detrimental to the individual's moral 😔

I think the software industry really needs to work on these job titles. It's better to refer to someone as react developer, django developers or Laravel developer than to throw the title Engineer to anyone who prints Hello World 🌎

Nurses aren't less than doctors. Niether are air hostesses than pilots they all play an important role in their profession but we can't call a Nurse a doctor 😷

Collapse
 
zachbryant profile image
Zach • Edited

There's a lot to unpack in this post, I'm sorry you find that crazy. Luckily, nobody but oneself can bestow the title Software Engineer. It is highly unprofessional to tell someone they aren't one just as much as it is for predatory courses you mentioned, because they haven't met the definition of a stranger online. There is no standard of qualification for this title. Nurses and Doctors however do have standards of qualification. In my book, anyone who is not quite good enough to meet OP's definition is a young/junior/aspiring engineer. It is a mindset just as much as it is a skillset, and it should be thought of similar to apprenticeship.

If a company does not do their due diligence to filter out the capable from the not, that is on them and their hiring process. This hypothetical is a poor excuse to make PSAs telling new developers they aren't good enough.

This post is far from enlightenment to the impressionable junior engineer. It is something I would actively encourage all aspiring engineers to completely ignore. It is fuel for their imposter syndrome and calling the term "frameworker" enlightenment is callous. The point can be made with empathy rather than superiority, and can be said in a way that does not actively hurt future engineers who are especially vulnerable to online jerk behavior. A young person reads this and thinks "I will never be good enough", and that's enough for some to stop before they even get started. That is the point I am making in my reply.

Thread Thread
 
gunslingor profile image
gunslingor

"Luckily, nobody but oneself can bestow the title Software Engineer."

Actually only a state can legally five you an Engineering license, it takes about 10 years, 2x 8 hour tests... must work under another professional engineer first for 4 years, must do auditable continuing education credits.

But your right, feel free to call yourselves doctors, so long as your not writing prescriptions your safe, same with engineers... dont stamp anything with a state seal and sign claiming to be an engineer, you can call yourself worlds best engineer for all anybody cares.

Thread Thread
 
eteimz profile image
Youdiowei Eteimorde

I find it crazy in good way that everyone can drop their opinions about the issue. It's good that someone would read the post and see comments like yours that can inspire them to keep pushing 🙏🏿

Thread Thread
 
gunslingor profile image
gunslingor

I think of the issue like this. Would you rather be a Doctor, or Doctor Phil. Would you rather be a web developer or an engineer in name only, the difference is the same.

Engineering, fundamentally, is the application of science for practical applications, period. Science is not react best practices, or ORM obfuscation, since is a principle in finding a truth and engineering is about finding the best use for that truth.

The web world ignores these subjects, pretends they don't exists and reinvents everything backwards. Agile is to project management as Covid is to the economics... another side effect of engineers in name only, pretending to be process engineers designing human processes.

The web world is insaine... they higher programmers to build a giant Frankenstein, then higher engineers to come fix it... totally backwards... but hey, job security for me.

Collapse
 
mikhilmc profile image
Mikhil Mohan C

You're not an engineer, if you don't know how write programs in binary.

Collapse
 
suzukistumpy profile image
Mark Edwards

... and toggle them into the machine via front-panel switches, and reading the indicator LEDs for all your output...

Collapse
 
blazeiyke profile image
Blaze

😂😂😂

Collapse
 
davet6020 profile image
little lebowski

00100001 00110000 00111111 00111010 00110001

Collapse
 
ronen_magid_4e425854de7c9 profile image
ronen magid

Way too abstracted. I'd like to see the sub-atomic representation of these bits ;-)

Collapse
 
gokhanmeteerturk profile image
Gökhan Mete ERTÜRK

Engineering is not what you think it is. The first engineer existed before there were any schools. 'Software Engineer' is more than a job title. You can't expect everyone to start by learning the fundamentals of a topic first. And you can certainly not draw a line and say "If you didn't learn these, you are not a software engineer." Building software solutions is engineering. You don't have to know assembly.

Create a checklist of the requirements for being a software engineer, and for each item in your list, I'll show you someone who doesn't tick that box but is still ten times more of a software engineer than you are.

I understand that you are trying to emphasize the importance of learning the fundamentals, but what you managed to do is just gatekeeping

Collapse
 
gunslingor profile image
gunslingor

Wrong.

"Building" is implementation, not "Planning"... engineers plan a lot more than they implement.

You'll have to look up your state requirements if you want to legally call yourself a Professional Software Engineer, they have a checklist... 4 year abet degree, 4 year apprenticeship, 2x8 hour tests is the most common.

The grandfather clause from engineers before 1920s is why you are allowed to call yourself an engineer, but your not a professional engineer by the legal definition without a license.

Collapse
 
peter-fencer profile image
Peter Vivo • Edited

Based on my CSS knowledge 20+ years, I really like to use Tailwind because in my perspective that is fare better layout coding in right place on HTML or any framework ( daily based I used React, but I prefered Qwik. ) .

So basic vertical list ( I don't like fight with CSS class names )

<pre className="grid gap-4">
    <SettingsDetails list={v2SettingInfo} />
</pre>
Enter fullscreen mode Exit fullscreen mode


`

Collapse
 
brense profile image
Rense Bakker

Do you still know how to do that in css? Otherwise one could argue you don't know css anymore 😛 tailwind is terribly limiting in the utility classes that it outputs. Rather use something like PandaCSS where it generates utility classes based on the CSS you write, so you can do everything that CSS can do and your CSS knowledge is transferable if in the future an even better tool comes along.

Collapse
 
akuoko_konadu profile image
Konadu Akwasi Akuoko

I don't know why people keep saying this.

But if you don't understand css, how can you write tailwindcss?

What class name would you even use if you don't know your css well?

To me to write tailwindcss you need to understand css.

Thread Thread
 
gunslingor profile image
gunslingor

Css is kind of low level, there is a lot more infinite possibilities mixed together in css, you have to pick the best, that's engineering. You can still engineer with tailwind, but the entire purpose is to dumb it down, so everyone can do things faster... there is a trade-off for opinionated-ness, the more opinioned, the less infinity but the less flexibility too... always fundamentally the goal of a framework... even in building construction, it's a "framework" on which to build to make it more standard and certain... I.e. an engineer can design a framework, an architect can imagine one, and a programmer or technician can implement one... only untrue in web design, where all roles seem to be mixed... you got people with CS degrees calling themselves engineers but operating like technicians. It's the cause of a lot of havoc.

Thread Thread
 
brense profile image
Rense Bakker

Utility class names have nothing to do with CSS. For starters it's a completely different syntax.

Thread Thread
 
gunslingor profile image
gunslingor

I cant understand this comment. Css does have the concept of class names though syntax is quite unique to optimize network speed mostly. When you say 'utility classnames', there is no concept in css that I am aware of, pretty vague concept, everything is a utility or helper. I think your considering one of many ways to use css, for style libs... like bootstrap. Maybe your talking about sass. Sass is worthless in the modern era imho.

Collapse
 
makotaco profile image
Jake Scott

At some point in every developers career, they'll think they've learned mostly everything they can about our industry, and instantaneously forget the time and effort required to get there.

If you're lucky, you'll have another moment of clarity in your career, where you find yourself embarrassed by the ideas you held at the time you wrote this post.

Don't forget where you came from, and don't forget how far you still have to go.

Collapse
 
miketalbot profile image
Mike Talbot ⭐

I struggled to find something worth writing as a comment to the original post, I guess this might have been it.

Collapse
 
jorgedelcampo profile image
Jorge del Campo • Edited

Back to the roots is very important. In my opinion, any framework or library should to be a natural jump for developers, but only when the base technology has been understood, otherwise, we'll be blind consumers not active creators.

Collapse
 
lexlohr profile image
Alex Lohr

I'm all for learning the basics and concepts, but for valid criticism, you need to avoid ad hominems.

Collapse
 
cadnav profile image
</cadnav>

I’m the best god damn frameworker and I don’t need to deny it because I deliver and make more money than you.

Collapse
 
brense profile image
Rense Bakker • Edited

Agreed, although I'd argue that some things are a blackbox for a reason. What's important I think is that you understand the technology you use, to the point where you have enough knowledge to be able to pick the right tool for the job. For example, you don't have to understand exactly how the vdom works to be able to use React properly, but its essential that you understand when and how it renders. Similarly, you dont have to understand exactly how an electric toothbrush works, aslong as you understand that you need to put toothpaste on it and move it across your teeth and change the brush from time to time.

Collapse
 
raphaelcarlosr profile image
raphaelcarlosr.dev • Edited

Simple to measure. If you can create a complete solution without a framework, you know about memory, processing, storage, communication and the like, you're probably an engineer; otherwise, you know how to program and use frameworks
But nowadays you don't have to be, people are hired simply because they know how to create something

It's not a bad thing to know how to use frameworks, the bad thing is to have no idea how they work. Because then you can't even gauge whether you really need it

If you program in node, have you ever looked at the code of an npm package before installing it? There are packages with 10 lines of code and several dependencies, do you really need that?

Collapse
 
davet6020 profile image
little lebowski

I do not entirely disagree. It concerns me that people rarely know how their software and their food is made. That being said, where do you draw the line? Sure, I know SQL and I can prove it with relational algebra. But do you really want me to put "select " + var1 + " from " + var2 + " where " + var3 inside of a program, or would you prefer I use an ORM which is safer and less error prone.

I have not heard the term Frameworker until today but I guess even though I can write recursive functions in C, I have also used Laravel and Spring so I guess I am a Frameworker.

You say that you are not an engineer unless you understand the whole system. If you use Linux, does this mean you know what function does the dirty deed of resizing the ext2 file system? How about AWS, is it abstracted for you, like it is for the rest of us or do you have intimate knowledge of their code base. If you answered No to these questions, I would suggest that you might be a Frameworker of sorts.

If you do have intimate knowledge of the AWS code base, please fix the notification banners in the console. I only need to see "This is our new console look" one time.

Collapse
 
gokhanmeteerturk profile image
Gökhan Mete ERTÜRK

I reckon the author only uses punched cards and some lightbulbs he filled with argon, so the things you mentioned are not software engineering to him.

Collapse
 
scoleman profile image
Coleman S

Valid points, poorly communicated. Your post will not inspire anyone to become a great developer like you if you keep being a gatekeeper. My feeling is that you're just pissed off at your coworkers with less experience than you. You may be right, but venting your feelings like this will not do any favor for anyone.

Collapse
 
david4bay profile image
David Bayode

This post assumes people want to remain clueless on how things work.
It's also a slippery slope, if you know a tool, you then have to know how that tool works under the hood, which also has a ton of things working under the hood and so on and so forth. If I know MongoDB uses BSON to have a similar interface to JSON, should I also know how it writes that, from where and how? These are cool to know but not overly important in my opinion.

Collapse
 
jagdishsinhis profile image
jagdish jadeja

Learning CSS is valuable, but it's okay if a developer doesn't know it in depth. Ultimately, the main focus is solving problems, and as long as the solution works well, the specific code doesn't matter much.

Collapse
 
joshuaamaju profile image
Joshua Amaju

It's difficult to make things WORK WELL when you don't know the tools you work with, you know well.

Collapse
 
lifetraveler81 profile image
Raul P. • Edited

Got to agree with this. I work in the field for roughly 20 years now and I lost count of projects built at organizations with so many different frameworks that nobody there actually knows how to maintain things properly anymore.

Now with AI it's even more critical, when some wannabe devs just ask chatgpt how to do it and copy paste insecure code to corporate applications that handle millions of users, without actually understanding what it's doing and the implications of their code.

Software engineering is about understanding the whole structure, needs, performance, security, costs, code, etc and know why one solution is better than others.

A line of code that needs 0.1 seconds might not seem important, when you could use another function that takes 0.05 seconds, until thousands of users run that script. CPU resources would be cut in half by just switching to certain functions that are faster, meaning, on a large company spending thousands or millions in servers, reducing the loading times by half would save them a lot of money in CPU power and maintenance.

It's not a "as long as it works" approach where you just use whatever comes to your mind or are familiar with, then throw more iron on it to keep working. Things might work that way, until they get hacked or the servers crash due to performance or misconfiguration issues or running out of money to buy more servers.

If you build just using existing frameworks AND if you don't know basic things like SQL or CSS, or setting up a Linux server for the apps, I am sorry but you are not a software engineer.

Call yourself a developer, devops, fullstack, backend, front-end dev or whatever, and I am fine with it, but don't call yourself software engineer if you are just copy pasting from the web or gpt without understanding the full logic and implications of your actions to the general system.

That being said... software engineers are the ones that will later be called to collect the money from your company when things go wrong, to fix them, and since most other "engineers" in their team don't even understand what they are looking at, I am in a way thankful to them 😊

It's not gatekeeping. You cannot declare yourself a doctor at a hospital and just go about doing surgery on people if you are watching on YouTube, even if you understandthe basics.

Software engineering is similar. You need a set of skills to do it, and you cannot just declare you are one if you just know some parts.

This is why people have degrees at universities and then work as junior and up the ladder until they become the real deal.

Collapse
 
htho profile image
Hauke T.

You cannot declare yourself a doctor at a hospital and just go about doing surgery on people if you are watching on YouTube, even if you understand the basics.

There is the 10,000h theory that says you need 10,000h to master a skill - that is 5 years of full-time work (40h x 50Weeks x 5Years).

After those 5 years you are at a Point where you've seen some things and hopefully learned that you are not done learning.

Collapse
 
gunslingor profile image
gunslingor

I am a software engineer. I hold a software engineering degree from an ABET Accredited university, I hold a software engineering license from the state of Tennessee.

You are 100% right that most people who are "Programming" on the web know nothing about "Engineering" anything. However, your wrong in that we need a new term to describe it, framerworker is unnecessary, programmer is fine... to be a programmer or developer, one only has to be sitting at a computer... to be an engineer takes as much effort as a doctor or lawyer, minus the need for graduates degree in the usa mostly.

Technically speaking, your breaking the law by calling yourself an engineer without a license. It's unenforceable unless you start signing and stamping things with an official seal... when an engineer uses the state to certify any document, even code, they are accepting some liability if the product is wrong, same as a doctor writing a prescription or lawyer filing a brief.

Hence, on the web were agile rules and project management doesn't exist, where code is allowed to evolve functionaly when critical bugs exist, where the winners are generally the first instead of the best... engineering in any regard is rare to non-existant.

Collapse
 
kingsleyeghianruwa profile image
Kingsley-Eghianruwa

In my experience as an aspiring self-taught developer, I've noticed a concerning lack of attention paid to software architecture and its documentation, particularly among self-taught programmers like myself. While I can learn a new programming language or follow a tutorial in a few weeks, I often struggle when it comes to implementing my own ideas from scratch. I find myself lost on where and how to even begin. As a result, I've shifted my focus towards learning how to properly architect and document architecture of software systems.

This emphasis on architecture mirrors other engineering fields, where blueprints are always created before construction begins. However, in software development, we often jump straight into coding without this crucial planning step. Additionally, many frameworks and libraries lack documentation on their underlying architectural design. This lack of information makes it difficult to choose the right framework for a project. I believe that the first step in building any software, regardless of size, should be to establish a solid architecture. This architecture can then guide the selection of a framework that best aligns with your design goals.

Collapse
 
rlvwebdev profile image
rlvwebdev

What is the intent of this hot-take? What purpose does any of this article serve to either inspire or inform the community in which you are involved in?

I'm happy you're able to identify problems, but while speaking through a large platform, why wouldn't you provide a solution or resources for those stuck in this loop/mindset to improve to become better than someone you would deem a 'frameworker' or whatever ambiguous title you want to apply to them.

This effectively just reads like a shit-post that should've been posted on your personal social media.

Collapse
 
davidmarccram profile image
davidmarccram

I'm not sure why so many people misunderstand. I don't think anyone claims that you need to know EVERYTHING before using frameworks. The issue is that people start using them without having any fundamental skills. You can create janky software that delivers value without fundamental skills. However, you will spend a huge amount of time trying to maintain it or you'll be switching jobs every couple of years to dodge the technical debt.

Collapse
 
jovan_witherspoon_a2ee7ca profile image
Jovan Witherspoon

Shouldn’t this post be inspirational to early career professionals? So many nasty comments. I thought that the author was bringing awareness to those in industry that think they are engineers because they copy, paste, and use a framework. In reality, engineers don’t just use frameworks, they also build them, then sell them for company profits. 😆

Collapse
 
anwar_sadat profile image
Anwar Sadat Ayub

As a beginner, you are flooded with 100s of frameworks. When you search for jobs, most are demanding you know at least 3 frameworks.

It's sad most beginners do not take time to learn the basics. For most part, this post is the hard truth. 🤦🏿‍♂️

Collapse
 
jermainesmithsr profile image
jermainesmithsr • Edited

Why stop there? Why not say if you don’t understand how the underlying machine language works, you’re not a real engineer? After all, Python, JavaScript, etc. are just higher-level abstractions too. How deep down the rabbit hole must one go for your acceptance lol? Look, I’m all for learning as much as you can, but time is finite, and the learning pathways in this field are endless. No one cares about your arbitrary standards.

Plus, the idea that people are using frameworks without at least a "basic" understanding of the underlying technology seems like a reach. Like, who is really using Tailwind but doesn’t know any CSS lol? And who hired them? IMO, you have to know CSS to even understand the value of using Tailwind, so I’m not buying it. 😂 If you’re talking about people who are just learning, what’s the point? I doubt they’d consider themselves engineers yet anyway. And for the record, there’s nothing wrong with diving right into a framework and project since it often provides the best context. You learn by building, encountering problems, and finding solutions, whether that requires a deeper dive into fundamental concepts or finding the right tooling for your project requirements.

An engineer is a problem-solver first and foremost, and modern engineering is about leveraging existing solutions to create better, faster, and more innovative products. Simple as that.

Collapse
 
iwooky profile image
Dmitry K

You’re so true dude

Collapse
 
jwrunge profile image
Jacob W Runge

I agree that everyone should understand the basics and be able to build the same stuff with the basics as they can with frameworks. I'm also on board with the idea that frameworks are saddled with a lot of bloat that is unnecessary for a lot of projects and add domain-specific complexity and non-transferable learning overhead.

I think what that means is that we need better and more modular frameworks and libraries, not that SEs who use those tools are lesser SEs or that they shouldn't use the tools that are available.

By all means, shout the problems with modern (front-end?) development from the rooftops -- that's how we're going to collectively understand where there are problems and be inspired to work toward solutions. And totally, encourage learning the basics over the abstractions. But let's not attack or belittle each other for using tools.

Collapse
 
mosesgithinji profile image
the-ACE

While I find sense in what you're saying Mr. Muneeb Hussain, I feel you're stuck in the past.

The past which had software engineers learn the nuts and bolts of programming languages, how, for example, a compiler works, or how these famous programming languages work under the hood. While it's advantageous to learn these, it's not a must for one to build software in today's day and age.

We live in a world where even computer science students in university are running to YouTube for the latest tutorials about Python, for example. And why not!! Aren't these YouTube instructors not teaching industry standard knowledge? I mean, if you've mastered how to drive nails into processed pieces of timber to form a chair or a bed, why would you concern yourself with how the same pieces of timber were made from logs of trees? IT AIN'T A MUST!!

However, I understand where you are coming from. I suppose you've crossed paths with some people who just mastered how to build projects from YouTube without having taken time to learn the basics of the very same tools they're using.

In conclusion, I would like to reiterate that your worry is valid and I do think it's important for novices to want to learn how these programming languages work under the hood, but it shouldn't be forced down their throats.

At the end of the day, as a senior developer or hiring manager, you get to decide whether they are a good fit for your company, and thinking like that could rob you of a very good developer.

Collapse
 
nomadqwerty profile image
nomadqwerty

Not really. Modern programming has alot abstraction. This can be in form of frameworks or api's. my colleague had difficulty building a peer to peer video call app with js frameworks and couldn't crack it. I used the raw technology webrtc, socketio(framework still) to get this done. But guess what? even if I did build it without "frameworks" , there was still alot the webrtc api abstracted away from me, still don't know how it truly works underhood. My point is much of modern day programming involves abstraction, either through Web api, paid apis, frameworks etc. They make us build fast. But there is still a need to have a based understanding of what happens underhood to some extent, so we can fix and understand errors that will occur. I Agree with you, but your approach seems condescending and can discourage beginners. Try using euphemisms to soften the tone.

Collapse
 
cbkwgl profile image
cbkwgl

I am confused. There are multiple aspects of it. What does the market demands, what does the project demand(unless you are a freelancer - which is the most common thing here), what is your skill set. A decade or more in IT, you will quickly realize the paradigms of Jobs To Be Done and Big Ball of Mud. We always look at what to do, and not how to do. If ORM makes my life simple, why even bother about SQL(personally, I am more comfortable with SQL, though)?
Now, coming to start ups. React is easy, Go is easy but they are not robust enough on the long run. But, by the time when you go and check whether they are fit to standard, you have already earned enough to recruit a team to rewrite your application in whatever language you have got.
The third aspect is data volume. Its humungous. A single Jack of All Trades is no more an option. And when I need a dedicated person dealing with databases and server optimisation, why should a front ender even bother about it?

Collapse
 
shricodev profile image
Shrijal Acharya

To some extent, what you are saying is somewhat correct but incomplete. Anyone who knows how to write Tailwind knows CSS, and it is undeniable. Anyone who works with an ORM knows how Database works and how things are arranged. It's just that they never gave chance to learn raw SQL and it's basics, which is wrong. Learning the basics is always something which should be done beforehand.

However, the one thing which should be the rule of thumb is: if you are familiar with the basics, then these frameworks are just wrappers around them which is meant to make things easier and nothing more. If you don't even know what a basic JavaScript function is doing, then from my perspective, you cannot even classify yourself as a developer. Not because you don't know syntax, but because you cannot decode the logic which the basic function is meant to do.

Collapse
 
g1itcher profile image
G1itcher

I don't see how this article is productive. It seems on the whole to be an attempt at gate keeping and bragging, along with some internalised early imposter syndrome.

We all* start out feeling like we're not good enough early on. That's part of the learning experience. However those of use that continue on to become skilled developers and can build software are software engineers.

It doesn't matter if the bricks are bigger or the house comes flat packed, it still needs an engineer to put them together.

Now, will I concede that there are different skill levels of SE and that people who only know frameworks are on the lower side? Probably yes. However even that is full of exceptions: I currently work with a fantastic NextJS React developer. Keeps up with the latest changes in his preferred stack; constantly striving for clean and functionally solid code; etc. he can make his chosen framework sing.

Can he write a jpg encoder? No. Can he write C++? No. Can he reverse a link list? No. Regardless, guess what it says on the top of his very well paid employment contract. Hint, it doesn't say framework engineer.

Stop scratching lines in the sand trying to shore up your self confidence by knocking down others. Worry about being the best engineer you can be, not whether or not the person next to you is a "real" engineer.

Collapse
 
ronen_magid_4e425854de7c9 profile image
ronen magid • Edited

One could say the same way about those who do not understand how software logic runs on physics using electrons and protons. The question is, where do you want to stop?

if you go down the rabbit hole, deep down where where even the most advanced physicists stop and say: "okay, 'god' begins here because I have no idea why leptons do what they do", we're all "non-engineers" on some level, just priding outselves on the lowermost layer of the stack we understand, below which we are just as clueless like those who know SQL, but have no idea how the database stores their data, nor why it's so darn fast to retrieve.

Collapse
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard • Edited

Counter-argument : Developers are not "frameworkers 🤮", they are problem-solvers.

Since we all solve different problems, the idea that there is a world-wide meritocracy of Good(tm) and Bad(tm) developers is very dumb.

An humble junior developer that with simple python scripts helps a brillant scientist to do his job faster is 100% a Good developer. She brings value to the world.

It's correct that there is value in learning the fundamentals
... but this post is a masterclass in how not to teach them, it doesn't bring value to the world.

Telling the new generation to start exactly where programming was 20 years ago, HTML, CSS, JS, SQL, Unix, C... completely misses the point.
We don't want the new people to solve problems are that have already been solved.
There are plenty of new problems to solve in this world, and tools like frameworks are helpful as long as they allow to solve the problems faster.

If you get the basics right, then learning a framework or anything else will be a matter of a few hours, or maybe days.

I don't know in which planet mastering non trivial frameworks like, I don't know, Spring Boot, takes only days, but that's not on planet earth.

Aspiring software engineers, this is not real, what we are hearing here is a mix of No True Scottman's fallacy, ego and hubris.

Collapse
 
giusedroid profile image
Giuseppe

Lol. Why don't you build your own transistors then. I don't get the point of posts like these man. It doesn't matter where you start. The builder attitude and the quality of your ideas are the only things that matter at the end of the day. Keep the community open and welcoming, so that we all learn from each other.

Collapse
 
les2 profile image
Lloyd Smith

You could argue that css is just another framework and that "real" software engineers are the people who build css engines, not use it.

But I bet those css developers use tools, frameworks, developed by other "real" engineers, e.g., compilers, in order to make CSS. So they aren't real software engineers after all.

At the end of the day, we're always building on top of some abstraction.

I think the best way to approach it is to use existing tools and frameworks when they help you get your product in market faster. Develop only what you must in order to have the best product.

Collapse
 
horaceshmorace profile image
Horace Nelson

This is a wildly elitist post. I’m not saying you’re wrong in principle, but in practice this is a dickish way to present it—by denigrating people, most of whom likely just don’t know where to start. After skills and talent, the #1 thing I check for in a candidate interview is: is this person a jerk? I’d pass on you based on this post alone.

Collapse
 
closetgeekshow profile image
closetgeekshow

Did you fall out of the womb with a fully formed understanding of programming and software development? That's amazing.

Pretty much everyone else takes time to get there, all of us learning at a different pace and coming from different contexts and perspectives.

Collapse
 
iamroymadelva profile image
Roy Manotas

Oh boy... I'm new on this world of development. I've been learning backwards then.
I started learning JavaScript by using node.js.
I started learning Typescript by exploring Ionic and Angular.
I started learning css by exploring with bootstrap, Bulma css and tail.

Collapse
 
lewiscowles1986 profile image
Lewis Cowles

I'm not sure what you were hoping to get from such an incendiary post.

What if you asked these folks why, and then posed more targeted, well thought-out questions ❓

Collapse
 
ibk9493 profile image
LameDev

Yes, frameworks are powerful. They streamline development, letting us focus on the core functionality and business logic that make the app tick. This efficiency is gold in this fast-paced industry where deadlines loom.

Look, my skills with complex database queries, like the ones I can write, are no joke. But honestly, how often do those super-indepth queries come up compared to everyday tasks? Frameworks handle a lot of the data interaction under the hood, freeing me for more strategic problem-solving.

The industry is constantly changing, new tools and frameworks popping up all the time. In this environment, being adaptable and a quick learner is way more important than memorizing every line of assembly code. Give me a skilled developer who can pick up a new framework on the fly, and I'll show you someone who can thrive in this ever-evolving landscape.

Really, software engineering is about solving problems and building effective software. Frameworks are just powerful tools in the toolbox. Knowing how to use them effectively is a valuable skill. Don't get me wrong, a strong foundation is important, but the ability to leverage frameworks and adapt to new technologies is equally crucial these days.

So, while the article might make it seem like frameworks diminish your skills, I say they empower you to be a more efficient and adaptable developer. After all, isn't that what this whole thing is about?

Collapse
 
erickrodrcodes profile image
Erick Rodriguez • Edited

Wow, somebody didn't pass the interview for Angular, or React Native or NextJS...

Collapse
 
obirchman profile image
Oscar

Backwards thinking.

I'm happy my seniors aren't like this. They teach and show me how to be smart about approaching problems and how to apply myself and my knowledge but they also show interest and willingness to learn about new tools or libraries that I know about.

Computers(or innovations in general) are done so that we can get more, or better, stuff done with less. So if using these frameworks achieves that then maybe you are the one being obsolete. As this happens only a subset needs your skills to be able to maintain the new shiny tools.

Just like everyone doesn't need to know how WiFi or ethernet works to build a web application but some people absolutely do need to know if we want to have web applications!

Collapse
 
kelsey-d profile image
kelsey-d

I could see how this post can be defeating but it could also be seen as a warning against getting too comfortable with frameworks. I will say most web developers do start out with the basics but once in the job market it becomes all about frameworks and we may forget. Linking this medium article as an example.

I feel like this is also why there's concern around the "shortage of good developers". I'm still trying to figure out what exactly that means in the case of web development. I'm sure there are a ton of innovation on the web but most users of the web aren't using it for innovation. As a result developers, might not develop the innovative mind associated with an "engineer," and it really is just about quickly spinning up some website. So if this post really is about elitism, being a web developer might not be brag worthy.

Note: This is from the pov of a junior.

Collapse
 
alexinwonderland profile image
Alex

I think this is spot on. I have an undergrad and graduate degree in CS but I had 15 years of experience prior to getting those. Same story with HR gatekeepers who demanded a degree but not the actual ability to come up with novel, robust, and scalable solutions. I guess I am now at the architect level as my scope touches all of my company's systems. I am having trouble acquiring folks who aren't just code monkeys and who are able to work independently. There's definitely a difference between development and engineering. Engineering and architecture lend themselves closer to systems integration. Developers typically have more focused projects that fix a cog in the greater system. Engineers need to touch full stack, middleware, cloud systems, and databases far more than developers and definitely more than "frameworkers". I love that term btw!

Collapse
 
mcondon profile image
Micah

It's true that knowing more fundamental skills will allow you to successfully handle a much wider range of projects, and to create more robust and maintainable software.

But, the whole point of frameworks is to make some types of work easier, without requiring significant engineering depth. Somebody with mad skills inReact + Tailwind can create a lot of value quickly in some scenarios, even if they can't easily work outside that context yet.

Frameworks are a great starting point for many engineers. Yes, they'll use them differently than somebody who also has years of experience in fundamentals, but that's ok.

Collapse
 
phamnghia21 profile image
Nghia Pham • Edited

In Vietnam, I bet 99,99% of developers they are frameworkers.
They don't have the time, or money to invest in learning, building core systems, or libraries. They tend to find the libraries, and tutorials that help them to solve the problem immediately. But when they face problems that are not googlable they are all stuck there. haha

Collapse
 
cbarecords profile image
Mr X

On a personal level I am not a fan of frameworks. On a work level frameworks seem to dominate. I figure it is solely a time is money equation. Downside of frameworks is that the end result is a bit facelessandardized UIs and the process less mindful than working with languages in their native context.

Collapse
 
alex_ar profile image
Alex J.

Can't agree more on this. It's the quality, not quantity of libs/frameworks.

Collapse
 
jairussw profile image
JairusSW

Real.

Collapse
 
wufenstein profile image
wf

What exactly was the point of this?

Collapse
 
ashwin3005 profile image
ASHWIN.S

Agreed!

Collapse
 
aldycool profile image
Aldy J

Meanwhile, the OP himself has successfully ignite these endless debates... Kudos :D

Collapse
 
rcrd profile image
Ricardo Gouveia

Posts from people frustrated with the natural change in the habits of people who develop software should not be allowed here, whose objective is to spread useful knowledge

Collapse
 
quanla profile image
Quan Le

Well said. It is funny how today "experts" would fail to do the simplest thing if no framework or lib support it

Collapse
 
babalolajnr profile image
Abdulqudduus Babalola

How can I downvote this. Anyways 👎

Collapse
 
dev188007 profile image
Winston Sosa • Edited

👍 That's right absolutely.
I agree with you. Thanks.

Collapse
 
princemmalikey profile image
prince mwenyemali

100% agree

Collapse
 
adamgates10 profile image
Adam Shaibu

Your post is bogus

Collapse
 
nyuydinebill profile image
Nyuydine Bill leynyuy

100% agree

Collapse
 
fridaycandours profile image
Friday candour

Is this a joke?

Collapse
 
julkarninerokey profile image
Julkarnine Rokey

Absolutely true

Collapse
 
andytutton profile image
Andy

Frame workers getting to you?

Collapse
 
mddhavalsaxena profile image
MD-Dhaval-Saxena

agree

Collapse
 
johndunlap profile image
John Dunlap

Frameworks are used because the margins in software development are very thin not because the people using them aren't good software engineers.

Collapse
 
velocityghost profile image
Igor

I believe you just described a junior full stack developer but hey how would I know I am just a product manager that do all that without any framework.

Collapse
 
mi_native_nutt profile image
Mark

Lol

Collapse
 
mexikode profile image
MexiKode ⚙

best library gluer in the state!

Collapse
 
thunder6230 profile image
thunder6230

You need to provide, speed is important nowadays unfortunately. Still true the basics must be done

Collapse
 
lennykzy profile image
Mkuu

What you are saying is true 🙏 most developers uses framework on their projects. I agree with you 💯

Collapse
 
tomiloba2 profile image
Omojola Tomiloba David

I truly resonate with the last statement
Getting the basics right is always important. Frameworks will come later