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 (137)
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.
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 😷
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.
"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.
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 🙏🏿
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.
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.
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.
@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.
@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.
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.
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.
Being a software engineer is much more than just the code and based off your responses, you sir are not a software engineer.
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.
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).
I think that's the point of the OP. Not every hacker/programmer/developer is an engineer.
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.
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.
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.
Agree, just because you don't kmow it, doesn't mean it wrong or bad. Learn itself is a science.
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.
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.
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.
@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.
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.
"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.
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.
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.
There is definitely no need for computer scientists to start with assembly, nor programmers... real engineers though, definitely recommended.
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
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.
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.
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.
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!
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.
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."
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!
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".
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
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.
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.
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.
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.
Well said, really appreciate your thoughts
Agree!
This post is incomplete without your comment. Applaud bro. Stay in love!
Thank you! You have expressed my thoughts exactly, and you did it so eloquently.
Please this should be a article
You're not an engineer, if you don't know how write programs in binary.
... and toggle them into the machine via front-panel switches, and reading the indicator LEDs for all your output...
00100001 00110000 00111111 00111010 00110001
Way too abstracted. I'd like to see the sub-atomic representation of these bits ;-)
😂😂😂
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
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.
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 )
`
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.
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.
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.
Utility class names have nothing to do with CSS. For starters it's a completely different syntax.
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.
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 elementGot 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.
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
Utility class is a common term in CSS... designsystem.digital.gov/utilities/
🤣🤣🤣
.grid {
display: grid:
}
.gap-4 {
gap: 1rem;
}
IMO tailwindcss makes writing css better and reusable
I'm all for learning the basics and concepts, but for valid criticism, you need to avoid ad hominems.
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.
I struggled to find something worth writing as a comment to the original post, I guess this might have been it.
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.
I’m the best god damn frameworker and I don’t need to deny it because I deliver and make more money than you.
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.
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.
Some comments may only be visible to logged-in visitors. Sign in to view all comments.