Take the 2-minute tour ×

This is a question specifically for web applications developers.

In recent years I spent most of my time on SaaS products, which leads you dig deep into more back-end stuff, like how to use less memory resources, make session working with load balancer, write efficient SQL queries, performance tuning, solving technique difficulty.

There is no web designer working with us, generally what we get is a snapshot of what the system should look like, but nobody here cares how you produce it. Since now the company plan changed and they are going to change and the SaaS product will reach end of life soon, and I just feel I lack of those HTML/CSS knowledge, I mean I never got a chance to check those things as a whole stuff, but only learn from what I need to work out.

All those above seems made me out of fashion about front-end skills, I seems tend to ignore learn things about it. Till just now I realized that might be a mistake I made, for instance I still tend to use table layout in HTML and just realized how bad practice that is recently.

I start wondering if I were going to find a new job, how good should I be on front-end coding compare to back-end skills? Is it OK for now as more and more web designers or user interface designers are hired so we don't need to worry about Html/Css too much? Or should I pause my back-end skill improvement and jump back on front-end a while and then make it half and half?

Sorry English is not my native language so there might be something expressed not that clear. Thanks for reading this long post!

share|improve this question

closed as off topic by Jim G., Martijn Pieters, Walter, Glenn Nelson, ChrisF Feb 21 '13 at 13:14


what does "B/S" stand for? –  gnat Feb 21 '13 at 7:42
Sorry B/S stands for browser/server, it's commonly saying here but I think I should not use that, will change it –  Simon Wang Feb 21 '13 at 7:43

3 Answers 3

up vote 0 down vote accepted

Your problem isn't specific to back-end developers. It isn't specific to web developers. It's specific to all developers. [Please see the Dunning-Kruger effect.]

If you'd like to improve your UI skills, you could pursue formal UX training, but most software developers that I know just try to learn as much as they can by:

  1. Appreciating good websites that they already use.
  2. Introspecting on what makes good websites good.
  3. Implementing best practices in their day-to-day work.

Also, you might gain some inspiration from the following books:

  1. Steve Krug's 'Don't Make Me Think'.
  2. Luke Wroblewski's 'Web Form Design: Filling in the Blanks'.
  3. Eric A. Meyer's 'CSS: The Definitive Guide'.



Precisely the opposite. UX design has never been more important. Good UX design often differentiates a good application from a bad one, and it almost always differentiates an enjoyable application from a non-enjoyable one.

Ajax techniques, Gmail, and mobile applications have raised the bar for all us. If you're going to do front-end work, then you must improve your UX aptitude and skills.


That's debatable. In my opinion, you shouldn't abuse table layout, but I don't think it's a bad practice in its own right.

share|improve this answer
Pushing UI books on SE and you didn't mention Joel's..tsk tsk.. ;) –  Jimmy Hoffa Feb 21 '13 at 14:51
@Jimmy Hoffa: Joel has a UI book? I honestly didn't know. –  Jim G. Feb 21 '13 at 19:15
Thanks for the sharing the Dunning-Kruger effect. Will figure out a time read those books. –  Simon Wang Feb 22 '13 at 1:28

In my personal experience, clients are never going to like what they see. They're always going to have criticisms for both the aspect as well as how it works, so that essentially means being capable of making an excellent website layout means little if your client doesn't like it. However, there are ways of adapting to this. One of the smarter things libraries like jQuery has done is to make skins pluggable, meaning you can change the skin without having to also change your front-end.

Of course, jQuery is just a front-end javascript library. However, if you use libraries like Primefaces (assuming you use Java) which take full advantage of jQuery's skinning capabilities, you end up with a smart way to write web pages without going into the specifics of ajax and problems with browser compatibility and you don't even have to know how to write HTML.

My point is that there are solutions to your problem, but you need to be smart with the technologies that you use. I think having a familiarity with HTML is a good idea in general and I would encourage you to learn it just for the sake of learning, but use your back-end knowledge to your fullest advantage when you have to build a website for a client.

share|improve this answer

I'm also a back-end developer and have little clue of what's going on in the front-end world. However, my experience told me that the no matter how good the back-end is, if your application is not user-friendly enough or even really hard to understand no one is going to like it. For example, if this button will do the best feature of your application, but if user s don't know how to click that. Then, it's likely to be useless.

My opinion would be to continue doing what you do best, but broaden your knowledge of the front-end world to know enough to do some basic things as well. Like if somebody talking to you in front-end language you must be able to understand what they're talking about but you don't have to know how to do it. For example, media queries or responsive design or jQuery and javascript testing framework. Also, I think right now most job description for web developer, even though it's for back-end developer you will see something like, HTML/CSS and javascript knowledge. So, keep doing what you do best but also read a lot of stuff on the Internet to see what's hot, e.g HTML5 or data virtualization.

share|improve this answer
