@alyx @mona I use a Linux laptop at home and at work. I've consciously exited the entire MS stack because it's such an aggravation to deal with as an expert user. That's not an uncommon path for software developers - many stop over at the Apple issued BSD, but they have exciting times with the BSD + desktop integration.

@pnathan @alyx@icosahedron.website I should perhaps interject that Alyx (and myself, since we are basically two aspects of one personality) are not computer people by training or temperament. Our education is in the physical sciences (chiefly chemistry) and in the liberal arts (I am a classicist, among other things, with a B.A. in the subject) but we feel driven to learn more of computer programming for creative reasons.

@mona @alyx ::blink:: ah, a multiple? Ak.

I'm very familiar with chemistry (and science) temperaments towards programming.

(and responding to your followup)

"there is no royal road for programming".

There's a sinusoidal difficulty curve.

imagine asking a chemist to give you the run of the lab after day 1 or 2... "I just want to get stuff done", you say.

It's been debated in CS education for 40+ years now. No answer has been found.

Follow

@pnathan @alyx@icosahedron.website

<<imagine asking a chemist to give you the run of the lab after day 1 or 2... "I just want to get stuff done", you say.>>

I could probably pull that off with a sufficiently persuasive display of ability ;=3

But seriously, while I appreciate the analogy, it seems a little faulty to me because the difficulties of chemistry and working with chemical equipment are almost entirely due to its being a _physical_ science. CS isn't a physical science

@mona @alyx all models are wrong, some are useful.

The basic problem is that computer software systems are built by many people, over a long period of time, with conflicting interests and expectations.

Learning to program effectively is attaining a gestalt of the quirks of the software system and then your hand is not seen to move, but your software appears.

bopsecrets.org/gateway/passage I am always drawn to this passage.

@alyx @mona I have an *incredibly* hard time expressing the way of programming and why the complexity is there and never seems to go away. Consume-er software covers it up and limits the user or presents it in illogical fashions. Creator software expresses the complexity, often trying to shape it in a way that easily fits the mind of the thinkers involved.

(also fwiw I'm relatively comfortable with talking with a multiple, for reasons I don't discuss online)

@mona @alyx cycling back up the chain of meta, Linux is written and tuned around the needs of individual sysadmins and programmers, and has a strong tinkerer heritage. So people that *do* that sort of thing like Linux, because it suits their needs.

Windows is tuned around the needs of large corporations with professional sysadmins managing highly complex enterprise requirements.

OSX is a chimera, merged from BSD Unix and NeXT, trying to cross over.

@alyx @mona (up the chain again) The key advantage/disadvantage of f/oss is that its open to tinkerers tinkering, for free, while they learn more about the system. Then they often have other responsibilities or other interests, so it doesn't get organized in a final fashion: the programmers are the users are the programmers.

Projects like Krita which don't assume that are often SUPER HARD to keep alive. Because the users aren't programmers and can't help

@mona @alyx I don't mean, specifically, to justify the state of the world as an ideal. The status quo is sort of a local minimum forged from the interlocking interests and desires of those involved.

But, when someone wants to learn programming: f/oss is gratis and it's tuned towards programming.

Some systems are more beginner friendly than others. The most beginner friendly systems today are Ruby, Python, and Javascript. They have the communities for it.

@alyx @mona The problem with beginner oriented systems - and this is inherent in learning - is that they limit the knowledge and complexity of the matter. And a lot of programming is not much more than absorbing information and building networks around it, then suddenly writing the one line of code based upon hours of sponging information and experimenting.

All beginner systems that I'm familiar with limit in some fashion. So the question often becomes...

@mona @alyx ... how do you structure your ramp into getting stuff done in a fashion that is sufficiently interesting to keep you around, sufficiently complex to do something, but simple enough not to drown the learner.

And that's a combo of task + technology.

I started writing a summary doc for interns of the systems at work, and I paused after 3 pages of dense text. It's a firehose of information! So much is needed to be productive in a company. >.<

@alyx @mona (volume of text is entirely possibly related to my own prolixness, tbh).

Anyway, I hope those thoughts give you some hope and something to think about. Always happy to discuss more.

@pnathan @alyx@icosahedron.website There's a lot to chew on in this series of posts...for me, any analogy comparing computer programming to any scientific or engineering discipline that I know is never going to quite work because compared to (say) chemistry, CS is at a level of development roughly compared to 1850. Nobody's even agreed on basic elements of how programs should be structured.

@alyx@icosahedron.website @pnathan There's been considerable work done at the low level. There's general agreement on how numbers and strings should be represented in computing, and on a certain subset of higher-order structures--yet _no_ standardization, weirdly, on the basic higher-order structures of mathematics. there's no standard matrix representation (I mean a mathematical matrix, not a 2x2 array), no standard polynomial representation...it's a complete mess.

@pnathan @alyx@icosahedron.website Software engineers are running around trying to build buildings when they haven't even agreed on standards for the shapes of rivets and girders, much less how buildings should be designed with those elements. Objects? functions? both? neither? again...it's a complete mess.

@alyx@icosahedron.website @pnathan Chemistry and other scientific disciplines didn't descend into this free-for-all, I think paradoxically because science used to a sort of club for educated men of leisure who were free to work away from commercial pressures. Computer science, on the other hand, almost immediately got corrupted by commerce. Any bad idea can get millions in funding these days if you sucker the right venture capitalist. If only chemists were so lucky!

@pnathan @alyx@icosahedron.website I'm intimidated by this mêlée that Alyx is nevertheless proposing to enter because there are so many things she wants to do on computers so very, very badly. But I am an old horse who knows chemistry and classics, both ancient disciplines that have well-defined structure forced on them (by tradition or by the laws of the physical Universe). In CS I'm asked to take things as they are, shaped by commerce and chance. That's a bit tricky for me.

@mona @alyx I have an intern this summer. This intern is someone who is hardworking, relatively competent, middle of college, got serious about programming when they got to college. No complaints. But.

Lots of programmers my age, when we got to college, we'd been programming 5 years already, staying up late rewiring our heads to play with our friend the computer.

@alyx @mona Adapting to the new kind of person is.... not easy. I am still passionate about my friend the computer, and I am totally happy to buy a new raspberry pi and set it up for things, because it's fun, I get a new robot friend to play with.

Thinking about giving my intern a sponge on their last day. "Congratulations, human, you have sponged well in a world you weren't ready for, created by friends of robots. May you remember your summer well".

@pnathan @alyx@icosahedron.website Whereas I am forty-two years old, and while I did grow up with computers, I grew up with Commodores running BASIC. No tinkering, no fiddling--you just _used_ the thing. I've never succeeded in getting used to the modern world, any more than my father who never succeeded in learning much beyond his belovéd Fortran (he was a biologist who ended up programming simulations of fish populations.)

@mona @alyx Right, but at that exact same time (just for historical remarks), sysadmins were building fleets of Unix computers, highly complicated supercomputers, the Lisp Machines were en vogue. And what's happened is that level of complexity / power / capability / confusion has been pushed to the ordinary desktop, along with the usual years of cruft.

@alyx @mona There's a very good argument IMO that a well crafted Raspberry Pi with a carefully designed suite of prebaked Linux software could fill the "canned power user" slot pretty well today.

Quite seriously, from how you're approaching the problem, I'd suggest looking very hard at Python. It would align with your desires, I think. pygame.org/
matplotlib.org/
jupyter.org/index.html / iPython.

And, Python is OK w/ Windows

@mona @alyx yah, there's a weird thing where if you're rich enough (or tenured enough) to *not care* about practical things, evaluation, results, anything, you can do some pretty interesting lines of research all day every day, when the whim takes you. which is a pretty epic level of privilege. but it... does get results after enough eccentrics get through with it.

@pnathan @alyx@icosahedron.website *smiles* that is not _exactly_ what I mean. Gentlemen of leisure the scientists were, but they were still _scientists_ and therefore eminently practical. What's happened with computer programming is that all the eccentric ideas get at least some degree of _immediate_ currency either because they succeed in getting funded or because they succeed in attracting a cult following.

@alyx@icosahedron.website @pnathan Imagine an organic chemistry in which Kekulé's benzene somehow coexisted with every other idea, good and bad, about how benzene's structure really was, and that's the world of computer programming.

@mona @alyx Soo... one person I know very well is a chemist, and another is a finish carpenter.

Programming/software engineering is *far* closer to a trade and a craft than a science, my opinion.

Takes something like a decade to be proficient professionally; tools are contentious, materials are contentious, the architects are pie in the sky dreamers, stuff is frequently jerry rigged to just "do the job".

@alyx @mona There is no standardized theory predicting behaviors; there are no formal models that technicians and engineers can use to develop and implement software. Existing formal methods are excruciatingly limited and shockingly expensive. (seL4 is a nice case in point, if you care to dig into it. a decade for a micro kernel, with multiple CS PhDs involved in developing the theory)

Sign in to participate in the conversation
Computer Fairies

Computer Fairies is a Mastodon instance that aims to be as queer, friendly and furry as possible. We welcome all kinds of computer fairies!