Давайте лучше поговорим о философии программирования, которая тоже не меняется с середины прошлого века, — это будет более общим случаем предложенной темы.
Итак, программированием правит утилитаризм. «Premature optimization is a root of all evil» — говорит нам старина Кнут, и мы вспоминаем о производительности только тогда, когда уже поздно. Пятидесятикратное падение производительности? Да пофиг, будем писать на Python в 3 строки! Четыре гига «оперативы» ушло в никуда? Еще раз пофиг, зато мой pure functional язык позволяет мне выражать мысли монадами!
Недавно коллеги обсуждали невероятные тормоза LibreOffice при прокрутке документа с SVG. И это на современных персональных компьютерах текущего года. Мне особенно больно это слышать, потому что я почти 4 года проработал над офисным продуктом, который изначально затачивался под мобильные устройства. Это Excel, который работает на мобильном 20-мегагерцовом процессоре. Word, занимающий памяти меньше, чем документ, который вы открываете. Но пришло время айфонов и айпадов, и я лично наблюдал, как деградировал наш продукт, когда снимались определенные ограничения. На первом iPad можно было легко откушать до 64 метров памяти без риска быть убитым, это было роскошью, и приложение летало. К появлению iPad Retina приложение уже хотело под 300 метров в определенных случаях, а на первом iPad тормозило. Аналогичная деградация наблюдалась в Android-версии. Изначальный лимит в 16 Мбайт для поддержки слабых андроидофонов был вскоре забыт, основная разработка велась под Android-планшеты, которые могли поспорить в производительности со слабенькими персоналками. К чему это привело, вы все сможете посмотреть в Android 4.4 KitKat, в ванильной поставке которого должен быть тот самый офис.
Мой вывод — виновата философия программирования, которая сделала создание программных продуктов чисто утилитарным действием. Программирование сегодня — это как написание картин для того, чтобы дырку в стене прикрыть. Модернизация «алгебры» этого процесса приведет лишь к тому, что качество картины будет выше с точки зрения ее возможностей лучше висеть на стене и прикрывать дырку. А вот что делать, чтобы программирование стало искусством, а не ремеслом? Возможно, такая возможность уже безнадежно утеряна.
Давай, глядя с вершины всех этих зияющих проблем отрасли, попытаемся дать дельные советы начинающим программистам. Ты — состоявшийся программист. Оглядываясь назад, анализируя свои поступки и мотивы, можешь ли ты сам себе объяснить, в чемсекрет или формула успеха на этой стезе? Очень многие молодые люди стремятся стать айтишниками, но далеко не у всех в итоге получается что-то путное. Глядя изнутри индустрии, что можно выделить главное в характере, профессии и обстоятельствах, которые способствует успеху именно в ИТ? Какие общие советы ты бы дал начинающим программистам?
Еще в прошлом интервью я советовал начинающим программистам больше времени наслаждаться детством и юностью и поменьше думать о карьере, пока есть такая возможность. Если же пришла пора о ней задуматься, то важнейшими качествами являются уверенность в себе, смелость и упорство. Это истинно не только для ИТ. У каждого человека свой путь к вершинам.
Смелость и уверенность в себе позволяют сделать первый шаг. А после первого шага становятся очевидными трудности, которые доведется преодолевать. И здесь поможет только упорство.
Дополнительно, что бы ты пожелал молодым коллегам-программистам, которые в душе симпатизируют евгенике и горят желанием трудоустроиться в таких местах силы, как Google? Так уж ли страшен этот заморский «поисковый черт», как его малюют?
Молодым коллегам-программистам в этом плане совет: убежден, что Google — идеальный выбор именно в качестве вашего первого места работы. Не нужно бояться, что у вас не хватит опыта, в интернатуру берут вообще без какого-либо опыта. Важны ваши знания, образование и желание работать. Также Google отлично подходит тем, кто уже имеет инженерный опыт, но желает научиться большему. Там также найдется место и для зубров от программирования, но последние вряд ли нуждаются в моих советах.
Тем, кто желает подготовиться к интервью, очень советую курс алгоритмов от Роберта Седжвика из Принстона. [1 http://www.coursera.org/course/algs4partI] Это лучшее из того, что я знаю.
Не мешает ли такая напряженная офисная работа твоим активным путешествиям? Мне кажется, что суперкомфортный Google — это прямая антитеза твоим дауншифтерским трипам по захолустьям цивилизации. Как ты совмещаешь эти две разные концепции?
Читать дальше
Конец ознакомительного отрывка
Купить книгу