Базовые знания алгоритмов для работы стажером-разработчиком?
Добрый день!
По образованию являюсь экономистом, есть желание заниматься разработкой, на досуге осваиваю python, но подозреваю, что без базовых знаний алгоритмов (а может и не только их?) на вакансию стажера-разработчика скорее всего не возьмут. Посмотрел несколько книг по алгоритмам - все большого объема, подозреваю что такой объем знаний для начала карьеры будет избыточен, к тому же без применения эти знания все равно забудутся.
Соответственно, вопрос такой - на каком уровне следует обладать знаниями алгоритмов (теории вероятности, высшей математики, теории графов и т.д.), чтобы пойти работать стажером? Какие знания реально необходимы, по вашему мнению, чтобы не учить просто ради учебы, а реально изучать материал, который пригодится?
В первую очередь, не ляпните на собеседовании "теория вероятностИ", засмеют. Дисциплина называется "теория вероятностей"
В ИТ главное не выучивание алгоритмов в режиме "как стишок" (ну, это важно для какой нибудь олимпиады. Но на олимпиаде нереальные программисты решают нереальные задачи на нереальном железе, их мы трогать не будем), а общее понимание и умение ориентироваться в языке и технологиях.
Так нафига же собеседователи требуют "знание алгоритмов?" А очень просто. Самостоятельная реализация пары-тройки контейнеров + пары-тройки поисков и сортировок - отличная практика по кодированию. А самостоятельное решение сотни другой небольших задач - (для примера - написать функцию для получения всех перестановок заданного алфавита. Библиотечную не использовать) - как раз повод для выработки программистского чутья и стиля кодирования.
Программирование - скорее ремесло. Без практики мало что получится. Так что Eat -> Code -> Sleep -> Repeat
Ну во первых вам нужен навык гугления - вопрос уже поднимался много раз.
Во вторых - без навыков практического применения ваши знания об алгоритмах в разработке не стоят ничего.
Почитайте классику - Н. Вирт - Алгоритмы и структуры данных, она небольшая.
1) Открой вакансию стажера и посмотри какие требования к нему предъявляются. Посмотри какие типовые задачи нужно решать для участия в стажировки. Например, это есть все у яндекса.
2) Python - его сейчас используют либо для веб-приложений (html/css/js/python/django - минимальный стек), либо для построения сложных серверных частей (python/c++). Другие задачи на нем реже делают. Поэтому во-первых, выбери свои направление, во-вторых выучи необходимый стек. Конечно, от тебя не требуется знать много, но базовые вещи знать ты должен.
3) Если ты экономист, то не проще ли выучить 1c и получить работу с окладом 60к+. А потом уже в спокойной обстановке учить питон и так далее? Тем более в 1с как раз легче всего попасть на стажировку.
P.s. Фишка питона заключается в том, что под него идут задачи, которые уже изначально предполагают достаточно крупные знания языка, фреймов и композитов. Поэтому скажу так: Учить Python - несложно, а вот получить на нем вакансию сложновато.
Все вакансии настолько разные, что единого ответа на этот вопрос нет. Если очень грубо это проиллюстрировать - чтобы пойти в Яндекс надо знать алгоритмы очень хорошо, чтобы пойти писать сайты на битриксе - можно их вообще не знать (хотя на собеседовании могут выпендриться и спросить).