Embracing The Demons « Andrew Heins. This post is part of a continuing series on Teach Yourself Web Development. I was originally planning to blog on another topic, but I’ve been trying to capture my thoughts around a specific issue for a while now, and I finally feel like I’ve captured how I feel. You sit down in front of your computer and you’re uneasy. You’ve got a ton of work to do, but all of it seems pointless. The code open in front of you is awful; worse yet, it’s yours, freshly written last night. You can’t focus. You’ve got the demons. I am intimately acquainted with my demons.
How can I compete with computer science grads with 10 years of experience on me? I used to worry it was just me. If you’re struggling with demons, I’ve got some good news and some bad news. Let’s Start with the Bad News I don’t know that the demons ever really go away. I’ve been studying web development for over 5 years now, and I think I’m reasonably competent as a developer. For all intents and purposes, I’ve succeeded. Getting Real. Here are the 16 chapters and 91 essays that make up the book.
Introduction chapter 1 What is Getting Real? A smaller, faster, better way to build software About 37signalsOur small team creates simple, focused software Caveats, disclaimers, and other preemptive strikesResponses to some complaints we hear The Starting Line chapter 2 Build LessUnderdo your competition What's Your Problem? Stay Lean chapter 3 Less MassThe leaner you are, the easier it is to change Lower Your Cost of ChangeStay flexible by reducing obstacles to change The Three MusketeersUse a team of three for version 1.0 Embrace ConstraintsLet limitations guide you to creative solutions Be YourselfDifferentiate yourself from bigger companies by being personal and friendly Priorities chapter 4 What's the big idea? Feature Selection chapter 5. An open letter to anyone with “SQL Server” on their resume. Community-curated collection of free books for the intellectually curious.
The Pragmatic Bookshelf. Extracted From The Pragmatic Programmer by Andrew Hunt and David Thomas.
Copyright 2000, Addison Wesley. We’ve been busy since we first wrote The Pragmatic Programmer back in 1999. Have you seen all of our recent books that we’ve written or published? From Agility to Ruby on Rails, project management to debugging your career, we’ve got the titles to help keep you on top of your game. —Andy and Dave Pragmatic Software Development Tips Care About Your Craft Why spend your life developing software unless you care about doing it well? Provide Options, Don’t Make Lame Excuses Instead of excuses, provide options. Be a Catalyst for Change You can’t force change on people. Make Quality a Requirements Issue Involve your users in determining the project’s real quality requirements.
Critically Analyze What You Read and Hear Don’t be swayed by vendors, media hype, or dogma. DRY—Don’t Repeat Yourself Every piece of knowledge must have a single, unambiguous, authoritative representation within a system. I am a great programmer, but horrible algorithmist - Learning Software Development - The Trendline. I am a great programmer, but a horrible algorithmist.
It is a thought that has been weighing on me heavily recently, and I’d like to gather other developers feelings on the subject as well. I started what can be called my professional development career back in 1999. I was still in middle school, but my father hired me at his software company. My official duty was to make updates to our websites, but I mostly ended up bugging the other developers to help me learn. From there I picked up Perl (somewhat) and then moved to PHP and front end web development where I have stayed comfortably for the last twelve years. When it comes to building large scale systems, understanding the details of those systems, and actually writing them, I do very well.
I even have a degree in Computer Science from what I think is a great university. However, I feel I am a horrible algorithmist. Ask me to write a complex algorithm (even one that has been discovered), and I start to get sweaty palmed and nervous.