Этот пост является частью проекта ускоренного обучения Опережая быстро меняющийся мир.

Как я выучил 4 языка/технологии программирования за один месяц?

Задача на ноябрьский месяц заключалась в том, чтобы стать программистом-полиглотом, где я хотел выучить 4 языка/технологии Golang, Node.js, React.js и R. Однако позже R был заменен на Vue.js. Кроме того, цель состояла в том, чтобы начать вносить свой вклад в открытый исходный код и собрать не менее 20 запросов на слияние в любой из этих технологий. В конце месяца мне удалось собрать всего 5 мерж-реквестов в Mattermost. Однако всего я сделал 19 публикаций на GitHub.

Посты упорядочены по дням написания, о которых обычно говорят накануне.

2 ноября: Программист-полиглот

Выполнив 2 задачи Освоение структур данных и алгоритмов и Освоение системного проектирования, я задумался, что же мне выбрать дальше. В отличие от Макса Дойча, я не планировал свои задачи заранее, и это большая ошибка.

Я давно думаю о том, чтобы запомнить колоду карт, но я не думаю, что я готов к этому сразу, потому что я знаю, что моя память отстой. Но в этом месяце я проведу элементарную подготовку к задаче на память и приму ее в следующем.

В ноябре я сосредоточусь на том, чтобы стать программистом-полиглотом, и я буду писать новую историю каждый день, а не редактировать одну историю целый месяц.

3 ноября: Как мне его измерить?

Цель: Освоить Go, node.js, R и react.js

Какого черта я хочу все это изучать?
Почти год назад я хорошо владел одним языком программирования, та же старая Java'. эм>. Я не учитываю тот факт, что в колледже я читал и C, и C++, и могу читать код на них. Было время, когда я мог программировать на них; к чему я сейчас отношусь скептически.

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

Затем, месяц назад, мой друг рассказал о другом парне, который стал официальным спонсором GitHub и может программировать на нескольких языках. А почему бы не? Много раз я думаю и говорю о Java или Python, будь то многопоточность, сервис-ориентированная архитектура (SoA) или горизонтальная масштабируемость. Наличие еще трех языков программирования (Go, node.js и R) наверняка расширит мой кругозор.

Что касается react.js, ну, я хреново разбираюсь в интерфейсе. Я знаю основы HTML, JS и архаичных JSP. Знание хотя бы одного популярного фреймворка Front-end уже некоторое время было у меня в голове. Кроме того, реакция используется в моей команде, пока мы говорим, мне все равно нужно изучить ее рано или поздно. Итак, зачем ждать?

4 ноября: Голанг; сделано и почищено

Вчера я решил выучить 4 языка в следующие четыре недели. Однако есть один реальный вопрос. Как мне измерить свой успех?

Язык, прочитанный без практики, бесполезен, потому что вы забудете его в течение недели. Был там, сделал это.
Сначала я подумал о том, чтобы выполнить какое-то задание на каждом из этих языков, а именно. GoLang, node.js, R и react.js. Но у меня есть идея получше.

Еще со времен учебы в колледже (кстати, прошло более 5 лет) я хотел внести свой вклад в открытый исходный код. И чего я ждал все эти годы? Возможно, чудо. Теперь это чудо уже здесь, и моей целью в этом месяце будет

Цель: отправить не менее 20 запросов на слияние в библиотеках с открытым исходным кодом на GitHub.

Хорошо, что я буду использовать R для своей практики Data Science, а react.js используется в моей работе, поэтому я могу решить не практиковать их. Они будут практиковаться как побочный продукт ежедневного посещения офиса ;)

Поэтому моя цель будет состоять в том, чтобы сосредоточиться на Go и node.js.

5 ноября: Kubernetes закончен

Вы правильно прочитали, я уже закончил изучать Go, и сейчас 23:44, я пишу это, и да, Go ушел в прошлое. В среднем у меня есть одна неделя на изучение каждого из языков, и, честно говоря, именно это я и планировал.

Я хотел выучить каждый язык экстенсивно. Проснувшись сегодня в 9:04, я потратил 2 часа на изучение различных учебников по изучению го. Почему-то я предпочитаю учиться по книгам, а не по учебникам и видео. Возглавили список «Head first Go» и «Язык программирования Go». Серия Head First всегда была моей любимой, поэтому я был склонен использовать ее.

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

И снова я направился к своему не очень любимому Tutorialspoint. Это не так уж плохо, но и не так уж хорошо. Я как-то закончил все уроки, немного вздремнув. Но настоящий прорыв произошел, когда я закончил эти учебники и захотел прочитать некоторые замечательные концепции, такие как Concurrency, Goroutines и выбрать в деталях. Golang Bot затмил всех за то, что это лучший учебник по Go, который я нашел в Интернете. В итоге я снова перечитал все важные вещи на боте Golang. На самом деле, мне так понравилось качество туториалов, что я подумываю о том, чтобы сделать пожертвование парню, который их написал.

Теперь, когда я официально закончил Go lang. Пришло время попрактиковаться и внести свой вклад в открытый исходный код, и хорошо, что у меня осталась почти неделя, чтобы сделать это. Я планирую перевыполнить свою цель. Кроме того, пока я отдыхал от непрерывного Go (я провел все воскресенье в своей комнате, изучая Go), я переустановил WhatsApp, и кто-то сказал мне, что Kubernetes написан на Go и, конечно же, является хорошим кандидатом на роль кода. Значит ли это, что в этом месяце я тоже буду изучать Kubernetes? Кто знает! Может быть.

Но это того стоило, и мне нравится мой темп. Постановка целей и решение этой задачи действительно сделали меня продуктивнее, чем я ожидал.

6 ноября: мне хотелось спать

Вчера я просматривал запросы на слияние Kubernetes, пытаясь понять код. Но так как я спал в 3 часа ночи позавчера, я чувствовал себя немного сонным и ослабленным.

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

7 ноября: Дурачимся с Kubernetes

Вчера я пошел переночевать у друга и решал проблемы, отмеченные как «Хорошая первая проблема» в репозитории Kubernetes GitHub. Несомненно, Kubernetes сложен, но первые вопросы относительно просты и включают в свое описание хороший контекст и пояснения. Я прошел мерж-реквест, прочитал его код и смог следовать ему.

Но я знаю, что меня тормозит Kubernetes, поэтому я подумываю о следующем запуске react.js и отложить Merge Requests на некоторое время. Кроме того, говорил ли я, что мне нужно провести сеанс реагирования в моем офисе?

Я лучше начну готовиться.

8 и 9 ноября: сохранение статус-кво

В пятницу я решил задержаться в офисе допоздна и завершить работу, которая давно откладывалась. Это был какой-то гибридный код, написанный на соевых шаблонах Closure и React+Redux, и он требовал моего пристального внимания в течение двухзначных часов. Но не отвлекаться в обычные рабочие часы и не терять ход мыслей невозможно.

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

Работа над частью React+Redux напоминает мне о моем следующем задании. Лучше я сначала прочитаю реакции и редуксы, потому что это поможет мне в моей работе, и в то же время я получу хорошую практику.

Я говорил тебе, что мы планируем заняться одним или двумя делами. Вчера мы бродили по Хайдарабаду, находя для этого подходящие места и обзванивая людей.

Кроме того, я планирую бегать как минимум два раза в неделю, поэтому вечером я отправился исследовать беговую дорожку Ботанического сада. Стыдно, что я уже год живу в Хайдарабаде и даже ни разу не побывала в саду.

Итак, теперь вы знаете, что я буду читать в воскресенье; да, это будет React.js.

10 ноября: Хочу закончить React, то есть хотел ;)

Да, я хотел закончить react.js, и вчера я это сделал. Поскольку в прошлый раз, когда я читал реакцию, теория была не очень полезной; так как я забыл большую часть этого; поэтому создание игры в крестики-нолики казалось идеальным рецептом. Для тех, кто заинтересован, это хороший учебник, который я нашел на официальном сайте React.

Это заняло не более 4-5 часов, учитывая то, что я весь день отвлекался. Хотя я выучил два языка за 10 дней, создавая иллюзию, что я на правильном пути, хотя на самом деле это не так. Я неявно предполагал, что изучу редукцию как часть изучения реакции, но я этого не сделал.

Но это не основная причина того, что я не на верном пути, это связано с тем, что я еще не поднял ни одного запроса на слияние в kubernetes. Было ли участие в kubernetes в короткие сроки плохой идеей? Может быть, я бегло просмотрел другие популярные инструменты с открытым исходным кодом, реализованные в Golang; HashCorp consul — один из них, и он также используется в моей организации в качестве инструмента обнаружения сервисов; звучит как хороший кандидат на вклад.

Но я пока не сдаюсь, хотя у Kubernetes, похоже, не так много проблем, отмеченных как «Хорошая первая проблема». Я не умею терять надежду рано. На следующей неделе я уезжаю с работы, чтобы отправиться в Химачал-Прадеш. По крайней мере, 2-3 дня после этого я проведу дома, а потом выходные. В это время я могу сосредоточиться на создании мерж-реквестов.

На этой неделе я буду немного занят на работе, поэтому разберусь с делами перед уходом, но я смогу закончить хотя бы React и Redux, а также немного поработать над своим проектом.

11 ноября: Учиться так легко или я так быстро?

Приняв этот вызов, я закончил изучение нескольких языков за один день. Будь то Golang или React, для их завершения хватило всего половины выходных. Вчера я закончил с React+Redux к часу ночи, конечно, я пошел в офис, а затем в спортзал.

Мне интересно, так ли легко учиться, или у этих языков короткая кривая обучения, или я стал таким эффективным и быстрым? Или, может быть, все они. Библиотека Redux весит всего 2 КБ, и ее изучение тоже не займет много времени, верно? Golang — это простой язык, в котором нет таких сложных вещей, как классы в Java. Он даже не объектно-ориентированный, так что, возможно. Но в то же время я достаточно много лет программировал на Java и у меня это хорошо получается. По сути, это означает, что все, что мне нужно выучить, — это синтаксис языков, поскольку я уже знаком с концепциями. Если вы знаете Java, Golang не должен сильно отличаться. Верно?
Если вы умеете программировать на Javascript и jQuery, React не должен быть совершенно другим зверем. В любом случае, в одном я уверен, это тот факт, что я бы никогда не обнаружил эту эффективность, если бы не этот вызов. Однажды на собеседовании интервьюер спросил меня, что нового вы узнали за последние 6 месяцев; Честно говоря, у меня не было ответа, во всяком случае, не впечатляющего. Прошло всего 70 дней с момента запуска этого челленджа, а я уже могу кое-что сосчитать. В прошлый раз я целыми днями смотрел туториалы по React и Redux и тут же их забыл. На этот раз я провел один день, выполняя практические упражнения, и я уже чувствую себя комфортно с React и Redux.

Итак, мораль этой истории в том, что испытания — это здорово, и вы способны сделать гораздо больше, чем вы думаете!

12 ноября: подготовка к праздникам.

Поскольку на следующей неделе я уезжаю в отпуск, я хотел завернуть пару вещей на работе. Вчера я вернулся с работы в 17:00 и хотел написать код, прежде чем отправиться в спортзал. Но VPN не работал, и в итоге я вернулся в офис в 10 вечера и работал без перерыва до 5 утра. Я снова проснулся в 10 и вернулся к работе.

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

13 ноября: Я снова прогулял спортзал.

Я снова работал допоздна в офисе, потому что отчаянно хочу закончить то, над чем работаю на работе.

36 часов в офисе вкупе с целью в 7 тысяч шагов по ходьбе, а потом мне пришлось ответить на звонок друга в 12, чтобы обсудить стартап, я уже отложил его на 24 часа и не мог больше тянуть. Но самое удивительное не это, а то, что я чувствовал себя полным энергии и не хотел спать. На самом деле, я хотел поработать над челленджом, но было уже 2 часа ночи, я пошел спать 😛

14 ноября: я чувствую себя тронутым

Это моя третья история за сегодня, вчера я был слишком занят, чтобы писать на Medium.

Завтра я уезжаю в отпуск, и я также добился хороших успехов в работе. Хоть я и не работал над челленджем в эти 3 дня, но код, над которым я работал в офисе, был в React и Redux; Я прилично попрактиковался в отладке и устранении неполадок.

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

После этого к чаю пришел мальчик лет 10. Он был одет в грязную, рваную одежду, был босиком и, казалось, работал на каком-то заводе. Он подошел к чайному ларьку, пока владелец был занят со мной разговором; Мальчик терпеливо подождал пару минут, а затем попросил чаю. Поскольку речь шла о болезни его брата, хозяин как бы игнорировал его, пока я не попросил его напоить мальчика чаем.

Выпив чай, мальчик спросил, сколько он стоит, заплатил 10 рупий и отстраненно ушел; Но что-то тронуло меня глубоко в сердце. Ему едва исполнилось 10, он не мог позволить себе даже обувь, работает в каком-то ветхом состоянии; Я сомневаюсь, что у него появятся какие-либо возможности для лучшей жизни. Наверное, я бы предложил купить ему обувь, по крайней мере, мог бы предложить купить ему чай, но я был слишком растерян, чтобы действовать. Я не знал, что делать.

Несмотря на то, что я получил скромное воспитание и много боролся в жизни, чтобы быть там, где я сейчас, мне повезло больше, чем этому парню. Или как кто-то сказал мне однажды

«Быть ​​успешным в определенный момент времени означает, что у вас есть набор навыков, которые ценятся в то время»

Что, если бы я случайно принял какие-то решения в жизни, которые оказались бы правильными. Что, если бы я был хорош в чем-то, что ценится в наши дни. Что, если это все случайно и случайно?

Пока можно бесконечно болтать о том, как человек сам творит свою судьбу и не скован обстоятельствами; даже если это правда, это не всегда распространено. Получение возможностей важно. Он мог бы просто родиться в богатой семье, и его жизнь изменилась бы.

Мне всегда интересно, каковы критерии успеха для меня. Вчера я сказал кому-то, что если у меня будет тысяча рупий, я куплю истребитель Сухого и большой участок земли для строительства взлетно-посадочной полосы. Я бы купил Феррари и буду использовать его для перевозки корма для скота, чтобы люди поняли, что материальный успех — это не настоящий успех.

Теперь я обдумываю, что мне делать с этими тысячами крор рупий; Разве я не должен сделать что-нибудь для таких людей, которым просто повезло меньше, чем некоторым из нас? Или для стариков, которые просят милостыню на светофорах?

Дарвин сказал, что выживает сильнейший, и тот, кто адаптируется, сможет выжить в долгосрочной перспективе. Может быть, когда-нибудь бедняки просто исчезнут только потому, что бедняки станут еще беднее, и вскоре у них закончатся ресурсы, необходимые для жизни и продолжения рода. Может быть, эволюция сама себя исправит, и нам не стоит беспокоиться о других. В конце концов, каждое существо эволюционно эгоистично, и самая большая конкуренция происходит внутри его собственного вида; Но невозможно просто не обращать внимания на такие вещи и не волноваться, по крайней мере, для меня.

15–20 ноября: исследование Гималаев.

Прошла неделя с тех пор, как я написал последний пост на Medium, и я нашел хороший повод для этого. На прошлой неделе я путешествовал и исследовал Гималаи.

В прошлую субботу нам пришлось идти на прием в IIT Mandi, штат Химачал-Прадеш. Я взял недельный отпуск и побродил по озеру Парашар, Манди, Касолу и деревне Чхалал, которая находится в 30 минутах езды от Касола.

После почти недели расслабления, отдыха и почти 15 часов пути домой вчера вечером я чувствую себя бодрым и расслабленным одновременно. Я отстаю от своего графика, по крайней мере, с целью собрать 20 мерж-реквестов в репозиториях с открытым исходным кодом. Кроме того, до челленджа осталось всего 10 дней, а я даже не прикасался к node.js и R.

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

21 ноября: node.js не так уж и сложен

Хотя сегодня я был не в лучшей форме, но мне удалось закончить node.js. Это было настолько просто, что я даже не чувствовал, что читаю что-то новое, все было на javascript.

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

В любом случае, завтра я сосредоточусь на том, чтобы внести свой вклад в открытый исходный код либо в node.js, либо в Golang. Я думаю, что разумно придерживаться чего-то простого в Node.js, потому что участие в Kubernetes не так просто.

22 ноября: Разговоры, разговоры, разговоры

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

Это правда, что все живут в зоне комфорта, кто-то больше, кто-то меньше. Стабильная работа с хорошей зарплатой — это тоже зона комфорта, причем самая распространенная. Нужно стремиться быть лучшей версией себя; Нужно бросить вызов миру, убеждениям, обществу, статус-кво и, самое главное, самому себе. Что ж, у меня тоже есть такие планы, и я отчаянно хочу их осуществить.

Риск — это модное словечко современного стремительного мира, в то время как большинство людей только говорят об этом, читают статьи и откладывают на потом, уверяя себя, что однажды они затмят все, что однажды солнце взойдет с запада, когда-нибудь они поплывут против течения. прилив.

КОГДА – это синоним слова НИКОГДА.

Что ж, я твердо верю в это. Вы все еще помните, что мой день начался с деловых переговоров с двумя моими друзьями? Да, это то, к чему я иду. Хотя это кажется возможностью оставить след во вселенной; нет это преувеличение.

Хотя это кажется хорошей возможностью, и это довольно рискованно. Но это того не стоит. Больше, чем риск, меня больше беспокоит тот факт, что даже если все пойдет по плану, что я получу в итоге. Достаточно ли силен наш план? Является ли наша идея достаточно инновационной. Стоят ли потраченные мной время, усилия и деньги? Я настроен весьма скептически.

Завтра приедет мой дядя, и я, конечно, не буду работать в это время, но я могу начать рано утром и закончить кое-какие дела. Эта неделя окажется не такой продуктивной, как я ожидал. В любом случае, посмотрим, как пойдет.

23 ноября: Еще один день

Мне так грустно признавать, что я не сделал ничего значительного сегодня. Я установил Mattermost, чтобы внести свой вклад, но не смог заставить его работать. Некоторые гости пришли домой, а затем я провел остаток дня, изучая финансовые показатели компании, с которой я подумывал о партнерстве.

Хотя особого прогресса в выполнении задачи не было, но я сделал несколько полезных вещей, и, тем не менее, Mattermost установлен на моей машине, где я могу внести свой вклад.

Следующие два дня также не принесут особого прогресса. Хотя мне немного неловко публиковать на Medium, что я ничего не делал сегодня, но я честен с собой, признавая отсутствие прогресса, и это заставит меня работать усерднее.

24–26 ноября: Обсуждения — отстой.

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

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

Во вторник я встретил еще одного друга, который скоро присоединится к запуску дронов. Мы пошли куда-нибудь поесть, чтобы отпраздновать его новую работу, и я вижу, что у меня нулевой прогресс в этом испытании. Моя программа тренировок страдает каждый раз, когда я ухожу в отпуск, и на этот раз я не присоединилась к ней. Скоро мне нужно войти в ускоренный режим.

Надеюсь, завтра я добьюсь некоторого прогресса в решении этой задачи.

27 ноября: Mattermost запущен и работает

Позавчера я поклялся снова сосредоточиться на задаче, которая бездействовала уже несколько дней; чтобы подготовиться к этому, я устранил неполадки в своей локальной настройке Mattermost и каким-то образом заставил ее работать, изменив владельца и разрешения для нескольких каталогов, таких как /usr/local/bin

Изучив открытые проблемы с ярлыками «хорошая первая проблема» и «требуется помощь» на Mattermost GitHub, я быстро нашел несколько заявок, которые я могу сразу взять и начать работать, в отличие от Kubernetes, где я безуспешно баловался днями.

Хоть я еще и не перешел на R, но, судя по моему опыту с текущими задачами, выучить язык несложно, это вряд ли дело одного дня, в худшем случае — выходных. Внесение вклада в открытый исходный код — это трудоемкий бизнес; Но я считаю, что даже это неправда. Так как это первый раз, когда я пытаюсь внести свой вклад в открытый исходный код, некоторая кривая обучения естественна. Но как только я наберу темп, я уверен, что это будет просто прогулка в парке.

Я уверен, что смогу поднять хотя бы один мерж-реквест завтра, но мне предстоит пройти долгий путь, поскольку цель состоит в том, чтобы поднять 20 мерж-реквестов. Так что план состоит в том, чтобы сосредоточиться на открытом исходном коде сейчас и на R позже.

28 ноября: Мой первый вклад в Open Source

Это требовало времени, усилий и, прежде всего, терпения. Вчера я сделал свой первый открытый вклад в Mattermost-Webapp. Как я уже говорил вам позавчера, моя установка Mattermost жаждала переварить новый фрагмент кода.

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

Я уверен, что это станет легче, если я продолжу вносить свой вклад. Я выбрал Mattermost, потому что мой друг сказал мне, что его довольно легко начать (я уверен, что большинство проектов с открытым исходным кодом таковы), и они действительно предлагают возможность работать удаленно. Они даже заплатили ему за то, что он поднял много пулл-реквестов в Mattermost.

Хотя я далек от цели челленджа, то есть собрать 20 мерж-реквестов, ощущение, которое я получил от своего небольшого вклада, приносит удовлетворение; освобождение, если хотите. Я бы написал намного быстрее, если бы это было на языках, с которыми я лучше всего знаком, например, на Java и Python. Но выход из зоны комфорта — это в первую очередь цель этого вызова; не так ли?

В настоящее время я участвую в JavaScript и TypeScript. Я никогда серьезно не относился ни к одному из них в своей карьере до этого месяца, и поверьте мне, это приятно :D. Приятно быстро выучить столько языков, о которых я никогда не думал. Приятно вносить свой вклад в открытый исходный код, о чем я мечтал еще со времен учебы в колледже. Приятно серьезно относиться к JavaScript :P, чего я никогда не делал; так же, как история и гражданское право.

Завтра я постараюсь поднять еще один мерж-реквест существенной сложности.

29 ноября: Я участник открытого исходного кода 😛

Вчера я открыл 3 запроса на слияние в Mattermost один за другим, и да, они не были тривиальными или крошечными.

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

Это был предпоследний день челленджа, и в общей сложности я собрал 4 запроса на слияние. Опять же, это всего лишь 20% от моей цели, которая заключалась в том, чтобы собрать 20 мерж-реквестов. Но это заставило меня начать.

Оглядываясь назад, скажу, что если бы я не застрял на Kubernetes и начал с Mattermost, я бы внес достойный вклад; кроме того, неделя отдыха, которую я взял в этом месяце на работе в Гималаях, а затем дома, также не оказалась особенно плодотворной. С другой стороны, я добился меньшего прогресса, чем обычно. Я еще даже не начал R, хотя могу закончить его за день, возможно, меньше, так как R на первый взгляд не кажется очень сложным или большим языком, но внешность может быть обманчивой.

Посмотрим!

30 ноября: Где я?

Есть одна проблема, с которой я столкнулся при просмотре популярных репозиториев с открытым исходным кодом, ну, по крайней мере Mattermost и Kubernetes, — трудно найти много проблем для участия. В большинстве случаев я мог найти однозначное количество проблем с меткой tech/Go, то есть связанных с Golang. Точно так же в Kubernetes, несмотря на то, что я потратил несколько дней, я не смог найти ни одной задачи с меткой good first issue, которую никто не выбрал/не коснулся. Основные разработчики решают большую часть проблем, и, как правило, связанные с пользовательским интерфейсом или тривиальные проблемы остаются позади.

Тем не менее, я нашел пару проблем с языком Go (на которых я отчаянно хотел сосредоточиться) в Mattermost-plugin-jira и решил настроить его на своем локальном компьютере. Однако инструкции по установке были недостаточно четкими, и в итоге я потратил впустую почти всю субботу. В конце концов я решил использовать пробную версию jira от Atlassian, несмотря на то, что установка не полностью функциональна на момент написания, но она достаточно хороша, чтобы я мог решить пару задач и протестировать код.

Из-за трудностей с поиском проблем, которые нужно внести, и устранением неполадок в самой важной настройке плагина jira, вчера я смог создать единственный запрос на слияние. Но хорошо, что это было на Голанге. Это был мой первый вклад Golang в открытый исходный код.

Всего я выучил 3 языка (Go, React.js, Node.js) и поднял 5 мерж-реквестов в опенсорс. Официально вчера был последний день челленджа, но так как выходные, я продлю челлендж еще на один день и выучу еще один язык; так что даже если я не смогу собрать 20 мерж-реквестов, я доделаю хотя бы 4 языка.

1 декабря: Я программист-полиглот

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

  • Я изучил 4 новых технологии/языка: Golang, Node.js, React.js и Vue.js.
  • Раньше моей целью было изучить R, но затем я переключился на Vue.js в интересах полезности.
  • Я сделал 19 вкладов в открытый исходный код, как показано на моем GitHub.
  • Честно говоря, я смог поднять только 5 запросов на слияние с открытым исходным кодом (Mattermost), а не 20, как я планировал.
  • Начал новый проект с открытым исходным кодом с моим другом, чтобы попрактиковаться в моих недавно приобретенных навыках vue.js.
  • Остальные 14 вкладов представлены в виде коммитов или разветвлений репозиториев.
  • Моя статистика GitHub может похвастаться 51 постом в 2019 году, раньше было намного меньше.
  • Я официально дебютировал в open source, что хотел сделать давно, еще учась в колледже, более 5 лет назад.

Хотя я не буду хвастаться достижением своей цели, потому что, честно говоря, я этого не делал. Для этого мне нужно было собрать как минимум 20 мерж-реквестов, но мне удалось собрать только 5, что составляет 25% от цели. но эй!! коммиты не являются мерж-реквестами. Правильно?

Несмотря на то, что я не могу достичь своей цели, я чувствую себя очень счастливым и успешным, особенно из-за того, что я многому научился за последний месяц. Я начал вносить свой вклад в открытый исходный код, что я хотел сделать давно. Хоть я и новичок в Golang, Node.js, React.js и Vue.js, но об этих технологиях говорят все, и все, что мне нужно, — это больше практики, чтобы хорошо в них разбираться. Невозможно быть мастером на все руки, и я не собираюсь этого делать. В частности, я никогда не хотел изучать интерфейсные инструменты, на самом деле я не хочу работать с интерфейсом :P, надеюсь, я не обижу своих читателей, которые являются экспертами по интерфейсу. Но, не зная ни одного фреймворка для фронтенда (помимо HTML, JS, jQuery и устаревших JSP), я чувствовал, что мне этого не хватает. Если бы я хотел разработать свой собственный веб-сайт или кто-то спросил меня об этом, все, что я мог бы сделать или предложить, — это загрузить несколько красивых шаблонов интерфейса из Интернета и каким-то образом подключить их к вашему серверу. Это то, что мы сделали для майнера Ethreum, нашего проекта выходного дня (не ищите ссылку, это не открытый исходный код :P).

Далее, я хотел бы чувствовать себя комфортно на некоторых из этих языков, особенно на Golang и Node.js, поскольку оба они являются бэкэнд-технологиями: P. Так как я начал работать над ShikshaBuddy в то же время, я рассчитываю также получить солидную практику с Vue.js и Django. О, хорошо, я упомянул Джанго? У меня есть некоторый рудиментарный опыт в этом, но да, больше практики не повредит. Особенно с учетом того, что Django будет суперэффективен для разработки, если я планирую начать какой-то личный проект, или стать техническим директором стартапа, или запустить свой собственный стартап, кто знает. Раньше, когда дело дошло до веб-приложений, Spring был моим фаворитом на все времена не потому, что это был лучший фреймворк, а потому, что я не работал ни с каким другим :P

Задача этого месяца не была на самом деле прогулкой в ​​парке, особенно в последнюю неделю, я спал в 2 часа каждый день, чтобы добиться некоторого прогресса. Внесение вклада в открытый исходный код — это трудоемкий процесс, особенно в начале, когда вы впервые смотрите на код. Станет легче, я в этом уверен. На прошлой неделе я не ходил в спортзал, у меня не было времени ни на что другое, и мой мозг был перегружен знаниями и информацией, которые я пытался проглотить за короткие промежутки времени. Временами я чувствовал себя машиной, все время чрезмерно сосредоточенной на следующей задаче. Я быстро шел ночью, чтобы пройти 7000 шагов за день и вернуться к работе. Вчера, изучая Vue.js, мне хотелось спать, потому что я много читал и мне нужно было время, чтобы переварить это, вы знаете, поговорка «Переспите с этим» существует не просто так. Но я не мог заснуть, потому что должен был закончить его, несмотря на то, что мой когнитивный двигатель моего мозга был перегружен и чувствовал себя на грани выгорания.

Задача этого месяца — запомнить колоду карт. Это точно будет ужасно, учитывая нынешнее состояние моего ума, который временами кажется совершенно лишенным способности запоминать. Даже у Max Deutsch была проблема сократить время до 2 минут, учитывая тот факт, что он мог запомнить карту даже в первый день, его главной задачей было уложиться в 2 минуты. Я, с другой стороны, буду начинать с нуля и, честно говоря, меньше всего доверяю своему мозгу, когда дело доходит до запоминания материала.

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

Читать следующий пост. Читать предыдущий пост.

Этот пост является частью проекта ускоренного обучения Опережая быстро меняющийся мир.

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