Saturday, June 12, 2010

Dispelling Laziness, Getting Things Done, Helping non-programming programmers

I'll do it later. - Mr. Procastination

After reading Getting Things Done by David Allen about 3 months ago, I've become a productivity machine. I've evolved from working 9-5, sleeping early, being able to do programming sprints every month to doing sprints every week, starting my own YouTube channel, writing for several blogs on productivity/gaming, and engaging myself in a healthy lifestyle by going to the gym and sustaining an unforgiving 2000 caloric intake. What does it take? The answer is simple: discipline and passion.

I have to admit that when I first started this blog I wrote in a very robotic tone (much like the Architect from the Matrix). I've dispelled that and decided to take the direction of this blog to a more casual tone. I was listening to the Internet Business Mastery podcast and they talk about how the tone of your blog should always be as if you were talking to a person at a nearby coffee shop. This intrigues me so much and it purges the thoughts of "Is my writing good enough", "Do I need to sound more intelligent?". That said, I believe that the first steps to achieving creativity and productivity is to purge your ego, your dwelling thoughts of failure, and your tendencies to get discouraged.

Never give up.

I've recently launched my own personal project called Nice Macros Bro, which is a simple repository of macros for World of Warcraft players. Although I have quit the World of Warcraft almost a month ago, I still decided to go along with making the site as my goals were to exercise my SEO skills and dive deeper into Google Analytics' metrics.

Adding to that, I've launched my personal portfolio that encompasses a plethora of projects I've done including Mojorion and XWNED Dashboard. So, it's been a very productive past few months--all thanks to reading Getting Things Done by David Allen. Additionally, a major kudos to Loyal Chow for recommending it to me.

Helping Non-Programming Programmers

You probably noticed that my past few articles have been giving advice and tips to aspiring front-end developers that don't really have the technical Javascript skills but are able to do HTML/CSS easily. Here's a few of the articles I posted so far:
Coding Horror's article on Non-Programming Programmers evokes his hatred towards non-programming programmers.
At least bad programmers can be educated; non-programming programmers are not only hopeless but also cheapen the careers of everyone around them. They must be eradicated, starting with simple technical programming tests that should be a part of every programmer interview. - Jeff Atwood
Technology would have never evolved so much without the industry being so bloated with a wide spectrum of experts and amateurs. Adding to that, it is very easy to create web sites nowadays--making it really easy to solidify a non-programming programmer's portfolio. I've worked with all people of the spectrum and based on my experience, NPP's don't have that much of an effect on timelines. At the end of the day, they are still able to ship the HTML/CSS/Javascript. Sure it'll be spaghetti--but that's up to his/her architect to code review. What I also do find is that sometimes NPP's may not be strong in terms of technical skills but they will have a strong set of soft skills (negotiation, which is a valuable skill to have when making technical recommendations to the client). That said, front-end development is good where it is by having a wide variety of people with diverse backgrounds. Some front-end developers come from a Bachelors of Arts and not Computer Science or Computer Engineering. I believe that having a diverse group of developers brings in more potential creativity in solving problems; however, if the developer isn't passionate about what he's doing--it's a totally different ballgame.

What I do find very disheartening in front-end development is sometimes you will have team mates that just don't care about what they are doing. Since the level of entry for front-end development is very low (easy to get in) and the rewards are very high (pays well)--you'll often run into these types of people that only care about the money.

In the end, I see having NPPs (non-programming programmers) on the team as an advantage. Subsequently, it gives your team diversity and opens up the potential of attacking problems from different angles. Most of them are able to still finish their deliverables; However, NPPs that don't show the slightest bit of passion and dedication in front-end development can cause a disturbance in your team synergy.

I believe that the interviewing techniques of todays programmers need to change. Human Resources should not be conducting a technical interview--a senior developer or architect should be. Also, technical interviews should encompass both highly technical questions and story-based questions to really pin-point whether the candidate has a certain level of passion and dedication for development. Even if they don't manage to fully answer the technical questions, they can still show how 'trainable' they are based on if they can convey to the interviewer that they're passionate, dedicated to learning more.

Good luck and have fun,
Jaime Bueza

Jaime Bueza is a software developer in Vancouver, British Columbia, Canada. He has developed web applications for Nintendo, Electronic Arts, Ritchie Brothers, Kiwi Collections, and Cox Communications. When he's not developing useful software that constantly evolves with business requirements, he's creating tutorial videos for aspiring front-end developers.