
It was the first time I went through an explanation of CSS layout and positioning and felt comfortable turning something on paper into a UI on screen that looked exactly how I wanted it to look. Before the book I relied heavily on trial and error. Now I can look at something, write some markup and CSS, and it does exactly what I want.
Since you're interested in CSS, I assume this is geared towards the web. I'd recommend "Designing for the Web" by Mark Boulton which dives specifically into web design.
The above books gave a bird's eye view without implementation. I'd recommend reading "CSS Mastery" to learn how to actually implement a layout. If you decide to use CSS frameworks, usually the documentation is enough when you have a basic grasp of CSS.
Most Photoshop books I've found cover using it for editing photos, not for graphic design. You can read these and learn a lot from them still. "Photoshop Missing Manual" covers almost everything about Photoshop, but it's a long read. I'm a huge fan of Steve Caplin's books "How to Cheat in Photoshop", "Art and Design in Photoshop", and "100% Photoshop". Graphic editors are still used for patterns, but I'm noticing a trend towards using CSS more for buttons/shadows/gradients now.
The part of you responsible for the UX and visual design wants to design nuanced flows and pretty pages. The part of you responsible for implementing wants designs that will be pragmatic (or easy) to implement.
My own personal exploration of this stuff began in late 2009, when I got into web programming again after a nearly 10-year hiatus.
What has helped me is to study design and implementation separately. The more knowledge I have of the modern frontend ecosystem, the more I expand the realm of "things that are pragmatic to implement". And the more knowledge I have of how design works, the more flexibility I develop in terms of "acceptable UX and visual design".
Put another way: if you know what is easy to implement, you can combine that with a study of design to combine those building blocks into something that looks good and works well.
Design resources:
The Non-Designer's Design Book by Robin Williams
-- An excellent book that lays out clearly and concisely principles that will make your designs work. Perfect for the analytically-minded.
Thinking With Type by Ellen Lupton
-- The web is still largely a written medium. Getting the typography right is a huge win. And this book is great.
Implementation resources:
* Head First HTML with CSS & XHTML by Freeman et. al.
* CSS Mastery: Advanced Web Standards_ by Budd et. al.
Helpful:
* CSS frameworks like Blueprint, Bootstrap, Compass
* Using grids
* SCSS/CASS/LESS
Also, Smashing Magazine (web) is very good.
To build implementation skills, it is helpful to take a screenshot of a site that you like and then implement it. To build design skills, it is helpful to sketch layouts that you find aesthetic and then build them out using lorem ipsum text.
You'll get there. It gets easier. And as someone told me when I complained about the breadth of stuff one needs to know: web development isn't going away anytime soon, you have plenty of time.
1. Head First Rails I first poohed this book but I had read 7-8 other books adn still was confused so I thought what the hell. I did each project several times and started making changes. Totally awesome especially the ajax integration parts. This is when I could actually make my own simple apps in less than a week.
2. I loved Agile Programming book - totally awesome. Not enough apps though. Great explanations. Gentle exposure to Ruby.
3. beginning novice to professional for ruby. I love this book. It is just plain fun. Good examples. I totally had fun with this. Peter is totally totally awesome - I wish he would write every tech book!!
Now you have the grounding, start making and asking questions.
What killed me was the UX/UI stuff. Then a friend suggested CSS Mastery book and using blueprint this got me clued in. Now I was not paralyzed. It was so awesome to see an app created in literally minutes.
I loved RoR - I miss it terribly. I disliked the community. Fanboyish. It was like being in all male high school with everyone thumping their chests and no help.
I still miss it very much. Whenever I code I first think in RoR then do it in php. My background was coldfusion, c#asp.net, java, etc. I need something dumb simple and php does the trick. And the people are nice and there are tons and tons of example to do anything. Also I needed something that is simple to deploy and maintain. Yeah yeah -RoR is easy to deploy - my first deployment took me several hours. Whereas php was minutes. In terms of sys admin and performance and optimization, I rather deal with php. As DBA, I do not really want an ORM. BTW when you feel good with RoR - check out Enterprise Rails - wow - good stuff on performance and optimization.
