a conversation i had this week with a former dell employee

8 replies [Last post]
freemedia
Offline
Joined: 09/14/2018

people dont have to reply to the threads ive made here, after all.

they do reply however to posts i make on existing threads. still, i dont prefer to talk to myself so if this one gets no replies, this will be (if only as a courtesy) the last thread i start on this forum. i am happy to participate in existing threads if thats what works better.

this is a summary of a very long conversation i had recently:

this week, i gave away yet another a laptop containing no non-free software (no promises about the firmware, which is stock) to a former dell employee.

not only did it contain no non-free software, it contained no software at all.

the reason i did this, is because i teach people how to use free software and how to better understand computing. and giving away inexpensive laptops is the best gateway (pun not intended) towards that effort. ive tried many other methods, with more-limited success.

the subject at hand was computer literacy. i want to stress that the subject of gnu/linux (i said "gnu/linux" every time-- though against stallmans advice i pronounce the "/" character silently, but i always include it when writing) only came up because i was talking about the following problem:

i started our hour-plus-long conversation (i figured he would give me 5 minutes) by saying that the church had a monopoly on reality, until science was taught in schools. this might be slightly inaccurate, my point was that we teach science at grade school level-- not just in university, not just in high school, but we teach grade school science before we teach high school science, before we teach university level science.

thus, my argument goes, the church no longer decides if the earth is round or flat (we hand that jurisdiction to space explorers and wild posts on the internet.) the church still has input towards what people think about evolution, but in most regions it no longer enjoys the sort of monopoly it once had.

yet we barely teach computer science, my argument continued-- at all. even the way we teach coding (and not only in this country) is not conducive to a working knowledge of computers, but remember i am talking about starting with grade school level science.

today, software companies and hardware companies enjoy the sort of monopoly on reality that the church had prior to grade-level science classes. you might disagree with me on details here, though i think the evidence is overwhelming. the church promoted and even benefit from illiteracy at its peak, and our education (speaking internationally, and yes it varies quite a bit) produces a large swath of society that is proud to be computer illiterate.

this former employee (he has a non-computer job now) learned unix administration and knows the command line for what he called "linux" (i eventually got around to correcting this) as well as unix and dos. despite this, i managed to impress him with my knowledge of computers, which is in no way enterprise-level (i think i only got one question wrong on the comptia practice test for "linux commands" due to wording, but comptia isnt easy when you havent used windows much in 10 years.)

the point wasnt to impress him, however. i want everyone to have at minimum a middle-school level of computer science literacy. and i also think that coding is the shortest route to that literacy level. but it depends on how it is taught.

after i talked about a number of related issues, where he confided that he wishes he knew more about computers in general (despite his former occupation) i finally asked him if he had seen the matrix, and remembered the scene where neo had simply downloaded martial arts into his head.

"if you could do that with computers, what would you download?"

he replied that he wishes he knew more about "linux" (we do get there) and we had already talked about the value of coding "whether youre going to do it for a living or not." he knew who alan turing was, we talked about qemu and how hardware can be implemented as software (and to some extent, vice-versa) and what this implies for teaching early-level computer science with coding-- if that is the idea, and if meaningful computer literacy which allows society to make informed decisions about technology (and disrupt the church-like hold silicon valley has over people) is the goal.

in the 90s, there was a dramatic shift in computer education from computing to application training. so i think in the 80s, we were actually on our way to teaching true computer literacy. instead, we went in a direction that is very self-serving for companies like microsoft, google and amazon. this is very, very bad for society and needs to be addressed and repaired. because ultimately any time a company wants a monopoly on reality, all they have to do is implement it in software and they will ensure that the general public only understands what the tech companies want them to.

short of changing education, this will not be fixed-- nor do i think free software will succeed (in terms of freedom, not just adoption-- though if people do not adopt freedom, that is also a freedom issue) half as much as it could do.

create a computer literate society and (just like teaching classical forms of literacy) people will be more free in their computing. there was always a connection between freedom and literacy, to the point where american slaves were generally forbidden from learning to read-- it made them harder to control.

computer literacy will also make society harder to control, which is why we should be spreading it everywhere. i write extensively (much more extensively than on this forum) about how to spread that. my ideas are intended to assist, not dictate-- if the fsf wants to double their success (and double global user freedom) they should create a spin-off organisation for free education. as in people who are computer illiterate becoming literate. it doesn't have to be a spin-off organisation-- but it probably will be.

i agree strongly with the things stallman says about the vital importance of using free software in education-- of how it cheats and defeats to teach non-free software in education.

but i want to point out that you can work for dell doing enterprise-level administration without becoming generally knowledgable of computers.

the reason for this is that applications are an abstraction that allows companies to impose their own culture and reality onto the user. free licenses heavily mitigate this, to where oracles attemtps to subjugate openoffice were entirely thwarted by the licensing of previous versions.

(in a much smaller way, software distributions are an abstraction that allows its maintainers to impose their own culture and reality onto the user. and i even propose modified alternatives to the traditional distro concept as a way to mitigate this.)

note that 99% of what ive said here, we talked about in that conversation.

but by only teaching applications and enterprise administration, it was possible to create a professional command line user that felt a lack of understanding about computers. obviously, you can feel that for several reasons. but i maintain it is that there was no foundation in his education-- he didnt learn about computers in a broad beginner-level context, and most people wont.

if you learn about the fundamentals of computing, you may be able to figure out for yourself the nature and occasional problems with these levels of abstractions. but also i believe that understanding the basics of computing makes it more trivial to teach/train applications. the better level of literacy doesnt serve monopolies, however.

the ideal way for a monopoly to teach coding is in a way that stresses the specifics and avoids the commonalities whenever possible. this serves eee in a way that a solid educational foundation does not, and it gives the user the impression that computing is something mysterious and esoteric, when most of it is not.

of course to make computing easy to understand, it is probably necessary to gloss over the lower-level coding to some degree-- not in any way thats misleading, but at least in a way that it is oversimplified. since most computing is not lower-level, and most computer-related issues can be demonstrated and understood (if nothing else, by analogy) in terms of higher-level coding, a solid background in lower-level computing is more of a luxury than a necessity.

but he did ask me "did the guy make it" (gnu/linux) "for altruistic reasons, or what?" he knew that gnu/linux was something everyone was free to modify and copy.

"well i have to ask, what guy do you think made it?"

"some scandanavian guy? i cant think of his name"

"yeah, thats the thing. so do you know what an operating system kernel is?" (reasonable question for a former unix admin, though i wasnt sure he knew, i thought id ask.)

"no."

"basically its like the engine of a car." and i told him about bsd, how it was tied up with at&t at the time, despite so many people working on it (because antitrust made it impossible to sell unix for quite some time, but once that restriction was lifted they tried to go right to a proprietary model and thus bsd wasnt a viable option when the fsf was founded.)

"so bsd was tied up in copyright, but it formed the basis for openbsd, darwin, macos... and thus you had gnu/linux created as an alternative. and it was for altruistic reasons, particularly for user freedom."

he actually liked the user freedom part.

"but imagine you designed an entire car, and you had most of the engine put together too, but the engine had some kinks to work out and then a guy comes along and just builds an engine for it. great, right?"

"but imagine that you created that car design for altrustic purposes, and then some guy comes along and builds an engine-- but for years ever after everyone thinks he made the car, too."

he worked at dell as a unix admin, and thought that linus torvalds created the linux operating system. that doesnt make him foolish, it makes the whole concept of "linux operating system" a bit of a problem obviously.

"so to this day, countless people think he wrote the gnu/linux system, which was for freedom and altruism, and he created the kernel for his own reasons and got really cozy with monopolies" (this is completely true though. in fact its generally understated.)

"wow."

"yeah well, hes kind of an [choice word] that way."

since we arent hundreds of miles away from the fsf, i told him just how far from scandanavia this all happened, and who richard stallman was, and that he was in a harvard physics class with bill gates (though i should double check if they were in the same class at the same time, or just the same class at different times.)

so he no longer thinks that the gnu/linux system is scandanavian.

but we talked about an awful lot of context in there, about education reform (non-silly-con-valley style-- at what point is digital relevant enough to everyday life that it should be covered in humanities, philosophy and sociology, other than just the peripheral matters like "internet addiction?")

and since he wanted to learn more about gnu/linux, i talked to him about various distros and explained some of the pitfalls of choosing one, and how most come from the same upstreams, and i mentioned some other modern problems with choosing a distro.

that was a lot for one conversation. the matter of user freedom was prominent. the problem of open source was implied, but not mentioned. as usual, i used the terms "free software" and "software freedom." but "open source" didnt come up once.

just some guy from scandanavia, and a man named richard stallman.

it will be a little while before he has time to get going on this. ive given away free laptops for this purpose before-- they usually have a hard drive (but not always, sometimes just a usb that only sticks out 1/4 of an inch from the port-- especially if i think theyre likely to be dropped sometimes) and i choose the recipients with care.

either way, he knows a lot more about computing than before.

i might help him write a little programming language that he can use when he gets started-- something easier to use than he used in his enterprise days.

im a huge fan of constructionist learning, since before i knew it was a thing or had a name. i help people learn how to code by helping them create small programming languages sometimes.

how do you create a programming language? there are lots of ways, many too complicated for a beginner. if "hello world" is a useless program that can still be used for demonstrating a completely simple few lines of code (fun fact: torvalds first little program was written in basic, theres a video about it on invidio.us) then a really simple programming language could just have one command called:

helloworld

that: you guessed it. thats not much of a language, but then "hello world" isnt much of a program.

however, it is very easy to understand and implement. for some people it might be easier to learn their own language first, rather than someone elses.

a shorter route to computer literacy (and there is a strong relationship between literacy and freedom) i do not think exists.

happy coding.

Magic Banana

I am a member!

I am a translator!

Offline
Joined: 07/24/2010

people dont have to reply to the threads ive made here, after all.

Non-attractive title and a huge text all in lower-case: that does not help. Those who read (probably not the majority) are too lazy to reply: too many points are raised. You should start a blog.

About the focus on programming (aka "coding", what appears as a more obscure activity), I am not convinced of its importance. Computational thinking, yes. Demystifying Internet/machine learning/operating systems/... too. Learning to publicly write (one of the greatest change the Web brought to society), for sure. Studying the social/ethical/political issues of the digital world (e.g., the filter bubbles, the value loading problem for AI, the free software movement, the Net neutrality, the surveillance capitalism, etc.) too. Idem for more legislative issues (copyright, software patents, etc.). Discussing all that in schools looks far more important to me than having an entire generation that can write small Python programs or who knows what is a context-free grammar. That would still be better than teaching the Office suite though...

freemedia
Offline
Joined: 09/14/2018

"You should start a blog."

i ran two. one turned into a short book and a (presently very) small organisation.

i stopped blogging because there isnt really a lot of discussion about free software in any blog community. there are rare posts about that (i wrote a program to monitor all related topics) and it leans very "open source" out there. this forum is where software freedom is being discussed.

_

"Computational thinking, yes."

heres what my book about the organisation says about computational thinking:

"im not sure i believe in this "computational thinking" craze. mostly i believe it could be a way to try to teach coding with a built-in aversion to coding. im not sure any curriculum ought to be invented specifically to avoid the very subject it teaches, but as long as a school doesnt avoid coding first then perhaps "computational thinking" has a place. if you teach it first, youve only extended the first introduction to coding and made it more tedious for everybody. not great."

_

Demystifying Internet/machine learning/operating systems/... too.

seriously, try doing that without hands on/coding. thats doing it the hard way-- harder for the teacher and the learner, because the context is imaginary/hypothetical/with no frame of reference. thats why you use code as the frame of reference. it makes it real.

_

Studying the social/ethical/political issues of the digital world (e.g., the filter bubbles, the value loading problem for AI, the free software movement, the Net neutrality, the surveillance capitalism, etc.) too.

again, for people who really dont understand computers, this is like talking about muggles and wizards and incantations to people. i dont mean people are stupid, i mean they respond differently to these issues when they understand computing.

_

Idem for more legislative issues (copyright, software patents, etc.).

subject to the exact problem i said in the top post. no one cares about software patents if they dont understand the issue, and (practically) no one understands the issue if they dont write code. the response is most often: "well, i guess, whatever" because really, youre just talking about ideas they have zero connection with. theres no context. once they understand computers and coding, you have the perfect context.

"is it hard to implement slide to unlock?"

"no, its obvious. i mean geez its just a scrollbar! theres prior art!"

how do you get there without them understanding that a scrollbar is a function or object, not a magical ingenius thing that steve jobs invented? (ok xerox, but who cares? its magic.)

no one cares how a scrollbar is made (and how slide to unlock is just a renamed scrollbar that received a bogus patent indicative of the pathetic state of the patent system) if they dont write small programs themselves. no one. its irrelevant to them.
_

Discussing all that in schools looks far more important to me than having an entire generation that can write small Python programs or who knows what is a context-free grammar.

i have never taught someone what context-free grammar is. its not necessary for creating very simple languages, but it will help if youre writing much more complex ones.

_

That would still be better than teaching the Office suite though...

cool.

ive heard the things youre saying before, and ive spent a lot of time (before we had this conversation) working to refute them.

im not ungrateful though, i asked for feedback and i got it-- and i appreciate you taking the time you did to reply. i think your replies were honest and i would gain very little from you pretending to agree when you dont. cheers.

incidentally, these ideas im talking about arent just me waxing philosophical. ive spent years testing them on random people.

ive sat in a bar with a netbook next to a neighbor girl who is half drunk (more often i work with sober individuals) and showed her code where she starts pointing at the code and explaining what each token does. "my friend would be pissed, hes spent years trying to get me to learn this." her majors are art and grade school education.

the reason i use code is that ive already spent years talking about these issues. practically no one cares unless theyre already into computers. telling stories helps make it relevant, but code provides a lot more context if you can make it easy enough for everyone to learn. then they can relate to the people who do this, now theyre people and not wizards. they cant sympathise with the plights of wizards in real life. they cant relate it back to them.

once you give them coding, they become an unofficial part of the very community you want them to care about. thats what stallman wanted! there will never be a "computational thinking community" that doesnt know how to code. its such a weird sidestep, like when open source tries so hard to use free software without mentioning freedom.

this is what ive found through experimentation and designing my own tools-- not just talking online. but talking online might eventually help make people aware of these ways to promote free software more thoroughly, which is the goal that lead to these efforts. i want everyone to feel happy about ditching windows and google chrome, at least.

this is how you do it-- every point ive mentioned here. and since this doesnt go into enough detail, theres a lot more ive written for this community to get more out of it. but you have to start somewhere.

lastly, people are curious about code, but they lose their curiosity when you make it too complicated. they arent curious about "computational thinking." what does it do? nothing. it just avoids the subject it exists to teach.

Magic Banana

I am a member!

I am a translator!

Offline
Joined: 07/24/2010

i think your replies were honest and i would gain very little from you pretending to agree when you dont.

I indeed disagree. Taking the only example you developed (software patents), a short movie like http://patentabsurdity.com/watch.html explains the problem and its implications very well without ever requiring any programming skills. It explains that programs implement mathematical methods (SVD example), that they combine many ideas (analogy with a symphony), that innovation is at risk (of a law case), that billions of dollars (ultimately paid by consumers) go every year to patent trolls, etc.

You need far more time to make your students create a graphical interface (with scrollbars). I do not see much value in that, except for the minority who will work with programming graphical interfaces.

thats what stallman wanted!

I would very much like a reference to Stallman telling everybody should learn to program.

freemedia
Offline
Joined: 09/14/2018

"Talking the only example you developed (software patents), a short movie like http://patentabsurdity.com/watch.html explains the problem and its implications very well without ever requiring any programming skills."

ah, thats really not what i was saying though.

yes, you can explain software patents entirely withough coding. and i remember when that documentary came out. but my point wasnt that you cant explain these things without coding (i have explored several ways of doing so) my point was that you cant make people (almost anyone) care about them and connect with them on a personal level without coding.

"It explains that programs implement mathematical methods (SVD example), that they combine many ideas (analogy with a symphony), that innovation is at risk (of a law case), etc."

yeah, because all code maps 1:1 with pure math. another thing i talked about in the conversation i had was stallmans analogy with recipes (that could be in this documentary but i think its actually from "revolution os") and how software wasnt always copyrightable. math isnt patentable, but processes are sometimes.

most software patents are patents of very low quality and (again, same conversation this post talks about) i mentioned that these companies have large portfolios of low-quality patents to basically threaten smaller companies with. and when you talk about the underdog, sometimes people care (often apathy rules, but not this time.)

but in every instance, people care about it more when they code. its just such an easy way to create foundation for the rest of the subject, and its being pushed in schools anyway. but "preferably" in a way that only serves existing monopolies. this is a giant opportunity being missed.

"Using the same amount of time, you can teach how to read/write files in a specific programming languages. I do not see much value in that, except for the minority who will work with programming."

you can teach how to read/write files in specific languages faster than that.

"variable open 'filename'"

"variable write 'filename'"

"I would very much like a reference to Stallman telling everybody should learn to program."

thats not what i said either. the sam williams rms bio (which the fsf republished for a while, but an older version is available online) talks about how companies were snatching up people from the develeper community he originally belonged to (the mit ai lab) and that part of the reason he created the free software movement was to prevent that community from disappearing.

more broadly, there is the free software community (this one) that actually resulted from the same effort. and the more people who learn how to code, the more viable the free software community is, the more talent available to it.

it defies reason that a community /built on creating software/ would suggest its a /waste of time/ for everyone to learn to program. it absolutely defies reason and astounds me completely.

but i mean, i can promote that concept without the support of the free software community. i do, and i have spent years working on ways to do so-- but i would invite the free software community to do the same, and i can make it easier for them than they probably believe it is. ive worked very hard to make it easier to learn/teach this stuff, and ive taken inspiration from decades of efforts to do the same.

but i cant imagine why the idea would get so little support. they dont have to do it my way, my way is simply an option. (id encourage further research into other ways of teaching the same things.)

im mostly talking about the replies of one person, so im not really/literally saying this about the actual free software community. rather, since you and i are talking about the "worth" of everyone learning to code, i am taking your reply as a given and pretending its the entire free software community saying the same thing-- to simply try to relate how peculiar i think it would be if they all agree with you on this.

aloniv

I am a translator!

Offline
Joined: 01/11/2011

I agree that basic coding such as scripting is a skill people should acquire as it enables them to automate tasks that would otherwise take a long time, such as batch converting files from one format to another.

If you want to actually understand computer science you will also need to learn maths fields such as discrete maths and algorithms.

It seems that large companies want everyone to learn coding so that they can hire system administrators for cheap as many more people will be qualified to do that job compared to today.

This discussion reminds me of proprietary single board computers being promoted as tools to learn coding. If you already have a computer there is no need for these boards to learn programming, and if you don't then this isn't necessarily a cheap solution as you still need a hard drive, monitor, keyboard and mouse in order to use it as a desktop alternative (in fact, buying a second hand old laptop will probably be cheaper and much faster). These boards can be useful for other purposes, since their power consumption is low (e.g. as media centers or email servers) and they are portable (they can be used to flash libreboot).

freemedia
Offline
Joined: 09/14/2018

"If you want to actually understand computer science you will also need to learn maths fields such as discrete maths and algorithms."

i would debate this, slightly. those are definitely important at uni level. math is already taught in school, probably not terribly well compared to what would help computer science though. (depends on region like many things.)

"It seems that large companies want everyone to learn coding so that they can hire system administrators for cheap as many more people will be qualified to do that job compared to today."

oh yeah. thats why silicon valley wants to do it. thats not the same kind of "learn to code" i mean. its similar, but like i said in top post, its different too.

"This discussion reminds me of proprietary single board computers being promoted as tools to learn coding. If you already have a computer there is no need for these boards to learn programming, and if you don't then this isn't necessarily a cheap solution as you still need a hard drive, monitor, keyboard and mouse in order to use it as a desktop alternative"

true. olpc originally had os and laptop, but eventually sugar platform/os separated (more due to politics than anything else, but all the same) and this would be best way for sbc/distro to do it too. but that means it also supports x86 at a minimum.

"(buying a second hand old laptop will probably be cheaper and much faster)."

yes, i republish jaromils "zero dollar laptop" article. (jaromil = dyne.org)

aloniv

I am a translator!

Offline
Joined: 01/11/2011

i would debate this, slightly. those are definitely important at uni level. math is already taught in school, probably not terribly well compared to what would help computer science though. (depends on region like many things.)

The point of coding is usually implementing something efficiently so you will need at least to compare different ways of performing the same task. An example of this is comparing sorting algorithms such as bubble sort or quicksort.

Of course, if you only want to batch perform the same command on different files in a directory or perform a sequence of commands one after the other (like when compiling source code) then you just write a script and for this you do not need to understand algorithms as the algorithms themselves are already (hopefully) properly implemented in the commands you run.

freemedia
Offline
Joined: 09/14/2018

The point of coding is usually implementing something efficiently so you will need at least to compare different ways of performing the same task.

eventually, yes. and you can start working on examples as early as grade school, though i wouldnt expect complex math or algorithmic efficiency to be as effective a curriculum before the very basics of coding are introduced. theres a (greater) limitation to the number of things you can teach well before the basics are well understood.

most of the things i believe are easier to understand if coding is understood first do not require efficient implementations-- only a basic understanding of implementations. an example is the concept of online fingerprinting. it is completely unintuitive for anyone but those with a strong math inclination (i suck at math, and even those who dont didnt gain an intuition about this matter unless they were above averate in statistics, which im not great with either) to appreciate that its not whether or not some information is "personally identifying" but just how few variables (variables are far more interesting in coding than math imo) are required before they mount/multiply/combine to narrow identification to a single person.

coding can be used to teach math in ways that are far more comfortable, is another thing im suggestion. we could bring numeracy levels up at the same time, rather than say "well you cant teach coding until algorithms are understood" (my wording-- not trying to put that on you.)

"An example of this is comparing sorting algorithms such as bubble sort or quicksort."

i did that, but honestly i have gained nothing personally from comparing sort implementations. im not saying that no one would. i dont disagree that focusing algorithms will make coders into better coders, we agree on that.

"Of course, if you only want to batch perform the same command on different files in a directory or perform a sequence of commands one after the other (like when compiling source code) then you just write a script and for this you do not need to understand algorithms as the algorithms themselves are already (hopefully) properly implemented in the commands you run."

pretty much the line of thinking im following in this context, yes. my goal isnt to make everyone into a good coder, but to find the shortest route to basic computer literacy (which is greatly lacking), not computer "expertise" that i think would result from what you were talking about. but touching on algorithms at least is something i would find easy to include among the "basics." just not the most basic of the basics.