Laughter: A Key to Successful Project Management – http://pulse.me/s/jxVeT
In a guest post at Venture Beat, David Gorodyansky, CEO of AnchorFree, which makes Hotspot Shield, a privacy shield for internet users around the world dicusses examples of entrepreneurs around the US that founded startup whose primary mission was effecting social good as opposed to purely commercial ventures. Gorodyansky argues that:
It’s time we took a cue from innovators such as the duo behind MobiCrops, an app aimed at eradicating world hunger. New Jersey Institute of Technology graduate students Daniel Boston and Manoop Talasila developed the app as a tool to enable farmers around the world to communicate better, therefore improving their efficiency for planning and growing crops for those most in need.
“Our first goal is usually to solve the problem, not make money,” the students said.
It’s this mentality that should serve as our guide as we launch start-ups and build business plans. The world doesn’t need another mind-numbing game. It needs solutions like the ones the NJIT students devised. Once you identify a true problem and develop a means for addressing it, the money will come.
I especially agree with that last sentence and it kind off resumes my take on entrepreneurship as it related to my life goals. The primary motivation is to affect a change in the world, but honestly, I am not Mother Teresa, nor a monk so i want to take care of my family as well. The ideal venture I am working on will achieve both God willing even though it’s a hard road to trod.
I was going through Dzone and bumped into this article by Bozhidar Bozhanov explaining his frustration with the interview process at Facebook after being rejected after 3 phone interviews. In the article Bozhanov explains that the interview process consisted of algorithmic skills and general computer science test (recursion, binary search, basic data structures), basically “easy” stuff that any computer science grad should be able to solve and that is the rub that I personally have with those types of interviews. As Bhozanov puts it (better than I could have):
- what you do on these interviews is something you never, ever do in real life: you write code without using any compiler or debugger. You do that in a limited time, with people watching you / waiting for you on the line. But let’s put that aside for now. Let’s assume that writing code without being able to run it is fine for interview purposes.
- the skills that these puzzles are testing are skills that the majority of developers have never needed. Most people are writing business software, and it does not require red-black trees. What was the last time you used recursion in your business software? So the last time you’ve done anything like that is in college. And many of these problems are really simple if you are a freshman, you did them as a homework just the other day. But then it becomes a bit more tedious to write even things as simple as a binary search. Because you just didn’t do it yesterday. Of course you will be able to do it, but for a little more time, so that you can remember, and for sure by using a compiler. (By the way, the puzzles at facebook were really simple. I didn’t do them perfectly though, which is my bad, perhaps due to interview anxiety or because I just haven’t done anything like that for the past 3 years)
- the skills tested are rarely what you will do in your daily work anyway. Even in these cool companies like Google and Facebook, there are still pretty regular projects that require coding to APIs, supporting existing code, etc. I don’t think you will be allowed to tweak the search engine in your first week, no matter how great you did on the interview
- interview preparation is suggested and actually required before these interviews. Exactly as if it is a college exam. But that’s dumb – you don’t want people to study to match your artificial interview criteria. You want them to be…good programmers.
- focusing on these computer science skills means these companies will probably miss good engineers that are simply not so interested in the low-level details.
And I agree with all of the points. I love programming, but I did not love my computer science classes. I had the most fun in classes that involved web development and database practice, but the theoretical classes, zzzzzzzzzz… In all honesty. So it annoys me when going through an interview process and I am asked questions that I could have answered in 2003 but whose answers have long been pushed out of my general memory. Bozhanov (I agree again) states that “obviously my problem is that I don’t like low-level and algorithmic stuff, so I wouldn’t be able to work for cool companies like Google and Facebook ” not just them but smaller companies that adopt the same practices in looking for candidates.
PS: Jeff Atwood over at Coding Horror has his own views on the developer interview process and #5 and #6 where the biggest source of no-nos from the comment sections and the consensus in my opinion that is that the process Jeff outline was very risk averse for the company but will lose a lot of good people through it. This confirmed what I felt, is that as a developer, unless I am applying for a research oriented position don’t want to be bothered with theoretical knowledge from the past or being taken through loops which I feel are unrelated to what I worked and will be working on.
I’ve gotten a lot of positive responses for my previous article: Programming: “It pays the bills” vs “It satisfies me” and it has now be republished in Chinese here , here, and here. Thanks to my Chinese readers. I can now check off another item on my list of lifetime To-Dos. Programmers of the World, Unite!