DEV Community

Muneeb Hussain
Muneeb Hussain

Posted on

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

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 CRUD application. Abstraction can be good, but only to a certain limit. We are living in an era where developers know Tailwind but not CSS. They struggle to write a simple SQL query, yet they know how to use an ORM. They are heavily deluded, assuming that they can build anything because they have watched countless amateur clones of everything on YouTube, yet they don't even understand what database design is, how systems actually work. They don't know how JavaScript functions but are trying to learn Next.js and asking for tips from their seniors.

You may not like it, but the truth is you're not a software engineer; you're a "frameworker" or someone who can copy and paste better.

A software engineer is someone who understands the basics and masters them, who can simplify even the most complex tasks, and who is curious about how things work behind the scenes.

It's not just about writing code, but understanding the whole system, and trust me, it's not hard - it's simple.

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

Top comments (136)

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.

Thread Thread
 
Sloan, the sloth mascot
Comment deleted
 
zachbryant profile image
Zach • Edited

The Doctor/Doctor Phil analogy doesn't hold for me. To say engineering and programming are like apples and oranges is false. They have the same foundational skills, but engineering builds on programming through planning, understanding, and holistic thinking. Part of the ignorance of these important skills is the brutal reality of employment in a corporation. Nobody wants to build projects that don't scale or get Frankensteined, it is often the result of bad business misusing capable engineers/programmers who could become engineers.

Thread Thread
 
destinationluuv profile image
Kris Rutkowski

It's funny. I work with engineers (PE), computer scientists, and architects. All three types love to code but only one type can do it well (CS). It's funny that folks here want to give engineers/PEs some glorified status, when they're just as human as the rest of us. I can tell you that yes, engineers are not frameworkers, they are tinkerers and copy-pasters.

Thread Thread
 
gunslingor profile image
gunslingor

@destinationluuv

Engineers do copy paste a lot, same with lawyers, programmers tend to reinvent everything... agile which is like project management on heroin, the word architect, the word engineer, a million duplicative frameworks. Engineers know not to reinvent solutions, we find the best solution. CS in my experience are by far the worst programmers, they make good IT and security guys imho.

Thread Thread
 
gunslingor profile image
gunslingor

@zachbryant

Does for me, only definitions under the law matter across people and corporations... they can define what they like, but onky the law matters in court.

Engineers have to worry about court, programmers and cs generally do not.

One thing I know with certainty, if all Engineers constructed their products with the same attention to detail as supposed "Web Software Engineers" nothing would stand. Bridges would collapse, skyscrapers would fall the first year, cars would be rubgoldburge machines.

One thing common that programmers tend not to understand, yes various frameworks can be thought of as interchangeable parts, but they can't be forced together... the crap I've seen man... a corporations of 150,000 unable to identify the quantity of PCs they own, an application built with tailwind and bootstrap 3, overridden with custom sass crap effectively making it impossible to upgrade... ORMs thst dumb the hell out of DB Engineering in a way that forces the db not to carry its own weight. ETL algorithms without the T.

Don't think there isn't danger when you call yourself an engineer and aren't one, depends what your building... if your building the software for a nuclear plant and your bug causes a meltdown that is on you... but nuclear plants require the pe seal for everything... and doctor phil isn't writing prescriptions... so the analogy is spot on.

If doctor phil writes a prescription it's off to jail, if you sign your code as an engineer and someone dies from your negligence, you too. Not the same for programmers and developers or even architects, only the company can be held liable... so yeah, most web companies are complete idiots for redefining engineer to be this wildly broad in nature... not really their fault, but still, no reason to higher train conductors when you really need a PE.

Collapse
 
horaceshmorace profile image
Horace Nelson

There is absolutely zero distinction between an engineer and a developer. None. They’re synonyms. What’s important is learning how to hire, not sorting out various levels of hiring success and failure into different titles. If you still need the elitism, the next level up from engineer/developer conventionally is architect.

Collapse
 
ctsstc profile image
Cody Swartz • Edited

Some random tidbit in the grand scheme of things. In the state of Oregon you're not even supposed to call yourself an "engineer" unless you have an engineering degree, and the funny part is, a computer science degree isn't an "engineering degree". The state tried to sue someone over this.

I try to call myself a "software developer" rather than a "software engineer" but you'll see many job titles even at leather companies with engineer in the title.

I remember when I started programming the term was "script kiddies" which was a term to reference folks that could copy, paste, and run scripts. Dare I say though that's how I got started. We all have to start somewhere.

Collapse
 
merz profile image
Leo

Being a software engineer is much more than just the code and based off your responses, you sir are not a software engineer.

Collapse
 
joshuaamaju profile image
Joshua Amaju

I find it strange that we've gotten to the point where you had to feel the need to compare CSS and tailwindcss to C++ and assembly. It's absurd.

Collapse
 
shifi profile image
Shifa Ur Rehman

Its absurd how the only thing you got from what he said was that very specific comparison. Which again, he did for the right cause.
Anyhow, I 100% agree with Zach. His response was more than mature and reasonable. Not ever artist is Leonardo Davinci. Not every chemist is Alexander Flemming and not every developer is Linus Torvalds.
According to your analogy, it makes me think you have never either heard of growth or have never worked with any junior developer (even the ones with computer science degrees).

Thread Thread
 
neovance profile image
Devon Bagley

I think that's the point of the OP. Not every hacker/programmer/developer is an engineer.

Thread Thread
 
zachbryant profile image
Zach • Edited

That is true no doubt (how you said it), everyone is on their own journey. This post's derision borders on denying others their capability of growing into good engineers. Attitudes like the OPs, reality checks, unkind labels all serve to keep people down. It spends exactly no time on giving aspiring engineers the tools to grow and fit OPs own definition and instead spends the entire time dunking on people who I guess aren't good enough.

Thread Thread
 
joshuaamaju profile image
Joshua Amaju

I don't know where you got the idea that it's all I got from his reply, I don't have to respond to the entire content of his comment. Maybe read stuff without arriving at absurd conclusions.

Collapse
 
zachbryant profile image
Zach • Edited

Had to rewrite my reply, it's a little late for me 😝

Well, I did not make a comparison between Tailwind/CSS to C++/Assembly in my comment. However I don't find discussing the ergonomics of languages in such a way absurd at all. Please don't call it such if you find it strange and don't understand. I am curious for you to elaborate on why you think such a comparison would be absurd.

Thread Thread
 
numosh profile image
NM Labs

Agree, just because you don't kmow it, doesn't mean it wrong or bad. Learn itself is a science.

Thread Thread
 
joshuaamaju profile image
Joshua Amaju

I find your reply disingenuous, saying you didn't make the comparison after you've edited the comment to remove that part. And I'll call it whatever I like, so far it fits the label, please don't gate-keep my words, a little strange after accusing someone of being gate-keepy in you original comment.

And it's a little bit strange of you to assert you didn't make the comparison but also want me to expand on the "nonexistent" comparison. Anyway, C++ isn't just something you sprinkle on top of Assembly, which Tailwindcss is. Comparing apples to oranges is...well absurd.

Thread Thread
 
zachbryant profile image
Zach • Edited

I got secondhand embarrassment reading you double down on misquoting me. You did misquote my comment. I did not make that comparison at any point. I tried to be transparent in that I read your comment and mistakenly thought I did compare them, given it was around 2am for me. I'm sorry you find the truth disingenuous, I digress. But I remained open to hearing your thoughts for you to save face and have a civil discussion, only for you to turn around and make a jerk of yourself in the comments.

If you think someone advising you to use kinder language is gatekeeping, you have work to do. It is never okay to go around assigning pejoratives to people, especially to those are in a position to learn from us. Such behavior is a stain on the profession.

After all that, you answer the comparison misquoted by yourself with a condescending quip about what C++ is and isn't while seemingly mistaking the topic of ergonomics (stated above) for the languages overall. You are aware that C++ and Tailwind are abstractions over Assembly and CSS respectively. The apples to apples comparison regarding ergonomics lies here.

I find this whole interaction to be quite illuminating of my original comment's main point. Please try to be better at treating others with respect and empathy because the opposite is not welcome here.

Thread Thread
 
joshuaamaju profile image
Joshua Amaju

If you think saying something you said is absurd, you're not to be taken seriously. It's strange you want me to care about your feelings of embarrassment on my behalf, go try that tactic on someone else 😂.

I find it interesting you've decided to double down on your disingenuousness, ignoring the fact you edited out the part where you made that comparison while claiming you made no such comparison, I wonder why.

Pointing out tailwind is an abstraction is a mundane point, in fact a useless one to point out, everything is an abstraction of something. Why will I be here arguing with you over ergonomics, I use React and Tailwindcss.

You make unsubstantiated claims, you say I misquoted you without point to any specific point where I did that.

Collapse
 
joshuaamaju profile image
Joshua Amaju

@shifi I don't know where you got the idea that it's all I got from his reply, I don't have to respond to the entire content of his comment. Maybe read stuff without arriving at absurd conclusions.

Collapse
 
gunslingor profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
gunslingor

It's true, insaine quantity of overlapping frameworks out there... what these idiots don't realize is: it takes only 1 change to a language to completely eliminate the need for a sea of frameworks... look what happened to silverlight when the html 5 canvas came out.

Collapse
 
fonsusali profile image
Fonsus Ali

I understand this sooo much, because it personally affects my current state of employment, I am work in an environment where the senior dev created his own library in Vanilla JavaScript which the company uses to also everything and if i am stuck because I don't fully understand the basics, I get looked at like a slacker and un-serious and the solutions aren't even online, it's really discouraging because to meet up i have to use external methods to push the pace

Collapse
 
brense profile image
Rense Bakker

Highly recommend to quit that job 😅 I mean it's up to you and your current situation, but it sounds like you're not going to learn anything there except how to stroke one persons ego.

Thread Thread
 
fonsusali profile image
Fonsus Ali

I agree. Been trying to get somewhere else tho, but my current situation ehh I am kinda stuck, but on the positive side I am able to grasp the basics of JavaScript.

Collapse
 
gunslingor profile image
gunslingor

"You don't start by learning how printf works in assembly before you get going in a C++ project do you?"

... actually, if you are in 4 year Software Engineering or Computer Engineering program you do start with assembly, technically you start with 1s and 0s.

I agree we should be inclusive... the frustration this guy is showing is the same I show often, an engineer in a web developers world. Ultimately, this is HRs fault. There is an enormous difference to how an engineer solves a problem vs a web developer. Engineers are about preventing problems by reducing the seas of infinite possibilities down to manageability. Developers are about implementing whatever they are told using whatever tools available no matter what... in my experience anyway. It's a completely different mindset and approach, completely different background required.

So I agree with you both, inclusive is good, but stop trying to reinvent words that have legal definitions, include the engineers that have been defined since the dawn of the industrial revolution, and stop considering software programmers to be software engineers... so much insaine havoc I've witnessed, just because HR and staff don't understand the distinct in web. In mainframe they do, in cpu design they do, usually they do for desktop and server apps but not always... look what happened to SolarWinds, an engineer would never use password for root in security management software, give me a break, not when you have some liability. A programmer can do anything, one only needs to be sitting at a computer writing code to legally call oneself a programmer. Only definitions under the law matter to an engineer, programmers tend to be unaware of the importance of terminology, let alone will take the time to write definitions.

So... end the insanity, keep things inclusive including the world before web 2.0, dont call yourself an engineer unless you are really doing engineering... problem prevention via architecture, no problem resulting or pure implementation via hands in code.

Collapse
 
zachbryant profile image
Zach • Edited

I have been fortunate enough to attend a couple of universities; perhaps there was a time when students started with assembly, but it's the exception these days, save for the odd purist prof and select universities. CS and CE often start in the same intro programming courses, which in general don't cover such advanced and untimely topics as assembly implementations of complex functions.

In my opinion it is an exaggeration to say software engineering and being a programmer are completely different. They are not; they have the same foundations. SWE is just more holistic in its approach.

At least in my country/state, as I believe is same in most, Software Engineering at best is regulated for certain roles. It is otherwise unregulated save for a handful of countries. (Edit: I just saw your comment explaining your location/license, and I understand your point on protecting the term Engineer)

I think it would be much more productive for everyone to drop the superiority approach, the drawing lines in the sand, and instead spend this energy lifting others up to become better software engineers.

Thread Thread
 
gunslingor profile image
gunslingor

A little tough when I spend my career cleaning up after these engineers, when it took me 10 years to call myself an engineer. Yes, in software engineering and computer engineering they do start with assembly, they usually start lower. I didn't even start programming till my third year.

Engineer type is not intended to be exclusive. I have electrical and computer engineer degrees, licenses in computer and software, I've done security, db, structal, electrical, robotics, cercuit design, industrial control systems, software, network engineering to name a few. All universities offer specialty engineer programs in each of these fields, plus chemical engineering, structural, etc... in all these cases, they are graduating engineers, people dedicate years to it.

So it's tough "lift others up" when others are bringing my entire profession down, of all engineers, to be grouped in with any one who can program, high school kids... sorry, engineering and programming are not equal... it is true, one does not have to be an engineer to do engineering... that being said, there is very little real engineering on the web as a matter of economics, the word was effectively repurposed to mean "thinking a little about architecture while implementing"... don't even get me started on how yawl corrupted the word software architect... your effectively calling architects, developers/programmers, engineers, IT/CS all the same thing... one cannot claim "formal qualifications" as an engineer without the requirements satisfied.

Being an engineer is something pretty inherent, like being a body builder, doctor, lawyer, marine... being a programmer is down right ephemeral... software developer is an accurate and respectful term for what most web guys do, but trust me it ain't engineering. Hell, they wouldn't let us start taking programming till we got past differential equations and fundamental datastructures.

Thread Thread
 
gunslingor profile image
gunslingor

There is definitely no need for computer scientists to start with assembly, nor programmers... real engineers though, definitely recommended.

Collapse
 
dr4t profile image
dr4t • Edited

You cannot have a more wrong take. He's not talking about learning to read binary before you start writing code. He's talking about people who crash platforms in production because they don't know how db indexes works after years of experience in working with ORMs only. He's talking about people who need 10 servers because they use a standard bloated framework instead of just writing a simple single file script that can run on a freaking raspberry. He's talking about people who use the pretty colored dashboard to get the status of a server but don't understand what's actually wrong with the server because guess what, the said dashboard freezes exactly when the server is overload.

Software is hard, if you can't deal with that and are not passionate enough to overcome this, stay out. You'll make everyone's life's easier, especially yours.
And toxic positivity is the worst of lies, to the point of being predatory!

Collapse
 
zachbryant profile image
Zach

At this point I'm beating a dead horse. It's not toxic positivity to ask people not to use pejorative language when referring to people who you claim to want to grow.

Collapse
 
chadnaz profile image
Chad Naz

Sorry but this is hilarious to me. CSS is amazing. Tailwind is a most butchered version of CSS.

"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."

Collapse
 
codewitgabi profile image
codewitgabi

I kinda agree with you but you see, what he is saying is not far from the truth. You know how to write css if an opportunity presents itself right? I think what he is trying to say is before jumping into learning of frameworks, one should actually learn the basics of programming if not how will the next generation build the next bootstrap or tailwind or the next big thing if we keep depending on frameworks and libraries.

I have seen developers learn react and stuffs without learning the rudiments of html, css or javascript and according to the writer, they want to call themselves software engineers, that is absurd. What if you are asked to work on a framework as that, do you have the skill to build that. One of our very crucial role as software developers is giving back to the community and I think that's what the author is trying to say

Collapse
 
nmitic profile image
Nikola Mitic • Edited

Could not agree more. I would like to add, it seems like such engineering mindset contributed to the fact that hiring management care more about "how system work" rather than what the jobs is actually going to look alike.

Ofc there's no doubt we shouldn't focus ourselves on one framework or a tool set, we should aim to understand the concepts behind it.

But to say there's a measure of how senior you are depending on how much you down you go is ridiculous.

I like to consider myself as UI developer not react developer but that doesn't mean I look down on people who specialize! In fact, I learn from them. My experience didn't depended high proficiency in one framework or toolset. Why would I consider myself better?

Never force people to change rather invite them. And this post is bringing no good to beginners whatsoever.

Collapse
 
alex_escalante profile image
Alex Escalante

There is this fad, in some people who have little to express by themselves, that consists in creating some kind of opponent based on some sort of fuzzy description like "people who uses frameworks but doesn't now a lot more than that", and then build an argument to come out like a winner or an expert or better than who knows because I don't know why!

C'mon, let's grab a coffee!

Collapse
 
haisan profile image
_samuca_

Just by the fact that you come here to say that "CSS is an antique with bad developer ergonomics", we can already see that you don't understand anything about the front-end, even more so to say that tailwind is something good. It's probably a backend that doesn't understand frontend basics and thinks they know something. Maybe the day you need to maintain a legacy tailwind project you'll change your mind. As the author said, in a simplified way, learn the basics before saying that library A or B is the perfect solution.

You apparently didn't understand what the author meant and preferred to choose the worst possible scenario. When he says "basic", I personally understood it, understand javascript, CSS, HTML, programming paradigms, programming principles, literally basic things, but very important to have a minimally well-built project.

You can play engineer on personal projects, but in the business world there are many consequences for those who want to do things anyway just because they think it's cool and want to see the "beauty of writing software".

Collapse
 
karolinalencina profile image
Karolina Lencina

Thank you for this! We need more inspiring engineers like yourself. As if the juniors weren't overwhelmed enough already. Everyone I know including myself had an imposter syndrome at a certain part of their career and I know some (intelligent) people that even quit because they found the community unbearably toxic. I have contemplated the same a couple of times, especially after seeing how ruthless some devs on StackOverflow are and being massively downvoted and attacked because of a small typo myself.

Collapse
 
rsuber profile image
Ryan Suber

No there is definitely a difference between I could build a simple database if needed and I can barely use. Like a software engineer should be able to build something without a framework. Now frameworks are nice because they do cut down redundancy that you would setup otherwise but there's a decent amount of people that don't actually understand how to sue the framework properly or haven't figured out how to create a highly reusable function for something you know you are going to use a lot. With react, I made two functions that can essentially handle all of my object state updating so I all have to do is add a check and set state and it will handle it. People aren't curious about how things work and therefore they fall into redundancies and extremely large code files because they are not utilizing the language as much as they can. One may not necessarily need to understand the details from the ground up but they should be able to explain enough of the behind the scenes to be able to teach people what it is essentially doing. There is a decent amount of people that go I just write this line and it does it but idk why and that's kind of a problem if you are calling yourself a software engineer. Which mind you, has also set forward a lot of weird requirements because of how people just throw that around.

Collapse
 
veljex3 profile image
Veljko Marjanović

Actually the post is not made to, as you say, "assassinate interest", but otherwise to encourage people that know nothing about real programming to start learning stuff the right way to see things differently, when i first started i mastered vanilla js then moved on to react, next, svelte etc... So you shouldn't encourage people that mostly copy-paste code and don't understand how it works because that is not the way they will learn.

Collapse
 
zachbryant profile image
Zach • Edited

I make that statement judging effect, not intent. This language and attitude goes right past intent. It is well known for it's troublesome influence on young aspiring engineers. There are no words of encouragement in this post. I challenge you to point out a quote that is. In fact it actually contains the opposite: telling people they are deluded to think they can build their dreams because they aren't good enough.

I recommend reading up on the oceans of anecdote of how language like this is hurtful to young people who see the established engineers as representatives of the field. It without exaggeration drives people away entirely, because they would rather not work with people who would actively demean and gaslight them saying it's only words of encouragement.

Collapse
 
bhavikpatel4 profile image
Bhavikpatel4

Well said, really appreciate your thoughts

Collapse
 
numosh profile image
NM Labs

Agree!

Collapse
 
moammar1498 profile image
Moammar Qaddafi

This post is incomplete without your comment. Applaud bro. Stay in love!

Collapse
 
mirzap profile image
Mirza Pasic

Thank you! You have expressed my thoughts exactly, and you did it so eloquently.

Collapse
 
vgurunathaprasad4philips profile image
Gurunatha Prasad

Please this should be a article

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
 
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
 
blazeiyke profile image
Blaze

😂😂😂

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.

Thread Thread
 
brense profile image
Rense Bakker • Edited

Tailwind css is a utility class framework, you don't write css, instead you write the names of a limited number of utility classes that live in the tailwind css framework.

A utility class in CSS is typically a class name that holds a single CSS property, like padding: 8px; you combine those utility classes to style an element

Thread Thread
 
gunslingor profile image
gunslingor

Got you... yeah, that's another difference between engineers and devs. Engineers tend not to use framework specific terminologies, when existing terminology covers it. Every vendor wants to reinvent their our terms in an effort to hook folks. But it's mostly marketing, something that needs to be excluded from the engineering process. Css classes are that and nothing more... doesn't matter what sass or tailwind decides to call it, only definitions under the law matter (in this case css standards). Never used tailwind only bootstrap... hence the issue, same crap different manufacturer, yet you and I can't understand each other, unless we stick to common terms.

Thread Thread
 
shahidfoy profile image
Shahid Foy

Yall need to get off your high horse. Talking about css like it's soo important lol what joke. Come back to me when you gotta move billions of dollars daily at scalable levels. That's engineering building things that are sustainable and with practical design patterns and architecturally sound. You front-end devs need to humble yourselves. Wow css you make pretty ui's... who cares bro that's why it's a good place to start. Everything's an abstraction go back to binary

Thread Thread
 
brense profile image
Rense Bakker

Utility class is a common term in CSS... designsystem.digital.gov/utilities/

Thread Thread
 
brense profile image
Rense Bakker

🤣🤣🤣

Collapse
 
akuoko_konadu profile image
Konadu Akwasi Akuoko

.grid {
display: grid:
}

.gap-4 {
gap: 1rem;
}

IMO tailwindcss makes writing css better and reusable

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
 
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
 
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
 
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
 
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
 
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
 
lifetraveler81 profile image
Raul Peixoto • 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.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.