Live data from Hacker News

Python coding interview challenges

github.com

161–170 of 252 posts

Re: Python coding interview challenges

#161
post #91

Earlier quoted context omitted.

> If an engineer gave me your answer ("I never learned the principle because I never had to") I would know they aren't a fit for my team So we should learn all the things, ahead of time, just in case we get an interview question at some point in life?

As an engineer you should be able to see the global picture and know other things. Because you wont be able to use something to solve your problem if you don't know it in advance. I mean, you don't need to know the details, but you need to know how things works. For example, you might not need an AVL tree in your daily job, but if one day you need it to use it, you wont be able to notice if you don't know what is an…

The amount of things we need to know is not commensurate with salaries for companies that lazily copy someone else's interview. Most of us are not practitioners that get to dictate a lot of the technical decisions. We're just told we need to know what an AVL tree is before we can work on CRUD app #4272095.

If you work really hard, learn all of this stuff, and do a really good job and save your company a bunch of trouble by knowing all of this, you won't get a dime for it, and that's the problem. You get a pat on the back and you feel slightly less like an imposter for a few days.

People are arguing that we should offer quality for free. This is what open source is for.

I would argue security is more important than performance knowledge, but there is virtually zero focus on this that I've heard from the technical interview rabble-rousing that goes on in these threads.

Re: Python coding interview challenges

#162

Earlier quoted context omitted.

How would you do that? Also, saying there will be a coding interview up front does cause people to self select.

It would definitely take up some team resources, but it's not more complex than the work they're already doing. So 'how would you do that' is the wrong question. The question should be 'how would they do that?' and the answer I don't know but I'm sure if you ask a team they'll be more than happy to explain, after all it is their (and not my) future that is at stake and given the fact that they are involved they'll do…

Fair enough. I think without coding interviews networking would become even more important than it is now, and it is already very important now. Moving more towards a "networking" world would mean things are less a meritocracy. It would not be about what you know, but who you know. Personally I find that unappealing because it doesn't seem fair, but I know some people aren't interested in "fair" anyways.

Instead of people complaining about coding interviews on HN, you would have a lot of programmers complaining that they are introverts who are just good at their job, and don't think that they should be punished for not being a people person.

Re: Python coding interview challenges

#163

I see these challenges as a great way for excellent experienced developers to weed out incompetent companies. I'm a kick-ass get-things-done full-stack web engineer. I've never had to deal with one of these sorts of problems in my day to day work; and if I did, I'd just find an existing, tested, stable library that already handled them. A company that needs someone to solve these sorts of problems doesn't want me on…

Honestly, is it unreasonable to require that people brush up on this stuff every couple of years? In my experience the majority of companies just want you to be able to do fizz buzz level whiteboarding and intelligently speak to your experience. I feel like we all know in advance which companies typically require a month long review of algorithms before the interview. IF you want to work for one of them then do what…

You can conceivably move up to management, never have to deal with algorithm hazing again, and make more than the guy that has to refresh every few years.

The rewards just do not add up for this to remain an industry practice.

Re: Python coding interview challenges

#164

I see these challenges as a great way for excellent experienced developers to weed out incompetent companies. I'm a kick-ass get-things-done full-stack web engineer. I've never had to deal with one of these sorts of problems in my day to day work; and if I did, I'd just find an existing, tested, stable library that already handled them. A company that needs someone to solve these sorts of problems doesn't want me on…

That's like an EE saying, I don't really understand capacitors, but I am building a circuit like this one and it has a capacitor, so I'll just borrow the values and tweak them in simulation.

You don't need to be able to build a capacitor from scratch in order to understand how they work. Furthermore, electrical engineers don't have to build capacitors from scratch during job interviews to prove their competence.

Re: Python coding interview challenges

#165

Earlier quoted context omitted.

I'm a lowly c++ software engineer. You might not have to deal with that stuff, but for me it was Tuesday. Kidding aside, someone has to build those tested, stable libraries that handle those problem (or even untested bleeding-edge if you are breaking new ground).

Where does one get a job writing actual algorithms and data structures? I actually enjoy that and am pretty good at it. I'm sick of jobs that are nothing but glueing together poorly documented and tested libraries.

Where does one get a job writing actual algorithms and data structures?

Two big areas that come to mind are simulation/mathematical modelling, where you're often crunching data in ways that aren't just textbook examples, and embedded systems, where you often have resource constraints that make efficiency more important.

This doesn't just mean modelling weather systems on supercomputers or writing the control software for cars, though. For example, consider user interfaces. We are increasingly looking for more intuitive input methods using techniques like natural language processing, speech recognition, handwriting recognition, and gesture-based UIs. We are looking for more intuitive output methods, such as integrating additional data with real world imagery like maps or the view through a 3D head set or camera. We are looking for systems that learn patterns in their users' behaviour and adapt to provide more likely options more quickly next time.

You won't see much of this if you're just writing simple form-based web front-ends for CRUD applications. A lot of real world software is like that, and it gets a lot of useful work done, but it's mostly pretty mundane, join-the-dots work as far as the programming goes. However, there are plenty of interesting problems out there and we could directly improve the user's experience in new and helpful ways if we could solve them, and much of that work involve developing data structures and algorithms far beyond anything you'd find in an introductory textbook.

Re: Python coding interview challenges

#166
post #88

In a way I prefer this to "how many ping pong balls can fit in a school bus" that was all the rage in the 90s and early 2000s. But... man... I have a computer science degree, I've been coding for 20 years, and I've held (and kept) a CTO role at two mid-sized startup companies. Currently I'm considering looking for a job at a larger company (where I wouldn't be CTO but I'd be hopefully paid more) and these kind of que…

Keep in mind that, because the number of programmers is increasing, the majority of them are fresh out of school or close to it. Algorithms interviews are largely designed for interviewing people who don't have much experience, so they're skewed toward testing what people learned in school. If after 2 CTO roles you interview for a job and they ask you to write a linked list algorithm, then would you want to work ther…

>Keep in mind that, because the number of programmers is increasing, the majority of them are fresh out of school or close to it.

But the number of unfilled positions is also increasing, so we are not closing the gap, right?

So the gap is widening, but the requirements to get a position are also going up. That just makes no sense to continue for a long period of time.

Re: Python coding interview challenges

#167

Earlier quoted context omitted.

It would definitely take up some team resources, but it's not more complex than the work they're already doing. So 'how would you do that' is the wrong question. The question should be 'how would they do that?' and the answer I don't know but I'm sure if you ask a team they'll be more than happy to explain, after all it is their (and not my) future that is at stake and given the fact that they are involved they'll do…

Fair enough. I think without coding interviews networking would become even more important than it is now, and it is already very important now. Moving more towards a "networking" world would mean things are less a meritocracy. It would not be about what you know, but who you know. Personally I find that unappealing because it doesn't seem fair, but I know some people aren't interested in "fair" anyways. Instead of p…

I don't think teams should be penalized for not hiring people that aren't team players. There are good spots for introverts in IT but teams usually (though not always, I've seen some interesting exceptions to this rule) are not too welcoming to that sort of person.

If the world were gamified to the point that your skills are all that matters then yes, a solely merit based approach would work. But in the world we live in today people skills matter (a lot, actually). On a personal note, this was a very hard lesson for me to absorb, the first years of my career introvert would have been too friendly a description, anti-social probably would have been a better one. But over time I got a bit better at working with others.

Re: Python coding interview challenges

#168

Never mind the specifics of the selection process, Silicon Valley's risk-adverse approach to hiring is baffling. Instead of making candidates go through an overly rigorous process, why not embrace California's at-will status and hire and fire often? Employers and employees already view each other with suspicion in terms of loyalty, the former willing to downsize capriciously at any moment, and the latter willing to j…

>>Never mind the specifics of the selection process, Silicon Valley's risk-adverse approach to hiring is baffling.

I think it makes perfect sense. A bad developer hire is not just unproductive. They also tend to be a burden on their coworkers and reduce their productivity by asking trivial questions and writing buggy and/or hard to maintain code.

With startups the risk is even greater. Think about it: the odds are already stacked against you. Why would you take even more risk by randomly hiring developers? Sure, you can fire them, but by then it may be too late.

Re: Python coding interview challenges

#169

I see these challenges as a great way for excellent experienced developers to weed out incompetent companies. I'm a kick-ass get-things-done full-stack web engineer. I've never had to deal with one of these sorts of problems in my day to day work; and if I did, I'd just find an existing, tested, stable library that already handled them. A company that needs someone to solve these sorts of problems doesn't want me on…

That's like an EE saying, I don't really understand capacitors, but I am building a circuit like this one and it has a capacitor, so I'll just borrow the values and tweak them in simulation.

Sadly, that describes more than a few EEs and MEs that I've worked with in the past. Where the act of turning a key in a commercial software package starts to displace practical design considerations that they learned in the classroom.

Re: Python coding interview challenges

#170

Earlier quoted context omitted.

Honestly, is it unreasonable to require that people brush up on this stuff every couple of years? In my experience the majority of companies just want you to be able to do fizz buzz level whiteboarding and intelligently speak to your experience. I feel like we all know in advance which companies typically require a month long review of algorithms before the interview. IF you want to work for one of them then do what…

You can conceivably move up to management, never have to deal with algorithm hazing again, and make more than the guy that has to refresh every few years. The rewards just do not add up for this to remain an industry practice.

But the innovative businesses that develop genuinely new technologies also hire "the guys that has to refresh every few years". Leaving aside the potential financial gains if you're in early enough and they have a big exit, those also tend to be interesting places to work.

Moving into management is essentially changing career, and for the kind of person who actually enjoys programming and wants to do something creative and technical, there's no reason to assume they would either enjoy the new role or be any good at it.

Post reply on HN