What most young programmers need to learn - <AUTHOR> http://joostdevblog.blogspot.com/2015/01/what-most-young-programmers-need-to.html

<comment><USER2> _> Code in comments [...] When asked applicants are usually well aware that commented-out-code is confusing, but somehow they almost always have it in their code._

To my experience this is a common symptom of not using a version control system. You change a line of code, but you want to be able to undo if it doesn't work, possiblay half an hour later when you changed other places of your code (so your editor's undo is of no use).

I also see this from people who are using VCS, but that's mostly because they are overcautious and/or have not really gotten "warm" with the VCS.

A final, very small percentage are familar with VCS and confident with their code, but leave that commented stuff in there accidentally. The usual cause it that they have not (yet) acquired the habit of reviewing the diff before committing.

<comment><USER3> I am guilty of commenting out code when I am working on a problem, but before committing I remove it unless it is the simple version of some function that I made way too complex in order to improve performance. I find it easier to understand later what the complex code is supposed to be doing if I have the simple implementation in the comments.

<comment><USER4> I suggest you move the simple version into a unit test case. Making sure the simple version and the complicated one have the same results.

Plus I like to add some perf test that shows the complicated version is faster than the simple one that I can rerun after major upgrades to the lower level system e.g. when upgrading from java 1.5 to 1.6 I could remove some complicated code because the simple one was then as fast due to an improved JIT.

<comment><USER3> Yes I also think this is what I should do to, unfortunately when I first wrote the code I spend most of my time working on I didn't write unit tests at the function level (all my tests are at the module level). I have been meaning to get around correcting this, but the task is now so huge I fear it would take me more than a year to write all the unit tests :(

<comment><USER4> IMHO every automated test helps.

Don't aim for 100% test coverage aim at using unit tests to develop faster and more efficiently and the test coverage stats will come automatically.

I personally need to improve my TDD, but I am quite happy with my test driven bug fixing approach. When working on a bug I first turn it into a JUnit or selenium test, and then fix the bug and make the test pass.

</comment></comment></comment></comment></comment><comment><USER5> What I've been surprised to learn after leaving school is how important it is for code to be stylistically sound: programmers should be as thoughtful about the structure, readability, and conventions of their code as professional writers are of their prose.

This was something that didn't dawn on me until reading Matz's philosophy of "programmer happiness" when designing Ruby. Code seems sterile, something that you just put into place in a logical manner until it works...in small class projects, you don't realize the mental toll it can be to read through a messy code base...But being unhappy about a monolithic, massive codeebase is easy...the problem is tha when working on small projects, you don't notice the mental tax of unclear code that can drain your happiness and productivity.

It took a long time of professional coding for me to realize how much thoughtful design of code could make me a happier coder, just like the adept use of language contributes to happier communication in all other areas of life

</comment><comment><USER6> I'm a junior programmer still so I'd like to share my thoughts regarding this post. I'd actually like to say that I've been aware of all these (code commenting, incorrect function names, etc.) and the thought of changing them is always "it takes up time" or "you don't know if it's worth the time." But I'm always asking my superior that specific question: "can I get rid of this?" Unfortunately, wherever I've worked, I haven't been working under very experienced people either so they've responded to me with the simple "uhhhh..." and given me no answers. In the end, I end up faulting into habiting into this article's main points.

<comment><USER7> Why do you ask for a permission?

If I am working on a task and code got a bit too messy for my liking, I'd simply refactor, it's simply part of the task. Working != complete. If something goes wrong, it will be easy to revert given it is committed in a sane way (i.e. not loads of unrelated work under one commit).

It's a bit different if you want to do major refactoring (taking multiple days). But with small ones, just do as you go ;)

<comment><USER8> As a junior programmer in the contracting world, I ask the same as it is also a business question. You do not want to create so much extra work in the process of refactoring that you wind up losing money or running out of time before creating what the client asked for. Asking the super (who is also tech savvy) allows him to worry about balancing the business with the needs of his code base.

<comment><USER9> I would submit that being a junior programmer in the contracting world is a nontrivial part of the problem. Contracting relies on a lot of really bad incentives that I personally suspect are largely antithetical to good practice.

</comment></comment></comment></comment><comment><USER10> I disagree with his last point. There was once a time when I was obsessive about not copying pasting code. Over time I eventually learned that sometimes it better to just copy+paste a code snippet a few places than being dogmatic by making sure that nothing is ever duplicated. My rul of thumb is that if there is branching then don't copy, if there is no branching, then you can copy+paste it.

This snippet should only live in one place:

        if (something) {
            for (blah blah) {
                something_else();
            }
            do_something();
        }

on the other hand, this code can be copy+pasted as much as you like:

        do_something();
        do_another_thing();
        another_call();

some dogmatic programmers will want to place those last three lines of code into a separate function and instead copy+paste that. But I've found that doing that sometimes makes the code more harder to read.

<comment><USER11> what i understood as the author's issue with copy paste was the knowledge that changes are expected

if you copy:

        do_something();
        do_another_thing();
        another_call();

a few times in your codebase, but decide that you want to alter that a bit:

        do_something();
        perform_new_feature();
        do_another_thing();
        another_call();

you can hurt yourself by forgetting that that alteration needed to be done to each instance

just easy to maintain if you do this:

        function dodoan() {
          do_something();
          do_another_thing();
          another_call();
        }

then copy paste dodoan() as many times as you want

though i do agree all rules have their exceptions and should be handled in such a way that allows for future alterations stead some obsessive mindless adherence

<comment><USER12> Yes in that case it's a win, but it becomes an anti pattern when you _sometimes_ want to perform_new_feature() and sometimes you don't. I've seen it happen where you end up with many functions like:

      def a_and_b_and_c() {...}
      def a_and_b_and_c_error_checked_internally() {...}
      def a_and_new_and_b_and_c {...}
      def a_and_new_and_b_and_c_error_checked_internally() {...}
      def a2_and_b_and_c

And so on. Basically you are just putting a memorization task on calling the names rather than using the underlying bits well. Learning the balances around this is one of those "craft" bits of programming.

<comment><USER13> This is a great discussion! I've always thought that after the basic "how do I even do this at all?" concepts of programming, the next most important concept to learn how to wield and to perpetually sharpen is the "don't repeat yourself" principle. Huge swaths of software engineering literature is dedicated (explicitly or implicitly) to when and when not to apply that principle.

Your parent's comment addresses by far the best argument _for_ the principle, which is that any time something is likely to change in a snippet, copy- pasting should be undertaken rarely and thoughtfully. With the recognition that nearly any given snippet is likely to change in some way, we can conclude that nearly any copy-paste is "bad".

Your comment is then a great argument _against_ the thoughtless application of the principle, recognizing that yes, granted, nearly any snippet will change, but the required changes may well not be uniform.

Personally, I think it still makes sense to pull out shared behavior for the period of time in which it is shared. During that period of time, all you have is a guess that the code might eventually diverge. If there comes a point in time when you do want the code to diverge, it is straightforward to copy-paste it back out, if branching or creating a similar method with the differences is a worse option. On the flip side, if you haven't pulled out the shared behavior, and you discover that you want to change it everywhere in the same way, it is far less straightforward to go find all those places, or even be aware that you need to do so.

Another point is naming by purpose rather than behavior. To continue your example, it makes sense to ask _why_ one method checks internally and the other externally? What different purposes do the different checking styles have? If there are good answers to questions like that, the methods can be named better, and it becomes less about memorizing name than understanding when to use which.

Of course none of this is at all black and white, and I think you're spot on that this is one of those _craft_ bits, and among the most important!

<comment><USER12> One thing to keep in mind here... some of those "you can't predict" things are utterly predictable in light of experience. That part can't be faked to well, there aren't a good set of rules about it. But experience is a good teacher, and you do eventually learn to be reasonably accurate about when to do C+P vs DRY, even if you can't explain the _why_ of it.

I think it comes down to this - when I first learned to code, it was hard enough to keep track of a couple different functions. As experience came, what I could track and reason about and keep in my mental model grew, so now that I've got some experience I can see more of how the whole system will grow and interact. I'm not really smarter per se, but rather I just have more practice as putting it all together.

<comment><USER13> Couldn't agree more. It's definitely a function of the extent to which you're guessing, which is a function of your experience solving very similar problems.

I do think we (programmers? people?) have a tendency to avoid inspecting the experience we already have. We thought hard about some pattern a few times and came up with some instincts based on that experience, which is great, but we should make sure to double-check those instincts from time to time.

</comment></comment></comment></comment></comment></comment><comment><USER14> Inexperienced programmers sometimes can have a dysfunctional, almost worshipful, relationship with complexity. They're entering an industry riddled with complexity, most of it way over their heads, and they're in awe. So when they write complicated code themselves, they almost take it as a point of pride. _I wrote this massive, tangled 300-line function that actually works, by god._

<comment><USER15> Right, the best code strives to be dead simple, almost boring. It's not like poetry; it's not more fun when it has hidden obfuscated meaning behind it.

</comment></comment><comment><USER16> From someone who started as a developer only 2 years ago, I found the stuff about how to properly design classes to be the hardest part. There is not enough touted articles on it on the internet.

For example, how would a developer know to break [insert functionality] into a separate method? It is not always obvious to junior developers to break a method into smaller chunks, especially when they understand every line of code written. They usually recognize the problem once it is pointed out, but it doesn't often register beforehand.

<comment><USER17> A common approach is to describe the functionality aloud. If your description includes the word 'and', then there _may_ be a problem ("this method increments the foo counter, and makes the tea").

<comment><USER18> I don't think there's anything wrong with any method that also makes me tea :P

</comment></comment></comment><comment><USER19> I'm just not sure you can teach these things to a junior programmer, and actually expect to see results. A baby takes 9 months to develop, you can't expect to see finger nails develop until they've developed fingers.

As a junior, you're probably spending most of your time (and a lot of it at that) just trying to make the dang code work. Making sure it's written in a way that other people can maintain it etc is secondary, because who cares if you can maintain it if it never even worked in the first place!

When working with a new junior, It's important to expose them to existing (good!) as well as bad code bases. At the same time, let them write new code on things that aren't super business critical. You have to accept that it's going to take them some time to learn, and you should just work with them until they don't have to think about breathing any more.

<comment><USER20> Yes, new programmers spend a lot of time just getting things to work.

But, from years of managing summer interns, the biggest surprise to new programmers is the amount of non-code stuff that needs to be done alongside actual coding. Doc, comments, peer reviews (and the associated rework). The sooner they learn this is part of the job, the sooner they'll fit into the team's workflow and contribute at a high level.

<comment><USER19> Fair enough, that's very true.

</comment></comment></comment><comment><USER21> The biggest challenges for me as an intern were reading and understanding someone else's code (Python) and understanding the problem domain quickly and sufficiently. It's hard to judge how deeply you need to understand something before you program around its concepts. Of course ideally you're an expert, but when you're potentially only using something for the summer it makes sense to somehow seek an understanding of the salient concepts without getting overwhelmed by details even though it's sometimes the little caveats that can make a tremendous positive or negative difference in your design depending on your knowledge of them.

And I'll admit that self-discipline was sometimes an issue. When you take responsibility for a complex project when young and inexperienced, you feel a lot of pressure to perform and get it working so you can tackle the next task. Maybe us noobs aren't used to this sort of pressure?

I had the chance to do a code review with a few of the top engineers in the company, and it was tremendously helpful. We focused on a small part of the code that was responsible for a performance bottleneck, and I didn't realize how sloppy some of my code was until we walked through the function. There were really silly redundant things that I thought I would never have written in my right mind. I was trying to optimize a function where some of the simplest code was redundant and actually contributing a bit to the performance problem. They were nice about it and said it was not unusual and that code reviews are great for spotting such things.

</comment><comment><USER22> Well-organised code with sensible, correct naming of things will save you _years_ of development time during your career.

<comment><USER23> True story. I could not tolerate most programming without consistent conventions to guide me. Pretty much every programming language has had a meta-language of convention that went with it, to support learning and readability.

</comment></comment><comment><USER24> One thing that should be mentioned here is that the amount of time that one has to learn to write code really depends on the company one works at. If you work at smaller firms, its much harder to justify putting in extra time beyond just making it work (although this bites you in the long term by making the codebase uglier). In the larger firms, you have much more time to do code reviews and refactoring.

</comment><comment><USER25> I've stopped worrying about duplicating code that is less than one line long, and I'm a happier person as a result. It's a slippery slope that eventually you stop writing code that actually does anything and are just writing layers of indirection. Similarly, not all string values need to be named constants, because not all string values are intended to be changed.

(edited)

</comment><comment><USER26> The insight that "knowledge" is not the the problem, but "self discipline" is an interesting one.

I made similar observations and came up with a list of "coding commandments": [https://larsxschneider.github.io/2013/08/25/ten- commandments...](https://larsxschneider.github.io/2013/08/25/ten- commandments/)

</comment><comment><USER27> I have committed all of these mistakes at one time or the other and I am quite sure that I slip from time to time esp with regards to #1. But one thing that I frequently do is read my own code after writing a certain amount. It may be after writing a module or after re factoring it or when I don't feel like writing any more. And reading my own code helps me uncover a lot of inconsistencies in it.

I think I started reading after @edw519 said something like he reads his code everyday before going to sleep. While during writing my focus is on making the thing work when I am reading I am more critical of my code. Not as good as having a review but still helpful.

Also I think reading code of other programmers is a good exercise. Reading different styles of books is already recommended to writers and I think that programmers can extract same benefit by reading code of different programmers. If nothing else at least it will develop your debugging abilities.

<comment><USER28> Well said! A similar thing I do is to read the diff of what I've written so far before making a pull request, as if I were a reviewer. I've caught many mistakes and "TODO" comments that way.

</comment></comment><comment><USER29> Young programmers should first learn to _READ_ and understand code.

<comment><USER30> You mean getting used to other programmers' idiosyncrasies and deciphering them?

You will dissuade them from ever taking up this profession with that attitude.

I was attracted to this because of the opportunity to create things, not because other people wrote stuff and now I have to read it.

<comment><USER31> I disagree thats what the GP meant. Too often people just hack away without truly understanding what they are doing. Then you end up with trying a million things until finding something that works and not knowing why it works. If you take a few minutes to read the documentation and understanding why you are doing something rather than "I tried it and it worked" you will become a better programmer.

<comment><USER28> The Perl Cookbook was one of the best technical books I read in my early career, specifically because it said, "No, look, there are about four ways to do this right, and here are their tradeoffs" for multiple problems. Articulating that concept, and the ability to look at alternative implementations that each might be good, helped me a lot.

</comment></comment></comment></comment><comment><USER32> The following are a few of the most common issues that I see in code written by young programmers. These are also issues that experienced developers can help new developers fix by

1\. Lack of knowledge of the business domain leading to an inability to understand the high-level, conceptual view of a system

2\. Poorly named variables

3\. Poor code organization

4\. Loose cohesion in objects and functions which in part flows from bad naming

IME, these issues can be fixed on an accelerated timetable when experienced developers help mentor younger ones.

<comment><USER33> Poor database schema design. If you get this wrong it makes your life a lot more difficult and it is harder to fix. These bad models often outlive the applications themselves. You see these around years after they were made.

<comment><USER34> I deal with this every single day. The errors made in poor schema propagate through the rest of the application.

To use a metaphor: It doesn't matter how delicious of an apple you have (the data), what truck you use to transport it (the back-end code), or how nice of a store display you put up (the front-end code), if you don't store them properly along the way (the schema).

</comment></comment></comment><comment><USER35> Scheme.

As still the best "small" language to teach fundamental principles (everything is a first-class value, symbols are references to values - naming, procedure composition and nesting as the basic building block, ADTs, immutability of the data, evaluation strategies - eager and lazy, and what is meant by "mostly functional language", etc.) and shapes of data structures (list, three, table).

It will pay back with any "stack" or a "framework".

Haskell.

To learn that static typing done right (type inference) is a very clever feature, but it catches only simple errors (it cannot catch flawed logic or wrong abstractions), so it is not a silver bullet, and, perhaps, to realize why "extremes", like "pure-functionality" or "lazy language" are rather unnecessary complications than big gains. And that _monads_ are mere accidental, awkward ADT to ensure an order of evaluation in a "lazy language", where it is undefined by definition.

After that one would find everything in industry is rather easy and boring and develop a healthy aversion to Java and other "packers" stuff.

<comment><USER36> Disagree about monads. What you mean is that _IO actions_ are an awkward way to ensure evaluation order in a lazy language. In Haskell, IO actions form a monad, but this is only reasonable because so many other things form a monad that the language has special support for them.

Monads are great in that disparate things like lists, sets, IO, control flow, state, optional values, and even functions are all instances of a single ADT which is useful enough that one can write reasonable code abstracted over it, and Haskell provides the mechanisms to do so.

<comment><USER35> > one can write reasonable code abstracted over it

Don't you think that at least in a strict language, this would be rather over- abstraction or abstracting for the sake of abstraction?

<comment><USER36> Not really. I think you're confusing Haskell's purity, which makes it necessary to write monadic code, with its monad syntax, which makes it easy.

<comment><USER35> I think I am not. Monads has nothing to do with "purity" \- Erlang is a pure- functional language but there are no monads.

Monad make sense only within a language with Normal (instead of Applicative) order of evaluation, to ensure that one computation (or action) "finishes" (being reduced to a value) before another ( _> >=_ and _> >_). _return_ is for the type-checker.

<comment><USER36> That's a very specific way of thinking about monads. Sure, they enforce ordering in a language where you may want to do that. But they're also any ADT equipped with a generalized map (that we happen to call >>= or bind) that commutes nicely. I don't think about my list operations using bind as about ordering computation; I think about them as transforming data in a way that is a little harder to do with more traditional list operations. Same with set, maybe, etc. The ordering feature of monads is more about IO actions than it is about monads in themselves.

All I'm saying is that monads are a useful abstraction regardless of whether or not they are used to encapsulate effects. I use Traversables, which have a bind operation, all the time in Scala, and it is an effectful language.

</comment></comment></comment></comment></comment></comment><comment><USER18> Something I've learned over the years:

"A little discipline now will save a lot of discipline later."

This goes for anyone in any walk of life and in any profession.

</comment><comment><USER37> It's hard to emphasize enough how important naming is. The author accurately describes the connection between class bloat and imprecise naming.

One tip I'd offer is: You are not inventing something by naming it, you are describing how it's used (based on its behavior).

If it's hard to name, one possibility is that it is not designed properly or that it's doing too much.

</comment><comment><USER38> Expected to see a long list of algorithm design books, but was pleasantly surprised.

 _" In this case however it all still makes sense to be in one class, but the class simply grows too big."_ \- would be nice to see some examples, I bet anything can be split in a nice way.

<comment><USER39> In my case I see this when I treat a class as a namespace and fail to follow the single responsibility principle.

</comment></comment><comment><USER40> I'll add to the list:

\- The inability of younger pears to ask for help or otherwise design reviews before they write the code.

\- Super hero programming which most of the time boils down to the above and various forms of pseudo-optimisation that are difficult to read. E.g. messing with inheritance and directions: UpwardEngine --- inherits ---> DownwardEngine, instead of using a BaseEngine, because it's saves one class definition (and improve dispatch performance...)

Another advice I would give to young developpers, is that getting as much as possible bits written helps getting better. The thing is that reading code to refactor and debug given the chance to do it right is more difficult and more rewarding in terms of skills.

<comment><USER41> My opinion is that most of the bad habits of inexperienced programmers are just manifestations of more general youthful hubris and inexperience in the nuances and complexities of life.

I'll add to the list the most extreme form of 'not written here syndrome': 'I didn't write it syndrome'. The programmer sees themselves on missing out on the fun of solving a task by using a library (or reading the relevant framework docs). When experience teaches you that the real misery comes down the line when you need to support your hand-rolled physics engine lacking in tests...

</comment></comment><comment><USER42> How does one keep these things in practice in the reality of an over-committed software team with shifting priorities, difficulties interfacing with product management, and bad specifications/requirements that eventually result in significant scope creep? I often feel like I want to refactor code, but the cost of doing so is so high that it would slow me down to the point of missing a deadline. "It works" is usually as much as I have time for.

Maybe I'm just not a very good programmer...

<comment><USER43> Instead of trying to dedicate time specifically to refactor try to clean up classes as you come across them when fixing bugs or adding features.

Whenever I open a file, I try and take a quick glance to see if there's anything that could use refactoring before working on the actual issue (if it's either a particularly large file or one that hasn't been touched in years I'll check Sonar[1]).

[1] [http://www.sonarsource.com/](http://www.sonarsource.com/)

</comment></comment><comment><USER44> I agree that these are things programmers need to learn. I think analyzing code (as in debugging it, learning to read what someone else wrote and understand it), are equally important. I learned no debugging while getting my degree. (Or rather, I learned no debugging during school hours. I learned plenty working on my own projects during that time, though.) I see this with junior programmers we hire now, too. They sometimes don't even know what a debugger is!

</comment><comment><USER7> One I see regularly is not testing code or writing tests that are useless. To some extent, it's related to the mistakes mentioned in the post: messy code is hard to test.

</comment><comment><USER45> This list of bad behaviors isn't limited to 'young' programmers either. Which is really sad.

<comment><USER46> This. I see devs that have been programmers for 20 years and still can't name their methods properly. I see most of the things the article talks about daily.

</comment></comment><comment><USER47> The Clean Coder is a good read for starting programmers. It goes beyond code to what it takes to be a software professional.

[http://www.amazon.com/The-Clean-Coder-Professional- Programme...](http://www.amazon.com/The-Clean-Coder-Professional- Programmers/dp/0137081073)

<comment><USER48> As well as the extensively reviewed, recommended, and appraised "Code Complete" [0] by Steve McConnell

I'm working my way through it now (1+ year of professional experience) and it is a magnificent way to improve the quality of your code. I read it off and on, my goal is only 40 pages a week so that I'll make sure to find the time to do it (I'm doing a masters program and enjoy living in NYC too so setting huge goals doesn't work well for me).

Every time I crack it open, I find myself inspired to write better, clearer, and more concise code. Sometimes you just need a nudge to get back into doing things you already know you should be doing.

Finally, constantly learning, I think, is the best way to become a proficient, and then skillful professional software engineer. Many programmers become proficient and then level off. And that's good enough. But if you truly wanted to become one of the top 5% in your field you need to do something called deliberate practice. Reading 'Talent is Overrated' [1] really exposed me to the theory of constantly challenging yourself in order to grow. I really recommend it, I find myself trying to apply the theories to all areas of my life.

[0] - [http://www.amazon.com/Code-Complete-Practical-Handbook- Const...](http://www.amazon.com/Code-Complete-Practical-Handbook- Construction/dp/0735619670/ref=sr_1_1?s=books&ie=UTF8&qid=1420475290&sr=1-1&keywords=code+complete)

[1] - [http://www.amazon.com/Talent-Overrated-Separates-World- Class...](http://www.amazon.com/Talent-Overrated-Separates-World-Class- Performers/dp/1591842948/ref=sr_1_1?ie=UTF8&qid=1420477978&sr=8-1&keywords=Talent+is+Overrated)

</comment></comment><comment><USER49> So true. When I was a junior, code quality was the first thing I was taught, in the first week.

While the code worked reasonably well, there was no indentation, spacing, comments and variable names longer than one letter (perhaps because my first language was GW-BASIC).

<comment><USER50> That was often done with GWBASIC to fit the code into the small amount of memory.

Anoter trick was always to manualy unwind any loop counters if you had tp break out of a loop as the GWBASICS had a memory leak.

</comment></comment><comment><USER51> I keep hunting for such a post specifically for an iOS Developer.. to get beyond the initial frameworks and learn processes and flows

<comment><USER12> Everyone hates to do it, but a lot of this comes from reading code. The more code you read, the more you'll learn to understand idioms, styles, what makes things good and bad for understandability. Then you'll be able to do it yourself.

Another point to make: while every language has it's own idiom and style, there are also lots of "clean code" lessons that apply across languages, so guides about, e.g. python, translate somewhat into objective c.

<comment><USER52> It depends on what code you read, though. Think of PHP devs that learn from WordPress, for instance. It's not exactly setting a great example... (Though to their credit, WordPress improved somewhat in recent years.)

<comment><USER12> On the one hand, sure this makes some sense, on the other, it maybe means read more code... (i know this sounds sort of snarky). For example, if I wanted to write a novel, and had only read say, _A Tale of Two Cities_ I might thing I needed to include a bunch of broad social statements, and make my point through strongly contrasting scenes and juxtaposition.

If I had only read Dickens, I might think writing a novel entailed finding only strange characters, pointing out social flaws. Keeping a thematic style that was about confusing light and dark with the normal associations. And so on.

If I had only read Twilight, I wouldn't care much about dialog or character development. I wouldn't understand that there are things you can do thematically without exposition.

If however read Dickens, and Hemingway, and Tolkein and Dan Brown, and Stephanie Meyer and ... I would have a different understanding of what could go into a novel. I would be able to see where story arc intersects with bigger themes and character development. I would see different ways of structuring sentences, paragraphs, chapters, and even whole books.

None of this reading of course will make me a great author, writing does that, but a wide exposure will certainly help me understand where my writing is working vs where it isn't, it will help me understand how to structure things, help me shape my own work.

I consider the same to be true of code. The folks that only read WordPress code have a very limited understanding of possibilities. The folks who have read that, and rails and django, and jekyll and flask and ... will see a wide range of styles, ideas about structure, and so on.

An aside: Wordpress has some pretty ugly parts, but there are some ideas in there about structure that I have always liked. Particularly considering it was designed and written during the "explore and figure out what works" phase of web apps, when the industry didn't really have a "best practices for the web" that included lots of experience with what does and doesn't work.

</comment></comment></comment></comment><comment><USER53> To code in mIRC. At least that's what I did.</comment>


Why We're Probably in For a Long Recession - <AUTHOR> http://www.fivethirtyeight.com/2009/02/why-were-probably-in-for-long-recession.html <comment><USER3> One theory about this effect is called the Jobless Recovery - <http://en.wikipedia.org/wiki/Jobless_recovery>

Part of this theory is that recession forces companies to automate jobs in order to increase productivity. The net effect is that these genre of jobs are lost forever. So, instead of these jobs being replaced when the economy is expanding, the economy must wait for new jobs types to be created in order to experience employment growth. Subsequently, one could make the argument that business owners will experience faster growth than the employment rate.

Marshall Brain has an interesting speculative piece called 'Robotic Nation' regarding this theory: <http://marshallbrain.com/robotic-nation.htm>

<comment><USER4> Marshall's description of the coming problem is an interesting read, though I think he's definitely painting the worst possible picture to support his thesis.

What's more troubling to me than the problem he describes is his solution, which basically boils down to giving $25k / year to every citizen of the US from a "central fund" that we fund through:

\- advertising on everything from our money to our bridges

\- taxes, taxes, and more taxes. we tax everything from email to carpool lanes to "excess" salaries and profits

My favorite had to be his diatribe about executive pay:

 _When an executive makes $20 million per year, the money does not materialize out of thin air. It comes from consumers in the form of higher prices that they pay for everything that they purchase.

For an executive to make $20 million per year, a company has to overcharge consumers for the products they purchase from the company. It is not as though the $20 million paid to the executive appears out of thin air -- it comes from consumers in the form of higher prices. An "extreme income" tax simply takes that excess compensation and returns it back to consumers, where the money originally came from._

What an ignorant and simplistic view of our economic system. To me, this is clearly a case of the cure being much worse than the disease.

<comment><USER5> Marshall is considering an distant future economy where, essentially, _only_ executives get paid; all low-wage jobs have been automated away.

For such an economy to function, you'd need an "extreme income tax" to redistribute wealth. Otherwise, the executives would be making ultra-cheap products that no average person could buy, because he wouldn't have a salary to afford it.

<comment><USER4> This ignores basic supply and demand, though. If no one can buy them, why would they make them? And if Company A is pricing them way too high or unfairly, what's to stop Company B from offering the same thing at a lower price point?

<comment><USER6> That's sorta the problem. No one can buy them, so nobody makes them. End result is that the economy stops functioning, nobody builds anything, and a perma-depression occurs. This can't be a good thing...

As for what stops company B from competing - it's the cost of tooling up all these automation centers and the risk that after all that, your "prey" may itself get better and nobody will buy your product. Microsoft was massively profitable for the 1990s. Google was massively profitable for the 2000s. Why did nobody compete with them? Because if they did, Microsoft/Google would crush them like a bug.

<comment><USER7> Let's examine your thesis by replacing Google with Microsoft in your third last sentence.

Microsoft was massively profitable in the 90s. Why did nobody compete with them?

Oh wait, Google did.

Why did they not get crushed like a bug?

Because they innovated.

<comment><USER6> Google didn't compete with Microsoft. They took advantage of a shift in the environment that made Microsoft irrelevant.

Microsoft is still as dominant in the desktop app world as they ever were. It's just that nobody cares about desktop apps.

(And eventually, the same thing will happen to Google and nobody will care about webapps, but not yet...)

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Good to see Nate Silver produce interesting forecasting data post-election. I was afraid he would disappear into nothingness after his fifteen minutes of fame.

<comment><USER9> I can only second that, and add that it's good to see some competent forecasting. Far too often the media simply extend existing data into the future and call it a trend.

</comment></comment><comment><USER10> Nate has been writing about the economy lately and receiving criticism that he's just a "baseball" guy, but in fact he has a degree in economics from University of Chicago and so is as qualified (or even more so) than most pundits out there.

<http://en.wikipedia.org/wiki/Nate_Silver>

</comment><comment><USER11> I don't trust forecasts without standard errors. Using the smaller 1987 - <USER2> data implies less precise forecasts, so that last graph needs some caveats.

<comment><USER12> I don't trust macroeconomic forecasts _at all_ , however I think this article contains an interesting and valuable hypothesis.

</comment></comment><comment><USER13> Long term trends in macroeconomic indicators are not the estimates that can be used in these exceptional times. Moreover, the author is talking about median values of change, there could have been much bigger numbers at the tail ends, and all it takes (mathematically at least) is couple of big numbers to zoom the economic closer to its state few years back.

</comment><comment><USER14> I have created reminders in my PIM to check this post again in late June of this year and May of next year. It's fun to speculate and debate this, but I'll be extra interested to check back on this and see which, if either, of the models proves to be more accurate.

What is lacking in a lot of these macro-economic discussions is the presentation of evidence that any of them are correct or incorrect based on past historical events. It may be out there, and I just don't hear people talk about it. Leads would be awesome. My fear is that it's all so complex you can't get beyond loose correlation. If we have a rebound this year or next, even if it's the stimulus, how will we know? Could it have been that almost all of the money was a complete waste, but the green industry investments hit out of the park? I'm really out of my area here :-)

</comment><comment><USER15> "Forecasting" got us into this mess. By thinking we can predict the future by looking at the past we have taken way too much risk and are paying the price right now.

Now people look at past events to "forecast" where we will be in the future? Seems odd. Just because 3 curves show a similar correlation does not mean the 4th has to follow the same trend. We need to learn from mistakes.</comment>


Ask HN: Ratio of sales in music equipment between hobbyists and professionals? - <AUTHOR> Hi HN,
I recently bought a Roli Rise - a MIDI controller. I'm no professional and am unlikely to make any income using the device, and yet to Roli it makes little difference. I'm a customer to them as any professional user, and part of their income is now coming from me.
My question is, how many of me (i.e. hobbyists) are there relative the target audience, presumably professional producers? Is it large enough to target? Could it in fact be larger than the target audience itself?
For example:
Hobbyists: 80% Professionals: 20%
(Music equipment is just an example in this case, I'd expect similar trends in sales elsewhere.) <comment><USER2> I think you are on to something. I don't have stats. I would presume it's a pyramid.</comment>


The Way I Work: Bob Parsons, Go Daddy - <AUTHOR> http://www.inc.com/magazine/20090101/the-way-i-work-bob-parsons-go-daddy_Printer_Friendly.html

<comment><USER2> I would still be using godaddy if they didn't try so hard to sell all sorts of useless extra features. It feels really scummy using their site.

In other words, I don't think they have quite the customer-service focus he says they do.</comment>


Fueling Obesity Epidemic? Artificially Sweetened Drinks, Long‐Term Weight Gain - <AUTHOR> https://onlinelibrary.wiley.com/doi/full/10.1038/oby.2008.284 <comment><USER2> There is a nice resource about sugar dangers - SugarScience[1]. They provide a good overview of a various aspects and current research.

[1] [https://sugarscience.ucsf.edu/latest-sugarscience- research.h...](https://sugarscience.ucsf.edu/latest-sugarscience- research.html)</comment>


Oberlin College case shows how universities are losing their way - <AUTHOR> https://thehill.com/opinion/judiciary/448711-oberlin-college-case-shows-how-universities-are-losing-their-way <comment><USER3> _The merits of the case did not seem to bother Oberlin officials or student protesters. Dean of students Meredith Raimondo reportedly joined the massive protests and even handed out a flier denouncing the bakery as a racist business._

Without knowing the details of the case, it's hard to determine who's truly at fault here. Even so, given that the dean herself apparently chastised a dissenting staffer who advocated for the bakery ("F __* ROGER COPELAND"), it 's a bit disconcerting to think that this is someone who is charged with the well-being of every student on campus.

It's one thing to encourage student activism, but if these universities are teaching students to throw empathy, logic and reason to the wind, they are only doing them a disservice.

<comment><USER4> I don't disagree. But, at a time when the cost/benefit ratio of college is challenged every day in popular discourse, maybe colleges have no choice but to embrace "The customer is always right" as a fundamental value.

<comment><USER3> The difference here is that the college appears to have actively taken part in the protests, as opposed to merely letting them happen.

<comment><USER4> Yeah, and that's how a college can really show some hustle and outcompete. I mean, imagine an idealistic 12th grader with a social justice bent. Does she choose a college that merely pays lip service to her righteous values, or does she choose one that jumps right into the trenches alongside her, blasting a megaphone and waving a giant sign?

</comment></comment></comment></comment><comment><AUTHOR> A bit more factual context:

1\. The student "protests" erupted the day after the 2016 election results came in, with a corresponding politically inflammatory element at work in the background.

2\. The underlying incident involved an underaged black student who attempted to buy a bottle of wine, was refused, and was then found to have 2 other bottles under his coat as he walked out. When the owner's son chased him out, an altercation ensued and, as police arrived, they found the owner's son on the ground being hit and kicked by three persons, including 2 female friends of the shoplifter.

3\. I use shoplifter, instead of "alleged shoplifter," because a guilty plea was entered admitting to the crime and also acknowledging that racial profiling had nothing to do with the incident.

4\. Protests immediately erupted and were so volatile that the local police chief said he felt he had to call in outside help from a riot squad.

5\. The students who did the protests claimed that Gibson's bakery not only had engaged in racial profiling in the particular incident but also that it was a long-time racist presence in the local business community. (Gibson's had been founded in 1880 and was strictly a family owned business, with the business supporting 3 generations of the family at the time of the incident).

6\. The Oberlin dean of students (Merideth Raimondo) appears to have joined in the protests directly, shouting through a bullhorn and handing out fliers calling Gibson's racist. She claimed she used the bullhorn for 1 minute only and only to tell the students to observe safety precautions. Multiple other witnesses at the trial claimed she did so for a half hour and that she was a direct participant in the events. The jury obviously did not believe her. Also, she denied that she had handed out any fliers, was contradicted by a local reporter who said she had handed one to him, called that reporter a liar, and (at trial, once under oath) later admitted that he was telling the truth that she had handed him a flier knowing him to be a reporter.

7\. The college immediately joined in the affair by terminating its long-term contract with Gibson's. A couple of months later, it reinstated that contract. Then, when the Gibson family filed suit, it terminated the contract permanently.

8\. The college took the position that the matter would be dropped if Gibson's dropped the shoplifting charge and if it committed in the future to bring all incidents involving students directly to the college before it got the police involved. Gibson's refused to comply with this condition.

9\. Gibson's in turn offered to forego any and all legal claims if the college sent out a mass communication stating that Gibson's had not engaged in racist activity and had no history of being racist. The college declined to do this.

10\. Gibson's took a huge financial hit as a result of all this, barely managing to stay in business. It had to lay off all of its 12 employees and the family owners continued to operate the business without salary for 2 years.

11\. Gibson's sued the college and its dean of students alleging libel, intentional infliction of emotional distress, and interference with business relations.

12\. Throughout the trial, the college took the position that it had done nothing wrong, was only protecting the students' right to free speech, and had no responsibility for what happened. It also took the position that Gibson's was worth no more than $35,000 in total value as a business and that such amount should be the maximum awarded in any damages award.

13\. The jury award $11.2 million in compensatory damages, $33 million in punitive damages, and also said that Oberlin had to pay Gibson's attorneys' fees. Under state law, there is a 2x cap on punitive damages (2x times the amount of compensatory damages awarded) and thus the punitive award will be set at $22 million. The judge is still determining the attorneys' fees question. All in all, though, the jury basically slammed Oberlin to the max and also awarded major damages against the dean of students.

14\. Oberlin sent a mass email to its alumni association essentially saying that the jury disregarded the clear evidence showing it had done nothing wrong and vowing to fight this through appeal. It also formally announced that it will be filing an appeal.

15\. Oberlin has had a long-time "townie" vs. "gownie" culture but this far transcends the small tensions that have historically existed.

William Jacobsen at Legal Insurrection has been on this case in great depth from inception, believing it is a case of major significance concerning college activism run amok. Here is a link to his reporting on the original verdict that contains a ton of links to the prior coverage: [https://legalinsurrection.com/2019/06/verdict-jury-awards- gi...](https://legalinsurrection.com/2019/06/verdict-jury-awards-gibsons- bakery-11-million-against-oberlin-college/)

The article here is by Jonathan Turley, a distinguished liberal law scholar, who is pretty critical of Oberlin's handling of the case, as I think most people are.

<comment><USER5> Thanks for this. I hadn't dug deeply into this previously.

Reading this, I'm struck by how fragile our first amendment is that you can be sued for participating in a protest. It sounds like the only things that the university did "wrong" was end a contract and also one of their deans took active part in protesting.

Much of the glee seems to stem from the fact that the speech being expressed in the protest was dumb. I, for one, think dumb speech should be protected.

<comment><USER6> Defamation has long been deemed to be speech not protected by the first amendment. Because of the risk to freedom of expression, such claims have been limited in numerous ways, and are exceedingly difficult to win. But where a plaintiff does manage to overcome those hurdles, it is not an indicator of the fragility of the first amendment for the defamation claim to actually succeed. It's simply applying well defined outer limits to freedom of expression, no different than ones for fraud, false advertising, and other malicious conduct that incidentally involves speech.

Two points @grellas mentioned are key.

First, this case involves falsehoods. Factually untrue assertions are generally outside the scope of protected speech: [http://law2.umkc.edu/faculty/projects/ftrials/conlaw/lying.h...](http://law2.umkc.edu/faculty/projects/ftrials/conlaw/lying.html). (Otherwise, the first amendment would swallow claims for fraud, false advertising, etc). This case, moreover, doesn't fit the scenarios where false statements can be protected expression, such as hyperbole or satire.

Second, the speech was against a private party. The first amendment restrictions on defamation claims are less stringent when it comes to private parties than to the government, politicians, or public figures. In particular, where defamatory speech turns out to be false, it might still be protected by the first amendment if it was directed to a public figure and the false statements were not made recklessly or knowingly. But if a private party is involved, that additional layer of protection doesn't exist. (The theory being that there is a greater interest on making statements about public figures, where sometimes you might get the facts wrong, than with private figures.)

I'm a first amendment extremist, but a defamation claim here doesn't strike me as problematic any more than a prosecution for fraud. There is no legitimate expressive value in spreading demonstrable falsehoods about a private party. Nor is there a slippery slope. The key elements of private party versus public figure, and demonstrably false versus possibly true statements are bright line limits that have long served us well.

<comment><USER5> Thank you for being the first person to agree with my fundamental point that there are actual implications to the first amendment when it comes to libel laws.

I'd love to hear any of the actual false statements ISSUED BY THE UNIVERSITY OR ITS STAFF. I relied on the so far uncontested statement of facts offered by OP. If those facts are wrong I'd be thrilled to revisit my position.

<comment><USER6> A university dean admitted to passing out a flyer that falsely stated that the Oberlin student had been assaulted: [https://legalinsurrection.com/2019/05/gibsons-bakery-v- oberl...](https://legalinsurrection.com/2019/05/gibsons-bakery-v-oberlin- college-trial-day-2-i-dont-know-may-come-back-to-haunt-the-defense). A police officer testified that the Oberlin students had assaulted the bakery employee, not the other way around. The flyer also stated that the bakery had a long history of racial profiling. But at trial the dean admitted that she didn't know whether that was true. Numerous witnesses testified it was false.

A high ranking university employee handed out a flyer containing damaging assertions of fact, with the intent that people believe and act upon those assertions, and at trial offered nothing to suggest she had even a good faith belief that those assertions were true. That's not an exercise of free expression.

<comment><USER7> Whether someone is a victim of assault or rightfully practiced self-defense is often a difficult question dependent on the states of mind of the people involved in a volatile situation, remembered through the veil of faulty human memories. Details like who used force first are pretty much impossible to determine without a video recording. Of course, police officers are as fallible as anyone else. Defamation requires a willful disregard for truth, and I have a hard time believing that "they committed assault" would be defamation when "they got in a fight" is accurate.

For what it's worth, I consider myself a liberal, and I went to a liberal arts college cut from the same cloth as Oberlin and wrote anonymous posts debating what I perceived as the excesses of liberal campus activists.

<comment><USER8> Given that students in question plead guilty, it seems quite plausible that "willful disregard for the truth" is exactly what happened here.

<comment><USER9> It's a good thing innocent people have never pled guilty before.

<comment><USER8> Yeah, this clearly was the case here!! Although even Oberlin does not seem to be making that claim.

<comment><USER9> I don't know if you caught that. But for me, "they pled guilty!" is meaningless. People are coerced into that all the time. So speaking generally, to those who think saying that is shorthand for winning an argument, it's quite silly.

<comment><USER8> _In general_ it may not mean much. People do plead guilty even when they aren't, for many reasons, and even more so with minorities. In this specific case though we're talking Oberlin students, not some poor kids from the ghetto, already making this less likely, and even worse, while I would not necessarily expect rioting progressive students to make any sort of logical and factual argument, I _would_ expect better from the administration. But interestingly, they also never presented anything based on logic, let alone facts, and never even made the claim that the assailants were coerced to plead guilty, witnesses bribed, investigations botched. They just took the narrative that fits with their ideological view and ran away with it, facts be damned.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> I saw it happen first hand once at Guilford College, another small liberal arts college. There was an incident between a group of drunken football students and some kids that were Arabic. The school didn't do its part to encourage rational and cool heads until all the facts were in and there were mobs looking for football players, even those not involved. It wasn't safe for them so had to leave campus. Once the facts were in the football players had medical evidence of being assaulted and punched with a hand wrapped with a belt which conflicted with the students story of just being jumped (if you have time to take off your belt and wrap it around your hand, you have time to escape or deescalate). Other eye witness statements lined up that both parties were drinking (the other students had been on their way to the club). In the end it seemed like the both parties were at fault but the ones claiming victim status were the original antagonizers and lost the fight so cried foul. In either case, there were calls to disband the football team and athletic program as a result of the actions of a few students. No where was the college saying wait for all the evidence to be presented, rather than going on the word of one side before reacting. They allowed the students to take over effectively and no students who encouraged the mob were ever disciplined afterwards for libel. It's a common practice at these schools to assume guilt because of race (they're white), which is just as unjust as the crimes in the past. The hard standard is to not involve mass mob or protest until evidence is provided. If schools are supposed to be institutions of higher learning and thought, they should be encouraging students to be impartial and consider all evidence and act on that and not hearsay.

Free speech standards in the US requires you have evidence to back up what you're saying if you're going to speak negatively of someone, even more so if you're going to take action against them, colleges should be encouraging that standard and rational thought over emotional reaction.

<comment><USER11> >Free speech standards in the US requires you have evidence to back up what you're saying if you're going to speak negatively of someone

You're free to speak negatively of people, you just can't damage someone's reputation by spreading false facts. I'm allowed to call my neighbor a poopyhead or the like, but I can't tell people that he sexually molests children.

Debate is fine, lively discussion is fine, talking negatively about people is fine. What crosses the line is when you go after someone's livelihood or ability to live in peace. That's really what this case is about - <USER2> college administrators got into a disagreement with a local bakery, so they tried to use their clout and influence to run them out of business. Juries _really_ do not approve of that sort of behavior.

<comment><USER5> > I'm allowed to call my neighbor a poopyhead or the like, but I can't tell > people that he sexually molests children.

"Racist" is more in the category of the former than the latter. The "assault" allegation in the flier handed out, in part, by a dean is admittedly more of a gray area than either of your examples.

<comment><USER12> > "Racist" is more in the category of the former than the latter.

Depends on how likely you are to be fired from you job if you are accused.

</comment></comment></comment></comment><comment><USER13> The problem here is an insulation from consequences. After costing their employer $33 million dollars, plus legal fees, will the libelers be fired? I'd guess not.

Ironically this is the same root cause for overuse of force by police officers that is alluded to in the article as a problem these university employees were concerned about. Police officers are also far too insulted from consequences and generally keep their jobs even after causing their employers (i.e. us) millions of dollars in lawsuit damages.

The moral of the story is that all institutions should have effective mechanisms for accountability. Insulate employees too much and at least some will surely run amok.

</comment><comment><USER14> Handy tip, you probably don't want to say a local, family-owned business that dates back to the 1800's is only worth $35,000. It comes off as elitist and hometown juries hate elitist with a passion.

Best coverage was Legal Insurrection since they actually had people in the courtroom: [https://legalinsurrection.com/2019/06/oberlin-college-hit- wi...](https://legalinsurrection.com/2019/06/oberlin-college-hit-with-maximum- punitive-damages-capped-at-22-million-by-law-in-gibsons-bakery-case/) (summary of coverage at bottom of article)

<comment><USER15> I'll heartily endorse Legal Insurrection's coverage, but with the caveat that they've got a bone to pick against "social justice" and leftist campus activism. It doesn't seem to get in the way of them reporting all the relevant facts in a fair way.

<comment><USER16> interesting. opposition to "social justice" signals an opposition to fairness and equality, and theoretically should be rare.

i wonder if it's the strain of opposition that sees it as zero-sum and resists (i.e., "if things get fairer for the disadvantaged, then i, as an advantaged person, must necessarily lose something")?

or the strain that resists social normalization (e.g., i should be free to offend and belittle others)?

or something else?

even if everyone gains from growing the pie, the desire for relative status seems more powerful than our desire for fairness and equality unfortunately.

<comment><USER17> Everyone is all for fairness and equality but, as is becoming increasingly clear, "social justice" as a movement has little, if anything, to do with actual fairness or equality. Oberlin College's misbehavior may be at the extremum but it is far from the only example of this.

Even on as pro-left a site as HN, people are realizing that this movement is more of a problem than a force for good and that one can be a liberal without necessarily being a progressive and vice-versa.

<comment><USER16> but what is "the movement"? the situation here seems like small-time stupidity and jerkiness (of behavior), not a movement.

just to note, group-labeling people tends to undermine openness and short- circuits revelation, so i'd like to avoid that (especially dichotomies like left-right and liberal-conservative).

</comment></comment></comment></comment></comment><comment><USER18> Hopefully, this judgment encourages colleges to reassert educating students in critical thinking and thoughtful societal engagement -- not pandering to students, nor indulging faculty/administrators who are doing the opposite of their jobs.

</comment><comment><USER19> Oberlin was acting totally irresponsibly.

I'm glad for the damages. I hope this sends a chilling message to universities-- spend your time and efforts on providing the best education possible. Leave toxic politics in the past. Education should be the primary reason for existence, by far.

</comment><comment><USER20> I've heard/read about similar situations recently where a black person is caught committing a crime and people protest the establishment for racism. At a vintage store in Brooklyn, a black woman was caught shoplifting and arrested. Then a group of people started protesting the store.

</comment><comment><USER21> Really I think the issue isn't activism per say but how they are doing it - demagoguic and tribalistic instead of even a coherent philosophy or let alone a logical one. There is a lack of reflection before or after for actions and just concern about how they feel.

</comment><comment><USER22> It is like you see your car is headed towards a ditch and you step on the gas.

Quite amazed that such poor judgement was exercised throughout this incident - from deans and upper level admins no less - how out of touch with reality can someone be?

</comment><comment><USER23> Oberlin is an extreme case, even among other small, liberal arts colleges.

<comment><USER24> No. Evergreen is the extreme case.

[https://www.seattletimes.com/opinion/editorials/the- evergree...](https://www.seattletimes.com/opinion/editorials/the-evergreen- state-college-no-safety-no-learning-no-future/)

<comment><USER23> I said "an" extreme case. Take it easy, Francis.

</comment></comment></comment><comment><USER25> I am a grad student leaving university soon enough, and this does not surprise me at all.

Especially at elite universities, there is this interesting phenomenon of mostly upper middle class white women from on average the most privileged upbringings in the western hemisphere arriving at a university they (anyone) could only attend by incredible privilege and luck. Yet they arrive fully convinced they have been held back by the patriarchy their entire lives. Same for other groups and their pet causes.

They find no apparent contradiction at being the most privileged of their generation (speaking of Harvard, Oxbridge, Stanford here), yet the smaller and local the cause, the more vicious the activism. Someone they disagree with dare speak on campus? Violence, trauma, discrimination, hate.

Getting arrested for taking off a veil in Iran? Genocide? Consumerism destroying the planet? Yawn.

I often see people on hn saying this is all blown out of proportion and a small vocal minority but when you talk to undergrads these days, you will realize these beliefs are not just a handful of people but carry weight across the student population.

Not least because opposition is shamed into silence. University admins are usually easily cowed submission on these causes, mostly because it does not cost them anything to uninvite/fire someone.

<comment><USER26> People misunderstand the concept of privilege.

You compare people from similar socio-economic backgrounds. You don't compare dissimilar groups.

Those women are being held back when you compare to their brothers.

<comment><USER25> Evidence needed, strongly. There is an incredible push happening at all levels of e.g. STEM, tech companies, everywhere, to get women. They receive special support, scholarships, extra application tracks, extra programs, preferred hiring, and boys are falling more and more behind.

Are you really trying to say that the Harvard-Stanford-Oxbridge woman is held back compared to, say, the plumber's son (no offence, a highly useful profession, but you will find few of their children at these unis)?

<comment><USER27> Not who you are replying to, but in general I would say that the things you point (extra help women receive right now) are in general working, and that the fact that they are working is supports the fact that they should continue. This doesn't mean that men should not also receive targeted help, as should anyone who is disadvantaged, whether through socioeconomic status, race, disability, or otherwise. Solving problems that classes of people have on a class level and making those classes of people more successful is a good thing, and we should be doing more of it. There is a huge issue now where young men, especially those of low SES are not encouraged to or given the right pathways to find success and I see the wheels slowly start turning on social movement to facilitate positive change on that front as well, especially starting in early childhood education.

</comment></comment></comment></comment><comment><USER28> The problem I always have with stories like this is the context.

1) The writer breathlessly warns that "campuses across the country" are succumbing to mob rule. How many campuses is that? Sure, we "know" from the internet that this problem is rampant, just like we "know" that other hot- button issues such as shooting of unarmed black teens, the incel movement, anchor babies, etc. have reached epidemic proportions. But in many cases as in this article we have no context as to just how common these problems are. Is this happening at 10 percent of campuses, fifty percent, 1/10 of 1%? Is the trendline up in the past year or just the reporting of it?

2) What about the historical context? Colleges have been hotbeds of protest for hundreds of years. Is it really true that something has fundamentally changed, or does it just seem that way because this time groups that we (ymmv) approve of are on the receiving end of the protests? If the issue is free speech, ought we not also compare historical limits on free speech imposed by governments, college donors and churches? Perhaps students have gained power because some of those prior actors have lost power, and if so, maybe that is not a bad thing. How much free speech did Jews, women and black students have when they weren't even allowed to enroll in certain colleges in the first place? When exactly was the golden age of academic freedom that everybody wants to return to? I have a feeling the answer to that strongly depends on when the respondent happened to attend school.

3) This article also lumps together issues which are linked in only the most nebulous of ways. What is this specific bakery case meant to be an example of? The author states, "Across the country, academics have caused lasting damage to their institutions by failing to stand up to, or actively supporting, extreme demands for speech codes, limits on academic freedom, and tenure changes." But this situation, of Oberlin officials and students protesting a bakery, doesn't seem to fit into any of those categories. Or maybe it's meant to illustrate how "leaders are ceding control to a small group of activist students and faculty members." Huh, who's ceding control to whom? Seems to me the activist students and faculty members <i>are</i> the leaders.

4) In this specific instance, the writer in my opinion fails to adequately cover both sides of the story. Why were the students and faculty so sure that racism took place if that so clearly was not the case, as portrayed here? It appears as if they had ample opportunity to walk back their position but refused to even in the face of potentially ruinous litigation.

5) And if schools are losing verdicts and enrollment right and left, then isn't this a self-correcting problem? The expression goes that you have freedom of speech but not freedom from consequences. Overactivist universities will face oblivion, problem solved. Or perhaps potential students will decide that going to schools that support their social issues is worth the higher tuition and stricter environment. Many religious institutions impose extra restrictions and limit free expression -- some people are okay with that kind of learning environment; as a society we're generally not apoplectic over it.

I'm not denying there are some seeming trends that are seemingly worrisome. I just can't tell, from most of these articles, how truly widespread they are, how deep is their support, how much of the hysteria is media or internet driven, how badly activism affects the overall university experience, and why supposedly large numbers of students and faculty are so strongly in support of them if they are all downside and no benefit.

EDIT: When I started writing my comment there were no other replies. Thank you grellas and others for providing a lot more context than existed in the article itself.

<comment><USER29> This is your paraphrase:

> The writer breathlessly warns that "campuses across the country" are > succumbing to mob rule.

And this is the actual sentence from the article from which you took the quote:

> As on other campuses across the country, these protests are encouraged by an > array of faculty members and ever accommodating administrators.

Not exactly a fair paraphrase. And I found the article's tone quite level; hardly 'breathless'.

<comment><USER30> >...Oberlin College in Ohio is the equivalent of the "China syndrome" during nuclear accidents, a point where chain reactions become impossible to stop or control.

You find literally comparing this court case to a nuclear meltdown "level"? I tend to agree with the OP here, this takes an egregious case at a notoriously liberal school and then generalizes it to "across the country" as a clear and present danger. Oberlin was obviously in the wrong here and is being sharply punished for it, so it seems that the system is working.

</comment></comment></comment><comment><USER31> Does anyone know what framework an appellate court will use to review/revise the damages? The article says $22 million is the state max, but are there other factors that will reduce the amount further?

<comment><USER14> Its 2x the compensatory damages. So, in this case compensatory damages were $11 million, so the punitive damages is capped at _an additional_ $22 million leaving a total verdict of $33 million. The standard appeals process can overturn or reduce damages.

<comment><USER13> But the jury verdict is entitled to deference (or at least would be in my state, couldn't swear to Ohio law).

<comment><USER32> In almost every state jury awards for damages are reduced, often drastically, down to what can be proven as material damage. Unless someone has receipts for the $11 million (I haven't read the case) it will likely be reduced. This is the benefit of the 'tort reform' theories pushed by pro-business GOP legislators over the last 40 years.

</comment></comment></comment></comment><comment><USER33> It's strange that stories from the progressive end of this discussion get (often rightfully) flagged into oblivion in seconds, but this conservative campus panic story survives to 45 comments.

<comment><USER34> The 8chan warrant story is still on the 2nd page after a whole day, and wasn't flagged.

And this story is about a $887 million institution pressuring a working-class assault victim to drop charges against their attackers, by using libel and economic sanctions.

So what makes this story 'conservative'? That the victim was white?

<comment><USER5> Most of the interest in this story has been in right-wing media stemming from a false "racism" accusation that is a PART of this case and also due to a bigger narrative around left-wing campuses. I'd frame the story differently than you did, but the bigger point is that we shouldn't pretend this isn't mostly a right-wing media news story for these reasons.

I think we both agree that if the racism charge had strong merit (it didn't), then most would see this as a liberal news story because that's mostly who would be focusing on it. People tend to be drawn to stories that reinforce their world view.

That, of course, doesn't mean it shouldn't be part of the discussion here. (I've been active in this thread so obviously I think it should be here.)

Edit: Also, I'm not the person you were responding to but this was very dishonest of you:

> That the victim was white?

OP said exactly why they thought it was conservative. They cited that it was because it was related to "conservative campus panic." To pretend they could have said it because "the victim was white" is very dishonest of you.

<comment><USER34> > OP said exactly why they thought it was conservative. They cited that it was > because it was related to "conservative campus panic." To pretend they could > have said it because "the victim was white" is very dishonest of you.

Dishonest? In your very post, you agree with me! You say if the racism charge had merit, i.e. if the white kid was at fault, then it would be a liberal story. Just like [1].

Saying they thought it was conservative because it was related to conservative campus panic is pretty much circular logic, and doesn't explain anything. If anything was dishonest in my post, it was the implication that the attitude was limited to pessimizer, when in fact it seems to have seeped into the terms 'conservative' and 'liberal' themselves.

[1] [https://www.theguardian.com/us-news/2018/jun/25/citing- trump...](https://www.theguardian.com/us-news/2018/jun/25/citing-trump-woman- in-video-calls-latino-man-rapist-animal-drug-dealer)

</comment></comment></comment></comment><comment><USER35> It sounds like you're taking a very one sided perspective in evaluating this. The story is pretty clear - a black kid stole product, the owner tried to protect his product, the kid cried racism, the college called racism, the college encouraged and orchestrated protests, the college financially intervened by removing contracts with the business, etc.

Since when is someone not entitled to protecting their property? He didn't come out shooting a gun, he came out and got jumped. The school said it was racial profiling - even though no one denied it was theft. What side of the story is missing here? More personal testimony that the intervention was racially based? There's just nothing more to the story that could make this balance out.

I think your reluctance to take the facts at face value and instead say "well what if this really was racist" is exactly the indoctrination that schools like this have fostered. It's like back in the day when people did this kind of crap to ruin black businesses and thinking "well what if we don't know the full story behind their behavior?" Sure maybe there was a valid justification for the hateful behavior, but apply the logical razor.

Racism seemed to be getting a lot better about 10 years ago and since then it seems to have taken a turn. Now it's seemingly in vogue to hate on whites. Don't doubt that there are people out there who think that's a good thing, but consider that the next time the pendulum swings it won't still be the same race being targeted. Do we want to have another Jim Crow era in 2030 where we collectively hate blacks like is so popular to do to whites now?

<comment><USER36> Well that went off the rails real fast. Might want to wall back that last paragraph. No one is hating on whites. Nazis, on the other hand, can go fuck themselves.

<comment><USER35> Let me guess, everyone suffers from racism except white people. And white people are the only ones who can be racist.

I've learned a lot about HN today.

<comment><USER37> We've banned this account for breaking the site guidelines and ignoring our requests to stop.

If you don't want to be banned, you're welcome to email email@example.com and give us reason to believe that you'll follow the rules in the future.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

</comment></comment></comment></comment><comment><USER38> What an awful website experience.

</comment><comment><USER35> There wasn't just a demonstration (tho even that would be overdone considering the kid was shoplifting wine - which is a crime and it's not like he was just trying to get some food to survive.) This was deliberate and repeated attempts to libel a store owner out of business or into inane submission. Imagine if your family owned and operated a business for over 100 years, only for it to be dismantled because you _rightfully tried to protect your property from theft_.

Sounds like you have been indoctrinated by the same hate these colleges are peddling. No not all colleges do this, but 1/10 is too much. These are institutions which should be educating and enlightening, not promoting ignorance of circumstance and leading witch hunts.

<comment><USER37> > Sounds like you have been indoctrinated by the same hate

Personal attacks will get you banned here. Would you please stop posting in the flamewar style to HN?

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

We detached this subthread from [https://news.ycombinator.com/item?id=20192246](https://news.ycombinator.com/item?id=20192246) and marked it off-topic.

</comment></comment><comment><USER39> An article solely about Oberlin college, at best, only shows that Oberlin college is losing their way.

</comment><comment><USER40> The tl;dr seems to be an underage black person tried to buy wine, apparently stole wine, then there was a fight with the owner's son. There was a demonstration that was probably based on an unclear understanding of the events. So people over-reacted to events, yes they were stupid to do. But you shouldn't use this as an excuse to clutch one's pearls and conclude colleges have lost their way. This looks like a cya activity after the true(-er?) facts came out.

<comment><USER41> Did you miss the part about college officials committing purgery?

In what institution would she be able to keep her job?

So yes - some protest and confusion in the days after are understandable. But the actions of the college go way beyond that.

She should have been fired long ago the college should have apologized to the community alumni and the bakery and then it would all have ended.

This is a good example of colleges getting completely out of hand.

<comment><USER40> yeah, if she lied she should be fired. I am surprised there is not clear evidence, like a recording.</comment></comment></comment>