Найдите время для обучения

Вот некоторые из людей, у которых я учусь

В течение последних двенадцати месяцев или около того я целенаправленно намеревался узнать больше о том, что находится под прикладным уровнем, над которым я обычно работаю. Я провел много времени за чтением книг и записей в блогах. И я провел много времени, слушая презентации на конференциях.

Еще в феврале я писал, что чувствую, что перешел на следующую ступень своего развития как зрелого инженера. Я думал о своих системах и проектировал свои приложения с точки зрения потоков, процессов и памяти. Чтобы делать это эффективно, мне нужно было многому научиться.

Я пошел в RIT на степень в области информационных технологий, а не CS. Я никогда осмысленно не программировал на C. Я никогда не писал компилятор. В последний раз я терминировал кабель в колледже. Я бы никогда не стал пытаться прошивать свой домашний роутер другим программным обеспечением. Не могу поверить, что собираюсь публично признаться в этом: но я никогда не запускал Linux на личной машине. Я всегда был сторонником прикладного уровня.

Поскольку это моя история, я чувствую, что упустил много знаний. Такое ощущение, что у многих моих сверстников есть базовое понимание, которое я упустил, что позволяет им осваивать большое количество технологий намного быстрее меня.

Конечно, у меня есть и обратная сторона медали: я не ненавижу CSS, как кажется многим, я занимаюсь дизайном с тех пор, как появились прозрачные пиксели 1x1 и макет таблицы. Я прошел через множество этапов разработки JavaScript, и я нахожу его забавным, и теперь очень серьезные люди считают его хорошей вещью™ (спасибо командам NodeJS и V8). И это не оценка JavaScript, а этих Серьезных Людей.

Первый скачок, который я сделал, стал проводить намного больше времени, слушая выступления на конференциях. Я быстро остановился на многих докладах Рэймонда Хеттингера по python по двум причинам: я десять лет работал с python и был очень рад узнать больше о его внутренностях, а он фантастически четкий докладчик.

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

Третьим прыжком стал просмотр одного — буквально одного — доклада от Charity Majors из Honeycomb.io, а затем, конечно же, ее удивительных твит-штормов. Вот насколько хороша подача. Для меня ее презентация кристаллизовала мой жизненный опыт последнего десятилетия, пытаясь понять, почему мои вещи были наполовину сломаны, и процесс их исправления.

Мой четвертый и последний прыжок состоял в том, чтобы смотреть почти все презентации, которые когда-либо проводил Брайан Кантрил (его заразительная энергия доставляет удовольствие). Он называет себя специалистом по ядру ОС, чья карьера связана с отладкой. Опять же, я никогда не жил на этом уровне, но он отлично справляется с тем, чтобы прояснить, что происходит там внизу и как это влияет на нас на уровне приложений.

Мне не нужно писать компилятор или знать, как на самом деле работает DTrace, чтобы глубоко понять, почему выбор между интерпретируемым и неинтерпретируемым языком или статической или динамической типизацией будет зависеть от собственной скорости, параметров масштабируемости и доступных векторов ошибок. . Тем не менее, спасибо Брайану за DTrace.

Мне не нужно отправлять исправления ядра, чтобы понять, какие у нас есть варианты для вычислительных проблем, когда они связаны с процессором, вводом-выводом или памятью, и какую проблему мы предпочли бы иметь!

Я не могу быть разработчиком приложений и ветераном FANG SRE одновременно. Но я могу учиться у них. Постоянно. Потому что я хочу избежать проблем, присущих моему приложению. Я хочу избежать создания технического долга, потому что я ничего не знал, а отрасль движется в другом направлении. Я не хочу усложнять задачу, потому что я не планировал решения, которые люди работают над тем, чтобы сделать их доступными для всех нас каждый день.

Выясните, чему вы хотите научиться. Найдите то, что вам интересно, и найдите то, что находится на периферии того, чем вы занимаетесь. Изучите их глубже. Это поможет вам ежедневно.