Одной из моих обязанностей в Groupon было помогать компании нанимать отличных разработчиков, так что меня можно считать представителем команды разработчиков Groupon, в основном отвечающим за публикацию информации о вакансиях и ответы на вопросы. На прошлой неделе я ответил двум студентам, которые пришли узнать о летних стажировках.

Я внимательно пересмотрел содержание своих ответов по электронной почте и обобщил 8 советов, которые считаю ценными, для студентов, мечтающих стать программистами:

  • 1. Если вы начинаете обращаться к компаниям на стороне уже на втором курсе, ваш подход заслуживает похвалы. Многие студенты задумываются о поиске работы только за два месяца до выпуска (или даже позже). Даже если вы не можете получить стажировку, вам всё равно стоит часто ходить на собеседования и общаться с некоторыми компаниями, стараясь произвести хорошее впечатление на людей.

  • 2. Если вам интересна какая-то зрелая технология, вы можете сначала изучить соответствующие базовые знания из книг. Старайтесь сочетать теоретические знания с практическими упражнениями. Знания в книгах тщательно отредактированы и дадут вам полный набор систематизированных знаний. Но нельзя только читать книги; нужно выполнять упражнения из них. Например, если вы хотите изучить Rails, можете прочитать "Agile Web Development with Rails" — она научит вас, как за неделю разработать полноценный сайт электронной коммерции. Иногда практика нередко предшествует пониманию (или, точнее, без практики понять невозможно).

  • 3. По этому пункту я хочу сказать: не просто сидите и ждите, пока учебная аудитория научит вас новым языкам программирования или передовым технологиям. Цель курсов по информатике, предлагаемых в учебном заведении, — позволить вам изучить теоретические основы программирования, а также некоторые правила и специальные темы. Но многие технологии (такие как управление кодом, управление серверами, настройка nginx и т. д.) и языки программирования (в учебных курсах преподают только C и Java) не войдут в учебную программу. Но в компании вы часто будете изучать новые технологии целенаправленно, исходя из своего карьерного планирования и потребностей бизнеса. Поэтому, если вы хотите чего-то добиться в своей карьере в будущем, постарайтесь уже сейчас изучить некоторые новые знания за пределами учебной программы.

  • 4. Не ограничивайтесь только конкретными языками программирования и фреймворками; диверсифицируйте свои технические навыки. Такие книги, как «Structure and Interpretation of Computer Programs» (бесплатное онлайн-чтение http://mitpress.mit.edu/sicp/full-text/book/book.html), «Clean Code» и «The Pragmatic Programmer», — все они хороши.

  • 5. Если вы только что пробежались глазами по предыдущему пункту, лучше прочитайте его снова! Прочитайте SICP, посмотрите видеообъяснения. Эти тренировки сделают вас отличным программистом.

  • 6. Выучите хотя бы один малоизвестный язык программирования. Это позволит вам узнать много вещей, которые вы не можете узнать из мейнстримных языков, таких как Java. Лично я предпочитаю язык Lisp. Книга «Land of Lisp» великолепна, она предоставляет вам увлекательный способ изучения Lisp.

  • 7. Найдите проект, над которым можно работать. Не обязательно делать что-то очень значимое или важное; главное, чтобы это позволяло вам практиковаться. Напишите небольшую программу, которая может искать ближайший к вам Starbucks, разработайте единую систему управления веб-сайтом для вашей учебной группы, разработайте программное обеспечение автоматического робота, которое может выполнять задачи по сборке пазлов. Просто для практического обучения, и опубликуйте проект в Интернете, выложите исходный код на GitHub, а также часто пишите свои собственные учебные выводы и публикуйте их в блоге. Таким образом, проекты, которые вы делаете, станут общедоступными. Преимущество в том, что в будущем работодатели будут иметь хорошее впечатление о вас, особенно во время собеседований. В то же время это также дает вам возможность упражнять свои навыки письма, позволяя вам знать, где находится ваш прогресс каждый год.

  • 8. Свяжитесь с большим числом разработчиков, связанных с вашей областью. Благодаря Google, если в вашей области есть соответствующие конференции и мероприятия, вы можете найти их за 5 секунд. Если вы не можете найти ни одной конференции, это означает, что организовать их слишком затратно по времени или слишком сложно. Вы также можете вызваться добровольцем, чтобы внести вклад в эти конференции, например найти места для встреч. Делать эти вещи не очень сложно; главное — уделять время и иметь уверенность. Эти вещи принесут вам хорошую репутацию, помогут поддерживать связь с другими, работать вместе и вместе развиваться.

  • В заключение я хочу сказать: тратьте $100 в год на книги и усердно практикуйтесь. Вы обязательно станете студентом колледжа, который в глазах работодателей будет лучше любого другого.