Hacker News new | past | comments | ask | show | jobs | submit login

Here's an often overlooked technique for older, self-taught engineers like me: study. Go get this book, The Algorithm Design Manual by Skienna. Also pick up a whiteboard, and a nice set of dry-erase markers.

Read the book, and do whatever exercises you can from the book on the whiteboard. Talk out loud, the way you will in the interviews. After a few weeks and 60 hours of doing this, you'll be ready to blow the minds of the people interviewing you.

When you go to your interview, you will bring your own markers. Then you don't have to deal with the fat, half dried out stuff you encounter during the interview. Also, warm up for an hour or two before you go to the interview, by doing problems from the book on the whiteboard, out loud. This helps you leave nothing to chance, and be ready for whatever they throw at you.

Yeah, it's a waste of time. But you have to play the game. Similarly, when they ask you why you left your last job, lie and tell them you'd accomplished all your goals there, got everything lined up and nailed down, and you're ready to make something happen somewhere else. Don't tell the truth if it's because your managers couldn't care less about doing what's best for the business. If you want to work at the circus, sometimes you gotta jump through some hoops. Big deal, you'll be ok!

Yes, the interview process is broken, but you can actually work at it and do well, even if you're old.

Buy this book even if you're not planning to take my advice and study. Even if you don't study, this should become one of your most treasured books. I myself was amazed at how many things turn out to be graph problems, and had a great time going through this book.

[1] http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/...

> Here's an often overlooked technique for [...] engineers like me: study.

This is fantastic advice, for everyone.

Preparing for interviews isn't wasted time, because ultimately the goal is to land a job that furthers your own personal goals in some fashion.

I wouldn't recommend lying. If you're leaving a job, you should stand by your convictions. In my market, it's small and everyone knows everyone, so claiming you nailed everything down is easy enough to verify. Just remember one simple truth: "You are the only common link between all your failed jobs."

The difference between "I nailed it all down" and "everybody between myself and the CEO was an idiot" may simply be a matter of perspective. Let's say both are true. Focus on the former, rather than the latter, in interviews. Be positive. Maybe that's a better way to phrase it, rather than saying "Lie." Heaven's no, never lie during a job interview; that simply won't do at all!

Lawyers never lie. that would be unethical.

Instead, lawyers "speak colorably"; If one takes the pure white light of truth, and puts it through a prism, all of those colors in the spectrum of truth, while not 100% of the truth, still contain a very strong thread of it.

for example, I was in court recently settling a criminal charge for someone about two months ago, and that someone asked the crown prosecutor (during the hearing) why the crown has gone silent on the civil process settling the charges. The crown, unable to lie, or even acknowledge a commercial default, stated colorably that the paperwork was "not necessarily valid" in a criminal case. not only was this true, but this kept the prosecution in honor, the court in honor, and the defendant in honor, all while allowing him his "Section 11" remedy (canada criminal code).

I'd suggest using colorable language any time you feel the need to lie.

TL:DR - In the eyes of the law, telling a spectrum of truth is still considered telling the truth.

So what I told you was true... from a certain point of view.

The best lies are the lies that can't be in principle disproven. I try to be reasonably honest most of the time, but if the question is something like "why did you leave" I'm going to give the "right" answer, not the honest one.

> I'm going to give the "right" answer, not the honest one.

Curious what the "right" answer is?

As an older self-taught engineer who went through interviews last year this is great advice. Other books I found particularly useful were:

Algorithms by Dasgupta, Papadimitriou and Vazirani:


And Elements of Programming Interviews by Aziz, Lee and Prakash:


Implement algos in a new language. Last time I went thru CLR using Haskell. I might do Go or Rust this time and contribute some algos to the community.

That's interesting. Did you use mutability, in ST or IO for example, to implement the algorithms?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact