Автор оригинала: FreeCodeCamp Community Member.
Вивиан Кромвел
Вот мое интервью Sindre Sorhus , плодовитый разработчик с открытым исходным кодом, который живет в Таиланде.
Расскажите нам немного о своем детстве и где вы выросли.
Я вырос в пригородной зоне за пределами Осло, Норвегии. Когда я был маленьким, я был действительно заинтересован в Legos. Каждый год я бы получил Легос на день рождения и Рождество. Легос действительно вызвал мои интересы в создании вещей рано. В какой-то момент у меня был огромный город Лего, встроенный в мою комнату, и он почти занял всю комнату.
Как вы попали в программирование?
Когда мне было семь, моя семья получила наш первый компьютер Windows 95. Я играл в игру под названием Map Blaster, где персонаж подпрыгнул, чтобы решить математические проблемы. Несколько лет спустя мы наконец получили доступ в Интернет, и это изменило все для меня. Я провел много времени, написание в гостевых книгах на веб-страницах других людей и собирает GIFS. Однажды мне интересно, как сайт работал и обнаружил кнопку «Источник просмотра» в браузере.
Это был разум, дующий открытие для меня. Я мог бы просто щелкнуть правой кнопкой мыши, просмотреть источник, а затем я мог видеть, как все было сделано. Я много не понимал в начале, но, как я посмотрел на то же самое снова и снова, я начал понимать, как это сработало. Вот как я начал свое программирование.
Я сделал свой первый сайт, когда мне было десять. Это было после того, как на несколько лет посмотрев на источник. У него были все виды цветов, звездный узорчатый фон, анимирован с носильной фоновой музыкой – это был один из тех касаний, что у всех были на своих сайтах. Я использовал Microsoft FrontPage Отказ
Одно время мне было скучно, поэтому я создал тысячи вложенных каталогов на компьютере от папы, и оно закончилось сбой компьютера. Мой папа пришлось переформатировать компьютер; Он был впечатлен и раздражен одновременно. Это было также, как я потерял свой первый веб-сайт.
Позже во время моего учебного года я попал в флеш игры, и мы будем наблюдать за много флэш-фильмов во время школьных перерывов. Мне было любопытно, как они были сделаны, но никогда не было ни одной кнопки источника. Поэтому я декомпилировал файлы Swiff, это было легко, потому что они не были запутаны. Что, опять же, дал мне возможность учиться у других людей. Я начал изменять другие народные игры и отменил всех персонажей, сделал новые враги, добавил высокие оценки. Это был гордый момент, когда я понял, что другие могут играть в игру, которую я склеен.
Вы провели пять лет в армии в качестве разработчика и фотографа переднего конца. Какова была веб-разработка в то время?
После окончания средней школы я был призван непосредственно на военные в Норвегии. Я попал в медиа-подразделение, где я провел большую часть своего времени в офисе, работающую на интранете. По вечерам не было много, потому что мы жили в казармах, поэтому я решил построить вещи. Но большая часть моего опыта копировала и вставляя PHP и JavaScript других людей, и я не совсем понял, как они работали. Однажды я наткнулся на Python и Django, он имел отличную документацию и учебные пособия, которые PHP никогда не имел. Я бы прочитал учебники каждый день и начал строить вещи на работе.
Вот как началось моя фактическая кодировка. После призыва я планировал отправиться в путешествие перед колледжем. Но у меня есть предложение о работе от подразделения в военном подразделении Cyber Defense. Он был интригует, поэтому я взял предложение, и я оказался там проводить 5 лет.
Как вы привязались к TOMEVC и Yeoman?
Я начал использовать GitHub около 2011 года, но в основном как потребителя. Я бы пошел, глядя на разные репо и смириться с ними, потому что они выглядели весело. Я исправил некоторые опечатки в файлах readme.md, но это было об этом.
Однажды я наткнулся на Todomvc Что поможет вам выбрать JavaScript Framework. Это была действительно потрясающая идея, хотя, по-виду, нам нужно много более продвинутых приложений, чтобы фактически решить проблемы тестирования производительности и структурных возможностей. Первое, что я вспомнил о TOMEVC, заключался в том, что у него был хороший логотип. Это кажется очень поверхностным, но это то, что заставило меня начаться.
Мне очень понравился логотип, что решил посмотреть немного больше. Я заметил, что у них на самом деле не было приложения jQuery, поэтому я решил создать один. Я отправил запрос на тягу на выходные и получил ответ от Addy Osmani, который является сопровождающим проекта. Он объединил свой PR быстро, который был очень хорошим опытом для начинающего, как я. Я чувствовал себя хорошо, что мое приложение теперь включено в этот действительно популярный проект. Я сделал это в течение нескольких недель, и добавил меня в проект, который был действительно крутым.
Это действительно заинтересовало меня с открытым исходным кодом. До этого я был просто пассивным потребителем, но с TOMEVC я получил вкус поддержания большого проекта, который был большим количеством работ. Но я многому научился от этого опыта.
Несколько месяцев спустя Addy пошел на работу на Google. Его первый проект в Google был Йоман Инструмент лесов для современных веб-приложений. Потому что мы так хорошо работали вместе на TOMOVVC, поэтому он решил пригласить меня в качестве внешнего вкладчика.
Наша первоначальная цель с Yeoman состояла в том, чтобы создать набор инструментов, которые каждый может использовать для создания отличных веб-приложений. То, что мы не осознавали, так это то, что невозможно решить любую проблему всех в одном инструменте, потому что в Интернете слишком много случаев использования. Йоман стал популярной конфигурацией, которую многие разработчики создали генераторы для расширения yeoman, которые соответствуют собственным случаям использования.
История повторяется также, если вы посмотрите на создание приложения React или WebPack. Кто-то начинает делать этот продукт, который должен решить одну проблему, но потому что у каждого есть разные потребности, возникают проблемы. Когда вы понимаете, что этот инструмент не может покрыть все, вы добавляете конфигурацию. Ключ должен иметь сбалансированный подход. Вы должны сказать «нет», и вам нужно знать, когда сказать «нет». Вы можете разочаровать некоторых пользователей, потому что у них есть неясные случаи использования. Это тяжелая часть инструментов, а также еще сложнее в проектах с открытым исходным кодом, потому что есть так много обратной связи.
Почему вы увлечены с открытым исходным кодом?
Я люблю открытый источник, и я думаю, что он возвращается к кнопке «Просмотр источника» в браузере. На мой взгляд, с открытым исходным кодом является наиболее эффективным способом создания программного обеспечения, потому что он позволяет нам построить на работу друг на друга. Каждый выигрывает, если какой-либо один человек решает тяжелую проблему. Открытый исход позволяет мне работать с невероятными людьми со всего мира, которые я никогда не смог бы работать с иным. Мы добираемся к работе над тем, что важно для нас и сосредоточиться на том, что нужно сообществом, вместо того, чтобы сосредоточиться на создании доходов.
Пол Ирландский Имеет отличное видео на YouTube под названием « десять вещей, которые я узнал из источника jQuery ». Это то, что заинтересовало меня в чтении исходного кода jQuery. Paul Irish был прав, вы многому научитесь, на самом деле делаете все, что вы хотите научиться делать.
Как насчет устойчивости с открытым исходным кодом?
Это определенно точка конфликта, которую я много думал о многих недавно. Я сделал полный исходный код полный рабочий день для Три года сейчас Отказ Я не зарабатываю ни одной деньги, но было бы неплохо сделать это полное время в качестве платной работы. Vue.js В Evan Вы отличный пример того, как устойчивость с открытым исходным кодом может работать. Он создал рамки, которые все хотели, и она использовалась довольно несколькими компаниями. Другие компании и частные лица имеют стимулы для инвестирования в его проект, потому что это полезно в производстве. Ключ заключается в том, чтобы сделать ваш проект надежным. Я лично не думаю, что взносы людей достаточно, чтобы поддерживать проект.
Я думал об использовании Открытый коллектив Таким образом, мы можем собрать деньги на вознаграждение вкладчиков и рекламных акций. WebPack сделал отличная работа там. Я был на самом деле на самом деле против этого долгое время, потому что я беспокоился, что для нас будет ожидания, чтобы сделать нежелательные изменения, когда кто-то положил деньги на проект. Обычно, если компания инвестирует в проект, они хотят, чтобы работа приоритетна, а проблемы быстро установлены.
Я в настоящее время живу в Таиланде, и я думаю, что бы я был бы в порядке с меньшим количеством 1500 долларов Отказ
У вас есть более 1000 пакетов NPM. Как вы остаетесь таким продуктивным?
Это неправильное представление. Люди видят номер 1000 пакетов И они думают, что я безумно производительно, но то, что они не понимают, так это то, что большинство этих пакетов мало и модульные. Они в значительной степени сделаны, когда они публикуются. Мне нравится сравнивать программирование для строительства с LEGO: я создаю много кирпичей Lego, которые можно собрать, чтобы построить большие конструкции. Я использую их с другими пакетами, прежде чем публиковать, чтобы убедиться, что они решают мои проблемы. Именно поэтому пользователи не будут представить множество запросов на функцию, потому что они такие маленькие. Если им нужно что-то большее, они могут просто построить другой модуль. 90% моего времени тратится на мои самые большие 10 проектов.
Каков один совет, который вы можете дать новому участникам OSS при работе с требовательным и токсичным людьми?
Я делал открытый источник в течение шести лет, поэтому у меня была толстая кожа. Я не думаю, что что-то меня больше беспокоит, потому что мне нравится думать, что у меня все это все. Я разговариваю со многими начинающими, которые испытывают некоторую токсичность, а затем бросили. Открытый источник должен быть забавной вещью, которую вы делаете, а не причина стресса в вашей жизни.
Мой совет для новых разработчиков заключается в том, что вы не должны позволять незнакомцам в Интернете негативно повлиять на ваше настроение или ваш диск. Это не стоит этого. Если у вас есть возможность уйти, возьмите его – используйте кнопку отписки. Сопровождающие с открытым исходным кодом должны помнить, что пользователи не платят клиентов. Мы предоставляем им что-то бесплатно, в нашем свободное время.
С токсичными людьми, вам нужно всегда быть большим человеком. Это звучит не так, но что я пытаюсь сделать, это убить их добротой. Каким-то образом он работал на меня много лет. Например, если кто-то раздражает, я постараюсь быть как открытым и добрым о ситуации. Я уверен, что никогда не быть саркастическим или не разговаривать к ним. Троллы питаются на вашу раздражение и дискурс, поэтому, когда он не там, они оставят вас в покое.
Я использую опцию Muting, где это предусмотрено, особенно в Twitter. Приятно реализовать только тогда, когда кто-то граничает на токсичном отношении, и намного лучше просто закрыть этот голос и вводить вместо того, чтобы вызвать ненужный конфликт.
Вы разработали несколько логотипов для своих собственных модулей, они потрясающие. Как вы изучали дизайн?
Я начал со следующими онлайн-учебниками, чтобы сделать прохладные эффекты. Я использовал для использования Adobe Illustrator , но теперь я использую Эскиз Отказ
Для меня действительно весело для дизайна, и я думаю, что больше программистов нужно попробовать. После программирования в течение нескольких часов приятно сделать перерыв, чтобы сделать какую-то творческую работу по-другому.
Это также приносит пользу моим проектам, создавая логотипы, потому что он дает проект больше личности. Обычно, когда вы входите в REPO на GitHub, вы получаете такие же текстовые вещи: заголовок, какое-то введение и readme.md. Приятно придираться к какой-то графике. Оказывается, люди с большей вероятностью будут использовать проект, если есть логотип. Например, Вадим Смерден , разработчик из Украины, представил это потянуть запрос Сразу после освобождения Авы. Вадим позже стал членом команды AVA. Он сказал мне, что он заинтересован в AVA из-за его хорошего логотипа.
Что побудило вас переехать в Таиланд? Расскажите нам, какой типичный день выглядит для вас.
Я не очень много знал о Таиланде вообще. Когда я работал в военном обязательном обслуживании, я планировал путешествовать. Я получил предложение и оказался остаться еще четыре года. Я только что пошел с потоком, потому что жизнь случается.
Однажды, когда я готовил телефонное интервью с Google, я просто решил, что если я когда-нибудь собираюсь путешествовать, это было бы сейчас, в противном случае это никогда не произойдет. Поэтому я отменил интервью и представил мою отставку на работе на следующий день. Я купил билет в одну сторону в Таиланд, и это было.
Я сделал реки на полгода в Юго-Восточной Азии, и вот где я встретил мою подругу. В конце концов я поселился в Таиланде, потому что это был мой любимый. Я люблю его богатую культуру, дружелюбные местные жители и еду. Я живу в Таиланде уже два года.
Я работаю из местных кофейных магазинов три дня в неделю, потому что я более продуктивна, когда у меня есть люди вокруг меня. В противном случае, от девяти до шести я делаю много открытого исходного кодирования и обслуживания, иногда мои боковые проекты. В большинстве дней я получаю более 20 словных запросов и тонн вопросов для исправления. Вечером я провожу время со своей подругой IM; Мы оба любим пряную уличную еду на ночных рынках. Иногда пошлинные звонки, и я вернусь перед компьютером поздно ночью.
Я не изучал тайский язык, потому что, хотя я хорош на языках программирования, устное язык намного сложнее, чем любой язык программирования, а тайский язык особенно сложно. Моя подруга, с другой стороны, свободно говорит на тайском, русском, английском и довольно хорошо на шведском языках. В какой-то момент я хочу изучать тайские и другие языки, но я не нажимаю на время.
Что мотивировало вас, чтобы начать проект AVA?
Я использовал Моча Много, потому что я сделал много модулей, которые должны были быть проверены. Я не был счастлив с тем, как это сработало. Mocha вводит несколько глобальных объектов, но они нигде не определены. Потому что я делал это в Node.js, у меня было много Async API, и было не очень удобно делать с Mocha.
Я хотел что-то проще и более оптимизировано для моего случая использования. Итак, один выходной, я решил поработать над этим, и к воскресенье вечером я опубликовал 0.0.1 версию для Ava на НПМ. Несмотря на то, что JavaScript является однопотоком, IO в Node.js может произойти параллельно из-за своей асинхронизации. AVA использует это и управляет вашим тестами одновременно, что особенно выгодно для тяжелых испытаний IO. Кроме того, тестовые файлы выполняются параллельно в качестве отдельных процессов, что позволяет потенциально лучшее производительность и изолированную среду для каждого тестового файла.
Потому что у меня не было времени, чтобы исправить ошибки, и я только хотел использовать его в своих собственных проектах, это было частное. Через полтора года я наконец-то сделал логотип для AVA, убрал репо, написал много документации. Затем я опубликовал проект.
Большинство пользователей кажутся очень довольны AVA, потому что мы все время получаем позитивные твиты в проекте. Им действительно нравится, насколько просто синтаксис и насколько легко начать. Я только что сделал это, чтобы почесать свой собственный зуд, но оказывается, что другие люди имели ту же проблему и понравилось мое решение.
В наше время я провожу больше времени на управление проектом, потому что есть так много новых проблем и запросов на протяжении всей недели, что оставляет меня очень мало времени для кода.
Почему вы решили войти в развитие MacOS?
Я сделал немного на объективном программировании, но у меня не было большого опыта. В январе этого я получил представление о приложении Mac, и у меня было некоторое свободное время, поэтому я прыгнул прямо в Свифт Отказ Вот как я обычно изучаю новые вещи. Это очень спонтанно. Я начинаю с желания сделать продукт, то я выяснил, какие навыки мне нужно сделать этот продукт, то я их изучаю. Идея приходит до планирования.
Swift намного сложнее учиться изначально, чем JavaScript, но Swift сияет, потому что он сильно набирается. Когда вы компилируете, он гораздо вряд ли разбит, если вы используете дополнительные элементы правильно. Единственное, что мне не понравилось, это то, что вам еще иногда приходится взаимодействовать со старыми API в C.
Я написал несколько производительности и коммунальных приложений. Луного Является ли приложение меню, которое я написал, и вы найдете его на App Store Отказ Другой, который я написал, это Индикатор батареи Отказ
Какой у вас план на следующий год? Вы планируете пройти полный рабочий день или рассмотреть другие способы стать финансовыми устойчивыми?
Я проживаю сбережения за последние три года и выполнив программное обеспечение с открытым исходным кодом. Это намного проще в Азии, но это не длится вечно. В идеале я бы хотел сделать открытый источник в финансово устойчивом пути, но это сложно, поэтому я, вероятно, сделаю некоторые договоры в следующем году.
Я пробовал несколько разных вещей. Одна вещь, которую я сделал, это спросить поддержку в Github readme.md файл. Я бы не назвал это объявлением, но более маленьким баннером. Я сделал немного денег, но он далеко не в состоянии поддержать меня.
Я мог бы дать Парреон попробовать.
Каковы некоторые из вещей, которые вы хотите улучшить в JavaScript Ecosystem?
На мой взгляд, экосистема JavaScript уже отлично, но у нас все еще есть много причудливых, чтобы работать на браузере вещей. Есть так много проектов с этим гигантским сценарием сборки, просто чтобы получить простое приложение там, поэтому я люблю Node.js Отказ
Проблема с браузерами состоит в том, что они очень сложны. У вас есть сеть, чтобы подумать, вам нужно оптимизировать как для размера, так и для производительности, у вас есть много разных случаев использования, фреймворки на выбор. Все пытаются упростить его, но тогда вы в конечном итоге слишком мнение, то вы добавляете конфигурацию, но есть слишком много котельной. Я не вижу простого пути вперед, если вы не исправьте фактическую платформу вместо того, чтобы создавать множество решений на его вершине. Одна вещь, которую я думаю, улучшит ситуацию, когда мы наконец получаем модули в браузере. Возможно, вам не понадобится шаг по сборке для всего этого.
Почему разработчики JavaScript одержимы единорогами?
Все движение пони началось с Джанго Сообщество на самом деле. Когда вы начали просить функции, которые вы хотите, разработчики скажут: «Я хочу, чтобы быстрее Характер HTTP-анализатора» или «Я хочу ORM, которая просто работает». Однажды один из основных DEV на списке рассылки Django ответил на одну из запросов на функцию с «Нет, у вас не может быть пони!» Все единорогие движения началось с этого запроса на запрос на функцию.
Есть даже Сайт посвященный любящему пони.
Я точно не помню, как он распространяется на сообщество JavaScript. Это была одна из тех вещей, которые просто произошли самостоятельно. Наличие чего-то забавного и глупых, поскольку единороги, помогают мне работать через программирование и OSS и собирается моим моральным моральным. То же самое касается глупых GIF.
Я Первоначально Добавлено это интервью на Между проводами Серия интервью с участием тех, кто строил разработчик и дизайнерские продукты.
Этот проект ставится возможным с спонсорствами от frontendmasters.com , EGGHEAD.IO , Microsoft Edge и Google Developers Отказ