I recently deployed a website for my fathers dental practice. It’s dead simple but I wanted to get some experience with very manually taking a website from zero to deploy, as opposed to opening a Tumblr or a similar solution. The design started with the HTML5 boilerplate and I used the grid system component of Twitter’s bootstrap. I wanted a simple, professional and relaxed design, so I picked some textures off Subtle Patterns, chose the font ‘Gentium Basic‘, and a color palette that I thought portrayed those qualities. It included a nice little slideshow.
I decided to convert the original static design to a WordPress theme. I created a child theme that abandoned everything but some basic WordPress functionality from the parent theme. This step is relatively simple, though CSS tweaking and whatever else can go wrong when you’re interpolating HTML and CSS made it a bit tedious. For hosting I used a local provider Stackd. The project was a nice exploration of CSS grid systems, WordPress architecture and modern web design.
I finally have gotten around to reading The Pragmatic Programmer, a step towards improving myself as a developer I feel I would have been wise to have taken sooner. I’m finding it to be a very easy and bountiful read. The book thus far seems to avoids long-winded explanations, (very opposite to Code Complete) and gives advice applicable to nearly any software development environment.
“[…] exactitude in some small matters is the very soul of discipline.” -Joseph Conrad
The book seems to advocate being a pragmatic, wise and disciplined developer with broad knowledge domain. The tip in the book’s preface to “Think about what you are doing” caught my interest immediately, as my inaugural post on this blog was unintentionally the same advice. I also liked the quotes that preface every segment, as they came from wide array of sources and give the impression that the authors are cultured humans with a wealth of experience.
Being disciplined gives you the right mindset to become great at what you do. You will admit to your mistakes and learn from them, as well as continually and systematically gain knowledge and improve skills. I would recommend this book to any aspiring software developer.
Taking time to design is the first step towards crafting quality software. It is the advice that everyone has heard many times and is still very worth repeating. Design is simply thinking about what you are doing before you do it. Most all practices and methods in design are intended to make do just that. Many developers tend to over-think design methodology. With hot-topic methodologies and practices paired with very opinionated developers, attempting an analysis of all design methodologies can be deceptive, frustrating, and endless. I think the best advice is to be sure to think about and have a clear idea of exactly what you are doing and how it accomplishes your goal.
Scale can be deceiving
Sometimes the most frustration encountered when working on software projects is not accomplishing a task in your desired time frame. A common cause of this is assuming a task or modification will be simple and diving headlong into writing code. Hours later you find yourself in a tangled mess of code that has a very unclear concept of what it is actually doing. Scale can be deceiving. Don’t let the simplicity of a high level software problem trick you into writing code without forethought. Plan your solution so you can write clearly, concisely and intelligently. You will save yourself from having to hack your way out of a confusing mess, if not having to completely scrap an entire first attempt.