Exactly this. Strictly speaking you really don't need to know how many bits are in a byte, but it'd be difficult not to have picked up this kind of information having spent any time in the field. The absence of this knowledge is a strong indicator of shallow expertise.
For a professional dev in a high level language, this basically is a useless piece of trivia. It doesn't hint at trouble, because my code runs on machines that measure memory in gigabytes or at least hundreds of megabytes. Gatekeeping.
The gatekeeping card won't fly here. This is not some obscure implementation detail of C/C++.
Depending on the hardware that byte can be 8, 12, 24, 32, or 64 bits (in my own experience over the years).
It's sad so many here are claiming that there are always and only 8 bits to a byte.
I've already replied to one person who quoted an ISO standard, that they clearly had not read, in support of this misconception.
In the days when I learned what it was, it was fairly common for machines to have addressable units larger than a byte. We said that these machines "did not address to the byte". That is literally something you would say. Because a BYTE WAS NOT THE SAME THING AS AN ADDRESSABLE UNIT.
A word isn't the same thing as an addressable unit, either; your machine's word size is the number of bits it transfers over its main bus at one time and/or the number of bits it can work on in one operation. Which is maybe a bit fuzzy nowadays.
If I recall correctly, I read somewhere, back in the 1970s, that the word "byte" was originally used to mean the size of a text character. But in any common usage, even by the time I learned about it, it had settled down to just meaning 8 bits, period.
That’s normally called a word. I’ve seen casual usage of “byte” in that context but formal documentation has always used word.
This stems from architectures that had both a both a minimal and maximal addressable "atomic chunk" via segmented architecture.
Conversations about this varied between Intel, Motorola, TI chipset users, PDP v Cyber programmers, etc.
From a Standard C Programming (as portable assembly) viewpoint Char and Byte are interchangable and are the smallest atomic type .. with the number of bits defined by a header constant.
[1] https://www.iso.org/obp/ui/#iso:std:iso-iec:2382:ed-1:v1:en
So no, it's not a contraction of "by eight". It's just a different spelling for "bite", as a pun on "a bite of bits".
But I've seen "byte" used to refer to other numbers of bits lots of times, although primarily in the old days. Not so much anymore. I think the meaning has changed with time and has become fixed on "8 bits", but it was not always so.
What systems are there with such large bytes?
They are fiends for pipelined throughput and have low level ASM statements that modular index through vector calculations per clock cycle (increment pointers, multiply and add arguments, store results, etc) but are built for the float | double numerical domain grunt work with no ground given for bithack twiddling.
There are other examples but that should suffice.
"Sure", you say, "but they don't need to know it by heart. The carpenter can always look that up if they really need it."
This is true. You are 100% correct.
But think of this:
Said conversion is pretty common in Carpentry, so each time our Carpenter forgets, they're going to end up looking it up again really quickly.
You would think that after having looked it up umpteen times, the Carpenter would effectively end up memorizing the conversion by accident. Right?
So while I suppose it's not strictly necessary, it would definitely be a bit funny to encounter a Professional Carpenter who doesn't have centimeters<->meters memorized.
As the saying goes: if all you have is a hammer, every problem resembles a nail. You can validly say "I've never actually needed a screwdriver", even if the screwdriver might have been more useful for the job at hand.
It also depends on what domain you're working in. I just happen to have been working on a Python/JS GUI to operate a Robot this past month. Interfacing with the Robot did require use of bits and bytes. Fortunately both Python and Javascript do support those operations for just those kinds of situations.
So while I do agree that some jobs can be done in javascript and python where you can avoid needing bits and bytes, that's my two answers:
1) Bits and bytes sure can come in handy at times. They might be the best tool for some jobs.
and
2) For some jobs you really do need to manipulate bits and bytes. You can't avoid them forever.So if you like writing a lot of different kinds of programs for a lot of different kinds of things, you're almost certain to end up using bits and bytes sooner or later. Do that often enough and it does tend to stick. That includes Python and Javascript.
Point being, the stack has grown larger, and just like we don't expect programmers to know electrical engineering, I don't think we should require front-end devs to know low-level knowledge (just like I wouldn't require backend devs to know CSS)