Before you jump to conclusion, I was never in favour of Competitive Programming. I used to be mad at companies who used Comptetive Programming as a...
For further actions, you may consider blocking this person and/or reporting abuse
I have been in the competitive programming field for more than 2 hours. And if you know real meaning of competitive programming then you will understand that the questions asked in job interviews are not actually competitive programming problems rather simple programming problem. So, I don't think its fair to say that they ask competitive programming problems in the interviews. Competitve programming problems are hard, way hard than you think.
Hello Muhimen, a little background about me. I’ve done post graduation from IIIT-Bangalore, 2015-17. In India, especially Bangalore, it is very common to have fierce competition for round 1, generally because of high number of candidates. I can tell from my experience, and yes I was aware of what “competitive programming” meant back then too, only wasn’t into it. It is proper Competitive Programming. That doesn’t mean take the hardest problem of LeetCode, but yes, it was not a basic one, in fact it was never a basic one. So what you’re saying might be the case in your country but in India, this is reality. And so is hiring through Solely competitive Hackathons.
Also, in this article, I’ve said it is good to get started with CP track, as it is not a fixed set of course, one can start gradually with smaller problems and then move to challenging ones when they are ready. In that context I’ve used “Competitive Programming”. No - it is not way harder than what I would think. And also I disagree with only hard problems should be called competitive, it is a way to develop algorithmic thinking towards problem solving, not bound to hard problems at all. Hope this clears your confusions.
These are great points. I also wondered why bother with some of these seemingly meaningless small problems but learning to dissect an issue into executable steps is a skill all programmers should work on. 👏🏽
Exactly. It seems like there are many like us out there. Hope this motivates some to get started! 😃
Couldn't agree more. Last year, I interviewed for a number of tech companies around the world. The interviewing process has evolved quite a lot. Almost all companies had a challenge-based selection process. More like - here's a problem, take 2 weeks, come back with the code and then we'll discuss the code and decide whether to move forward or not.
Two weeks? I wonder if you're testing any kind of mental agility and independent problem solving skill if you're giving someone two weeks to cobble something together. Just put them behind a screen and give them 30 minutes to work out a reasonable set of puzzles, spare them having to spend that much time (unpaid, that is).
I agree, 2 weeks is too much. I've seen most programming rounds to last somewhere between 1-3 hours max. If it goes beyond that, then I assume it's more of "build something" kind of test.
If they're giving you an assignment that takes more than a day then it's work, and you can ask "how much do you pay me for this".
Yeah, some of them have offered to pay too!
@leob - these are challenges that probably require 16-20 hours of work, with quite a bit of work. This is an alternative to the 1-3 hour programming rounds. I think some companies are going this way now.
Meaning they're asking you to put in 16-20 hours of unpaid work? I say that's a lot, clearly they can only get away with that because the balance of power is on their side. A more fair approach would be having 2 rounds, first round the 1-2 hours test (3 hours is already a LOT), then if you make it through that round they can ask you to do the 16 hours assignment, BUT in that stage it should come with something of a 50-75% chance job guarantee, or with some sort of financial compensation. If they're putting 25 people through an unpaid 20 hours assignment and only hiring one then I'd call that gross.
@leob - I have called that out. But I do it for the fun of it. Most of these assignments don't last that long, anyway. 16-20 hours is a conservative number. It usually takes much less. But you're right about the unpaid work!
Yes. Seems like this comes even before “Tell me something about yourself” 🙆🏻♂️
Which is bad in my opinion ... "tell me something about yourself" is incredibly meaningful when done right. The puzzles and the skills tests are valuable tools, but we're not algorithmic robots which are hired only to crank out lines of code, that's pretty dehumanizing I would say.
There's more to critical, strategic and abstract thinking (and more to good personality traits) than solving an algorithmic puzzle (and please don't test rote memorization of standard algorithms like being able to reproduce a quicksort from scratch, that's theoretical knowledge which is completely useless in real life).
But why is it called "competitive programming"? Weird terminology, it's not like we're in the Olympic Games of programming hired to outsmart "competitors". I can fully understand that companies use this as a "filter" to screen out candidates that have poor problem solving skills (if that's the case then you have no business to be in this industry to begin with). So it can be a useful tool, if done right, but please drop the "competitive" moniker.
There actually is a literal Olympiad in Informatics, where the best students in competitive programming compete
Heard about that ... yes of course there are competitions, but to see "competition" as part of hiring seems somewhat wrong to me. I think building a good team is not about hiring a bunch of ninjas or "rock star" prima donnas and locking them in an office & throwing away the key.
Aren't interviews itself competitive by nature?
Have a look at this:
This is a random Job Posting I got from LinkedIn. It already has 115 applicants in the last 13 hours. All these candidates have to compete and give their best to get that Job. Just because a board isn't put out saying this is a "Hiring Competition", doesn't mean it isn't.
This is part of hiring now! And I don't mind if they keep/drop the "competitive" moniker honestly, I'm more focused on the problem-solving part.
Can the process become better? Yes of course.
Did I ever feel that interviews are competitive? Not really, I just present myself to an employer the best way I can but honestly and without faking it, and beyond that it's "take it or leave it". I don't really fret about being in a "competition" with whoever else.
But yes, if there are 115 serious (qualified) candidates for one job then you can indeed call it "competition". That's an unenviable 'market' to be in, I know that in some locations there's a developer shortage but this doesn't look like it.
"Competitive" programming, by definition, filters out candidates. Whether that is actually related to the skill of problem solving is another question. Whether the skill of problem solving is actually relevant to the success of a hire is yet another question.
Otherwise, competitive programming provides very fun problems, some of which reveal important properties of important data structures and algorithms. It is in competition we improve. But also remember, competitive programming is not the only field worth competing in.
Completely agree, and through this article I’ve tried to emphasise that’s its just another skill to have.
I believe it is not the ONLY important skill in tech, but definitely an important one. It’s something good to have, world won’t stop if you don’t know it.
And I’ve also mentioned that it doesn’t directly translate to being a better developer. In general, it helps evaluate problem solving skills.
I disagree, It makes more sense to find another way through the third door.
Which nowadays you can work on your own personal branding, networking in the developer community or contribute to open source. Who will seek you out and offer you a high-quality job with a higher success rate with little to no competition.
Instead of going through the traditional route of applying and praying to get selected for an interview. Or passing the 1st level of competitive programming. I by no means are against technical challenge. But not something that anyone can game it through memorising of a reverse linked list.
I think you are getting it wrong. The aim of this article is to suggest explore this too. Of course all of what you said apart from CP is also important. But I never said that you have to do this and not that. It’s not exclusive. I’m writing blogs, building my side projects, learning algorithms, mentoring and contributing to the community all together. Let’s not fall in the trap of ranking all these. ✌🏻😄
It is a good way to get free t-shirts
Oh yes! Forgot to mention the goodies part 😂
I think it is more of a common practice in hiring fresh engineers. Because in the other case you can already see his capabilities in his projects.
Well I’ve seen some companies have this for even Senior Engineers.
Also, just looking at projects cannot give a good idea about the candidates true potential - ppl exaggerate a lot in resumés. So a detailed discussion is anyway required there.