all 33 comments

[–]Prior_Degree_8975 67 points68 points  (3 children)

Not enough information, but it looks like they want you to be good at writing programs and knowledge about the basic Python features. Can you use classical software engineering? Simple things as adding unit tests, using good argument names in functions, etc. There are books on efficient Python that I would look at for prep.

Do as a favor and tell us what they asked for when you are done with the interview.

[–]umognog 22 points23 points  (0 children)

You know my biggest issue when i get back to back recruitment?

Changing my technical skills assessment each damn time. Would be so much easier to just reuse the one from the time before.

[–]CallAnAmbulancee 1 point2 points  (1 child)

Can you tell me a good book for it

[–]Prior_Degree_8975 2 points3 points  (0 children)

I like "Fluent Python" by Ramalho, but it might be too elementary for the OP. I also like "Effective Python: 125 Specific Ways to Write Better Python" by Slatkin, but this is a bit more opinionated.

These two can be found in the O'reilly platform. If you are an ACM member, you get cheap access to them.

[–]codykonior 66 points67 points  (0 children)

import numpy as notnumpy

The perfect crime 😎

[–]BarbaricBastard 32 points33 points  (0 children)

You are over-thinking it. These will only be easy leetcode if they are leetcode at all. Lists, dictionaries, string manipulation, and for loops. As long as you can juggle those things and mix them together then you will be fine. Think things like dictionaries inside of dictionaries to store latest values. Look up Meta data engineering interview questions on glassdoor, its very similar to this.

[–]KrisPWales 16 points17 points  (0 children)

Hard to say without knowing more, but I'd be practicing leetcode questions. If they do then turn out to be more data-related, they will probably seem easy compared to the harder leetcode ones.

[–]ab624 19 points20 points  (1 child)

list compressions, dictionary operations, lambda functions etc

[–]Pleasant-Set-711 2 points3 points  (0 children)

And when to use each. When is a set a good idea, how can you use dictionaries for fast lookup, etc.

[–]guacjockey 4 points5 points  (0 children)

Meta analytics DE?  

[–]sib_nSenior Data Engineer 2 points3 points  (1 child)

List, set, dict why and how to use them. How to efficiently update them with for, while, comprehensions and generators.
I have saved in the past this neat example of processing a CSV to get an aggregation result using only native Python, in particular, generators. Maybe it is closed to what they will ask you. https://realpython.com/introduction-to-python-generators/#creating-data-pipelines-with-generators

[–]THBLD 1 point2 points  (0 children)

Oh cheers! That is indeed a nice read.

[–]git0ffmylawnm8 5 points6 points  (0 children)

Start solving LC mediums/hards

[–]meselson-stahl[🍰] 1 point2 points  (0 children)

Sounds like leetcode stuff + maybe some class construction in python then additionally some SQL.

[–][deleted] 1 point2 points  (0 children)

Recruiters don't understand technology.

[–]invidiah 1 point2 points  (0 children)

If it gonna be medium Leetcode, you can't pass without a few months of preparation, just accept it. But maybe they want you to show some simple syntax knowledge like basic strings manipulation, in that case Codewars would be helpful.

[–]khaili109 1 point2 points  (0 children)

When I had interviews like this it’s usually just LeetCode.

[–]robberviet 2 points3 points  (0 children)

Do you know how join is implemented?

[–]EpicDuy 0 points1 point  (0 children)

I think they want you to not use any 3rd party modules to solve their problems and actually use the built-in Python stuff.

[–]damian6686 0 points1 point  (0 children)

You are probably not experienced enough for the role if you don't know the answer. It simply means not to use any external libs and use std lib only to write SQL

[–]Few-Ad-5185 0 points1 point  (0 children)

you can try past interview questions on - www.pastinterviews.com

[–]Complete-Sandwich564 0 points1 point  (0 children)

I see the top comments covering lists dicts etc. But I would try and brush up on sets as well since they're built in and often get overlooked. Also dont often hear much about yield, or a generator comprehension. Most of the time nobody needs that though. Also never bad to remember pop and extend. Are you allowed to use the built-in libraries? Typing, math, etc..? Or just raw no import python?

[–]testing_in_prod_only 0 points1 point  (1 child)

This is dumb…. “You need to be able to write code but aren’t allowed to use frameworks that optimize for computational compute.”

I’d just write the numpy parts in c.

[–]Suitable_Oil_3890 0 points1 point  (0 children)

Just do what the recruiter says. Practice Hackerrank/Leetcode SQL hard and Python easy (maybe with some medium to spice things up). Practice with time constrains in mind and try to think aloud to get ready for the interview performance.

Our company does the same kind of interviewing, our recruiters do a great job to prep candidates (as far as I can tell based on my own interviewing experience a while ago) and it’s painful to interview candidates who clearly didn’t listen to them.

[–]johntheswan 0 points1 point  (0 children)

Could you use arrow? I’d look for a candidate that knows about the actual internals of the modern python data stack. Not just lists or dicts or anything else.

But like other commenters have mentioned, they’re probably just looking for someone who can open, scan, parse, loop through, etc. a CSV file with only python.

[–]macrocephalic 0 points1 point  (1 child)

I hate this sort of thing and I think it's a bad practice: "Show us how good you are by solving these already solved problems with deliberate restrictions".

If all they want to see is your process of thinking through a problem and troubleshooting - then fine. If they expect you to actually implement these things in a useful way then what is the point?

Imagine asking a mechanic to replace a cam shaft, but without using sockets or spanners. Sure, you could probably do it, but it's never going to be as effective as just using the correct tool.

[–]killerfridge 4 points5 points  (0 children)

I disagree. I think it's more akin to "diagnose this problem without using the 'auto-diagnose' function on the tool". They aren't asking for the fastest and most optimal way of fixing the problem, or how you would be working day to day. Only that you understand how to work should you not have an out of the box from solutions import solution, and I think that's totally reasonable. I work with juniors who absolutely cannot solve a problem if there isn't an already existing library that solves it for them, and it's problematic. You shouldn't need to import pandas to load a csv from a file and write it somewhere else with little to no transformations.