A Plea to Stop Using the Word “Hack”

I’m sure I’m not the only person to have voiced this plea, but let me add another vote to end the lazy use of the word “hack”.

Please, stop using the word “hack” as clickbait for your list of 10 cheap substitutes for real tools that you can’t afford to buy. Don’t use the word “hack” when you’re just writing a list of tips most broke dorm students figured out in their freshman year. “Use dental floss to cut soft foods” is not a hack. “Use a colander” to roast red peppers is not a hack. People do these all the time. Don’t have a cake pan to bake a cake? Use a muffin pan. This is not a hack. Don’t have a noodle juicing machine? Press the dough out of a colander or a potato ricer instead. This is not a hack. This is just using things that are similar in structure to the actual tool that already exist for this type of action.

While it may be creative, it is not a hack.

Worse than using the word hack to describe budget-friendly substitutes is using the word hack to describe normal, daily human activity. “Staying hydrated” is not a hack for your body in the winter (via Real Simple), it is part of living. “Rereading text when you don’t understand a passage in a book” is not a hack for better reading (via Huffington Post), it is part of the process of reading. “Shaving with the grain of your beard” is not a life hack for men (via Business Insider), you are just describing how to shave.

I have a sensitivity to this word because hacking usually describes a quick, inefficient way to code because of lack of knowledge of the program. It is commendable when you are able to hack into a server because the lack of knowledge there is understandable. You are trying to get into a system that does not want you there. Of course you would have to find another way around it.

On the other hand, in college and in my professional life, I sometime encounter ill-equipped developers who hack their way through their job. One colleague built a very expensive website for a hunting group using hundreds of “& n b s p ;” and hard-coded every div. She said it was a faster hack since she was working with a theme that she didn’t know her way around. When she asked me to take over the website for her and told me it was very easy because I just had to copy the hard-coded div to every update, I immediately backed out knowing if I wanted to work on that site with a good conscience, I would have to refactor everything.

Another classmate when taking over a new job didn’t know how to work with the existing stylesheets and would create new classes and add “!important” after every line. He described it proudly as a hack he had found online.

I’m very wary when someone describes themselves as a hacker. There is always that pause as I wonder if this person is a genius and can pick up everything easily or is this person too lazy to learn how to code properly and would rather take shortcuts found on stackoverflow?

So let’s lessen our use of the word “hack” unless the situation warrants it. Let’s try to elevate the word hack so that it only describes brilliant shortcuts instead of lazy workarounds. Hacking into someone’s Facebook by finding a way to access the Facebook server? That’s a hack. Picking up someone’s phone and writing on their Facebook wall? That’s not.

Advice for a Computer Science Major

I was recently asked by a worried father to provide advice for his college sophomore who was was majoring in Computer Science.

I can’t say that I have the best answer, but I have never had a problem finding a job so maybe my words can help someone (it helps that as an entry level employee, my salary requests are on the low end of the spectrum). I will share the advice I wrote to the son.

1. Make your resume easy to read and full of key words.

I try to make my resume very readable. The first person to get you in the door of the company you’re applying is usually someone in HR or an all-purpose recruiter. It’s usually not someone on the development team so it’s important to make your resume full of key words that might stand out. For example, I always clearly list out the languages and technology that I have worked with. A resume should also be only one page. If you can’t fit everything on one page, think about your content. You don’t need to list every job, only those applicable. Try not to leave a big time gap between jobs, however.

2. Update your Linkedin account with a picture and lots of key words.

I’m not a fan of social media mixing with business, but having a Linkedin account is really worthwhile for an engineer. I get recruiters trying to offer me an interview at least three times a month. I make my Linkedin account full of key words and that’s how they find me. It’s also how I got my current (dream) job. They don’t post job listings online and a recruiter found me and contacted me.

3. Have an account where people can look at your work.

It seems lately every awesome job wants you to have a Github account so they can see what contributions you have to the open source community. A lot of people have gotten jobs this way. I would really recommend it. If you don’t have a Github account, it doesn’t hurt to have an online portfolio. Although it’s not required or a dealbreaker, I think it’s good to have one or the other (although Github is really the preferred one by prospective employers) to help you stand out.

4. Internships

I got job offers pretty quickly out of school because I already had 3 internships under my belt by the time I graduated. I can’t recommend internships enough – if you still have a semester left, try to get an internship somewhere, even if it means working for free although that’s rarely the case. You’ll also get college credit for your internships!

5. Simplyhired.com

This is a nice job resource website because it’s an aggregate. It’s how I found my first job. I also looked at my college jobs board.

6. Prepare for the interview

I also really enjoy this book for prepping: Cracking Coding Interview Programming Questions.

Nobody asks questions that hard except for Google and Amazon, but every interview I’ve been on (except for ADP) has made me code some simple algorithm in front of them so do practice on that (write an algorithm that finds the average of a set of numbers or reverse the letters in a given string). Learn OOP terminology and be able to state the difference when passing by reference and passing by value. Also, always bring an extra copy of your resume and be able to explain your resume succinctly.

One last advice, something that has worked for me was figure out what you want to do in a job as early as you can. Then specialize in it instead of being good in a bunch of directions. That’s how you can keep moving up instead of just moving laterally. I’ve had people tell me the opposite before so you can disregard this advice if you want – but by realizing I wanted to be web app developer, I was selective about my job decisions, sometimes even opting for a lower pay because I wanted to keep doing the work. It’s lead me to have a job that I absolutely love.

25 Favorite Animated Films

Time Magazine just came out with their list of The 25 Best Animated Films.

The list inspired me to write my own 25 Best Animated Films, however undeveloped my animation film watching skills may be. I will admit that I have not seen The Secrets of NIMH before making this list and also, like how I review all things, nostalgia and personal experiences may affect how I view the movies.

Now with the disclaimer out of the way, here is my list. It will also follow Time’s format, which will include stop-motion as well,  but I’ve decided to rank the movies based on the story  and execution of the movie rather than on its gross.

Continue reading