r/cscareerquestions 6h ago

Experienced Codility still makes no sense / confuses me 8 years after the last time I took one of these tests...

Pics aren't allowed on this sub so I'll try my best to describe my score:

  • MissingInteger - Java 21
  • Passed 3 of 3 example test cases
  • Passed 1 of 5 correctness test cases
  • Passed 2 of 4 performance test cases
  • 20% correctness / 50% performance / 33% task score

How am I supposed to get the solution working and optimised in half an hour? And in an IDE that doesn't even have simple code completion functionality from the early 2000s? This is the second time I've done the test, and I still only got it finished in the with a minute and a half to spare. I don't API paths or function names off the top of my head, I've spent the last 17 years of my life working with IDEs that make autocomplete suggestions based on a partial word.

I've 4 days before I have to do the real thing, and if I don't get this job I'm gonna be crushed. It's the same company I was originally laid off from 2 years ago but it's also the only one that's even gotten me this far in the interview stage; it's not my last hope left, it's my only one.

0 Upvotes

15 comments sorted by

8

u/Ma4r 6h ago
  • Passed 1 of 5 correctness test cases
  • Passed 2 of 4 performance test cases

Uhhh, this means that your solution wasn't even the correct solution, syntax aside, what's keeping you from solving this problem? Or is it really just lack of autocomplete tripping you up? Also, what's the time complexity of your algorithm here? I think it shouldn't take someone of your experience that long to figure out an O(nlogn) solution, and with some extra thinking you should be able to hit an O(n) time complexity

-3

u/Safebox 5h ago

I've seen other posts saying it was edge cases not being checked, kinda hard to consider those under such short time pressure. It almost certainly is the lack of autocomplete, the last time I wrote code without IDE tools was when we were taught HTML in Notepad in the late 2000s. I haven't been without either VS Code or N++ or JetBrains since then.

I've no idea what the O notation of my code is, it's a single for loop, an if else statement, and a final max statement at the end. It might want a lambda, but I can't remember how to do that cause it's been years since I implemented one. I should probably look into it before the actual test šŸ˜“.

1

u/CurtisLinithicum 1h ago

You should probably have at least an order-of-magnitude estimate of you code's O.

The solution you describe should be O(n) - since you're running out of time, either it isn't (e.g. you're doing expensive DS manipulation per loop) or there's a glaring shortcut you missed e.g.

//find all factors
ArrayList<int> myArrayList = new Arraylist<>(0)

for (int i = 1; i < myNum; i++)
{
if (myNum % i == 0 && isPrime(i))
myArrayList.add(i)
}

1

u/Safebox 1h ago

I don't know how to quantify the O notation of my code, that wasn't taught in my university course and the only people I've ever seen talk about it is online.

5

u/backfire10z Software Engineer 5h ago edited 5h ago

https://codility-solutions.com/lessons/lesson-4-counting-elements/missinginteger/ for O(n log n) and https://stackoverflow.com/questions/24690559/find-the-missing-integer-in-codility for O(n)

Literally looked up ā€œCodility missing integerā€ and found the solution. Look at it, understand it, figure out where you went wrong, then write up the solution by yourself.

The expectation is that you know how to solve these problems. It’s not an autocorrect issue. Practice!

0

u/Safebox 5h ago

I know how to solve the problem, the logic isn't that hard. But I genuinely don't know half the keywords, function paths, and syntax of the language. I haven't needed to type without aid since 2009.

3

u/backfire10z Software Engineer 5h ago edited 5h ago

If you’re just practicing for a live interview, it depends on the company whether that’s ok or not. Maybe write the code in a local IDE and copy/paste it into Codility for the grading. Or use a better platform lol.

If the company is giving Codility, you might be out of luck. Maybe ask if you can do the above. Some platforms monitor if you click out from the tab. Maybe Codility does not.

You keep saying the issue is autocorrect, but then you say you finished with time to spare and still got the solution wrong. I’m confused at this point. Are you sure your solution is correct? From what you described below, it doesn’t match any solution I’ve come up with/found.

E: https://interviewman.com/blog/does-codility-track-tab-switching-detect-ai looks like Codility has screen recording capabilities. I’d actually ask if you can just pull up an IDE onto your screen and code.

1

u/Safebox 5h ago

You keep saying the issue is autocorrect, but then you say you finished with time to spare and still got the solution wrong. I’m confused at this point.Ā 

I tried the same scenario in VS Code and it took 5 minutes to write the same code that took my half an hour in Codility's interface. It taking me that long to write that I don't have time to refactor and optimise for edge cases.

Are you sure your solution is correct? From what you described below, it doesn’t match any solution I’ve come up with/found.

It's passing the test data it exposes to me but failing whatever test data is used for the correctness tests. So...no, almost certainly not.

The actual test the company wants me to take is also through Codility, so I need to keep practicing before the deadline later this week. I just finished another one and got...worse than before; 20% correctness, 0% performance, 11% task score. Still 3 of 3 passed test cases.

2

u/OkPosition4563 Senior Engineer 3h ago

Are you seriously telling me that you always just relied on the IDE to tell you what to write next? I mean, auto completion is nice if you have some weird class from a third party library you havent seen before so you dont need to look into the documentation, but if you have been coding for almost 2 decades at least you should absolutely know the basics of the standard JVM functions.

1

u/Safebox 3h ago

I'm saying I know the logic of the language, I can explain in detail how a system should be designed for the requirements of the project, and I can recount back to someone what I did to achieve the result. But I cannot carry out the task "blind" any more than I can write a Word document without automatic spell-checking or send a text without predictive text. From college to university to the company I am now re-applying to, I was always taught to both use and rely on code completion and it's pretty much a part of my flow state at this point.

2

u/OkPosition4563 Senior Engineer 2h ago

I dont mean this in any way negative or offensive, but: damn.

1

u/Safebox 2h ago

Now I understand my old school SWE called us lazy šŸ˜…. The only comfort I have is that new school vibe coders will struggle even more.

1

u/OkPosition4563 Senior Engineer 6m ago

I dont know, I started my studies late into my professional journey but in 2015 I still had to do programming exams with pen on paper 😃

2

u/CurtisLinithicum 1h ago

Codeility doesn't or at least didn't hold Alt-Tab against you, so if you need to refresh your knowledge of the syntax for HashMap, that's fine. That said, the demo challenges are good at showing which libraries you'll need (typically just raw stuff, your DSA go-tos and maybe a date/time library) so this really shouldn't be that much of an impediment.

FYI, At least when it was time for me to take the real test, it came in three parts; you can only see the next part after you commit the current one and you're not allowed to go back, so there is also the meta-challenge of time management against unknowns. In my case, the challenges were:

1) Reasonably tricky DSA problem with a conceptually simple scenario; immense datasets (we're talking int[Integer.MAX_VALUE] here)

2) You thought this was Java? Fuck you, have some Postgresql! Never used Postgresql, but it was solvable with ANSI SQL easily enough just needed to look up some implementation specific date or concat or what have you.

3) Algorithmically simple but business-rules complex logic problem that gets into date math and day-of-week implications.

2

u/Safebox 1h ago

Oh, that's interesting. I figured it was gonna be a more complex ask of them but I thought that might mean more code to write in the file, didn't occur to me it might be a multi-part process.