Getting more familiar with ASP.NET.
One recurring theme in bad software design, it seems to me, is the operating system putting its own needs paramount to the user’s — and in some cases treating the user as if they were an annoyance rather than a raison d’être. This isn’t just something you can “friendly up” — it’s more of an underlying way of thinking about the machine that leads to better or worse coding and design. And it’s unfortunately a legacy thing: the more years you treat your users like crap, the more likely they are to expect that’s just how it goes.
Here’s the example that brings this to mind: when editing web pages, Visual Studio can display as either HTML code view or as “design view,” a pseudo-WYSIWYG where you can type text, select “bold,” etc. But when you switch from code view to design view, it’ll often lose the spacing I’ve added to make the HTML more readable. The actual code editor does the same thing — it wants to automatically align my code, but won’t let me easily override its sense of order. In both cases, the software is putting its needs (to align the code, to autoformat text to keep it pretty) ahead of mine (to rearrange text as I want, even if it isn’t as neat). I like to put “test” code out to the right rather than lined up with the hierarchy. VS won’t let me do it.
Another example from HTML itself: comments are kludgy compared to real programming languages. You can write human-readable notes in the <!-- --> syntax, but they’re visible to anyone who does “view source.” Sometimes that’s okay, other times I don’t want strangers to see my comments. And it’s much more difficult to comment out HTML except in large blocks.
And the biggest example of computer needs ignoring human needs: crashes. The worst thing the computer can do at any given moment is lose what you’ve been working on. Just did a select-all copy here, in case the browser goes down — for example.