Live data from Hacker News

We have used too many levels of abstractions

unixsheikh.com

391–400 of 564 posts

Re: We have used too many levels of abstractions

#391
post #216
post #96

Having worked for many years in IT in Denmark I would say that the author is right, but many of these are luxury beliefs, since in Denmark people are given alot more time to do their job right than in many places. In many parts of the world developers are not given the time to understand anything, and end up working 8 hours after the job to understand the tools in their own time

How is Denmark so special in that regards? What are examples of these places where people are not given the time to do their job right?

Why Denmark is so special in that regard I do not know, but for Europe in general if you are directly employed by a company you get good training, and the ability to get a lot of help and support from colleagues (based on European consultancies that I have worked for). I've also worked for Asian consultancies and there is more of a sweatshop mentality in those companies where "everything" is about the billable hours and there doesn't seem to be the same sort of work/life balance (I'm half Indian just for context so try to see the European and the Asian angles)

Re: We have used too many levels of abstractions

#392

Earlier quoted context omitted.

I don't need to know assembly to write a web app - it's totally magic, and it's fine. However, if I am using an abstraction like an ORM without understanding what is happening with the database under the hood, or why it's getting slow all of a sudden, it is bound to bite me in the ass. I shudder to think of how much money and energy the world is burning every second just because of this one alone.

A client of mine is enduring growth induced ORM hell right now. The struggle and existential threat is real. It can take days for them to even track an evil SQL query back to the actual code. There were fetch-one calls that literally carry a million rows back over the wire for that one returned entity. Indices get skipped due to the magic translation of a row.col.toUpper()=="STRING" into SQL.. when the db collation i…

The solution is to go "web scale" and add a technology with magical indexes and no transactions because IT FAST! What could possibly go wrong.

Re: We have used too many levels of abstractions

#393

Earlier quoted context omitted.

A client of mine is enduring growth induced ORM hell right now. The struggle and existential threat is real. It can take days for them to even track an evil SQL query back to the actual code. There were fetch-one calls that literally carry a million rows back over the wire for that one returned entity. Indices get skipped due to the magic translation of a row.col.toUpper()=="STRING" into SQL.. when the db collation i…

The solution is to go "web scale" and add a technology with magical indexes and no transactions because IT FAST! What could possibly go wrong.

Well, I have heard the word 'Mongo' uttered in passing....

Re: We have used too many levels of abstractions

#394

Earlier quoted context omitted.

You can actually see this with new frontend devs. They know only full SPA frameworks, they have never seen a dump of an HTTP message, headers and verbs are abstract things to them. Hell, many of them don't know you can have fully functional websites with zero JS, including payment, video, login, etc. I started to write an HTMX tutorial ( https://www.bitecode.dev/p/a-little-taste-of-htmx-part-1 ) because I noticed a l…

This is not a FE thing. Plenty of BE devs who don't know HTTP from their arsehole.

I am technically q full stack dev and I don't grok how aspnet core actually generates the web requests. It's layers upon layers of magic to me.

Similar with mediatr, I know conceptually that it "just" checks for the right classes in the loaded assemblies. But still feels like some weird incantation to use, to me. And I have such huge knowledge holes across all layers.

Sometimes i feel my lack of knowledge to such a degree, that I question whether I should even be a programmer.

Re: We have used too many levels of abstractions

#395
post #223

Earlier quoted context omitted.

Are there good historical examples of this happening, where foundational knowledge is completely lost? I know I have read about it in books as a fiction, but I assume it must have already happened here before. Maybe its an oxymoronic question to ask, seeing as if its lost we might not even know its lost, but more in the vein of "We put the lime in the mortar because this is what we have always done", unaware of the a…

Since you’re citing fiction, have you read the foundation series? The original inspiration for that book was The Decline and Fall of the Roman Empire, which is a history book (arguably the first modern history book). Anyways, that just to say that people in post-Roman Empire Europe lived out the reality of lost knowledge. They lived with the remains of incredible art, architecture like the coliseum, public works like…

Gibbon was biased by being a Victorian imperialist whi thought empires per se were a good thing.

The decline in big public works were probably the result of the loss of an empire that could cocentrate resources.

I thought concrete did continue to be used, but differently?

This all seems to spring from the myth of "dark ages"

Re: We have used too many levels of abstractions

#396
post #328

Earlier quoted context omitted.

You can actually see this with new frontend devs. They know only full SPA frameworks, they have never seen a dump of an HTTP message, headers and verbs are abstract things to them. Hell, many of them don't know you can have fully functional websites with zero JS, including payment, video, login, etc. I started to write an HTMX tutorial ( https://www.bitecode.dev/p/a-little-taste-of-htmx-part-1 ) because I noticed a l…

You can see this with a "new" ANY dev, because there are only 4 years of college and far more years are required to learn the increasingly complex technology environment. I graduated with a Computer Engineering degree, did assembly, C, microprocessor design, computer vision, and know a good bit about lower level stuff, how memory works, how networking works, etc. All the stuff people in this thread seem to be lamenti…

> "* I didn't know anything at all about modern software development because there was absolutely no time to learn that stuff as well.*"

Yeah, but modern software development is trivial to learn, particularly in comparison to a computer engineering degree. You see "developers" here on HN gloating all the time about how they didn't need any post-secondary education at all to get their jobs; these frameworks are literally designed to be usable even by minimally skilled coders. You were in a much better position having to learn modern software development after a computer engineering education rather than having to learn the rudiments of computer engineering on the job after getting an education in modern web development.

Re: We have used too many levels of abstractions

#397

Earlier quoted context omitted.

It is not elitist to point out the flaws in modern web devs who don't know what an HTTP protocol is and the structure of an HTTP request (headers vs body etc). I interview a lot of them who cannot explain the difference between a form submitted directly vs through Ajax but they surely know how to send a POST request through node/express.

I don’t even know the difference between a form submitted through JS vs a browser. Who cares? Unless there’s a problem, there’s no reason to know such things. And I’ve written http webservers by hand. People here have way too much confidence in their interview questions being a good signal for experience. It’s pretty wild.

> I don’t even know the difference between a form submitted through JS vs a browser.

I think you do. GP just phrased it oddly.

The distinction is between a traditional HTML form and browser page load, vs XMLHttpRequest.

Ultimately it's all HTTP though and on that level, there is no difference whatsoever.

Re: We have used too many levels of abstractions

#398

Earlier quoted context omitted.

You can actually see this with new frontend devs. They know only full SPA frameworks, they have never seen a dump of an HTTP message, headers and verbs are abstract things to them. Hell, many of them don't know you can have fully functional websites with zero JS, including payment, video, login, etc. I started to write an HTMX tutorial ( https://www.bitecode.dev/p/a-little-taste-of-htmx-part-1 ) because I noticed a l…

I started writing a book for exactly this reason. https://www.networksfromscratch.com/ It will take me 10 years to finish it at the pace I’m going though :)

Very nice intro. I like how you introduce networking layers. It seems you are starting to go down the path of explaining how computers and servers work - and that is certainly daunting. Maybe just stick with networking and introduce more of that and how real world systems (T1 and Ethernet) are just changing voltages at some point - and can be swapped in or out because of network layers. Then build up packet switched messages TCP, Telnet, HTTP

Re: We have used too many levels of abstractions

#399

Earlier quoted context omitted.

I couldn’t agree more and it’s something I didn’t understand at all until my final year at university. I was talking with one of my professors and complained about having to learn and use SML and Eiffel for some projects when in the real world , I’d be using something like C (this was 1994). He asked me if I was there for an education or training. I think today it’s probably more true than ever. Schools are under pre…

I completely agree here. The problem was that there was a shortage of developers, and that most universities still only had CompSci degrees, not Software Engineering degrees, coupled with those degrees were 3-4 years long... So enter the code bootcamp, where you're basically given a hammer, and taught that every problem can be solved with it.. Now those bootcamps aren't all like this, and there were and are good ones…

My state university (UMass) education's CS degree had us working directly with CPUs and logic gates on breadboards (made an ALU!) We even designed our own x86-like CPU ISA to be run via simulation with our own progams. We built and programed robots from discrete components and microcontrollers written in assembly. Made our own rudimentary OS, including threading with mutexes and semaphores. Built our own pine-like terminal email client from scratch. Created design docs for our own games and executed on them in sprint teams throughout the semesters.

I cannot stress how important my education was to my current understanding and success as a software engineer in the field. A poor education is a huge detriment. When I joined the workforce I found many colleagues without one ill prepared for some of the basics, like debugging kills, using tools outside their domain expertise, etc.

That said I don't think a formal education is REQUIRED, but without one you need a certain kind of perseverance and thirst for knowledge not everyone has. I've had the pleasure of working with several folks in that category, so a formal degree isn't for everyone.

Today, it appears specialization is happening much earlier in the education process without a general foundation. Specialists will always be needed, and larger orgs can get by just fine with exclusively specialists, as long as their communication skills exist to prevent silos. Larger companies can afford this. However a good generalist can replace a team of specialists when the latter budget is out of the question; a huge win for smaller orgs, start-ups etc.

The old joke that a good generalist is the "jack of all trades, master of none" has some truth to it, but as with all things, it's a tradeoff. A team of qualified specialists will definitely produce better work within their domain expertise, but at a cost that can be prohibitive when "good enough" is within reach.

Re: We have used too many levels of abstractions

#400
“Everything in the tech industry is driven with a very hardcore eye for profit and very little interest in anything else”

What is up with the discourse lately - of course it’s all about the profits - we’re talking about companies right not non-profits? How else are they going to pay you?

The whole “expecting companies to care about so many things” apart from profit seeking mindset is just bizarre to me

Post reply on HN