Что нужно знать каждому программисту по версии Google
Команда Google рассказала о том, какими навыками и умениями должны обладать программные инженеры и программисты, а мы делимся их советами с вами и приводим перечень рекомендованных образовательных курсов.

Несомненно, в Google работают одни из самых квалифицированных инженеров и программистов в мире. Недавно на сайте поисковика появилась отдельная страница, где представлены курсы и инструменты для онлайн-образования, которые необходимо знать всем инженерам и программистам.
Прохождение образовательных программ не гарантирует работу в Google, о чём компания говорит в отдельной сноске. Но это невероятно круто — узнать о том, какие курсы по мнению одной из лучших компаний в мире должен пройти каждый уважающий себя программист и инженер.
С перечнем курсов в оригинале вы можете ознакомиться здесь, а мы предлагаем их перевод.
Рекомендации по образованию
- Пройдите вступительный курс компьютерных наук: Udacity, Coursera.
- Научитесь программировать хотя бы на одном ООП языке: C++, Java, Python:
Для новичков: Coursera — обучение программированию, курс MIT по Java, курс Google по Python, курс Coursera по Python.
Для среднего уровня: Udacity — дизайн компьютерных программ, Coursera — создание качественного кода, курс Брауновского университета — вступление в программирование. - Изучите другие языки: JavaScript, CSS, HTML, Ruby, PHP, C, Perl, Shell, Lisp, Scheme: туториал по HTML, codeacademy.com.
- Научитесь тестировать код: Udacity — методы тестирования, Udacity — отладка программ.
- Знание дискретной математики: курс математики для программистов MIT.
- Понимание алгоритмов и структуры данных: вступительный курс MIT об алгоритмах, Coursera — вступительный курс об алгоритмах (часть 1 и часть 2), список алгоритмов, виды структур данных, книга об алгоритмах.
- Понимание работы операционных систем: курс Беркли.
- Изучить искусственный интеллект: вступление в роботостроение, курс Стэнфорда, машинное обучение.
- Создание компиляторов: курс Coursera.
- Знание криптографии: курс Coursera о криптографии, курс Udacity о криптографии.
- Знание параллельного программирования: курс Coursera.
Рекомендации по работе
- Создайте сайт, постройте собственный сервер или создайте робота: список проектов Apache, Google Summer of Code, команда разработчиков Google.
- Разработайте небольшую часть большой системы, прочитайте и поймите код, изучите программную документацию, отладьте программу. Вспомогательные ресурсы: GitHub, Kiln.
- Работайте над проектом в команде. Вы будете учиться у других и научитесь командной работе.
- Улучшайте навыки программирования и знание алгоритмов: CodeJam, ACM ICPC.
- Учите других.
- Станьте интерном: google.com/jobs
Такие рекомендации компания даёт всем программистам и инженерам. Ну что, вы уже начали создавать собственного робота?
Комментарии
Языки программирования CSS и HTML? Все с вами понятно.
С нами?
Вообще-то, это перевод статьи от гугла, и в оригинале это написано так же.
Учитывая, что статья совсем для начинающих, то выделываться с вынесением двух названий в отдельный подвид это лишнее. А хтмл и цсс знать все равно обязательно. Вот их здесь и оставили.
Главное ведь не это. А то, что с нами всё понятно :)
чел имел в виду, что это не ЯП, а языки разметки, или как их там называют. Короче, придрался.
В таком случае вы Homo Erectus, а не Homo Sapiens. Что, я не прав? Да вы придираетесь.
Написано так же?) Им бы не простили такое. Обезьяна - подвид человека, ага.
А что оригинале:
...
3. Изучайте другие языки программирования.
Прим.: добавьте в свой послужной список Java Script, CSS, HTML....
...

Да, это языки программирования, более точно декларативные языки программирования. А вот Тьюринг-полными они не являются (заметьте, конкретно эти, есть декларативные и Тьюринг-полные ЯП), из-за чего люди, не до конца понимающие термин "язык программирования", разводят в Интернете холивары на эту тему.
Добавлю еще два пункта от себя.
1. Учите английский. Для программиста это очень, очень важно. Естественно, этого совета в оригинале нет, так как он писался для англоязычной аудитории.
2. Изучайте базы данных и SQL. Сперва реляционные , а потом стоит и на не реляционные взглянуть. Тоже важная сфера. Удивительно что в гугле ее упустили.
Не светит мне работа значит (:cry:)
Незнаю как у других, но в курсе моего ВУЗа все это было.
Теория компиляторов конечно жесткая штука была. Сдал только благодаря бонусному балу за успешную сдачу курса теории операционных систем :)
Если копнуть глубже, то есть ещё и рекомендованный порядок изучения технологий, что тоже очень важно. Мы ведь, когда едим, то не набрасываемся на сладкое в самом начале приёма пищи, верно?
Хронологический список технологий к изучению для тех, кто хочет стать Ruby on Rails девелопером:
1. HTML
2. CSS
3. JavaScript
4. TCP Sockets
5. HTTP
6. REST (Hypermedia APIs)
7. Ruby
8. Rack
9. Sinatra
10. Rails
И кстати, этот же список с небольшими поправками я бы применил и к другим языкам. Понимание TCP Sockets, HTTP, REST - всегда будет помогать в работе.
Да, полностью согласен с Вами!
TCP Sockets, HTTP, REST
По этим технологиям можете посоветовать ресурсы(книги, видео, курсы)
По сокетам есть хорошая книга Jesse Storimer "Working With TCP Sockets" http://www.jstorimer.com/products/working-with-tcp-sockets
Минус - нужно немного знать руби, плюс - все довольно доступно. История о чуваке, который сам "плавал" и не шарил сокеты, но потом решил таки разобраться.
Мой путь через PHP. Сейчас знаю html css scss.
А руби на уровне codecademy хватит?
Ищу репетитора по JavaScript, Node.js. Владею HTML, CSS, базовыми знаниями JS... Живу в Витебске. Цена договорная...
То есть программер должен знать всё ? Может это тупо экономия на персонале ?
По твоему, ЯП - это обязательно циклы и процедуры? Ты говоришь компьютеру, как считать факториал рекурсивно, он считает его - и это программирование. Ты говоришь компьютеру, как отображать баттон на ХТМЛ-странице - и это тоже программирование, почему нет? Это просто терминология.
Если я все это буду знать, я пошлю гугл нахер, и открою свою компанию.
Так я и поступил, хоть и знаю только процентов 40 от списка.
Сегодня создать робота может каждый кто захочет. Гугл в помощь.
что за робот? И как его создать?
А курсера на русском есть? я хочу обучиться программированию, денег на курсы нет, английский не знаю. Хочу сам. Но не понимаю с чего даже начать. Курсера по вашим словам дело хорошее.
https://lifehacker.ru/kak-stat-programmistom/
Ой да в любой статье где html приравнивают к языку программирования, а не к языку разметки, находятся ребята которые будут об этом писать. Все и так прекрасно понимают но надо, что бы все знали, что он тоже понимает.
Все с вами понятно ))
Лучшие предложения
Надо брать: планшет Blackview Tab 16 за 12 719 рублей
17 украшений, чтобы нарядить ёлку от основания до макушки
Выгодно: мужские кеды Li-Ning со скидкой 30%
Находки AliExpress: самые интересные и полезные товары
15 интересных товаров дешевле 500 рублей
Надо брать: посудомоечная машина Gorenje со скидкой 31 500 рублей
Цена дня: смартфон realme GT3 за 41 647 рублей
30 товаров, которые можно выгодно купить во время «чёрной пятницы»
Заботится о безопасности и удобен в управлении: чем хорош кроссовер Geely Coolray
РекламаСемью заводить можно? А детей? Тест о жизни с ВИЧ
Социальная рекламаИз нуба в pro: как новичку прокачаться в гейминге
РекламаВзять от распродаж всё: 6 советов для сезона скидок
Реклама