40

Что стоит знать junior developer'y (python)

UPD: #comment_211858676

здесь есть более свежая и развернутая дока, следует использовать ее
https://docs.google.com/document/d/1Yl2WAqG5zmivO1LDP1N7Iu3x...

______________________________________

Я тут в комментах предложил написать список того, что следует знать джуну-питонисту, ходя на собеседования. Получилось обширно, решил сделать пост. Сам я пишу под django, но его в этом посте не затрагиваю.

@nataha123 это тебе)


Данные собраны по посещению примерно 13 собеседований (включая по удаленке) в Питере за 2 последних года. (искал работу трижды, последний раз 3 недели назад)

Собственно, сам список:

1) Для начала типы данных - как использовать, как хранятся, что делает функция id, изменяемые-не изменяемые. Надо понимать почему не стоит использовать конструкцию вида def foo(bar=[])


2) Потом декораторы. Их любят вообще все. Советую не просто почитать что это, а написать парочку, а потом написать декоратор который еще и аргументы принимает)


3) Что такое итераторы и генераторы, чем отличаются и как задать и тот и другой


4) Знать что делают методы класса типа __call__, __srt__, __init__, __next__ и т.д.

Почитать про то, какие есть базовые декораторы (property, staticmethod..)


Дальше общие вопросы, не связанные с питоном.

5) Следует знать про асимптотику функций, уметь расчитывать сложность. Почитать про популярные алгоритмы сортировки, особенно про то, что есть базово в питоне)


4) Почитать про популярные способы хранения информации и как (и за сколько) в них совершается поиск


5) Любят спрашивать про SQL, особенно про индексы. Мне с SQL помогли разобраться задачки на составление запросов, гугл выдает много сайтов, найти что-нить для себя не трудно


6) Про ООП следует понимать как работает механизм наследования классов, знать что такое mixin и как это применить. Про инкапсуляцию/наследование/полиморфизм меня спрашивали только 1 раз, но знать будет не лишним)



Вроде ничего не забыл)


Несколько раз мне встречалась задачки про взвешивания (Что то типа даны весы с 2 чашами и 8 монеток. Одна из них фальшивая и легче. За сколько взвешеваний можно найти монетку?)

Еще было пару раз задание накодить следующее: дана строка, содержащая скобки (), {} и []. Необходимо определить валидна ли эта строка (т.е. (а+{в-с}) валидна, а {а×(в+с}) нет.)


И еще мне нравится задачка: человек находится в поезде, замкнутым по кругу. Все окна заколочены, никаких меток ставить нельзя, паттерны тоже использовать запрещено - количество вагонов конечно, но вполне может стремиться к бесконечности) Можно только включать или выключать свет. Изначально в каждом вагоне рандомное состояние света. Задача - посчитать сколько всего вагонов)

Вы смотрите срез комментариев. Показать все
0
Автор поста оценил этот комментарий
ты почему в комменты не кинул свой вариант решения, автор?
раскрыть ветку (21)
0
Автор поста оценил этот комментарий
Потому что всегда интереснее порешать не натыкаясь на чужие решения) Если хочешь - напишу
раскрыть ветку (20)
0
DELETED
Автор поста оценил этот комментарий

Так и не написал.

раскрыть ветку (17)
0
Автор поста оценил этот комментарий
Бло, действительно. В данный момент я в поезде Питер-Москва, как-нибудь потом напишу))
раскрыть ветку (16)
0
DELETED
Автор поста оценил этот комментарий

Ты лучше расскажи: все еще на питоне разрабатываешь?

раскрыть ветку (15)
0
Автор поста оценил этот комментарий
Ага) И доволен))
раскрыть ветку (14)
0
DELETED
Автор поста оценил этот комментарий

Понятное дело) Тоже сейчас учусь на программиста, делаю упор на питон, хочу в джуна на Питоне.

раскрыть ветку (13)
0
Автор поста оценил этот комментарий
Это хорошее дело) Если что-то будет непонятно, то я готов подсказать))
раскрыть ветку (12)
1
DELETED
Автор поста оценил этот комментарий

Спасибо большое)

0
Автор поста оценил этот комментарий

Привет, можешь помочь с написанием программы на Питоне?

раскрыть ветку (9)
0
Автор поста оценил этот комментарий

Привет) Кидай задание, посмотрим))

раскрыть ветку (8)
0
Автор поста оценил этот комментарий

привет, ну что, ты смотрел?)

раскрыть ветку (6)
0
Автор поста оценил этот комментарий

Вот, за решение с объяснениями буду очень благодарен)

Time to spread the virus

Suppose we have a NxM matrix, where each cell represents a node in the network.

Each node can be either:

1. Active and infected

2. Active and not infected

3. Offline

An infected node infects other active neighbor nodes every second.

The node (i, j) is a neighbor to nodes (i - 1, j), (i + 1, j), (i, j - 1), (i, j + 1).

We need to create a function, that accepts a matrix of nodes and outputs the minimum number of

seconds required so that all active nodes in the network become infected.

If it is impossible to infect every node in the network, raise an exception.

The solution should be optimal and have an algorithmic complexity of at least O (2n log ( n ) ) in the

worst case, where n = N * M.

Examples:

I - infected node

A - not infected

O - offline node

[[I, A, O, I, A],

[A, O, A, I, A],

[A, O, O, I, A]] => all nodes are infected in 2 seconds

[[I, A, O, I, A],

[O, O, A, I, A],

[A, O, O, I, A]] => impossible to infect every node

0
DELETED
Автор поста оценил этот комментарий

Пока непонятно как я сдавая программирование на C++, C# и JS успею выучить Python XD

0
Автор поста оценил этот комментарий
хочу
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

За вами постою

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества