Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Good at programming but suck at Computer Science and coding interviews?
25 points by wh-uws on Nov 11, 2014 | hide | past | web | favorite | 16 comments
I recently started a group / meetup at the hacker house I live in SF called "Do you even code?" that is for people like you.

I started a facebook group for it recently


Here is the mission statement.

"This group is dedicated to all people who can program... but suck at data structures and algorithms coding interviews.

Those interviews where you have to get the answer right in under 10 minutes with nothing but a whiteboard, a toothpick, and 2 overworked engineers staring over your shoulder who just want to fill their rec who are wondering why the recruiter sent this idio...candidate in to them.

Soon there is that moment when one looks at you like "Do you even code?"

Then the nice recruiter walks in and tells you "well that's the last interview for the day!"

And you get escorted off the premises. And a week later you get that form letter like "We're sorry but we've decided not to 'move forward' "

This is a place you can learn and share knowledge about how to cross the chasm between "not moving forward" to "were excited to extend you an offer."


Anyone in the SF bay area is invited, we meet at 8pm on Thursdays. If interest grows enough I will be making it an official meetup group.

The goal of the events to help expose yourself to enough problems and solutions so that you can recognize problems and find solutions quickly.


Why not just learn the CS, Algorithms, and Data Structures fundamentals that theses tests are looking for instead of gaming the system?

There are some interview processes that are unfair, pedantic, or irrelevant to be sure (manhole covers come to mind), but most of the questions are at least founded in basic CS knowledge.

A good analogy is the math section of the SAT: some people can take the SAT naturally and understand the question models it follows on the first try. Others will go to tutors and memorize how to solve them, essentially programming themselves for different word questions. Which group do you think will have a more enjoyable and valuable experience at a difficult college that requires a high SAT score?

It seems (to me) that it would be better to acquire the actual skills so you can improve yourself and do the job rather than memorizing problems and solutions. Even if you believe your job doesn't involve CS directly (webdev, for instance), a more holistic understanding of computer science is sure to benefit you in understand how and why the APIs and frameworks you use were designed, and how you can write clean and performant code.

If your problem is performing in front of engineers on a whiteboard, and not the theory, then you don't need to practice questions, you need to do mock interviews.

Yzzxy that is litterally and exactly what the group is about.

While there are some shortcuts they largely rely on having seen a problem before.

Many top tier interviewers can ask you problems you can't have seen before and then all you will have left is your though process.

The group is about exposing yourself to lots of problems to pick up tricks and shortcuts but also to learn about the underlying theories and thought processes that created them as well and sharing that knowledge with others on the journey as well.

> While there are some shortcuts they largely rely on having seen a problem before.

I'm arguing that this is largely not true. These problems are grounded in basic CS[0] problems - implementing stacks, linked lists, standard sorts, or understanding how to solve a basic problem in a certain O time. They are not "interview problems" that recruiters invent and pass around to one anther, they are real problems with historical backgrounds and well-discussed solutions.

I'm not saying your group shouldn't exist, I'm saying I disagree with your stated method:

> expose yourself to enough problems and solutions

Instead, expose yourself to computer science. Few interview questions (for entry-midlevel coding jobs) are novel, almost all of them (that I've seen) are just exemplifications of well-known CS problems[1] that you will encounter in an intro algorithms textbook. The others tend to be domain specific and can't really be studied for anyway (write a basic X in framework Y).

There's no reason to frame this learning as interview training beyond when you state the benefits of it for marketing[2]. There's no magical distinction between programming and interviewing, there are just some abstract topics that happen to be tested by interviewers and are also used in real life.

[0] Not programming, computer science

[1] When I say problem here it means something slightly different than a test question. The definition is closer to "a research question that was once, and may still be, unsolved."

[2] Don't take this as an implication that you should be running a business, marketing is just part of making a good thing. It's understanding your users.

High SAT scores are not predictive of success at college, and neither are hard interviews questions predictive of being a successful developer.

I may have not articulated this very well: Both groups in my metaphor (those who naturally understand the SAT questions from learning mathematical concepts, and those who are tutored on known SAT questions) were meant to be among the high scorers on the test.

This would imply that SAT scores will not predict real performance, and the same implications would apply to job interview questions that are gamed in a similar fashion.

"Those schools that attract students with a wide range of SAT scores generally have higher correlations between the scores and first-year grades." --http://abcnews.go.com/Technology/WhosCounting/story?id=98373...

Just don't apply to those companies, you probably wouldn't like it there anyway.

In fact that interviewing style is being abandoned, see here the case of Google: http://www.dailymail.co.uk/news/article-2346126/Google-aband...

So why invest so much time and effort in preparation for an interviewing style that is only practiced by a small minority of employers. Its a big world out there.

One alternative: become a freelance, as those interviews are usually only for employees, and you tend to take a lot less bulshit being interviewed as a freelance, things are kept much more to the point.

Alternativelly, take this course at Coursera, lots of food for thought there -> https://www.coursera.org/course/algs4partI

Still for those interviews you indeed need to prepare: buy books on how to do those interviews, practice at home, etc. remember it has nothing to do with on the job day to day work, its just an absurd silly game.

What background do you look for the event? and which language you guys use ? This looks perfect for me who has front-end experience and trying to move on to back-end...

Yunueng I myself am a person who has lots of front end experience.

The only background we look for is someone who has done some coding before.

This group is past the beginners level of not knowing how to code or use a command line and things of that nature and is focused on algorithms, data structures, complexity analysis and efficiency.

cannot understand how can you program if you don't know data structures and algorithms ...

There are specialties that don't require that knowledge. Show me how frontend web developers can benefit from algorithmic CS knowledge.

-Optimizing your JS for faster performance when mutating the DOM tree or some large array or object

-Understanding how a client-side framework like Angular or React or Ember actually works, e.g. how a finite state machine works, how the DOM is polled for changes, how templates are processed and rendered, these all require algorithms

-Writing your own client-side framework or compile-to-JS language

Even frontend web developers need to know data structures.

When you want to apply an existing algorithm to a flat array of data. All sorts of DSP functions can be done without advanced CS knowledge. It is was GSOC students were doing a couple of years ago.

It's when you know the syntax and can make use of online tutorials.

topcoder.com is probably the most effective tool for programming problem-solving skills.

People that get any reasonable ranking on the algorithms section usually laugh their way through interviews.

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