Never Learn Advanced Web Development From A Book

There are various ways to learn about web development. As a matter of fact, I’m working on a large post as we speak on great ways to learn it. Books are naturally something I gravitate to (I’m sure you can tell I’m a book geek by the books on the right), but it seems “How-To” books these days are junk. How to code, how to design, how to make money and how to market all spit out the same useless junk.

While you may find a rare gem or two in the “how-to” section, it’s tough. When learning HTML over 10 years ago as a middle-school kid, I turned to a book series called “HTML For Dummies” (suits me perfectly, eh?). While this helped me get a few of the basics down, I quickly found out that it’s best not to learn web development from a book. I’m relearning this experience as we speak, while I’m going through “PHP For Absolute Beginners” by Jason Lengstorf. I don’t recommend this book and I don’t recommend learning PHP from a book either.

What’s wrong with books?

There are several problems with learning something as complicated and fickle as any computer language. While reading through this may help get the basic syntaxes down, you’ll most likely never learn the full code by reading and/or completing the exercises. Why?

  • Many book editors don’t know anything about code, therefor the book most likely contains millions of errors in the code (like the PHP books I’m reading now) and if you have ZERO knowledge of the code, you have no way of knowing how to debug. This will leave you frustrated and cursing.
  • Although basic code doesn’t change very often or much, if the book you buy is more than a year old, it could be using some outdated practices. I wouldn’t even look at a coding book if it wasn’t published in the last 6 months.
  • There’s no one to explain the code. While most coding books have a basic explanation of the code, most of the books are centered around active exercises. These often don’t explain the code line-by-line or why you need this or that character. While you may be able to complete all of the exercises, can you write something else from scratch? Will you remember it all?

So how do I learn?

I don’t want to get too in depth on learning web development on this post, but the best way to learn is to learn by doing and by example. Find some snippets of code or download a website from a developer friend and copy it. This is the only time copying is ever ok – when you’re trying to learn something. This is how most designers learn to design – by looking at great design work and figuring out how to implement those styles and cues into their own work. The same goes in web development.

That being said, I don’t like being a quitter and since I won this book in a contest, I’m going to continue to go through the exercises, and hope that something sticks. Even though the last two examples they gave were wrong and didn’t work without hacking them, I want a basic understanding of PHP while my programmer is away on vacation. I know enough PHP to make contact forms, if/elses and do almost anything on Wordpress, but I don’t know much or anything of backend PHP or how to write it from scratch.

How did you learn?

What do you think about programming books? Do they work for you? What did you use and how did you learn your web language of choice?

Picture courtesy of rocketnewton

 

Post Tags: , , ,

About the author

Amber Weinberg specializes in clean and semantic XHTML, CSS and WordPress development. She has over 10 years of coding experience and is pretty cool to work with. Amber is available for freelance work, so why not hire her for your next project?.

If you enjoyed this post, please share it!

RSSTwitterDiggStumbleUponDeliciousFacebookRedditLinkedInTechnoratiDesign Bump
Google Buzz

Related Posts You Might Like

14 Comments

  1. I have a gazillion development books!

    However I don’t read them cover to cover, I mainly use them for reference as sometimes it’s better explained in a book than on someones blog. 9 times out of 10 the book has been proofread by various experts to ensure it makes the most sense.

    As always trail and error is the best approach to learning anything!

  2. I’ve never looked at a programming book. In school, I never did well learning from a book for any subject. I’m a hands-on learner. The way that I learned HTML while I was still really young was using the View Source function in IE. I learned JavaScript by reading the code and playing with it to learn what everything did. I learned PHP by using popular PHP apps (like phpBB). And thanks to open-source software, I learned C/C++.

    For me, the best learning method is to just dive right into it and see what different things do. I even apply that to my car hobbies.

  3. @envyeconomy

    Yeah!

    I mentioned this to you on twitter. The books are usually full of 100 pages of extra filler. On the job and messing around is the best way to go at it with tutorials abundant online. I will admit with tech I am in a rush to learn thinking what if I am left in the dust of the competitors that are coming out but then I said they are still limited and that it can take years to become a pro but this is what makes tech jobs a more stressful job

    Now to answer how I learned. Ya, Sun owns mysql so they have amazing free tools I use to create database transfers and so on easier and keep it simple with simple php commands that suit my purpose with amazing DW plugins. I am a pro seriously because I adapted with technology to get what I need done you can’t always just start from scratch its much more labor and costly only for the same outcome.

    It took me 3 days to learn mysql/php enough to be comfortable and I am serious.

  4. I learn some from books and some from just diving into the code and playing with it. When I was starting to learn HTML and CSS I picked up most of the basic understanding from reading through a couple of books and doing some of the exercises. After that was when I started taking some of it apart and trying different things to see what would happen. I have definitely learned more from the latter than the former.

    Some of the classes that I have attended have been much the same. I had one class that the teacher followed the book page for page and exercise for exercise. I could have done it myself at home for what he taught. Another class we never opened the book. The teacher taught us completely from his knowledge and experiences with Flash. Again I got much more out of the latter.

    I believe the books are good to learn the basics or use for reference. Your main learning will come from diving into the code.

    Not sure if this would interest you or not but someone on Twitter recommended this book to me for starting with PHP: http://www.friendsofed.com/book.html?isbn=1590597311

  5. It’s good to see most of you guys have had the same experience I have. I’m still going to try to finish this book though. No pain no gain ;)

  6. Agree there are some lousy books out there that leave the reader frustrated and angry.

    However, there are some good books that can teach the reader a lot. Before buying a technical book I always check the reader reviews at Amazon.

    I also highly recommend anything from the Pragmatic Bookshelf (http://www.pragprog.com/). The books come in both hard-copy and several electronic formats. Each book has its own forum where readers can ask and answer questions about any of the exercises. Full source-code for all examples and exercises is available for free. Best of all, the electronic versions are updated frequently correcting any errors found by readers. Readers are notified of updates by e-mail, and best of all, the updates are free too.
    I’ve purchased several titles from Pragmatic and haven’t been disappointed yet.

  7. @Jim Those sound promising, will check them out next time I’m at BAM

  8. I typically learn by hands on, and I find with out an “instructor” I end up never getting things done on things I’m an “absolute beginner” on. I typically use books as referece. The last book I used for web development was jQuery in Action and that was mostly just to get me started, I hardly read cover to cover. I’m currently trying to learn asp.net and I know C# and php enough that any book I get is just giving me the same old same old and I’m not picking up anything I didn’t already know excpet maybe a syntax here or there.

    I like hands on projects like homework assignments lol. And I’ve yet to find a here is the problem and here is the “answer” in a separate section. With a excerpt or two of new “code” needed.

  9. @Amber:
    Sorry to hear you’ve been having trouble with my book. It was my first experience writing with a team, and the editing process was kind of a nightmare for me. I’m working on a second title with the hopes that my prior experience will help me avoid the editing mistakes that exist in PHP for Absolute Beginners.

    If you have any questions about the book (or about PHP in general), I’d be more than happy to help, either via email or Skype.

    Again, sorry you’re having trouble, and thanks for the honest review.

  10. @Jason Thank you for paying attention to a small blog like mine and commenting. I can see the editing process must’ve sucked, I found a lot of grammer mistakes and misspellings and only made it to the first 100 pages. It sucks that something like that can ruin your work.

    The exercises weren’t bad or anything, I just kept getting error upon error with the code exactly like the book, thankfully I’m not a beginner, and was able to figure most of them out, but got frustrated after the register exercise didn’t work, especially after being told you can’t even use trim on an empty function like the book was calling for, so I had to put it down.

    I think it’s less your book and more a common “how to” problem. Good web dev books are really hard to come by and even those are tough to learn from, you’re normally better off learning just by jumping into a website. Plus it’s difficult with code being so particular, there’s bound to be a bunch of code errors. I’m not sure how the book editing process goes, but it might help to have a few people go through and do each exercise to make sure there aren’t any of these errors.

    If you’re working on a second title, I would love to read it..I promise to be nicer in the reviews ;)

  11. I’m a bit like @Alicia. I’m more of a hands on learner so I typically use books as a reference. In saying that, I also agree with @Damian when he says that sometimes it’s better explained in a book.

    I think once you have a firm grasp of programming concepts it’s relatively straightforward to learn the syntax of another language. Really, the only things you need to worry about are the language’s particular implementation of the concept, or things that are peculiar to that language. This is where books come in handy.
    A trick I use when I want to learn a new language is to pick about 4 or 5 books that have high reviews, or are by a well respected publisher or author, and search for those books on googlebooks. Usually you’ll at least be able to see the table of contents. Using the chapter names and topics I create a checklist of everything I need to learn about the language above and beyond the syntactical differences/similarities.

    When I actually buy books, the books that bug me the most are ones which guide you through the building process of a complete website/system. I just feel that you end up doing things the way the author would do them, rather than finding your own way of doing it.

    I also want to add that the best programming book I have ever bought is Java Concepts by Cay Horstmann. If all programming books were like this book I would probably buy more. Each chapter begins with chapter goals and ends with self-check questions, chapter summary, further reading, review exercises, programming exercise and programming projects. The programming projects are great because you get to use your skills to create programs that solve problems, rather than creating programs that only serve as a teaching skill. There is a difference between knowing a language and using a language.

  12. Coda and “view source” is all you need. Like you said, see what others are doing that you admire and try to figure out how they did it. The books are great to have around for reference (except for ‘PHP for Absolute Beginners,’ which I also threw out. Skip ‘PHP in 10 minutes a Day’ too….)

    I just find tinkering within Coda and reading source code is the best way for me to learn.

    Justin

  13. I seem to be in the vast minority here but I learn best from reading a book.

    I will often spend an afternoon reading a book I picked up from SitePoint or from our work library. I think I absorb new information best when I am concentrating purely on taking in new info and not trying to apply it immediately.

    That being said I don’t think you can ever gain a full understanding from only reading at some point you have to load up a IDE and start “playing” with the code, but I learn far more from the books I have than I can pick up from viewing other peoples code and just trying stuff out.

  14. Very informative, this was just the information I was looking for. You are dead on the money.

Leave a Reply