Что должен знать системный администратор, программист-специалист по версии Яндекса. Книги. Программа подготовки
Primary tabs
Подготовка
Опыт работы для стажировки в Яндексе не обязателен, но требуется хорошее знание одного из языков программирования. Многие из стажёров Яндекса остаются работать в компании постоянно, и мы собрали их полезные советы — самим себе в молодости и всем, кто всерьёз решил стать разработчиком.
- Учите объектно-ориентированные языки: C++, Java или Python.
- Для расширения кругозора не забывайте о функциональной, процедурной и других парадигмах.
- Научитесь читать код, искать в нём ошибки.
- Прочитайте об основных структурах данных (стек, очереди, деревья, хэш-таблицы) и алгоритмах сортировки: quicksort, mergesort, heapsort.
- Попробуйте что-нибудь запрограммировать: написать игру, создать сайт или поднять сервер.
- Практикуйтесь в командной работе, например, над учебными проектами или в опенсорс-сообществе.
- Участвуйте в ACM ICPC, Яндекс.Алгоритме, TopСoder и других соревнованиях. Решайте алгоритмические задачи на Codeforces, Kaggle, ChekiO и подобных сайтах.
Ниже — далеко не полный и не исчерпывающий список полезных книг и ресурсов для самообучения. Чтобы стать стажёром в Яндексе, читать всё не нужно.
Полезные материалы
Математика
- Курс ШАД «Дискретный анализ и теория вероятностей»
- Курс MIT «Mathematics for Computer Science»
- Курс EPFL «Linear and Discrete Optimization»
- Курс Stanford «Probabilistic Graphical Models»
- Курс Stanford и UBC «Game Theory»
Алгоритмы и структуры данных
- Т. Кормен, Ч. Лейзерсон, Р. Ривест и др. Алгоритмы: построение и анализ
- Материалы на сайтах e-maxx.ru и algolist.ru
- Курс ШАД «Алгоритмы и структуры данных поиска»
- Курс MIT «Introduction to Algorithms»
- Курс Stanford «Algorithms: Design and Analysis»
- Список алгоритмов и структур данных
Программирование
- Брайан Керниган, Роб Пайк. Практика программирования
- Эндрю Хант, Дэвид Томас. Программист-прагматик. Путь от подмастерья к мастеру
- Курс UToronto «Learn to Program: Crafting Quality Code»
- Курс Udacity «Design of Computer Programs»
- Курс Brown University «Introduction to Programming Languages»
Системное администрирование
- Брайан Керниган, Роб Пайк. Программное окружение Unix
- Курс для начинающих «Learn to Program: The Fundamentals»
- Э. Немет, Г. Снайдер, Т. Хейн и др. Unix и Linux. Руководство системного администратора
- Кристофер Негус. Linux. Библия пользователя
- У. Ричард Стивенс. Протоколы TCP/IP. Практическое руководство
- W. Richard Stevens. TCP/IP Illustrated, Volume 1. The Protocols
- Андрей Робачевский. Операционная система Unix
- Марк Лутц. Изучаем Python
- Advanced Bash-Scripting Guide в оригинале и на русском
- Perl Compatible Regular Expressions
- Курсы информационных технологий
Тестирование
- Онлайн-класс «Software Testing Methodologies»
- Онлайн-класс «Software Debugging»
- Видеолекции ШАПР
- С. Канер, Д. Фолк, Е. К. Нгуен. Тестирование программного обеспечения. Фундаментальные концепции менеджмента бизнес-приложений
- Роман Савин. Teстирование dот com
- Р. Калбертсон, К. Браун, Г. Кобб. Быстрое тестирование
- Glenford J. Myers. The Art of Software Testing
- Том ДеМарко и Тимоти Листер. Вальсируя с Медведями
- Семинар «Теория и практика нагрузочного тестирования»
- Доклады с Тестовой среды
- Школа тестирования баннерной системы
C++
- Бьерн Страуструп. Язык программирования C++
- Герб Саттер. Решение сложных задач на С++
- Герб Саттер. Новые сложные задачи на С++
- Г. Саттер, А. Александреску. Стандарты программирования на С++
- Мартин Фаулер. Рефакторинг. Улучшение существующего кода
- Э. Гамма, Р. Хелм, Р. Джонсон и др. Приемы объектно-ориентированного проектирования. Паттерны проектирования
- Эндрю Таненбаум. Современные операционные системы
Java
- Документация Java
- Библиотека IBM developerWorks
- Курс MIT «Introduction to Programming in Java»
- Python
- Документация Python
- Курс Rice «An Introduction to Interactive Programming in Python»
- Jeffrey Elkner, Allen B. Downey, Chris Meyers. How to Think Like a Computer Scientist
- PEP 8 — Style Guide for Python Code
- Google Python Style Guide
- Mark Pilgrim. Dive Into Python
- Alex Martelli, David Ascher. Python Cookbook
- Фреймворк pytest
- Python Packaging User Guide
- The Hitchhiker’s Guide to Python
JavaScript
- David Flanagan. JavaScript: The Definitive Guide (5-е издание)
- John Resig. Pro JavaScript Techniques
- Ross Harmes, Dustin Diaz. Pro JavaScript Design Patterns
- Douglas Crockford. JavaScript: The Good Parts
- Курс Tuts+ «30 Days to Learn HTML & CSS»
- Курс Tuts+ «30 Days to Learn jQuery»
Git
- Git Tutorials
- Git Workflows
- Git Internals
- Scott Chacon, Ben Straub. Pro Git
Прочее
- Джеффри Фридл. Регулярные выражения
- Курс ШАД «Машинное обучение»
- Курс Stanford «Machine Learning»
- Курс Stanford «Natural Language Processing»
Взато отсюда: https://yandex.ru/jobs/internship/
- vedro-compota's blog
- Log in to post comments
- 5997 reads