Have you ever googled your name? I recently went about googling other colleagues of mine and the results were always their digital portfolios or resume; however, mine turns out to be a broken blog and 6 year old forum topic I created about how to set ranges on randomly generated numbers. I was terrible.
October 10th, 2004 I posted on WebDeveloper.com asking about how to set a range on a randomly generated number in Java. I can't believe that still shows up on Google's search results when you search "Jaime Bueza".
Here's a few points of advice for aspiring software developers:
- If you're going to ask a trivial question, ensure that you sign up as a troll. Name yourself: "lolyougotowned" or "trollpride" or "trollingftw". Don't put your real name down when you're asking technical questions. I'm sure that these search results will be detrimental to my career down the road.
- If you're going to ask a trivial question, ensure that you've taken the necessary steps to hide your tracks (using a troll email address, etc).
- Given the fact that all technical interviewers will Google your name, ensure you can 'seed' your results to be in your favour. Use your SEO skills here! If you can somehow tilt the results in your favour (linking to your latest projects or a really intelligent response to an open source technical topic)--DO IT! A true Ninja will always tilt the situation in his favour for positional advantage over his enemies!
Incidentally, I asked that question on webdeveloper.com because of my undisciplined work ethic back in the day. Before I enrolled into the BCIT CST program, I always wanted to learn things without actually picking up a book (learning by example on the web). This was actually a bad idea for me as there's so much garbage on the web. The problem back then was that I had no formal development training, so I tried to learn how to code by myself. In my opinion, the best way to learn on the web is ensure that you have a solid foundation of knowledge: architectural skill set (design) and an understanding in different philosophical approaches to developing software (patterns). If I could turn back time; I'd ensure that I learned topics, such as, OOP, AOP, and inversion of control. I'm sure that if I had a solid understanding of those concepts prior to BCIT, I would've been more experienced in putting them into practice on different projects. If you have a strong foundation in regards to software development approaches and philosophies, learning a new programming language will come naturally.
Ultimately, languages, frameworks, and toolkits all fade away as time goes on; however, philosophies and approaches remain to be forever unchanged given how fast technology evolves. This is absolutely necessary to understand as this really shows how truly strong a programmer is: his ability to adapt to change and to be able to be successful in any language. This post is a segue to my next post about how to be a Kage developer (if you've watched Naruto, Kage is the highest ranking Ninja).
PS: I don't even watch Naruto; but it's cool they have a ranking system for Ninjas.
PPS: I wrote this blog listening to TI - What You Know on repeat.