Monday, December 27, 2010

Book Review: Designing with Web Standards

Another book down! I just finished Jeffrey Zeldman's Designing with Web Standards (3rd Edition). This book is widely respected and Zeldman has had quite an impact on the move for designers and developers to embrace standards.

I took away a lot of good lessons from this book:
  • Standards should make things easier! This is not really very intuitive. Adding rules usually makes things more complicated. Standards, however, should make your code more readable, maintainable, accessible, and portable between browsers.
  • Standards improve SEO. I am admittedly ignorant when it comes to SEO. I really have no idea what makes a site turn up at the top of a search engine list. Zeldman's message is that the best thing you can do to improve SEO is to write standardized code with meaningful ids, classes, etc. This can get lost in translation when using a code generating program.
  • IE6 is a thorn in the web developer's side. Zeldman often paints a beautiful picture of how the standard works in all modern browsers. Then he goes on to make you cry over how IE6 butchered something and makes things not work. There are some workarounds in the book, but overall it is just painful to support IE6. It seems that Microsoft is behind the curve constantly when it comes to browsers. I won't let my bias come through too strongly, but surprise here.
  • It's important to stay on the cutting edge. Things are changing constantly with browser support of features, HTML5, CSS3, and web design trends. To stay competitive in web design and development, continuing education is critical.
I learned a lot of good theory and mental practices from this book. For what the book intended to do, I think it did a great job. I like to look at things from a more practical and hands on approach with a developers perspective and that was not the intention of this book.

Some things I would have liked to see improved:
  • No downloadable code! For as simple as it is to add the code examples to a website I feel like it should never be left out. There weren't a ton of examples, but I still wanted to try them out. Some of the code was very repetitive and not so much for learning as just getting a working example.
  • A lot of topics just skimmed the surface. If the book covered everything in depth it would be 10,000 pages long. I understand that not everything could be covered fully. However, without a lot of experience certain chapters left me desiring more explanation. The typography chapter was the toughest for someone without typography experience.
  • Code beautification. This is totally nit-picky, but I have serious issues with code that is hard to read because of indentation and trying to fit everything on one line rather than spacing things out. There were several examples in the book that were intended to be the right way to do things that were an indentation cluster. For a book focused on standards and making code easier to maintain and use I expected more.
Overall I enjoyed this book. It is useful for designers as well as developers. While I found this book educational, I think the companion book, Developing with Web Standards by John Allsopp would be more to my liking.

Sunday, December 19, 2010

Where There's Free There's Me!: Dive Into HTML5

I came across a free book on HTML5 this week.  I started reading it, but it's pretty long so I'm going to finish it up sometime in the future.  From reviews and reading the first chapter I can already say it's going to be good.  Mark Pilgrim wrote Dive Into HTML5.  It is released under the CC-BY-3.0 license so it's free to read online.  If you love holding a paper copy you can also buy the print copy from Amazon.

Monday, December 13, 2010

Book Review: Head First JavaScript

Yesterday, I finished Head First JavaScript.  This is my second Head First book and it was exactly as expected as far as the learning process was concerned.  I really like Head First's approach to learning.  It makes difficult concepts understandable to everyone.

This book is structured much like other programming language books.  Data storage, decision making, loops and functions are all covered.  Toward the end of the book concepts that are more unique to JavaScript are covered such as forms, DOM, objects, and dynamic data.

When I read Head First HTML with CSS & XHTML I had nothing but praise in my review.  The JavaScript book is a little bit different.  Although I thought it was very informative and worth the read, it had a few glaring weaknesses.

Keeping JavaScript functions in a separate file was briefly touched on and then rarely used throughout the rest of the book.  I am all about practicing good habits and I didn't feel like this technique was reinforced.

The examples were not as workable as the Head First HTML with CSS & XHTML examples.  The were much longer and provided by the book website.  This was fine, but I found that I could probably go the entire book without writing a line of code which was discouraging.  It took some self motivation to try to do some of it myself.

Finally, the book did not cover or even mention some important advanced topics in JavaScript such as Events and Try...Catch.  I realize everything can't be covered in the scope of this book, but at least some mention of them would have been nice.

Overall, this book was worth the read, but the time may have been better spent reading a more comprehensive JavaScript book.  Next time I read a JavaScript book it will probably be JavaScript: The Definitive Guide.

Saturday, December 4, 2010

The 4-Hour Workweek - Chapter 5 Comfort Challenge: Learn to Propose

The challenge for the last two days has been to learn to propose.  The goal of this challenge was to stop asking for the opinions of others and propose solutions.  When I read this challenge I knew it would be difficult for me.  I'm a very go with the flow person so my automatic response to "What do you want to do later" is "I dunno, what to do you want to do."

This challenge was harder to practice than learning to eye gaze because there are less opportunities.  Obviously, you make eye contact with people as long as people are around.  Proposing solutions doesn't come up in every conversation you have.

I caught myself in this situation a few times are tried to propose solutions.  Usually they were good, but at worst they started a discussion that at least made progress to a solution.  The only time I failed was suggesting having lunch outside and then getting stuck in the rain.  I wouldn't consider that a terrible failure though.

In one conversation I fell back into old habit when having a conversation with co-workers about what time we should start working on our off day.  My response was "whenever is good with you guys," which turned into everyone passing the torch and blankly staring at each other.  Proposing a solution would have made this conversation shorter, more decisive, and less awkward.

I'd like to make this a practice in my daily life.  I saw a lot of benefit to be part of the solution rather than a bump on a log.

Monday, November 29, 2010

The 4-Hour Workweek - Chapter 4 Comfort Challenge: Learn to Eye Gaze

I'm currently in the middle of reading The 4-Hour Workweek by Timothy Ferriss.  So far it's good, but mostly just mental preparation and not much useful skills yet.  I'm trying to do each of the recommended activities so I can get the most out of the book.

Chapter 4's comfort challenge is to learn to eye gaze.  Basically I had to "practice gazing into the eyes of others."  This is the end of the second day of this challenge and I learned more than I expected I would.

Lessons Learned
  • A lot of people don't make eye contact.  Most service people such as your grocery cashier don't make eye contact.  I tried to catch the gaze of one cashier and I couldn't grab it until she handed me the receipt.
  • I don't do well at eye contact.  I tend to stare off at nothing.
  • One of two things is true.  1) People are nicer to you when you make eye contact.  Or 2) you are nicer to people when you make eye contact.  I found that strangers and coworkers were more friendly when I made eye contact.  It might be because I act nicer when I'm looking directly at someone so they are nicer back.  I'm not sure where the friendliness originates, but it's definitely there.
Based on this quick experiment, I'd like to continue working on my eye contact.  I think it will help me build stronger relationships more quickly.

    Saturday, November 27, 2010

    Book Review: Don't Make Me Think!

    I just finished Don't Make Me Think!: A Common Sense Approach to Web Usability by Steve Krug.  Before reading this book I was a little skeptical about how useful it would be.  It has high ratings on Amazon, but it was published in 2000.  A lot has changed on the web in the last ten years so I thought the concepts would be outdated.

    To my surprise, this book was still very applicable.  The concepts are timeless and I suspect that the book will still be useful in another ten years.  I liked this book because it was straightforward and no nonsense.  It was just practical advice on making web sites as usable as possible by understanding how people interpret and scan web pages and by using conventions that people expect to see.

    The main concepts that I took out of this book include:
    • An understanding of how people scan websites.  The main purpose of the site should be obvious as well as where to begin.
    • Brevity is key.  No one is going to read a lengthy description of your site.  They want something short and concise.
    • Proper navigation.  It should be obvious and consistent between pages.
    • The importance of good design of the homepage.  Your home page will get the most traffic and should be well thought out, focused, and easy to use.
      • Every home page should have
        • Site identity and mission
        • Site hierarchy (persistent navigation)
        • Search
        • Teases like content and feature promotions
        • Timely content
        • Deals
        • Short-cuts
        • Registration (if used)
    • The importance of usability testing.  Usability testing doesn't have to be a huge project.  It can be inexpensive and just as meaningful as expensive testing if done correctly.  Usability testing throughout the design process will save time, money, and energy over the course of the development of the site.

    This was a quick read.  It took me two days to read it, but the author mentions that he wrote it such that it could be read in a long plane ride.  The website doesn't seem to exist anymore, but the book's resources are now located on Steve Krug's website.

    I would recommend this book to anyone interested in practical advice on web usability.  This book doesn't cover all the concepts in web usability, but it gives enough information to be extremely useful without getting lost in useless noise.

    Thursday, November 25, 2010

    Book Review: Head First HTML with CSS & XHTML

    So, that first blog post was pretty emo...

    It's been a while since that first post and things are mostly the same.  Things at work are going slightly better, but I still have a desire for something more.  I want something more independent and fun.  Something where I can travel more and spend less time stuck in a cubicle.

    So almost a year after my initial post I'm doing something about it.  Realistically, I can't just start working as a web developer.  I don't have the full skill set.  My background is such that I should be able to come up to speed quickly.  I have a plan to read some books about HTML, CSS, Javascript, PHP, MySQL, etc.  Once I have a good knowledge base I'll work on a portfolio and make a business plan.

    The first book I read was Head First HTML with CSS & XHTML.  I took a HTML class in high school and I'm surprised at how much I actually remember.  The book is different from other textbooks in that it is very readable.  It has a conversational tone that is very easy to follow.  The book is basically a continuous example that you're working through.  The combination of reading and doing really solidifies the knowledge.  I found that I was remembering concepts without any memorization effort.

    The first six chapters were on basic HTML.  A lot of this was repeat for me, but the book was still entertaining.  Chapter 7 introduced XHTML.  I didn't have any experience with XHTML, but it turns out it's not really much different from HTML.  The transition was fairly easy.  From what I've read it sounds like XHTML wasn't really ever widely accepted.  It looks like people are holding out for HTML5, but that topic wasn't covered in the book because it was published before HTML5 was well known.  Chapters 8 through 12 cover CSS.  I had no prior knowledge of CSS.  When I took HTML class all styling was done through HTML.  CSS is a much better way to do it.  HTML covers the structure of the page and CSS takes care of the styling.  The same HTML page can be transformed with a different CSS stylesheet.  Chapters 13 and 14 cover tables and forms.  This is done through XHTML but can be styled using CSS.

    This book was a perfect introduction to HTML and CSS.  I was able to get through the book in about 2.5 weeks but I think it could be done more quickly.  This isn't a book you can just read through.  You absolutely must do the examples to get the full learning experience.  I wish the book had more information about design principles and what colors and styling looks good together, but that wasn't really the intention of the book.

    My next book to read is Don't Make Me Think: A Common Sense Approach to Web Usability, 2nd Edition.  Stay tuned for that review soon.

    Friday, January 8, 2010

    Becoming a Web Developer Launch

    I'm have a bit of a quarter life crisis.

    I recently graduated college after studying computer engineering for five and a half years. I'm not trying to talk myself up or anything, but I am good at going to school. Over the years I have practiced the art of schooling and I can study for and pass a test with the best of them. I'm not the best at retaining the information, but I have regurgitation down to a science. I left school with the masters degree in hand and the notion that this success would translate into my career.


    I'm by no means failing at my job. I just haven't achieved the level of success I expected. My coworkers are more clever, efficient, and well-versed that I am. My ego was inflated from my success at school so this came as a shock. The lack of confidence tends to snowball until I've mentally incapacitated myself. This along with learning about how the corporate world works has brought me to a certain level of disappointment. I expected a collaborative learning environment and instead I found a world of individual contributors and red tape. This brings me to my quarter life crisis.

    I've recently started reading financial blogs by other gen-y folks like myself. I'm a true nerd for finance so I really do enjoy reading them. My readings have brought me to some people that have a different way of thinking about the term "career." You do not have to work in a cubicle for a big company getting your 401k matching dollars to be a professional. These people have different ways of bringing in money from owning businesses, to consulting, to temp work. They let their passion for an industry, a cause, or travel drive the way they earn their money. As a result, they do what they love and live the life they want to live. It is in no way a commitment to being poor, but a commitment to making money doing what you love.

    My discontentment in the corporate world combined with the inspiration from these financial blogs made things start to click in my brain. When I wrote software for school and fun I loved it. I don't think my problem is with technical work so much as the environment. Have you ever had a moment when things just suddenly became clear? I feel like the right course of action has been staring me in the face forever. I just didn't have eyes to see it until now. I want to get back to writing code I love. I've always been interested in freelance work, but I didn't know that there were any freelance jobs for people with my education and skills. After doing some research I realize that there is a need for freelance web developers. I feel like the job could not be more for me. I have the educational background, I could freelance and make some extra money, and if successful I could do the job from anywhere on the planet! That includes my living room, a local restaurant, or the beaches of Tahiti!

    I realize that I tend to be a dreamer. I get an idea and then get distracted by another before I'm successful in pursuing the first. I have other big goals for 2010 that I'm sure will slow down my progress on this one. This is a no-fail idea though. Worst case scenario I learn about web development and never make a dime. At least I've gotten some knowledge out of the deal.

    Now let's be upfront here. I may have gone to school for computer engineering, but I haven't made a web page since high school. This is going to be a learning experience. There are a lot of technologies that I need to become familiar with before I have a prayer of making some money doing this.

    That said, I now journey into the unknown world of the internets...