//АйТи интерн
789 subscribers
7 photos
59 links
Веселые и полезные истории из жизни давно уже не интерна. Также истории моих друзей и коллег. Совпадения с реальными людьми и событиями, конечно же, случайны.
Download Telegram
Продолжение предыдущего поста...

12. Тестируете ли вы удобство использования?

Надо попросить кого-нибудь поиспользовать ваше творение, чтобы сделать его понятнее для пользователя. Если попросить 5 человек сделать это, то это может решить 95% проблем. Особенно это касается GUI.

Моя набрала 11 баллов. Будем исправляться.

Попробуете этот тест у себя в команде?
Started from the bottom.

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

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

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

Так делать не надо.

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

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

Как сказал Сократ: "Не стыдно не знать, стыдно не учиться."

Успехов!
Linux Academy.

При обучении программированию иногда забывают про навыки близкие к системному администрированию - Linux, виртуализация, сети, Docker, облака, т.д.

Linux Academy - это Coursera для таких навыков. Эта платформа очень дорогая, но раз в месяц 5 курсов становятся полностью бесплатными. Очень часто попадаются курсы, которые обучают актуальным технологиям.

Успехов!

@it_intern

#нереклама
Новости.

Наш канал называется "//АйТи интерн" и в его описании есть фраза: "Веселые и полезные истории из жизни интерна одной из крупнейших IT-компаний".

Я уже давно не интерн и давно не в той компании. Тема начала карьеры стала для меня неактуальной. Поэтому я решил предложить своему молодому другу начать тоже писать сюда.

Ему 23 года, достаточно senior'ен, занимается студенческими проектами в своей компании и даже делает свой онлайн-курс.

Позже мы вас с ним обязательно познакомим ;)

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

Stay tuned!
Zettelkasten.

В этом посте я писал, что начал использовать Zettelkasten для построения базы знаний. Это логичная имплементация принципа "Create more - consume less".

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

Он подходит для изучения чего-то нового, создания базы знаний, подготовка текстов и написания книг, исследований новых областей и технологий.
Не подходит для дневников, ведения проектов, to-do листов и списков. Для этого лучше использовать что-то типо Asana, Trello или Jira :)

В основе Зеттелькастен (надеюсь, что написал правильно) лежит два шага.

Первый шаг: обработать информацию. Сформулировать содержание цитаты, статьи, отрывка из книги своими словами. Такие заметки нужно хранить в разделе "Literature notes". Это может быть моментальная обработка информации, а может быть и отложенная. Для такого можно завести отдельный раздел. Я использую именно отложенную обработку информации и храню это в разделе "Reference notes".

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

После того как это сделано, то нужно создавать "Permanent notes". Эта та заметка, которая содержит теги и ссылки на Literature notes. Но самое важное в этой заметки, что здесь вы используете переработанную информацию для создания чего-то нового и своего, т.е. воплощаете принцип "Create more - consume less".

Есть много программ, которые можно настроить под Зеттелькастен или они были сделаны специально для него: Obsidian, Roam Research, Notion, Zettlr, NValt, The Archive, Vim-Zettel.

Я использую Roam Research, но он платный. Он мне помогает для ведения Зеттелькастена и научной деятельности.

В такой маленькой заметке тяжело рассказать все про Зеттелькастен, но если появятся вопросы, то задавайте их в комментариях. Мы попытаемся ответить.
Ссылки, которые могут помочь в изучении:
- Статья на VC про Зеттелькастен и Obsidian
- Сайт про Зеттелькастен
- Видео, по которому я разбирался с Roam Research
IT - наш потерянный табель о рангах.

Не люблю канал "Русские норм", но иногда там достойные гости.
Их новый выпуск про IT - https://www.youtube.com/watch?v=qlZmGV4QMhs

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

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

Почему мы займем первое место? Потому что мы всегда умеем и умели самообучаться и соревноваться друг с другом, а также делать "не благодаря, а вопреки" (Ломоносов пешком шел учиться в Москву).

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

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

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

Герои этого видео заметили эти изменения, поэтому они и выживут в новом мире.

И мы с Вами выживем и будем на коне.

Успехов русскому IT!

@it_intern
👍3
Магистратура.

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

А еще круче когда сами компании рассказывают с кем они сотрудничают. Яндекс и JetBrains сделали обзоры магистерских программ, в которых принимают активное участие.

Яндекс - https://habr.com/ru/company/yandex/blog/553702/

JetBrains - https://habr.com/ru/company/JetBrains-education/blog/564436/

Успехов!
1👍1
Выбор каждого.

У молодых людей есть 2 стула - работать много с овертаймами или соблюдать work-life balance. У кого “растяжка” получше получается совмещать или чередовать подходы.

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

Но для меня это все неважно. С возрастом и профессиональным ростом заезженный афоризм Конфуция про работу по душе уже не кажется таким заезженным и глупым 🙂

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

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

Желаю вам найти свою работу по душе и быть счастливыми!

P.S. Канал оживает.
11👎1
Недавно в LinkedIn увидел пост о том, что человек с особыми потребностями ищет работу (1 фото). Он прошел курсы по тестированию, готов учиться и инвестировать свое время в IT.

Его пост собрал большой охват. Люди писали слова поддержки, давали грамотные советы и делали репосты, чтобы помочь найти работу Георгию (3 фото).

Сегодня я увидел пост о том, что ему предложили работу с испытательным сроком (2 фото).

К сожалению, на постсоветском пространстве существует очень мало возможностей для талантливых и целеустремленных людей. Один век назад, в Российской империи существовал “Табель о рангах”. Один из пунктов этого указа: “Дабы тем охоту подать к службе и оным честь, а не нахалам и тунеядцам получить.”

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

И все получится у всех нас!

Успехов!
22👍5🔥3
The Missing Semester of Your CS Education.

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

3 PhD студента из MIT пошли дальше. Они организовали материалы и лекции, которых, по их мнению, не хватает в классическом CS курсе. Раскрываются следующие темы:
- Command shell
- Version control
- Text editing
- Remote machines
- Finding files
- Data wrangling
- Virtual machines
- Security

Сайт - https://missing.csail.mit.edu/
Есть русский перевод.

В московском ВШЭ ФКН уже был такой курс - https://t.iss.one/experimentalchill/80

Успехов!
11👍1
//АйТи интерн pinned «IT - наш потерянный табель о рангах. Не люблю канал "Русские норм", но иногда там достойные гости. Их новый выпуск про IT - https://www.youtube.com/watch?v=qlZmGV4QMhs Такое количество героев и их конкурентоспособность доказывает, что наши способности в…»
Что я хотел бы знать об IT в 20 лет. Максим Дорофеев.

Этот доклад был сделан им более 8 лет назад, но он до сих пор актуален для начинающих программистов.

https://www.youtube.com/watch?v=fY8hhOv7lmE

Максим Дорофеев проработал более 15 лет в различных IT компаниях до того как начать писать книги про продуктивность.
👍7
Игра в найм.

Недавно перечитал пост про субъективность собеседования - https://t.iss.one/it_intern/57

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

Год назад я решил менять работу. Я не готовился и был очень уверен в себе. После первого собеседования моя корона слетела. Да, вопросы были странные и очень теоретические, но это моя вина, что к тому я был не готов. В другие компании я проходил собеседования лучше и получил 6 офферов (не считая внутренних офферов на удержание).

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

Это и есть та самая субъективность процесса найма и вероятность попасть или не попасть в вопросы. Есть два способа снизить субъективность.

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

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

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

Для себя я выбираю второй способ с постоянным стремлением перейти к первому. Сейчас я где-то посередине.

Успехов!

#собеседования #поиск_работы
🔥6👍2
Стажировки.

Весенний семестр - это лучшее время для старта своей карьеры в IT. Он маленький, а впереди лето, во время которого можно сфокусироваться на работе.

Сформировал для вас поисковый запрос для поиска стажировок на HH - https://spb.hh.ru/search/vacancy?area=2&area=1&area=2019&employment=probation&employment=full&search_field=name&search_field=company_name&search_field=description&industry=7&text=%D1%81%D1%82%D0%B0%D0%B6%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0

Есть очень интересные стажировки во многих областях - фронт, бек, ML, DevOps. Есть даже R&D позиции. Есть фулл-тайм и есть парт-тайм вакансии.

Если вы хотите опубликовать вашу вакансию, то пишете нам на @it_intern_creator

#вакансии

@it_intern
🔥7
Распределенный вперед.

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

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

Я потратил несколько дней на эту проблему, а потом подошел к своему тимлиду и он сказал: “так у тебя 2 мастера, это split brain, нет консенсуса, пофикси.” Понятнее тогда мне не стало, но я узнал о совершенно новом для себя пласте проблем после часа общения с гуглом.

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

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

Он также написал всемирно известную книгу “Designing Data-Intensive Applications” про создание больших, производительных и поддерживаемых систем. По-русски книжка называется “кабанчик”.

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

Этим постом мы открываем серию небольших заметок про распределенные системы и большую тематику постов про архитектуру в целом. В следующий раз мы расскажем про основные проблемы распределенных систем - Split-brain. И методы их решения - Quorum и Fencing.

@it_intern

#архитектура #распределенные_системы
👍85
Split-brain, Quorum и Fencing.

Говоря о распределенных системах многие по умолчанию подразумевают, что они должны быть высокодоступны (high availability - HA ) и по возможности еще и отказоустойчивы ( fault tolerance).

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

Допустим у нас есть 3 сервера “A”, “B”, “C” на которых запущены копии одного приложения. Они умеют общаться друг с другом по сети. У этих копий есть основной экземпляр (главноый, main, master) и есть запасные. Другими словами у нас есть кластер какого-то приложения.

Тут сразу же возникают вопросы: сколько копий (по-умному это называется “реплика”) нам нужно запускать, как отличить падение мастера от реплики? Например, у сервера “C” (картиночка ниже отдельным постом) пропал доступ к сети, и он не может коммуницировать с “А” и “B”. При этом запросы в систему приходят на “B” и на одинокий “C” (почему такое возможно обсудим позже).

Это и есть фундаментальная проблема распределенных систем - Split-brain.

Split-brain возникает при расщеплении распределенной системы на несколько частей, которые не могут взаимодействовать друг с другом. Эту проблему должен уметь решать любой софт, который пытается обеспечить HA. Основными методами решения этой проблемы - Quorum и Fencing. Многие инструменты, которые используют разработчики в своей работе, умеют с этим справляться из коробки, но если вы пишите свое кластерное решение, то вам придется это сделать самим.

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

@it_intern

#архитектура #распределенные_системы
6👍2🔥2
👍42
Кабанчик.

Меня спросили про "кабанчика". Кабанчик - это на программистком сленге название книги “Designing Data-Intensive Applications” от Мартина Клеппмана.

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

Ее автор - Мартин Клеппман, ученый-информатик. Работает и читает лекции в Кембриджском университете, исследует распределенные системы. Также он у него есть аккаунт на Патреоне с большим количеством спонсоров. Что очень необычно для такого человека, но это вселяет веру в человечество.

Несколько лет назад я мог посетить конференцию с его участием и лично. У меня был доступ к спикерской зоне, но я поленился ехать, а потом началась корона ;(

Не упускайте возможности!

@it_intern

#архитектура #распределенные_системы #книги
👍15