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

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

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

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

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

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

Это был 2013 год, первые дни появления облачных вычислений. Большинство предприятий не хотели осваивать облачные технологии и предпочитали владеть и поддерживать свои собственные физические центры обработки данных, в которые они уже вложили огромные суммы денег для запуска собственных внутренних приложений. В то время у одного из моих клиентов было более 150 небольших центров обработки данных по всему миру. Излишне говорить, что это стоило им больших денег. Они планировали объединить все это в 2 крупных центра обработки данных. Я погрузился с единственной целью выяснить, как различные приложения взаимодействуют друг с другом, распутывая удивительную симфонию потоков битов, протекающих по миру.

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

В то время мне довелось познакомиться с г-ном Ману Рана, который, без сомнения, является одним из самых потрясающих людей, с которыми мне довелось работать. Имея опыт работы с ведущими продуктами на Match.com, BookMyShow и IgniteWorld, Ману имеет хорошую репутацию в отрасли. Мы поддержали наше видение того, как можно использовать технологии для реализации отличных идей. Вскоре я уволился с корпоративной работы в IBM и присоединился к нему в новом предприятии, где мы построили первую в Индии компанию по производству мототакси Baxi.

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

Еще в 2015 году смартфоны были обычным явлением, но мобильные данные все еще были очень дорогими. Многие люди пользовались смартфонами, но не имели доступа к интернет-данным. Это было до того, как Jio вышла на рынок, и вы могли получать около 1 ГБ данных за 300 рупий в месяц.

С одной стороны, у нас были люди со смартфонами, а с другой стороны, мы столкнулись с проблемой доступности мобильных приложений, когда не было надежного подключения к интернету. Там я создал первое в мире приложение для заказа такси, которое работает на смартфоне, но не требует подключения к Интернету! Это была интересная концепция, которая была освещена в крупных новостных агентствах, и вскоре это нововведение было принято такими компаниями, как Ola Cabs и Jugnoo.

На протяжении всего времени меня очень забавляла (и продолжает радовать) сила технологий и то, как они могут быть очень эффективными. Это привело меня к созданию Xane AI с целью сделать искусственный интеллект доступным, недорогим и доступным. Прямо сейчас мы пытаемся снизить входной барьер для искусственного интеллекта, чтобы люди могли использовать ИИ в качестве инструмента для решения проблем, вместо того, чтобы беспокоиться о том, как этот инструмент — как ИИ — сделан. Это, безусловно, откроет много возможностей для реализации идей. Недавно ведущий производитель автомобилей запустил виртуального помощника на основе ИИ, для которого ИИ был создан мной и используется сотнями пользователей по всей стране.

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

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

И вот самые важные советы, которые я могу дать.

  1. Выясните свою мотивацию для работы с технологиями.
    Для некоторых людей, таких как я, это влияние и масштаб того, как ваши идеи могут повлиять на жизнь людей. Для некоторых это просто вызов решения проблем и стремление к совершенству. Для других может оказаться, что технологические роли оплачиваются немного лучше, чем в большинстве других областей. И это тоже вполне хорошая мотивация, если вы честны с собой. Моя точка зрения — что бы это ни было — подумайте об этом. Это понимание поможет вам так, как вы оцените только позже, когда оглянетесь назад.
  2. Никогда не зацикливайтесь на конкретном языке или платформе.
    Технологические тенденции меняются быстрее, чем вы успеваете их отслеживать. Когда ко мне приходят люди и говорят: «Я хочу быть Java-разработчиком», я им вежливо отвечаю: «Ну и что? Это ваша конечная цель — стать Java разработчиком?» и это обычно приводит к обсуждению, когда они понимают, что это звучит неправильно. Это не может быть разумной карьерной целью. Правильнее будет сказать: «Я хочу быть хорошим разработчиком». Тот, который может развить что угодно. Тот, кто выбирает технологию в зависимости от решаемой проблемы.
  3. Правильно изучите основы разработки программного обеспечения.
    Потратьте время на изучение фундаментальных концепций. Существует популярная идея разработчика, не зависящего от языка. Задайте им любую проблему, и они смогут ее решить, независимо от языка или фреймворка, который, на мой взгляд, является просто средством достичь цели. Я не говорю, что иметь специальные знания о языке или фреймворке нехорошо — это важно — но это еще не все.
  4. Сосредоточьтесь на шаблонах кода и парадигмах, а не на синтаксических нюансах.
    Причина этого в том, что разработка программного обеспечения — быстро развивающаяся область. Тенденции в области языков и фреймворков приходят и уходят, а шаблоны и парадигмы проектирования всегда актуальны. Ну типа. Они не будут меняться так часто. Просто для сравнения: всего 8–9 лет назад PHP все еще был предпочтительным языком для любой веб-разработки, но за короткий промежуток времени в 4–5 лет эта тенденция исчезла, а JavaScript стал крупным игроком. Другой способ взглянуть на это заключается в том, что вы должны потратить время на понимание концепций. Развивайте свои привычки и свой подход к решению проблем и внедрению решений, не вдаваясь в подробности.
  5. Начните думать о языках программирования как о средстве для достижения цели.
    Конечным результатом является реализованная идея. Каждый фрагмент кода, который вы пишете, автоматически становится отражением их мыслительного процесса. Подход к решению проблемы имеет большее значение для человека, чем для компьютера, который просто интерпретирует набор инструкций, данных человеком.
  6. Всегда стремитесь понять общую картину и то, как то, что вы строите, вписывается в более широкую схему вещей.
    Такая точка зрения поможет вам лучше подходить к решению проблем. Например, если вы хотите написать систему для обмена веб-страницами. То, как вы подойдете к проблеме, будет сильно различаться в зависимости от аудитории. Если ваша целевая аудитория технически подкована, вы можете включить что-то вроде QR-кодов, но если вы имеете дело с людьми старшего поколения, это может быть не лучшей идеей. И это повлияет на ваш подход к решению.
  7. Усердно работайте, будьте искренними, будьте терпеливы.
    Вы знаете, оглядываясь назад на свой путь — может показаться, что это большой прогресс, и я действительно очень скромно это ценю, но я признать, что успех не приходит в одночасье. Это нужно много песка. Нужно много времени и терпения. Иногда вещи кажутся непреодолимыми, но если вы будете настойчивы, вы относительно легко справитесь с проблемами.
  8. Научитесь разделять проблемы на части.
    Один из подходов, который я использую, заключается в том, что я разбиваю проблемы на более мелкие аспекты и начинаю решать их одну за другой. Он делает две вещи: помогает мне прогрессировать, а маленькие победы поддерживают мою мотивацию.
  9. Не забывайте о проблеме, которую решаете.
    Легко увлечься от намеченной цели. Решать. Избегайте обходных путей. Избегайте ярлыков. Необдумывание вещей может привести к упущениям, которые имеют гораздо большее отрицательное влияние, чем положительное. Если вы помните, некоторое время назад у Google была оплошность в алгоритмах машинного обучения, когда темнокожих людей и людей африканского происхождения начали классифицировать как горилл. Хотя, конечно, это не было преднамеренным, но это причиняло много горя и боли людям, и этого можно было бы избежать, если бы кто-то подошел к подготовке данных классификации с более широким взглядом.
  10. Основа технологии основана на инновациях и любопытстве.
    Вещи обречены ломаться и вести себя странно, и как бы вы ни были осторожны, вы не сможете полностью избежать этого. Тем не менее, вы можете сделать что-то, чтобы снизить риск. Помните о том, что может пойти не так, подумайте о крайних случаях и о том, как люди могут использовать то, что вы создаете.
  11. Преимущество программного обеспечения в том, что эксперименты обходится недорого.
    Вы действительно должны экспериментировать и не бояться делать ошибки во время обучения. Если что-то пойдет не так, вы можете просто сбросить или удалить свой код и начать все сначала. Чего не скажешь, скажем, о нейрохирургах. Одна маленькая ошибка может навсегда «удалить» кого-то, сброс невозможен!
  12. Потратьте время на изучение инструментов и повышение квалификации с их помощью.
    Чтобы достаточно быстро опробовать свои идеи, вы должны быть в курсе своих инструментов. Невозможность реализовать что-то из-за неэффективных инструментов — это отстой. В начале своей карьеры изучите инструменты и найдите инструменты, которые сделают вашу жизнь проще. IDE, настройки, ярлыки и т. д. — все зависит от ваших вкусов и поможет вам работать более продуктивно, как только вы освоитесь с ними. Это поможет вам намного быстрее перебирать идеи и учиться быстрее.
  13. Выберите, хотите ли вы быть программистом или разработчиком.
    Разработка, как говорится, это разработка идеи для использования людьми. Это включает в себя его реализацию. Кодирование — это всего лишь реализация. Если подумать, процесс разработки — это 80% размышлений, всего 20% действий, и при этом делающих это хорошо.
  14. Думать.
    На тему мышления — думать. Когда я работал в IBM, одна из очень известных цитат, которые там витают, звучит так: «Все проблемы мира можно было бы решить легко, если бы люди только хотели думать».
  15. Не ищите легких путей во время обучения.
    Благодаря легкому доступу к Интернету решения всегда рядом. Но, сопротивляясь желанию не думать и слепо копируя решения с помощью поиска в Google и переполнения стека, вы в конечном итоге перестанете думать. Вам нужно отшлифовать процесс решения проблем. Иногда это неизбежно, но вы должны выяснить порог того, сколько времени вы готовы потратить на размышления, прежде чем начать искать решения в другом месте. Мышление также не должно мешать продуктивности, но между ними должен быть здоровый баланс. Не превращайте недумание в привычку.
  16. Заведите дневник (или приложение для заметок), чтобы никогда не терять свои мысли.
    Что действительно помогает — и я тоже так делаю — это вести дневник. Запишите свои мысли. Особенно, если вы строите что-то новое. Это структурирует ваши идеи. Формулирование может показаться трудоемким, но оно помогает выявить неясности и задать направление своим мыслям. Внедрение становится проще, если у вас есть что, почему и как разобрался. Это связано с тем, что я сказал ранее о разрушении вещей. Разбивая вещи на более мелкие части, вы обнаружите, что проблемы легче решать. Как я уже говорил ранее, вы не будете перегружены, а небольшие победы будут поддерживать вашу мотивацию.
  17. Взаимодействуйте с разнообразными людьми.
    Чем больше людей вы взаимодействуете, тем больше перспектив у вас будет при подходе к проблеме. Это поможет вам расти как специалисту по решению проблем и как личности. Будьте вдумчивы и сострадательны к проблемам, которые вы решаете, и к влиянию на людей, которых они затрагивают.
  18. Осознанно прилагайте усилия, чтобы быть в курсе последних событий.
    Технологии — это быстро развивающаяся область. Будь в курсе. Учиться. Вы уже входите в 15 лучших перцентилей людей просто потому, что вы мотивированы и взяли на себя инициативу, чтобы освоить новый навык. Это может быть немного самоуверенно, но я думаю, что это автоматически ставит вас впереди большинства людей, которые не сделали этого шага. Максимально используйте свое преимущество! Даже сегодня я трачу не менее 2–3 часов в день, чтобы быть в курсе всего, что происходит в мире технологий — он действительно развивается очень быстро, и мне нужно следить за тем, что происходит, чтобы не Я не теряю представления об актуальности проблем, которые я пытаюсь решить в Xane AI.
  19. Сначала идите шире, а потом глубже.
    Углубляясь в понимание систем, сначала идите шире, а потом глубже. В первую очередь сосредоточьтесь на что, а не на как. Получив четкое представление о том, что, вы можете погрузиться и углубиться в любой интересующий вас аспект.
  20. Наладьте работу в сети.
    Общайтесь с людьми. Не бойтесь обращаться. Люди чаще всего будут рады помочь, если вам нужно поделиться идеями или попросить совета. Это включает меня. *неистово машет рукой*
  21. Найдите наставника/человека, на которого вы можете равняться.
    Он может быть активным или пассивным. Недавно я столкнулся с этим, будучи пассивным. Я знаю человека, который моложе меня на 15 лет и выбрал карьеру в области технологий, потому что он увидел влияние моей работы и нашел ее вдохновляющей. Это самый унизительный опыт из всех. Активно я также наставляю многих людей. Большинство из них произошло, когда они обратились ко мне.
  22. Помните, что вы не просто программист. Вы человек, который программирует.
    Осознанно подумайте о вещах, которыми вы хотели бы заниматься помимо работы. Делайте перерывы. Следуйте своим целям и увлечениям. Раньше я играл в дэт-металлической группе, а сейчас полирую свои фотографии. Как ни странно, размышления о композиции в фотографии также помогли мне лучше понять дизайн программных продуктов. Языки дизайна универсальны. Идеи композиции и размещения цветов, объектов и форм ненавязчиво помогают улучшить подход к проектированию интерфейсов.
  23. Избегайте синдрома самозванца.
    Представьте это как мысленный эксперимент. Возьмем 2 типа людей. Люди, которые заботятся о росте, всегда подрывают себя, думая, что они так многого не знают. Они поверят, что они самозванцы, когда кто-то расхваливает их навыки. С другой стороны, тот, кто перестал расти и ограничил свои знания, будет думать, что он знает «достаточно» и ему больше нечему учиться. Такой человек тоже был бы самозванцем. Те, кто постоянно растет, могут недооценивать себя, думая, что им еще многое предстоит узнать, а те, кто ограничил себя фиксированным набором знаний, могут полагать, что они уже знают все, что им нужно знать. Оба типа считаются самозванцами — первый тип ограничивает рост, а другой недооценивает их компетентность.

И самое главное, будьте уверены в одном: ваша карьера в сфере технологий будет адским путешествием. Нырнуть с головой.

Всего наилучшего. Вот и все, народ!