Без вуза вы многое теряете, а учиться надо не только IT: лучшее из интервью с человеком, который придумал ‘Hello, world’
На канале «Мы обречены» вышло интервью с живой легендой IT-мира Брайаном Керниганом — автором множества книг по программированию, включая «Язык программирования С» (совместно с автором языка Деннисом Ритчи).
Мы в Highload выбрали для вас главное из этого разговора.
Как Брайан Керниган придумал программу ‘Hello, world’
Не уверен, что именно я придумал использовать эту фразу ‘Hello, world’ — это одна из тех вещей, когда память настолько стара, что ты не знаешь чему верить.
Но я помню какой-то комикс, где был изображен птенец, который пробивался через яйцо и говорил «Привет, мир!». Я тогда как раз искал что-то для первого примера использования языка программирования С в книге и решил, пусть программа напечатает это.
Как выглядел день разработчика в 1969 году
Когда я работал в Bell Labs, мой типичный день не был чисто «программистским». Программы, которые мы писали, были лишь частью попытки изучить какой-то исследовательский вопрос. То есть люди не ждали конкретно твою программу, чтобы соединить ее со своей или что-то такое, — они ждали результат, который покажет эта программа.
Но обычно это было так:
- пьешь кофе;
- запускаешь свою программу;
- отдаешь ее оператору и надеешься, что она работает.
А потом ждешь компиляцию несколько часов, чтобы увидеть, что что-то не так, переделать и отправить оператору снова.
Как понять, что человек — хороший программист
Я никогда не нанимал программистов, но я участвовал в найме научных сотрудников. Мы искали людей, способных интересно мыслить, и почти все они умели программировать — но это было не главное.
Но даже будь я менеджером Google, меня больше бы интересовало, умен ли кандидат и может ли он учиться. Потому что IT — это быстро меняющаяся среда и гораздо важнее наилучшим образом использовать новые знания, а не быть экспертом в том, что уже неактуально.
Хотя есть базовые вещи, которые программист должен уметь делать хорошо: например, отладку. Или писать программы, которые не нужно отлаживать 🙂
Как узнать, есть ли у человека такой навык? Я бы попытался это сделать, поговорив с человеком: выяснил, чем он интересуется, что думает по этому поводу, какие у него есть наработки. И меня совершенно не волнует, умеет ли он выполнять двоичный поиск. Кого это волнует?
Главная проблема индустрии
Большинство, что сейчас делают крупные компании в индустрии — это хорошо. Мы пользуемся сервисами Google, Microsoft, Amazon — они полезные и важные. Но иногда у меня есть вопросы к ним.
Я не хочу сейчас придираться и называть конкретные вещи, но мы постоянно видим в новостях скандалы с Facebook и другими. И главный вопрос, который возникает: не слишком ли велико влияние этих компаний? А также: можем ли мы их хоть как-то контролировать?
Почему стоит поучиться в вузе и читать нетехнические книги
Это очень здорово, что можно заниматься программированием без формального образования и четырех лет в университете. Но те, кто выбирают этот путь, многое теряют. Потому что вуз заставляет вас столкнуться с людьми, непохожими на вас, и узнать об областях, совершенно не связанных с технологиями и все-таки важных.
По этой же причине читать только техническую литературу — недальновидно. На определенном этапе карьеры вы можете сфокусироваться на таких книгах, но в целом этот подход скучный.
В свое свободное время я люблю читать историческую литературу или биографии. Мне кажется, такие книги помогают увидеть, как люди справлялись с миром до вас, и это может помочь вам сделать что-то для себя в будущем.
Я не говорю, что все должны читать именно историю. Но полезно почитать что-то, что относится к человеческому опыту в целом.
Кто может написать книгу по программированию и как это сделать
Написание книги связано больше не с технической экспертизой, а с литературой и преподаванием. У вас должно быть достаточное техническое понимание, чтобы вы ориентировались в теме, но вы не должны быть мировым экспертом.
А затем перед вами встанет задача представить себя тем, кто будет это читать — без ваших знаний и опыта. Вам нужно будет подобрать примеры, иллюстрирующие применение технологии и расставить их в таком порядке, в котором читатель будет задаваться вопросом: «А как это сделать?».
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: