Оценить:
 Рейтинг: 0

IT Компас: как правильно программировать IT-карьеру

Год написания книги
2024
Теги
<< 1 2 3 4 >>
На страницу:
2 из 4
Настройки чтения
Размер шрифта
Высота строк
Поля

Еще в апреле я дважды сдал SAT (американский экзамен для школьников), планируя поступить в американский университет в Болгарии. Но результатов SAT хватило только на скидку в 50 %, что требовало бы где-то 10 000 долларов в год на обучение. Такая сумма была нам с родителями не по карману, и эта опция отпала сама собой.

У меня были хорошие шансы воспользоваться квотой для молдаван на обучение в России. Молдова – это двуязычная страна, мы все (почти) говорим на русском и молдавском языках. Был вариант попробовать поступить в Московский государственный университет – МГУ, самый престижный вуз России. Но жизнь в мегаполисе – это пробки, загрязненный воздух и студенческое общежитие. Поэтому я решил, что лучше эти два-три часа в день использовать на обучение, чем тратить их на стояние в пробках и долгие перемещения по большому городу. Мне казалось, не столь важно, в каком именно университете учиться. Оглядываясь назад, я вижу, что был крайне наивен в своих представлениях о жизни вообще и об образовании в частности.

Решив учиться в Молдове, я колебался между информатикой, математикой и физикой. Математику я знал лучше всего, но тогда она казалась мне бесперспективной. «Что с ней потом делать, кому она будет нужна в каком-нибудь, условно, 2020 году?» – спрашивал я себя. «Ведь есть же компьютеры, они все прекрасно считают», – соглашалась со мной мама. Сейчас, ежедневно работая с криптографами, я мысленно возвращаюсь в 2013 год, чтобы сказать себе: «Илюша, если не специализируешься на математике, хотя бы учи ее серьезно!»

В школе мне нравилась физика. Я принимал участие в школьных олимпиадах по математике и физике, занимал места на региональных соревнованиях. Но что делать с физикой после университета конкретно в Молдове, было неясно. Конструкторских бюро или больших заводов в стране нет, а уезжать мне не хотелось. Поэтому, взвесив все за и против, я решил учиться информатике. Это было крайне прагматичное решение: рынок IT в Молдове ежегодно увеличивался, что давало высокие шансы найти работу после университета. Сейчас могу сказать, что из всех моих выводов, догадок и умозаключений правильным оказалось только одно: найти работу в IT в Молдове было действительно легко.

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

Первый курс мне очень понравился, мы изучали основы программирования и математики: низкоуровневый Си, который является базой для 80 % современных языков, базы и структуры данных, дискретную математику и логику. С одной стороны, я был классическим ботаником: выполнял все домашние задания и тянул руку на семинарах и лекциях, с другой стороны, продолжал работать над заказами и пытался применять изученные вещи на практике. На удивление, искать клиентов мне не пришлось: они приходили сами либо по рекомендациям от предыдущих клиентов, либо через знакомых. Два моих самых больших проекта пришли через игру в футбол (мы тогда собирались любительской командой, арендовали поле). Правильное поведение в спорте обычно помогает расположить людей к себе: если с тобой хотят играть в одной команде, то, скорее всего, захотят и работать.

Дебютный учебный год прошел быстро и в удовольствие. Уже во втором семестре я стал лучшим на факультете по среднему баллу и занимал первую строчку следующие четыре с половиной года, до окончания бакалавриата и магистратуры. Но к концу первого курса стала очевидна следующая проблема: учиться было слишком легко. И причина была отнюдь не в моей гениальности, а в малом количестве учеников и их плохой подготовке. Это был год, когда половина школьников не сдала выпускные экзамены, а значит, автоматически лишилась шанса поступить в университет. Информатика и до этого не пользовалась огромной популярностью, что странно, учитывая зарплаты в несколько раз выше, чем в остальных секторах. Но реальность была такова: нас было мало, около двухсот на потоке, четверть попала туда случайно, еще четверть отправили родители. «Если двойки стоят в линию, это проблема ученика, а если в колонку – проблема учителя» – эта логика заставляла преподавателей снижать требования, объяснять меньше, чем они хотели бы, и упрощать экзамены, чтобы большинство смогло пройти дальше. Иначе студентов нужно было бы отчислять, а это чревато закрытием групп и потерей работы.

По опыту шахматных уроков я знал, что нет ничего лучше для учителя, чем ученик, который стремится к большему. Поэтому порой буквально заставлял преподавателей давать нам опциональные усложненные задания и настаивал на том, чтобы сложные темы подробно разбирались на занятиях. Преподаватели с огромной радостью шли мне навстречу, чего нельзя сказать о большинстве моих одногруппников. «Ботаник, выскочка, зубрила» – так думала обо мне половина факультета. Это абсолютно нормально, если достигаешь успеха и чем-то выделяешься, найдутся те, кто будет тебя осуждать. Зависть, непонимание и еще тысяча причин, по которым одни люди обсуждают других. Так было, есть и будет. Лучшее, что тут можно сделать, – просто заниматься своими делами, не пытаясь что-то кому-то доказать.

В библиотеке я отыскал монографию Дональда Кнута «Искусство программирования». Четыре тома о базовых алгоритмах, структурах данных и теории информатики. Читая книгу, я был поражен, насколько огромен и сложен этот мир. Особенно удивила именно сложность, так как уже к сотой странице я окончательно перестал понимать, о чем речь. В этот момент все большую популярность начинала приобретать Coursera – онлайн-платформа с курсами по разным направлениям. Coursera стала для меня дополнением к университету, там была возможность глубже погрузиться в темы, которые меня интересовали. Где-то я прочитал, что на собеседованиях в Google задают вопросы по структурам данных, поэтому в первую очередь выбрал курс «Алгоритмы» (англ. Algorithms) от преподавателей Принстона Роберта Седжвика и Кевина Уэйна. Мне понадобилось три попытки (и два года), чтобы пройти и полностью осознать этот курс.

С наступлением трехмесячных летних каникул человек сорок с факультета уехали работать в США по программе Work and Travel. Это был отличный способ скопить две-три тысячи долларов, работая официантом или кассиром. Средняя зарплата в моем городе была около четырехсот долларов в месяц, поэтому две тысячи долларов были большой суммой для студента. Моего английского было достаточно для такой работы, но я решил мыслить стратегически, как меня учили в шахматах.

Если представлять карьеру как шахматную партию, то время в университете – это дебют (начало партии). Главная задача дебюта – развить свои фигуры и получить хорошую позицию для осуществления главного плана на игру. Поэтому я пожертвовал потенциальными двумя тысячами долларов и устроился на лето в небольшую фирму Deeplace, заниматься веб-разработкой за двести долларов в месяц. «Главная задача на ближайшее время – развитие своих фигур (навыков), а деньги не главное», – решил я перед началом работы. Этим принципом я руководствовался следующие десять лет.

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

Предложение было заманчиво, зарплата со временем увеличивалась бы, но разве информатика и IT-мир крутятся только вокруг сайтов? Конечно нет! Кто-то ведь проектирует программное обеспечение для самолетов, операционные системы для компьютеров и логику для кредитных карт. Я доверился интуиции, которая подсказывала, что пока стоит отказаться от работы. Надо копать глубже, строить фундамент шире, дебют только начинается. Говоря шахматным языком, я разыграл гамбит: пожертвовал пешкой сейчас, чтобы в будущем получить инициативу и выиграть партию.

Тогда я не осознавал правильности и важности решения, это действительно была интуиция. В то же время, в свои восемнадцать лет, выбирая, где учиться, я еще наивно полагал, что особой разницы между двумя МГУ (Молдавским и Московским) нет. Всего через год, в девятнадцать, я уже четко понимал: неизвестно, что может потребоваться в большом мире информатики, поэтому надо стремиться получить как можно больше знаний и навыков – сформировать фундамент, а потом принимать важные решения.

Весь второй год в университете я занимался построением фундамента и развитием своих фигур в дебюте. Старался поглубже вникнуть в разные области информатики и немного халтурил на математическом анализе (ошибка, ошибка, ошибка). Изучал основы философии и экономики. Определенно, они не были в числе любимых предметов, но благодаря урокам философии я впоследствии здорово удивлял старших коллег, приводя цитаты из сочинения Платона «Пир» во время наших обсуждений ЛГБТ-процессов в обществе.

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

Когда требовать справедливости (то есть просить зарплату)

С окончанием второго года снова встал вопрос, что делать дальше. Несколько моих одногруппников еще в мае рванули в Штаты по программе Work and Travel, на кону стояли очередные три тысячи долларов. Я же заканчивал свой личный проект поисковой системы спа-салонов и неожиданно выиграл стипендию на месяц интенсивного изучения немецкого языка во Франкфурте. На экзамене требовался уровень не ниже B1, я написал его довольно плохо и прошел по нижней грани тех, кого отобрали. Мне повезло, потому что я был мальчиком-программистом среди множества девочек-германисток и, видимо, организаторам курсов хотелось разбавить женский коллектив.

Я снова не поехал по программе Work and Travel, продолжая придерживаться стратегии «вначале опыт, потом деньги». Дизайнер моих сайтов работала тогда в большой молдавской IT-фирме DAAC System Integrator и предложила мне сходить туда на собеседование.

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

Собеседование было по большей части техническим, и в основном ответить на поставленные вопросы я не мог. Через сорок минут всем стало очевидно, что знаний в Java для серверной разработки мне не хватает. Ответ: «Илья, ты хороший парень, но надо еще поучиться» – уже витал в воздухе. «План А провалился» – такова была моя оценка происходящего. Надо было срочно что-то предпринять. Отправляясь на собеседование, я предполагал, что такое может случиться, и заранее продумал план Б. Поэтому достал свой главный козырь и сыграл на опережение:

– Я готов работать бесплатно. Вы можете сами решить, когда начать мне платить.

– Так, это меняет дело. Дай нам пару дней, мы позвоним.

У меня был реальный опыт, моя знакомая дизайнер дала мне хорошие рекомендации. Через три дня позвонил начальник отдела и сказал:

– Илья, ты нам понравился. Мы считаем, что польза от тебя будет и у нас получится сработаться. Если ты готов выйти на бесплатную стажировку, приходи 31 августа в 9 утра в офис. Никаких взаимных обязательств.

– Я согласен!

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

Июль я провел в работе над собственными проектами, надо было скопить денег. В августе улетел учить язык во Франкфурт. Это был полезный опыт, я действительно улучшил немецкий и в конце месяца достиг уровня B1. Тогда я еще не знал, что знание языка очень пригодится в реальной жизни и работе – это просто являлось частью моего фундамента. Конечно же, это было очень веселое время. Я познакомился с людьми из разных стран: от Буркина-Фасо до Узбекистана. Мы вместе ездили на экскурсии, танцевали на дискотеках, пили немецкое пиво и не совсем немецкий виски. В общем, вели беззаботную студенческую жизнь. С некоторыми я до сих пор поддерживаю связь. Приехав домой 30 августа 2015 года, я словно выдохнул немецкую поездку и вдохнул поглубже, чтобы на следующий день сделать шаг в мир серьезного программирования.

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

«Было бы справедливо получать хотя бы сто долларов в месяц, ведь от меня есть конкретная польза», – эта мысль не раз приходила мне в голову. Но просить я не хотел, ведь это нарушило бы наш джентельменский договор, согласно которому компания сама определяла, когда начать платить мне зарплату. Репутация дороже денег, поэтому я терпел и старался работать над теми задачами, которые могли меня чему-то научить. Так прошел весь первый семестр третьего курса. С 8:00 до 12:00 я ходил в офис, потом ехал в университет (занятия начинались в 12:45), вечером делал домашние задания, а на выходных фрилансил, чтобы что-то зарабатывать. И вот в декабре меня вызвали к начальнику департамента и предложили с января 400 долларов в месяц, то есть 200 долларов за полставки. Полгода бесплатной работы себя оправдали! Эта зарплата была вдвое больше той, которую мне платили в предыдущей фирме: получалось, что за полтора года я увеличил свой доход в два раза.

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

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

Я с теплотой вспоминаю время, проведенное в этой компании. В коллективе ко мне относились как к своему ребенку и легко прощали некоторые рабочие косяки. Я многому научился и со многими подружился, но, к сожалению, там присутствовала советская модель управления людьми: «Незаменимых людей нет. Есть не замененные». Эта установка в итоге загубит компанию, а мне послужит хорошим примером того, как не надо управлять людьми. Я съел горькую пилюлю несправедливости и никому ничего не сказал. Коллеги только расстроились бы, а мой тимлид мог бы поссориться со своим большим начальством, пытаясь защитить мои интересы. Это никак не помогло бы ситуации. Поэтому стратегию я оставил прежней, но план действий решил поменять. С такой компанией мне было не по пути.

Карьера по экспоненте

Уход из DAAC System Integrator

Стремительный взлет моей карьеры начался со шкафа для обуви от IKEA. В начале апреля 2016 года один из моих друзей по университету, Эдуард, решил съехаться со своей девушкой. Они купили кучу новых шкафов и стеллажей и позвали меня на IKEA-вечеринку. IKEA-вечеринка – это кока-кола, пицца и разобранная мебель в неограниченном количестве, а твоя задача – собрать как можно больше предметов обстановки до 12 вечера. «Вечеринка» началась со шкафа для обуви, который мы собирали вместе с девушкой друга Анастасией.

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

Первая встреча с Yopeso прошла очень хорошо, даже блестяще. Так совпало, что половина технических вопросов была связана с паттернами программирования. Именно эту тему я готовил для выступления на ближайшей IT-конференции, поэтому даже сам сотрудник, проводивший собеседование, узнал много нового. Меня в первый раз в жизни спросили о желаемой зарплате. Я предполагал, что будет некоторый торг, поэтому назвал цифру в 1000 долларов (в два с половиной раза больше своей текущей зарплаты), думая, что на 700 долларах мы остановимся. Перед уходом из офиса еще раз напомнил, что могу выйти к ним на работу только в июле.

На следующий день мне выслали предложение с зарплатой в 1000 долларов, но с условием начать работу уже через три недели. Возникла первая серьезная моральная дилемма. С одной стороны, 400 долларов в месяц и уплата «морального долга» команде за потраченное на меня время. С другой стороны, 1000 долларов в месяц и ощущение, что я предал свою команду. Только в теории такие решения даются просто, ведь «деньги же не главное в жизни». «Но со мной поступили нечестно, меня обманули», – найти оправдания для ухода из компании тоже несложно. К счастью, стратегическое планирование пересилило тактические желания. Мне только исполнилось 21, интуитивно я понимал, что в этом возрасте репутация действительно важнее денег. Помня о том, что «репутация строится годами, а рушится за секунды», я поступил по совести и отклонил столь заманчивое предложение. Команда Yopeso с уважением отнеслась к моему решению, но на лето мне ничего не обещали.

Май последнего курса бакалавриата подходил к концу. Впереди маячили выпускные экзамены и защита дипломной работы. Я окончательно интегрировался в коллектив и с удовольствием приходил в офис. А когда мне в дополнение к маленькому монитору дали большой, был на седьмом небе от счастья. Я уже и забыл про собеседование в Yopeso, когда раздался мобильный звонок: «Илья, здравствуй. Это Наталья из Yopeso. Мы хотели бы еще раз выдвинуть тебе наше предложение. Начало работы – 1 июля, начинаем новый проект. Пожалуйста, сообщи о своем решении в течение двух дней».

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

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

Когда я спросил маминого совета, она сказала лишь одно: «Илюша, тебе 21 год, когда рисковать в поисках лучшего, если не сейчас?»

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

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

Yopeso – Crunchyroll

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

Итак, меня познакомили с командой из еще двух человек, показали рабочее место и вкратце ввели в курс дела: «Ты будешь работать в проекте VRV компании Crunchyroll». Crunchyroll принадлежал один из самых больших стриминговых аниме-сервисов в Америке (на сегодняшний день – крупнейший после слияния с Funimation). Оказалось, что около десяти человек из Crunchyroll уже неделю находятся в Кишиневе и активно интегрируют в свои проекты мою и еще одну команду. После обеда был общий сбор, я познакомился с архитектором проекта Грегом, осознал, насколько плох мой английский, получил две бутылки вина, которые не поместились в багаж к Грегу, и уже перед тем как уйти домой, узнал, что через две недели должен улететь в Калифорнию.

Так, проработав в компании одиннадцать рабочих дней, я оказался в командировке в Сан-Франциско, в сердце Кремниевой долины. Если мои университетские одногруппники попадали в США по программе Work and Travel, то в моей программе значилось только Work. Месяц пролетел стремительно. Мы много работали, мало путешествовали и каждый день ели огромное количество снеков в офисе. Бесплатные снеки кажутся не такими калорийными. Проект VRV был посвящен созданию продукта, который бы объединил разные стриминг-сервисы, такие как Crunchyroll и Funimation, на одной платформе. Это был своего рода «Нетфликс» для аниме и аналогичного контента. Моя команда (я, Андрей и Раду) и еще около пяти человек от Crunchyroll занимались главным сайтом для просмотра контента. Это было довольно сложное веб-приложение, которое должно одинаково хорошо работать на большом мониторе, маленьком ноутбуке и телефоне. «Хорошо» – это значит, что дизайн должен буквально попиксельно соответствовать картинке на реальном мониторе. Это была крайне нудная и скучная работа. В середине сентября нас снова отправили в Штаты, чтобы мы в экстренном режиме закончили MVP (Minimal Viable Product – минимально жизнеспособный продукт) и продукт мог запуститься.

Благодаря овертайму и командировочным мы хорошо зарабатывали. Но сама работа была нудной, абсолютно не креативной и совершенно, на мой взгляд, бесперспективной с точки зрения сложности программирования. Я только что окончил университет, мне хотелось применять свои знания, использовать алгоритмы на практике и делать сложные вещи элегантно. MVP подходил к завершению, и я увидел шанс соскочить с проекта. В тот момент наш генеральный директор курировал американское направление, поэтому мы были хорошо знакомы. Недолго думая, я написал ему письмо с просьбой перебросить меня на другие проекты, где будет больше серверного программирования, что больше способствовало бы моей самореализации. Ответ пришел быстро: «PHP-вакансий нет, Java есть только в Румынии. Если хочешь, можешь попробовать Golang – новый проект для Crunchyroll. Никто в офисе не захотел его брать, потому что никто этого языка не знает».
<< 1 2 3 4 >>
На страницу:
2 из 4