If you’re reading this, maybe you’re a front-end web developer. Or, maybe you know a front-end developer. Whether you are one, know one, or never heard of one, here’s your chance to learn a bit more about what goes on in the mind of one. Congratulations, we finally bested the beast that is old ie, and we have found new and more rewarding challenges to pursue; we are becoming software developers. Granted we are working on a generally terrible system with countless interpreters to contend with, but every day someone (or more likely a team of someones) pushes the realm of front-end web development closer to app development. We are using tools like node.js, backbone.js, third party API’s, and a myriad of other technologies to produce seemingly simple applications that can be reached from nearly any internet connection. We are doing this to improve people’s lives, to connect people from around the world, or maybe even to enhance a brand’s connection with its customers. We are creating tomorrow’s social platforms as well as a new digital economy. Or some of us are anyway.
I’m sure we’ve all experienced the joys of struggling against a tight deadline to produce a pixel perfect piece of HTML/CSS with solid functionality, and that we can all agree that the clock is your greatest enemy (or maybe our own procrastination that leads to the battle with the clock, but let’s not lose focus). When your design team has been prodding you to add the newest shiny coolness, or you have yourself introduced a new technology to the project, that clock seems to move twice as fast while we move four times slower, grappling with this unfamiliar challenge. While the clock counts down, we begin to acknowledge the terrible sense of impending failure, sacrificing sleep and relationships to avoid it, all the while knowing that we would be fine with just a little more time.
Recently, while working on the T1M site redesign (coming soon, I promise), I was greeted with the alien challenge of not only producing quick prototypes, but also with learning to use our new toy, Git. For those unfamiliar, Git is a software version control system that any nerd worth his or her weight swears by. It makes collaborating on projects more efficient and more reliable. It is also far more complex than using the simple click update, work, click update, click commit pattern I had grown used to with SVN. While trying to use this new tool, I found myself desperately trying out every GUI I could get my hands on to avoid learning dozens of command line… well… commands… ick. I ran into roadblock after roadblock, and—because I had only a hazy understanding of what Git was doing—I was completely inept at the task. All the while the clock kept ticking. I was finally forced to dip my toe in the command line to clone the repo to my local environment… and it took less than 10 seconds. 10 seconds to do what I had spent days trying to avoid. It was a humbling moment.
Not long after that I started looking up more Git commands, and more, until I had to put together a .profile to save some aliases for the most often used commands, which made me even faster. But I wasn’t just getting faster, I was beginning to understand Git. My curiosity led me to exploring various Bash commands to speed up my folder navigation. Not long after that I was experimenting with CakePHP’s command line interface to produce quicker prototypes of potential application data associations, and by quicker I mean minutes versus hours. In the future I see myself delving into the much celebrated Drush, Drupal’s CLI, which can cut development time in the CMS substantially. With straightforward, no-mouse tools like these at my disposal, I feel excited about the possibilities the future holds for me and my code, rather than depressed about how fast the clocks in the office are.