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

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

  1. У меня были обсуждения со многими из моих старшеклассников, работающих на Zomato, и людьми, которые ранее работали в Zomato, и все они двусмысленно сказали, что это одно из лучших мест для новичка, чтобы начать свою карьеру.
  2. Я всегда хотел прикоснуться к жизни людей своей работой и внимательно следил за развитием Zomato за последние несколько лет. Работая здесь, я вскоре понял, что мои решения, мой код окажут значительное влияние на жизни миллионов пользователей по всему миру, и я определенно горжусь этим.
  3. «Чем больше вы потеете в мирное время, тем меньше вы истекаете кровью на войне». - Думаю, «баланс работы и личной жизни» - это то, к чему нужно стремиться после 30 лет. В годы вашего становления лучше работать в быстро меняющейся среде, где вы можете работать над чертовски большим количеством вещей за короткий промежуток времени, и я полагал, что Zomato предоставит мне то же самое. Что ж, я рад сказать, что совсем не был разочарован: D.

Большинство моих друзей отметили, что я слишком хотел начать свою карьеру, так как мой колледж закончился 31 мая, и я присоединился к нему всего через 2 дня (даже между этими двумя днями даже отправился в свою первую поездку в студенческой жизни) . Я мог бы использовать перерыв, но, полагаю, это не в моем характере. В соответствии с образом хастлера - идея, которую мы поддерживаем здесь, в Zomato - Хорошие вещи приходят к тем, кто суетится, я начал свою карьеру с 7 другими ребята - Lovedeep Singh (от NSIT), Ritesh Ranjan (от NIT-K), Satyam Chauhan и Навнит Кумар (оба из IIT-R), Ааюш Гупта, Дхрув Рати и Сушант Джайн (Из ДТУ).

Первый день был посвящен индукции и оформлению некоторых необходимых документов. Различные команды, от нейтральности до контента, объяснили нам путь от Foodiebay до Zomato, свои планы на будущее по расширению и многое другое.

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

Чтобы дать вам обзор, у нас были следующие занятия: -

  1. Управление продуктом
  2. Дизайн приложения с использованием Figma
  3. Докер, Git и Дженкинс
  4. Mysql, Redis, ведение журнала и Memcache
  5. Бэкэнд
  6. Фронтенд (HTML и ReactJS)
  7. Android
  8. iOS
  9. Обзор архитектуры Zomato
  10. Развертывание PHP и сервисов
  11. Мониторинг + профилирование
  12. Безопасность
  13. Платформа данных
  14. Лучшие практики кода + шаблоны проектирования + обзор кода

Особая благодарность Ritika Vats, одному из многих HR, которые упорно трудились, чтобы наш переход был супер плавным.

На данный момент все мы вошли в свои соответствующие команды, и теперь я являюсь частью команды машинного обучения / поиска в Zomato. Меня представили моим товарищам по команде Анирудх Гупта, Шивам Агарвал и Рахул Кумар. Эти ребята оказали мне феноменальную помощь, они были готовы ответить на любой вопрос, объяснить любой фрагмент кода, который мне показался непонятным. Новички переведены в Режим исправления ошибок. Я считаю, что самый эффективный способ сделать что-либо… будь то изучение нового языка или знакомство с большой кодовой базой - это запачкать руки. Исправление ошибок позволяет не только понять языковые конструкции, но и понять, почему вещи были спроектированы таким образом, как они есть, и тонкости системы. Я слышал, как люди здесь много раз говорили нам: Что другие компании делают за 3 месяца, мы делаем это за 2 недели. Я понял это достаточно скоро, когда занялся исправлением ошибок, создавая PR после PR на github.

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

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

  1. Закон Мерфи чертовски верен: «Все, что может пойти не так, пойдет не так». Предположим, вы планируете токенизировать текст и перебирать каждый токен… Теперь все в порядке, если у вас есть действительный текст. . Но что происходит, когда строка равна нулю? Ваш итератор, который должен был обрабатывать каждый токен FAILS. Представьте себе ситуацию, когда вы написали скрипт (который должен был работать в течение 5 дней) для обработки 25 миллионов отзывов на Zomato, и ваш скрипт не работает на 3-й день. Поэтому всегда предполагайте, что в производстве что-то определенно сломается, тщательно протестируйте перед запуском, даже если это столь же тривиальное изменение, как 3 + 3 = 6 or print("Size of array is " + size_of_array). Ваш код должен охватывать все возможные крайние случаи.
  2. Изучите эти обзоры кода на своих PR. Научиться писать качественный код, отвечающий высоким стандартам, даже если вам нужно уложиться в сжатые сроки, необходимо приучать, чтобы стать отличным SDE. Называя функции таким образом, чтобы они объясняли, что делает этот фрагмент кода, группируя вместе части кода, которые выполняют одну задачу, в функции и т. Д., Список бесконечен, и такие методы должны быть приняты для облегчения сопровождения кодовой базы.
  3. Всегда спрашивайте, почему? когда вам дают задание. Не выполняйте свою работу только потому, что вам за это платят. Спросите, почему вам нужно делать то, что вам говорят, какой цели это будет служить, и спросите другого, почему, если вас не устраивают рассуждения.
  4. Иметь глубокие знания о проекте, над которым вы работаете. Всегда имейте ответ на вопрос, почему, над чем и как вы работаете над проектом, и если вы можете удовлетворить себя, то вы хорошо идти.
  5. Всегда есть причина, по которой что-то не работает. Помните, что это наука, а не магия! Посмотрите на ошибку, недавние изменения в кодовой базе, которые привели к этой ошибке. Погуглите эту ошибку и посмотрите, что говорят другие и как они ее решили… что подводит меня к следующему пункту.
  6. Научитесь гуглить, со временем вам придется овладеть им. Вам придется ежедневно сталкиваться со всевозможными ошибками, которых вы раньше не видели и о которых не подозреваете. Следовательно, обращение за помощью к коллегам-программистам в Интернете (или stackoverflow, если быть точным: D) будет иметь большое значение.
  7. Решения по итогам обсуждений не должны основываться на простых мнениях, изучите все возможные варианты решения проблемы, напишите «за» и «против» и действуйте в соответствии с текущими приоритетами.
  8. Нажать код сейчас, а потом улучшить - звучит хорошо, но это не работает. Вы никогда не вернетесь, чтобы улучшить старый код только потому, что обещали себе прошлое.
  9. Не используйте тяжелые слова для объяснения вещей, которые можно объяснить непрофессиональным языком человеку, не имеющему технических знаний.
  10. Пользователь всегда идиот, он никогда не будет использовать продукт так, как вы хотите. Как я сказал ранее, постарайтесь охватить каждый крайний случай.
  11. Написание тестов - очень хорошая идея и никогда не будет пустой тратой времени, это определенно облегчит вашу жизнь и защитит ваш код от невежественных разработчиков.

Изменить: я недавно наткнулся на отрывок в Твиттере от Джулии Эванс, и он довольно точно отображает трансформацию, через которую я прошел.

Если вам понравилась эта статья, нажмите 👏 и подпишитесь на меня, чтобы увидеть больше статей. Если у вас есть отзывы, напишите мне в Twitter, LinkedIn или Quora.