Каков необходимый минимум знаний для junior'а/стажера (с++) и где найти работу студенту?

Вот уже второй семестр второго курса и я начал интересоваться данным вопросом.
Реально ли найти хоть что-то, зная основные алгоритмы и структуры данных + относительно неплохо (для студента) владея С++, ООП?
При этом оценки в зачетке, к сожалению, оставляют желать лучшего(спбгу,мат-мех)(не проникся я любовью к куче теорем).
Готов уделять 20 часов работы в офисе (либо же ~35, если есть возможность работать в сб, вс)
Вероятно, можете порекомендовать какую-либо компанию? Буду признателен :)
  • Вопрос задан
  • 8403 просмотра
Решения вопроса 1
barmaley_exe
@barmaley_exe
EMC интересуется программистами с мат-меха. И позиции C++ стажёров у них бывают.

Знать надо алгоритмы
  • Структуры данных: сбалансированные (и не только) деревья, хеш-таблицы, очереди с приоритетами и без, списки. Знать, конечно, не в теории, а уметь работать с ними
  • Графы: как минимум обходы в ширину и глубину. А так — поиск путей, минимальные остовные деревья,
  • Сортировки: quicksort, heapsort, mergesort, а так же какие-нибудь линейные вроде сортировки подсчётом и цифровой сортировки
  • Чем больше — тем лучше


Для всех алгоритмов нужно знать и уметь обосновать их сложность (как по времени, так и по памяти) в терминах O-большого.

C++, разумеется, предполагается знать прилично:
  • владение стандартной библиотекой (не будете же Вы raw pointer'ы в продуктовом коде использовать)
  • ООП
  • шаблонами
  • идиомами (RAII, pimpl, etc) в довесок к паттернам проектирования
  • Плюсом будет опыт работы с boost'ом.

Помимо этого надо иметь представление о сетях и многопоточном программировании, а ещё уметь организовать процесс разработки, т.е. пользоваться системой контроля версий (SVN, GIT, Mercurial), инструментами для сборки (make / cmake / etc), отладчиками (gdb, lldb, например) и другими полезными тулами (valgrind, gprof, gconv, например), но это уже менее критично. Вообще, знакомство с Linux'ом и экосистемой разработки в нём будет плюсом.

Ну и раньше третьего курса, как уже сказали, работать не рекомендуется.

А ещё можно податься в Яндекс, Oracle (у них не только Java, но бывает и C++, не знаю, есть ли соответствующие позиции для студентов) и Intel (насколько я знаю, на текущий момент в Питере позиций нет, только в Нижнем и Москве). Гугл, как известно, из России уехал, а JetBrains, кажется, в C++ разработчиках не нуждается.
Есть ещё куча других компаний поменьше, но их Вы найдёте сами.

Ну и почитайте другие материалы на эту тему: [1], [2]

P.S. Оценки в зачётке никого не волнуют. Если Вы только не собираетесь поступать в Computer Science Center, например. Или магистратуру СПбАУ.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
opium
@opium
Просто люблю качественно работать
Прочитайте десяток книжек по си++ и напишите тот же десяток приложений, а потом уже задавайтесь этим вопросом.
Ответ написан
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
Сначала научитесь пользоваться гуглом (или хотя бы просто поиском по сайту). Основной скилл, без которого джуном не возьмут.
Ответ написан
Комментировать
dnovikoff
@dnovikoff
Давайте рассуждать логически. Вы студент без опыта работы. Работодатель это знает. Что он может с вас потребовать в качестве знаний? Базовое знание языка, понимание алгоритмов в рамках учебной программы и знание рахных технических дисциплин в рамках курса. Вот и получается, что единственное, чем вы можете заинтересовать работодателя "оставляет желать лучшего". Вы могли бы попробывать заинтересовать работодателя тем, что вы "быстро учитесь", но судя по оценкам и это не так. Так что мой вам совет - проявите усердие в учебе. Если вы хотите стать качественным программистом, то пробелы в математике и других технических дисциплинах все-равно придется зачищать. Но после универа это придется делать в свое свободное время.

И кстати раньше третьего курса лучше не работать. На третьем курсе вероятность вылететь сильно меньше чем на втором. С другой стороны, если устроится на 4-ом курсе, то к выпуску может не хватить стажа. Выпустится из универа без опыта работы - это вообще немного фейл.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы