Readit News logoReadit News
Posted by u/Takizawamura 4 years ago
Ask HN: How best to prepare for Python interviews starting in 3 months?
My friend works in a bank and for a long time has wanted to make the switch to Python. To date, he has read a few books and knows some intermediate concepts, such as closures, generators, etc.. Outside of Python, he has built workflows in Alteryx and knows some SQL.

His teenage son challenged him to start applying for roles in 3 calendar months from now. He figures he can dedicate a max of 3 hours per day. How should he best use his time?

Should he drill on Leetcode? Build a small portfolio? Gain a specialization within Python? How best would you allocate his hours?

ghshephard · 4 years ago
If you have 3-months - https://pythonmorsels.com has been a godsend for me when drilling on the fundamentals of the python language. I guarantee that if you are relatively new to the language, that you won't run out of (A) Interesting exercises, (B) Fundamental language concepts in less than 30-45 days, even spending 2-3 hours/day. Just knock off 1 or 2 a day, and then come back a couple days later, and, without checking into the hints/guidance, try and recall how you solved the exercise the first time - with zero checking into SO/exercise hints. I got 10x more out of the second solve, doing it from only my knowledge. If you can keep that cadence up for even a month - you will have at least the language fundamentals down really, really solid - then you can pivot to various algorithmic solves in the language, or, if there is a particular front-end/back-end/etc.. framework that you need to know - drilling into the characteristics of that.

Trey Hunner is one of the more gifted speakers - and he's really laid out a great exercise and test-coverage plan.

The best thing I can say about pythonmorsels is that, every 15-20 exercises, I look back and realize how little I actually knew. Going through all the exercises is easily the equivalent of a full-semester "Introduction to language" course at a college (minus the algorithmic elements - this is a "language concepts" site)

cinntaile · 4 years ago
I assume you're talking about the pro plan and not the lite plan?
ghshephard · 4 years ago
Yeah - whatever plan lets you draw from his full library. Best education money I've ever spent in my life.
funnyflamigo · 4 years ago
It's heavily domain dependent IMO.

Leetcode only gets you pass the first round of interviews and not every company does them. I consider these useless textbook problems but you'll need them to get the job. They won't help you much in the job.

More importantly (imo) he needs domain specific knowledge. I.e. if it's going to be web development then he needs to start a web project with the backend in python. If it's stats/analysis he needs to start on analysis projects. Etc.

My advice is on making small projects that cover topics he'll be working on in the jobs he applies for to build a small portfolio. And brush up on the leetcode like a month before.

jmkr · 4 years ago
Take an interview now and see what questions they ask you so you know how better to prepare in those 3 months. If you know closures and generators you're probably already fine to work it's just passing an interview. Maybe you'll get lucky early on, more than likely it will take a little bit, but you'll "learn as you go."
zellyn · 4 years ago
Some excellent suggestions here.

For learning, exercism.io is amazing: they assign people as mentors to review your code, and I've had really good experiences while learning Rust, with feedback calibrated nicely to my level of expertise.

For how to think about algorithmic interviews, I always recommend this short set of notes: http://courses.csail.mit.edu/iap/interview/materials.php

For fun, try Advent of Code this year and see how far you get, and whether you like it. As @analog31 suggested, this might be a fun thing to do with his son.

randomluck040 · 4 years ago
I registered at exercism.io as a mentor to help other people. Thank you for sharing!
low_common · 4 years ago
Grind Leetcode (in Python) and build a small full-stack project with his son. Django is written in Python so they could build a functioning web app with that. I recommend paying for Leetcode Premium - $35 a month - because it'll teach data structures/algorithms and have problems from big high paying companies.
zoomablemind · 4 years ago
> ...How should he best use his time?

Making switch to Python is rather a broad goal. It's just a tool, and as any tool it's used for a purpose and often along with other tools.

If he aims at any entry level coding position, then likely it'd be more about entry level, than proficiency. Basically, testing the discipline and analytical thinking (thus all puzzle and algo problems, dreadful leetcode etc).

If he plans to leverage his present skillset and experience, then in that alloted time I'd try to implement some aspects of his present job projects in Python (if such aspects are mappable, of course). General goal is to try and fuse his present experience with the newly acquired knowledge of Python (a known problem and solution, just a new tool).

Again, it does not need to be grand, just some specific aspect, say, parsing args or a configuation file, or grabbing something from a database, or triggering some process based on some config, logging something, wrapping his code for reuse or installation etc. Whatever he is familiar with in his job responsibilities.

The goal is to get used to the new tool, know what it takes for it to become useful at his level of experience.

Eventually, he could (in a stretch, perhaps) claim of trying to apply or evaluate the use of Python in his current job scope. This could count more, than just leetcoding ability, which may still be a barrier to get through, however, depending on the chosen companies.

Good luck to him!

edgyquant · 4 years ago
Build a site like hacker news using flask. I say flask instead of Django because it’s more light weight. I would also recommend doing something math heavy like following the stock market (even if you don’t spend actual money) just to learn the ins and outs and what’s slow/etc in python (spoiler: use numpy.)

Those are the two things I did, I came from PHP and until a 2.5 years ago I never touched python but I work with it full time (also react, which I didn’t know at all when I started.)

What you build isn’t all that important, or the language. Most languages can be picked up on the job. But doing some personal projects + a couple leet code or project Euler problems a week will make one a good programmer in 3 months. You want the personal projects to act as a portfolio you can show off to recruiters though.

gwking · 4 years ago
In addition to finding a cool tutorial site, I have a less exciting recommendation: spend some time reading the reference documentation. This will give him a sense of the scope of the language, the difference between core language and library features, and most of all, a bit of direction for how to help himself find answers as he progresses out of the absolute beginner phase.

The standard docs don't get recommended to beginners very often because they are not designed to be fun/motivating like learning sites, but provided that the student is intrinsically motivated, I think it can be exciting to look at all the modules and start to learn about all the things that people have built and provide for the programmer. Learning to navigate the reference material is an important skill. Some of the sections are confusing, dry, and unhelpful. Others are very worthwhile and knowing where they are is important.

Python in particular has a large standard library, much of which is quite old (good in that it is very mature, not so good in that some of it is barely relevant any more). I've been programming python for a decade and I look at the standard docs every day for something. `stdtypes.html` is kind of a big mess but at some point you have to learn most of what is in there.

If I were hiring a programmer, one of the things I would try to evaluate would be their basic research skills.