I don't mean this to sound in any way cruel or judgemental, but a very large proportion of the population have very limited literacy skills. Emoji are useful for all users who are writing short, personal messages that might be ambiguous in tone. They are extremely useful for people who would otherwise struggle to express or understand tone and emotion using the written word.
In the last National Assessment of Adult Literacy, 43% of Americans were assessed as having "basic or below basic" literacy. They can extract basic factual information from short, straightforward texts, but little more than that.
Here are a couple of example questions from that test.
Only 33% of Americans could describe what is expressed in the following poem:
"The pedigree of honey
Does not concern the Bee -
A clover, any time, to him
Is Aristocracy"
Either a literal or thematic description of the poem constitutes an acceptable answer.
Read the text at the link below. After reading this text, only 16% of Americans could describe the purpose of the Se Habla Español expo.
Acceptable answers include any statement such as the following: "to enable people to better serve and sell to the Hispanic community", "to improve marketing strategies to the Hispanic community" and "to enable people to establish contacts to serve the Hispanic community".
Did you get the right answer? 84% of Americans didn't. Bear that in mind when you're writing documentation or dialog boxes.
Partially correct. Technology companies fall into three main categories:
1.) Companies that let their customers do what they were already doing, but more efficiently, such that they need less manpower. Eg. self-checkout machines, manufacturing robotics, enterprise IT, backend logistics, data warehousing.
2.) Companies that let previously unskilled groups perform the jobs of skilled workers. Eg. EBay (disrupts auction-houses and collectibles), blogging (disrupts the publishing industry), AirBnB (disrupts hotels & hostels), Uber (disrupts taxicabs), StackOverflow (disrupts IT consultants).
3.) Companies that let people perform entirely new things that they couldn't do before. Eg. Google (researching topics that would've been prohibitively expensive to learn about), Kickstarter (funding creative projects), PayPal/Square (accepting payment as a small independent vendor).
The uses of a transformative technology tend to progress from 1 to 2 to 3, because that is the rough order of obviousness and risk to the entrepreneur. When a new technology comes out, all you need is familiarity with the technology and with existing processes to understand where a manual process could be automated outright. This is the domain of enterprise startups founded by people with deep knowledge of an industry and a keen interest in new technology.
Once those opportunities have been picked clean, entrepreneurs look for cases where they could use technology to let a disenfranchised group do the work of an enfranchised group. They take the people who have been rendered out of work in stage 1, and then give them the tools to put higher-skilled workers out of work in stage 2. Doing this requires a strong understanding of both the processes of the industry that will be cannibalized, and an understanding of the capabilities of the workers that will take their job, and an understanding of the technology that lets you bridge the former and the latter. So entrepreneurs here need to do a lot of synthesis and need a bit of "in the right place at the right time" as well.
Once those opportunities are picked clean, then entrepreneurs start looking for things that people want to do but currently can't because they lack the means. This is where the great consumer companies of the next age are formed. It's very risky business for the entrepreneur, though, because there is essentially zero data available on what things people would like to do if they could but can't currently. Usually entrepreneurs that succeed here do so via vision, creativity, and a good sense of what they themselves want to do.
We're currently just starting stage 2 in the Internet/mobile/cloud revolution, so I would expect more job destruction and more short-term social pain in the near term. But it stops when all the easy opportunities of stage 1 and stage 2 have been picked clean, and people are forced to hunt for consumer business models that employ all the people put out of work by the earlier stages. Stage 1 and 2 destroy jobs, but stage 3 creates them.
BTW, for the last major economic transition (the Gilded Age and Industrial Revolution), the stages looked like this:
1. Sailors => Steamboats. Weavers => power looms. Blacksmiths => Steelmaking. Coachmen => Railroads. Miners => bulldozers, excavators, and heavy equipment. Domestic servants => home appliances.
3. Electricity. Home appliances (part of this industry replaced domestic servants, but part let consumers do genuinely new things, like microwaves and blenders). Penicillin. Air conditioning. Airliners. Elevators. Refrigerators. Computers (kicking off the next revolution).
Note that there's a large overlap between the stages. The last stage 1 business, replacing domestic servants with vacuum cleaners and washing machines, didn't happen until after WW2, while the first stage 3 business, electricity, happened in the late 19th century. I think we've seen the same thing with the Internet age, where Google and PayPal were among the first Stage 3 businesses, but Stage 2 hadn't even happened yet.
The general pattern is based on who're the substitutes for each industry. Stage 1 substitutes machines for labor. Stage 2 substitutes labor for labor with the help of machines to do things more efficiently. Stage 3 uses machines (built by labor) to solve unfulfilled human desires.
The basic idea here is that complex data structures are usually easy to understand, while complex code isn't. This is one of the few fundamental insights about programming that withstood the test of time.
Note that while this all is not necessarily about types, this is about documenting the data structures - and good type systems enable you to do so in an unambiguous and even machine-checkable way.
1975: There's a famous quote in "The Mythical Man-Month" by Frederick Brooks:
Show me your flowcharts and conceal your tables,
and I shall continue to be mystified.
Show me your tables,
and I won’t usually need your flowcharts;
they’ll be obvious.
Note that this is old language from the 1970s, where "tables" roughly means "types definitions" (or comments describing the structure of input and output values, think of database table definitions) and flowcharts roughly means "function definitions" (think of hand-written flowcharts written next to low-level code to make all its GOTOs understandable).
1989: You can find a similar statement in "Notes on Programming in C" by Rob Pike:
Data dominates.
If you've chosen the right data structures and organized things well,
the algorithms will almost always be selfevident.
Data structures, not algorithms, are central to programming.
Note that Rob Pike refers directly to Frederick Brooks.
1995: Frederick Brooks reiterates this statement in the second edition of "The Mythical Man-Month" (20 years later).
2003: The same idea is also stated as one of the basic design rules in "The Art of Unix Programming" by Eric Raymond:
Rule of Representation:
Fold knowledge into data, so program logic can be stupid and robust.
Note that Eric Raymond refers directly to Rob Pike.
2006: Another quite famous quote from the Git mailing list by Linus Torvalds:
Bad programmers worry about the code.
Good programmers worry about data structures and their relationships.
And so on.
(BTW, does anyone know about a similar quote before 1975? Or a popular reformulation after 2006?)
You touch on something I think about often as a father. Many years ago, I had a psychology professor who basically went off on a rant for an entire class meeting about this, and it struck a chord in me.
It was basically this:
1) Parents don't understand a child's emotional needs. Children need a foundation of love, which at an early age basically means attention from and interaction with caregivers.
2) Modern parents, especially pronounced starting with baby boomers, often feel they didn't get enough love and support from their parents. So they lavish their children with praise – frequently instead of focused attention – and think they're doing a good job.
3) This creates children who commingle love with achievement. That is, their parents love them because of their supposed achievements, and thus, if they're not achieving things, they aren't worthy of love. So children simultaneously have inflated egos but also very insecure egos. (This also ties into the whole idea that you should praise a child's effort, not their intelligence.)
That's all very abstract though. He gave a bunch of examples, but only one has stuck with me. Let's say your three year old comes to you with a drawing. Unless she's a prodigy, that drawing is going to be objectively bad, mostly squiggles with maybe a shape or two.
How most modern parents respond:
Parent: Good job! This is such a pretty drawing. I like how you used different colors. That's a great circle. You're a good drawer. Can you go draw me a square now?
Parent then goes back to watching TV, which would be a smartphone in an updated example.
How a parent should respond:
Parent: Thank you for showing me your drawing. I like how you used different colors and only drew on the paper. (legitimate praise is fine). What's this? (points to circle blob)
Kid: A horse.
Parent: Oh, a horse. Cool. Does she have a name?
(or Is the horse happy today? Can he run fast? whatever. The point is to engage in open ended questions that show you care and let the kid drive the conversation, somewhat.)
Kid: His name is cow.
Parent: A horse named cow, how silly.
And so on.
Anyway, I'm sure people would have problems with my sample good response too, and I'm probably misremembering the details. I'm also not sure the baby boomer stuff is totally accurate. But the overall idea is to give attention and focused interaction, not undue praise, and that makes a ton of sense to me.
Aristotle distinguished four kinds of answers to "why?" e.g. "why is this table flat?"
1. Material cause: because wood is rigid and holds its shape
2. Efficient cause: because the carpenter used a plane or chisel to carve away everything that was not that flat surface
3. Formal cause: because that's the blueprint the carpenter used
4. Final cause: because if it were curved your jug of wine would fall over
We can get material, efficient, and formal causes here (the algorithm being the formal cause) without any real controversy. But if I asked a human cryptographer "why is there an XOR in this round?" I'm asking about the fourth one, the final cause or purpose; the cryptographer might answer "because I wanted uncorrelated input bits to stay uncorrelated after this round", or whatever. But talking about that most interesting "why?" as regards an AI's activity is... controversial, to say the least.
This is exactly right. I've been in all three roles and all three are essential to success.
I can also relate to the notion that the engineers do all the work, which was a sentiment I shared early in my career before I understood the kinds of problems executives and founders had to solve. I cringe when I hear an executive say "How hard can it be? Get some bright bulbs in here and have code up a solution that doesn't have these problems." or when an engineer says "The CEO just parties with 'investors' and blows sunshine up our ass while we actually build the thing he is gets credit for." or when a founder says "I wrote the foundation this company at a dam hackathon in 24 hours and you're going to take 6 months to have an alpha release?"
I have seen again and again that people who haven't been in the role they are criticizing have constructed an understanding of it that doesn't capture what the actual role entails. Or in the the crowd funding case completely under estimating to cost or effort to do some aspect of development they have never done before.
If the company is hitting its milestones, people know what they should be doing, and the problems that pop up all seem that they can be overcome. Then you know all three classes of people are doing their jobs well.
When things take forever to get done, nobody knows why or how the thing they are working on fits in, and every week there is a new problem that changes all the priorities and efforts, then you know you're on the way to being dead as a company.
In the last National Assessment of Adult Literacy, 43% of Americans were assessed as having "basic or below basic" literacy. They can extract basic factual information from short, straightforward texts, but little more than that.
Here are a couple of example questions from that test.
Only 33% of Americans could describe what is expressed in the following poem:
"The pedigree of honey Does not concern the Bee - A clover, any time, to him Is Aristocracy"
Either a literal or thematic description of the poem constitutes an acceptable answer.
Read the text at the link below. After reading this text, only 16% of Americans could describe the purpose of the Se Habla Español expo.
https://nces.ed.gov/NAAL/sample_imgtxtequiv.asp?Imageid=164
Acceptable answers include any statement such as the following: "to enable people to better serve and sell to the Hispanic community", "to improve marketing strategies to the Hispanic community" and "to enable people to establish contacts to serve the Hispanic community".
Did you get the right answer? 84% of Americans didn't. Bear that in mind when you're writing documentation or dialog boxes.
https://www.nngroup.com/articles/writing-for-lower-literacy-...