Jakob Nielsen, usability researcher, writes Alertbox essays on web design, user testing, and interface usability.
Commenters recommend it for practical usability advice despite its ugly design and controversial opinions; one questions how current some of its older research is.
Very often it is. But it's not as simple as that.
Try to turn things around - there are a lot of designers (and kids and grandpas) that code something up. This usually ends up as a horrible mess, not following any programming paradigms, spaghetti code, non-existing security, etc. We've all seen it happen. But you only see this if you're a professional programmer. Non-professionals don't see the detail, the design decisions, the security measures, the scalability, etc. They just see a slow or buggy site. Or worst-case they see their credit cards exposed.
Design is the same, just to a larger degree - everyone thinks they can do it, because well done design seems so simple. When they try to do their own, however, it is never quite as good and they don't understand why. The reason is the exact same as why novice programmers create crappy programs. To do a great and simple design you need a lot of experience and a lot of knowledge. Certain things need to align, some colors match others don't, certain design elements send certain signals to the user, etc. Have you ever noticed the drop-shadow on the logo on Google's homepage? Chances are you haven't, but it is a core part of their design - you don't notice it, but it holds up the whole page.
As a novice designer you can only get so far until you start running into problems that require expert knowledge and experience. Just like programming.
And when you start talking about usability (which I think the flaws in the linked pic…
Part A - I am on the side of completing as much UX up front as possible. Bad visual design is something that no one can ignore. I think that ideally before you even have done the "black-text-on-white-background" prototype you start with UX.
Part B - Steve Krug has a couple of simple concrete usability books. Other than links I have seen mentioned. http://ilovetypography.com/ learning good type will help a ton with design http://www.useit.com/ Jakob Nielsen is kind of the godfather of usability, some people love him, some hate him, either way you will learn something from this guy. Also, going through tons of websites and critiquing them by yourself or with peers, writing down everything that works well and doesn't work well, that you would change. Do little usability tests on your sites, even on sites that aren't yours with family or peers.
Part C - I don't know as much about startups. I do know that having a designer on hand is much nicer to work with than outsourced. Ultimately I think it would be like dealing with anyone else outsourced in terms of reliability.
Part D - I actually started as a designer, and IE 6 crushed my soul. I am still very interested in UX though. I think starting as a programmer, I would just try to recreate designs you think are appealing. I would also try to learn the grid system. Use CSS frameworks as training wheels that have a solid grid, and decent typography (eg. Blueprint). I started constraining myself to HTML and CSS, and I think you…
Web design is a really broad field. You need to understand HTML and CSS, you need to understand the limitations of web browsers as a medium, you need to understand how users interact with webpages, and you need to have a decent handle on typography/visual design. I don't have good tutorials/articles for all of these areas, unfortunately: they're things I've learned over a pretty long period of time by reading a lot of different disparate articles. In general, A List Apart (http://www.alistapart.com/) is an excellent resource for articles on design. While it's frequently linked, a lot of the stuff on Smashing Magazine (http://smashingmagazine.com/) is awful. Their articles on how to do things with HTML/CSS are usually decent, but their articles about actual design usually demonstrate a complete lack of understanding of what good design is. I'm also haven't really found any resources with good exercises. One of the things about design is that you really need to be getting feedback from a real person. If you're doing things and would like design-related feedback, I'm usually happy to give it. (My email is in my profile.)
For learning HTML and CSS I recommend HTML Dog (http://htmldog.com/). It's a bit dated and won't cover HTML5/CSS3 stuff at all, but it does teach good practices, and I haven't found anything better.
I also haven't found a good article/tutorial on web browser limitations. You need to be aware of web browser width (people generally design for a 1024px wide…
Before listening to anything Jakob Nielsen says about usability, go look at his website: http://www.useit.com/. Can you honestly tell me that the man is a usability expert who has a website designed like that?
EDIT: I've read some of his books and agree with what he says most of the time--I definitely don't write off everything he says. I should have worded my post differently.
About useit.com, it's hard to be completely terrible since there is not a functionality. I would argue that the organization of the links is a little odd, lack of dates on news items is not ideal, and the search bar buried at the very top right of a page that scales 100% is a little hard to notice (design & usability intertwined).
Statements concerning the need to test aside, "almost unusable" is very likely a gross overstatement. To state http://useit.com is almost unusable is equivalent to saying, at the very least, that it is hard to use. It probably could be easier to use (what isn't?), but hard to use it is not.
You can argue that the site is not the most aesthetically pleasing. There may have been a time when this could have been changed, however as the site and Jakob Nielsen have been well known for many years, the visual appearance serves strong branding purposes: it's very obviously useit.com, it's very recognisable, even standing well back from your screen. Jakob has supported this notion as the reason not to change.
Opening new browser windows has been on the Top 10 list of design mistakes of 1999:
http://www.useit.com/alertbox/990530.html
I hate it, if the back button breaks. I know many people who use the back button as one of the main elements of the browser. I have been present several times, when somebody got really angry because of a broken back button. So I would recommend the following rule as best practice:
Don't ever break the back button!
It takes much work and creativity to make visitors love websites. We should not ruin that hard work by a silly design decision like target="_blank".
Also, the target="_blank" is a relic from the time of framesets. This time is over.