Базовые знания алгоритмов для работы стажером-разработчиком?

Добрый день!
По образованию являюсь экономистом, есть желание заниматься разработкой, на досуге осваиваю python, но подозреваю, что без базовых знаний алгоритмов (а может и не только их?) на вакансию стажера-разработчика скорее всего не возьмут. Посмотрел несколько книг по алгоритмам - все большого объема, подозреваю что такой объем знаний для начала карьеры будет избыточен, к тому же без применения эти знания все равно забудутся.
Соответственно, вопрос такой - на каком уровне следует обладать знаниями алгоритмов (теории вероятности, высшей математики, теории графов и т.д.), чтобы пойти работать стажером? Какие знания реально необходимы, по вашему мнению, чтобы не учить просто ради учебы, а реально изучать материал, который пригодится?
  • Вопрос задан
  • 1975 просмотров
Пригласить эксперта
Ответы на вопрос 5
gbg
@gbg
Любые ответы на любые вопросы
В первую очередь, не ляпните на собеседовании "теория вероятностИ", засмеют. Дисциплина называется "теория вероятностей"

В ИТ главное не выучивание алгоритмов в режиме "как стишок" (ну, это важно для какой нибудь олимпиады. Но на олимпиаде нереальные программисты решают нереальные задачи на нереальном железе, их мы трогать не будем), а общее понимание и умение ориентироваться в языке и технологиях.

Так нафига же собеседователи требуют "знание алгоритмов?" А очень просто. Самостоятельная реализация пары-тройки контейнеров + пары-тройки поисков и сортировок - отличная практика по кодированию. А самостоятельное решение сотни другой небольших задач - (для примера - написать функцию для получения всех перестановок заданного алфавита. Библиотечную не использовать) - как раз повод для выработки программистского чутья и стиля кодирования.

Программирование - скорее ремесло. Без практики мало что получится. Так что Eat -> Code -> Sleep -> Repeat
Ответ написан
Комментировать
GavriKos
@GavriKos
Ну во первых вам нужен навык гугления - вопрос уже поднимался много раз.
Во вторых - без навыков практического применения ваши знания об алгоритмах в разработке не стоят ничего.
Почитайте классику - Н. Вирт - Алгоритмы и структуры данных, она небольшая.
Ответ написан
urtow
@urtow
*nix, python, QA, bagpipe, folk music
Ты не узнаешь, какой материал тебе пригодится, пока не столкнешься с реальными задачами. Да и после, впрочем тоже трудно будет понять.

Потому - учи все. Книжки толстые, да. Халявы не будет. Учи и сразу применяй как хочешь - просто пиши небольшие программки - вот тебе и практика.

После этого открываешь документацию по стандартной библиотеке Python и учишь её, чтобы от зубов отскакивало.

А потом можно идти по собеседованиям. На каждый отказ - спрашивай, чего не хватает.
Ответ написан
Комментировать
Привет.

1) Открой вакансию стажера и посмотри какие требования к нему предъявляются. Посмотри какие типовые задачи нужно решать для участия в стажировки. Например, это есть все у яндекса.

2) Python - его сейчас используют либо для веб-приложений (html/css/js/python/django - минимальный стек), либо для построения сложных серверных частей (python/c++). Другие задачи на нем реже делают. Поэтому во-первых, выбери свои направление, во-вторых выучи необходимый стек. Конечно, от тебя не требуется знать много, но базовые вещи знать ты должен.

3) Если ты экономист, то не проще ли выучить 1c и получить работу с окладом 60к+. А потом уже в спокойной обстановке учить питон и так далее? Тем более в 1с как раз легче всего попасть на стажировку.

P.s. Фишка питона заключается в том, что под него идут задачи, которые уже изначально предполагают достаточно крупные знания языка, фреймов и композитов. Поэтому скажу так: Учить Python - несложно, а вот получить на нем вакансию сложновато.
Ответ написан
dadster
@dadster
учить инглиш тут - https://t.me/langhacks
Все вакансии настолько разные, что единого ответа на этот вопрос нет. Если очень грубо это проиллюстрировать - чтобы пойти в Яндекс надо знать алгоритмы очень хорошо, чтобы пойти писать сайты на битриксе - можно их вообще не знать (хотя на собеседовании могут выпендриться и спросить).

Чтобы получить начальные знания, советую 2 хороших источника:
1) https://www.khanacademy.org/computing/computer-sci... - тут прям очень хорошо объясняют
2) https://www.coursera.org/learn/introduction-to-alg...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы