mazelife
* "Big ball of mud" design [0]: No thought given to how the software should be architected or what the entities that comprise the design space of the problem are and how they fit together. The symptoms of this lack of thinking are obvious: multi-thousand-line swiss-army-knife functions, blocks of code repeated in dozens of places with minor variations, and a total lack of composability of any components. This kind of software design (or lack of design, really) ends up causing a serious hit to productivity because it's often useless outside of the narrow problem it was written to solve and because it's exceedingly hard to maintain or add new features to.
* Lack of tests: some of this is that the scientist-turned-programmer doesn't want to "waste time" writing tests, but more often it's that they don't know _how_ to write good tests. Or they have designed the code in such a way (see above) that it's really hard to test. In any case--unsurprisingly--their code tends to be buggy.
* Lack of familiarity with common data structures and algorithms: this often results in overly-complicated brute-force solutions to problems being used when they needn't have and in sub-par performance.
This quote from the author stood out to me:
> I claim to have repented, mostly. I try rather hard to keep things boringly simple.
...because it's really odd to me. Writing code that is as simple as it can be is precisely what good programmers do! But in order to get to the simplest possible solution to a non-trivial problem you need to think hard about the design of the code and ensure that the abstractions you implement are the right ones for the problem space. Following the "unix philosophy" of building small, simple components that each do one thing well but are highly composable is undoubtedly the more "boringly simple" approach in terms of the final result, but it's a harder to do (in the sense that it may take more though and more experience) than diving into the problem without thinking and cranking out a big ball of mud. Similarly reaching for the correct data structure or algorithm often results in a massively simpler solution to your problem, but you have to know about it or be willing to research the problem a bit to find it.
The author did at least try to support his thesis with examples of "bad things software engineers do", but a lot of them seem like things that--in almost every organization I've worked at in the last ten years--would definitely be looked down on/would not pass code review. Or are things ("A forest of near-identical names along the lines of DriverController, ControllerManager, DriverManager, ManagerController, controlDriver") that are narrowly tailored to a specific language at a specific window in time.
> they care too much about the quality of their work and not enough about getting shit done.
I think the appearance of "I'm just getting shit done" is often a superficial one, because it doesn't factor in the real costs: other scientists and engineers can't use their solutions because they're not designed in a way that makes them work in any other setting than the narrow one they were solving for. Or other scientists and engineers have trouble using the person's solutions because they are hard to understand and badly-documented. Or other scientists and engineers spend time going back and fixing the person's solutions later because they are buggy or slow. The mindset of "let's just get shit done and crank this out as fast as we can" might be fine in a research setting where, once you've solved the problem, you can abandon it and move on to the next thing. But in a commercial setting (i.e. at a company that builds and maintains software critical for the organization to function) this mindset often starts to impose greater and greater maintenance costs over time.
[0] https://en.wikipedia.org/wiki/Anti-pattern#Big_ball_of_mud
I guess the key word is easily read. That score looks perfectly readable to me, although modern musicians might find the spacing somewhat cramped
This seems to me a key piece of the problem. Rises in tuition have massively out-paced inflation while salaries for tenured professors have not seen anything even close to that kind of growth in the same time period. In fact most institutions actually employ fewer full-time faculty than they did 20 or 30 years ago. The answer to the question "where is all this money going?" doesn't have a mono-causal explanation, but an ever-expanding self-perpetuating bureaucracy is a significant factor. And it's not just academia; I've heard similar concerns from physician-acquaintances about healthcare. The astonishing growth of middle and executive managers at Johns Hopkins has been an ongoing topic of discussion with department-chair friend of mine for years.
I think we've barely begun to reckon with the costs the MBA-ification of major institutions has had on the overall welfare of the US public.
They are quite delicate and my understanding is that almost all the exports from there end up in Japan. I've certainly never been able to find them on either coast of the US. They've somewhat spoiled me for mangoes now as everything you can get here is rather insipid by contrast.
> I'm reticent to mention specific engraving problems for fear that a neophyte will take my 10 seconds of examples as a complete set
I could not agree more. Correctly engraving music is hard! If someone wants to get a sense of all the things that a professional-grade tool would need to handle, Gardner Read's "Music Notation: A Manual of Modern Practice" is kind of the gold standard here. 453 pages that solely cover how to correctly notate music. I've been doing this for years and I still consult it fairly regularly.
Does anyone have any recommendations for a _real_ alternative they've used?* I took a look at MuseScore a couple of years ago and the impression I got was that it was fine for casual usage and for producing fairly simple scores, but lacked a lot of features. (I found that to be the case LillyPond as well.) Dorico looks more promising, but I'm curious what people who've used it heavily think.
I didn't even know that Finale was still around, but that was the first notation software I learned. Ironic that the reason Sibelius was able to trounce Finale in the marketplace so many years ago was mainly because the UI was so much easier to use and more intuitive. And now it's succumbed to the same problems.
*Features I'd like to see: parts generation, graphical score options, midi-based entry, and something that offers good default engraving behavior out-of-the-box but also lets you tweak everything to your liking. I typically sketch things out on on paper first, so I care less about "composition features" and more about being able to produce scores that are correct and that allow me to notate everything I would want.
https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3767097
Give it a read, maybe it will change your mind. Organizations like BLM were formed to organize concerted protest and political pressure at a community-wide level. That is to say, it’s a direct result of people doing what you suggest they do: “people should care about what they do with themselves, their family, and their community first.”
> In the massive global network of manufacturers, distributors, sellers, and resellers, it can be nearly impossible to tell who’s actually responsible for getting any given product into your living room.
...because it completely diffuses any sense of responsibility. It's not that "it can be impossible to tell who’s actually responsible." It's that this global network was deliberately designed to make it impossible to hold anyone accountable; as far as Amazon's concerned, that's a feature, not a bug.
Agree 100% on this. The incentives in a fee-for-service world are just so badly misaligned with the goals of functional healthcare system.
> Even the value based programs that CMS has implemented are really fee for service with a look back and adjustments to payments made based on savings that were encountered.
So CMS is acutely aware that merit-based adjustments on top of a fee-for-service model is an incremental improvement (and a very modest increment at that). So within the Medicare's Quality Payments Program, there is MIPS (Merit-based Incentive Payment System) which is exactly what you describe and where most providers default to right now. But there are also several APMs (Alternative Payment Models) that providers can elect to participate in, some of which have full or partially-capitated payment mechanisms where there is a fixed fee per beneficiary, rather than the fee-for-service model. Everything I've heard from CMS suggests that APMs are the future and fee-for-service needs to go away. That's not going to happen over night but MIPS is the narrow end of the wedge to get us there.
I think the issue that the author is raising is that in the not-so-distant past, these jobs did pay well. They weren't wildly lucrative, but one could live comfortably as an academic. At some point though things started to change. College costs have massively outpaced inflation in the last two decades [0] and yet with all this extra money sloshing around in the system, salaries for tenured professors have not seen anything even close to that kind of growth in the same time period [1]. In fact most institutions actually employ fewer full-time faculty than they did 20 or 30 years ago, shifting more and more to part-timers and adjuncts [3].
There are a lot of people in this thread saying "it's just supply and demand!" and that's part of the story, but it's not the whole story. Conscious choices were made by university administrators, trustees, and boards to hollow-out and undercut the professorial class, even as they have massively expanded their own bureaucratic and administrative class, gone on building sprees, and spent lavishly on student amenities. I think it's fair for us to question the morality of this and to question whether the result of all this has been a net gain or loss for the cause of higher education.
> You chose to study medieval [sic] literature.
That kind of attitude towards the humanities and academia in general is distressing to me, but all too common these days. I think it's also a bit shortsighted as what's happening to academics is part of a larger hollowing-out of the middle class in this country; hardly something to be celebrated. Today it's college professors, but it's not at all unlikely that in a decade or two people will be saying similar things about people who "chose" to study software engineering.
[0] http://www.bloomberg.com/news/articles/2014-11-13/college-tu...
[1] http://nces.ed.gov/programs/digest/d13/tables/dt13_316.10.as...
[2] http://nces.ed.gov/programs/digest/d13/tables/dt13_315.10.as...
Digitization of health data has increased massively since 93' of course, but the landscape is still completely Balkanized and there is a growing body of clinicians who believe healthcare IT is actively making healthcare worse.[1] Put another way, the idea of a complete, centralized, useful medical medical history being available for everyone in the US still seems like a pipe dream. Interesting discussion to be had about how, in this particular industry, progress has been so slow...
[1]https://www.newyorker.com/magazine/2018/11/12/why-doctors-ha... and https://www.nytimes.com/interactive/2018/05/16/magazine/heal... for example
"Of the well-known composers of the 19th century, Fryderyk Chopin is the only one whose complete works continue to be played regularly"
...is incorrect. There's not a single composer whose "complete works" get regularly played, and even given Chopin's fairly small catalog (for a major 19th century composer) there are plenty of marginal works that rarely get performed. Considering his long and respected career as a music critic and author, I'm kind of surprised to see Terry Teachout's byline on this.
I Quit Google Over Its Censored Chinese Search Engine
The code itself is, of course, valuable for helping us to evaluate, but honestly some of the best signals we get come from the open-ended discussion that results from us talking with the candidate about their code when they are done: "imagine this file you're processing is 100TB instead of 100kb? Would you change anything?" or "What if this clean data you've been given to work with had this or that issue, what might you do?"
My only point of disagreement with this article is that it seems to assume that a homework problem has to be really time-consuming or burdensome, but there's no reason that has to be the case. To me employers who are asking candidates to spend hours or days on homework are of a piece with ones who ask people to solve tricky, unrepresentative computer science problems on a whiteboard: they reveal that they don't really know how to interview people and they don't have much respect for their candidates.
“What I saw was a number of bad laws called into question and ultimately removed by acts of courage and wise restraint on the part of the victims of those laws.”
…as though the white-supremacist, apartheid state that existed in the south at the time was nothing more than a few pesky laws that had all gotten cleared up by 1968, I have to seriously question that person’s powers of observation. It’s such an almost perverse misunderstanding of history that it has be deliberate, right? Any time someone starts out with a premise like, “the civil rights movement, like a spiritual oil spill, left a vast residue of guilt in its wake,” and then proceeds from there, you know it’s going to be a long read.
Sure, there’s an attempt to graft some sort of philosophical backbone to the piece through this (nonsensical) distinction he makes between “appeal[s] to conscience” and ”appeal[s] to guilt,” but it’s confusingly handled and doesn’t go anywhere. Mainly what stands out for me is the relentless lack of empathy that runs throughout this article, which is really more in the way of a rant the a serious argument, anyway.
I think there’s a philosophical and moral argument to be had about victimhood, and the problematic nature of it, but you need to argue honestly. One sentence after he glibly absolves the government of responsibility for the AIDS crisis, he says, “whereas once the idea was to shake off victimhood through courage and organization, nowadays the idea seems to be to enjoy it for its emotional effects,” as though ACT UP never existed. In other words, you can make an argument, but you don’t get to rewrite or erase history that’s inconvenient to your thesis, which he does consistently. It’s disappointing this made it to the front page of HN, it’s a pretty unpleasant, dishonest piece of writing.