Лого vc.ru

Кейс из России: Как за 3 месяца стать iOS-разработчиком и попасть в топ App Store

Кейс из России: Как за 3 месяца стать iOS-разработчиком и попасть в топ App Store

20-летний разработчик Ярослав Моргачёв написал для vc.ru колонку о том, как за три месяца научился разработке iOS-приложений на языке Swift, выпустил приложение для фитнеса и попал в топ-1 категории «Здоровье и фитнес» и топ-3 по всем платным приложениям App Store.

Поделиться

Не так давно моё первое приложение «Тело в лето» влетело в топ-1 категории «Здоровье и фитнес» и топ-3 по всем платным приложениям App Store.

За полтора месяца публикации его скачали 5 тысяч раз, и на протяжении всего этого времени оно остается в подборке «Игры и приложения по 15 рублей» от Apple.

Как это возможно? На vc.ru часто всплывают заголовки вроде «Если вы хотите научиться программировать, будьте готовы потратить на это 10 лет своей жизни». И да, в этом есть доля правды.

Дело лишь в том, что за 10 лет вы не просто научитесь программировать, а станете настоящим профессионалом в этом деле, который способен как гуру отвечать на StackoverFlow.

На деле же вы можете начать создавать простые приложения уже через 2-3 месяца в зависимости от вашей усидчивости, упорства и мозга. Всё должно начинаться с идеи, которая вас зажигает.

Итак, я полез в дебри программирования.

Шаг первый. Зарождение идеи

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

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

После прочтения меня посетила интересная мысль: в отличии от веба, в App Store действуют другие правила.

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

Приложения с тренировками становятся актуальными каждую весну, но каждую весну сами приложения сменяют друг друга. И их всё равно покупают.

Шаг второй. Ищем, как будем учиться

Как я говорил, мой опыт в программировании под iOS был равен «0». Поэтому – вначале был Google. Вообще, если вы хотите назвать себя разработчиком (вас очень не будут любить за это «нормальные» разработчики, но это вы поймете позже), вам придется научиться получать информацию не от преподавателя.

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

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

Возможно, он будет сложен вам на старте, когда только предстоит понять, по каким принципам он работает. Дальше — все трудности описывает фраза: «Я знаю, как это должно происходить программно, но я не знаю, как это написать». Тут вас спасёт уже упомянутый Google.

Касательно поиска – большинство кода, который вы будете находить, будет написано на Objective-C. Это потому, что Swift — относительно молодой язык, а до него весь App Store был в приложениях, написанных на Objective-C. Сейчас в магазине приложений доступно около 2 млн приложений, и только 100 тысяч из них написаны на Swift. Это лишь 5%.

Из этого можно сделать предположение что 95% всей информации по iOS-разработке, что вы найдете, — вам не подходит. Но. На этот случай есть крутой переводчик.

Для тех, кого сейчас посетила мысль «А почему бы не учить Objective-C вместо Swift?» — ответьте себе на вопрос: хотите ли вы писать быстро и понятно, или иметь большее количество информации и примеров, но с непонятным синтаксисом и c огромным количеством знаков препинания? То-то же. Поэтому выбирайте Swift.

Шаг третий. Создаем идею и основу приложения

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

Но, чёрт побери, я предпочел разобраться в Xcode исконно русским методом — «тык-тык». Не вышло. Позже я, как человек, который быстро учится на ошибках, перешел к изучению уроков. И начал писать приложение для изучения ПДД. Идея была в том, чтобы не создавать идею. А взять популярную, и воплотить её чуть более круто, чем она представлена сейчас.

Это продолжалось примерно полторы недели. Тогда же я столкнулся кучей вопросов. Как я и писал, ответы на них очень сложно найти в варианте под Swift. Кроме того, я понял, что выбрал слишком неподъёмную для новичка сферу с точки зрения объёма — ПДД. А ведь это теория, тесты на время, игра, в которой даются случайные вопросы до трёх ошибок. Стало очевидным: я буду делать это приложение до конца лета. Слишком долго.

И тут в голову пришла идея №2 — приложение для ежедневных тренировок. В App Store есть тысячи аналогов, но вот что интересно: в топе висят висят простейшие приложения с кнопочкой «Старт». Жмёшь и видишь, что и сколько тебе нужно сделать. Всё.

Почему приложения от Nike и подобные, которые обходят конкурентов по функциональности, не висят в топе? Идея проста, а реализация — слишком сложная.

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

Шаг четвертый. Рисуем «вкусную» обложку

На этапе проектирования «оболочки» приложения в голову пришёл отрывок из книги «Дизайн-мышление в бизнесе» Тима Брауна, где описывается ситуация с покупкой велосипеда.

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

Как я уже говорил, у меня заранее был навык «склепать интерфейс за час». Навык был применён успешно. Если интересно — использовал Sketch 3 в противовес продукту от Adobe, который считаю слишком перегруженным.

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

Шаг пятый. Программируем

Когда вы начнете, вам предстоит разобраться с функцией AutoLayot (это что-то из разряда «программирования мышкой»). Она позволяет сделать так, чтобы одна надпись находилась на одном месте на разных поколениях iPhone и iPad.

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

К слову, у меня с этой функцией сразу не сложилось, и я включил её за два дня до конца работы над приложением. Это были два самых скучных дня за всю разработку, потому что они состояли из одной и той же последовательности итераций: «пробуем — смотрим — работает? — повторить».

Отдельного внимания заслуживает момент, когда вам нужно будет заставить какой-то элемент двигаться (например, по нажатию кнопки). Чтобы облегчить будущим разработчикам жизнь, я пишу одну техническую подробность: господа, я тоже пытался двигать View при включенном AutoLayot, и это была ошибкой. Нужно менять Constraint. Потом поймёте, что всё это значит.

Еще один важный совет: в Xcode есть песочница — Xcode Playground. Вы, конечно, можете залезть туда, но я настоятельно не советую: копаясь в ней, можно быстро потерять мотивацию, потому что вы ничего не создаете.

Я сторонник мнения, что человек должен видеть результат своих трудов при обучении, а песочница — это обучение ради обучения. Но есть и хорошая сторона — в песочнице вы сможете познакомиться со Swift в вакууме. Хотя, опять-же, по моему опыту, вам пригодится UIKit, CoreData – и сложность будет в них.

Swift же учится по ходу, и в своем большинстве представляет из себя простой английский — даже не уча Swift можно понять, что сделает строчка prefersStatusBarHidden() -> Bool { return true }.

Итак, я посчитал, что на мой проект у меня должно уйти два дня. Но не тут-то было! Первым был главный экран, и на него ушло 4 часа. Затем я перешел к самому важному — тренировкам.

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

Затем пошли всякие обзоры и описания упражнений, и, наконец — встроенные покупки и настройки (приложение напоминает вам о тренировке в назначенное время).

Как итог: на разработку приложения ушел месяц.

Шаг шестой. App Store Review

Первая попытка отправить приложение на проверку была сразу после того, как я запустил его на своем телефоне и всё проверил. Вполне ожидаемо, я получил отказ. Оказалось, что в моем приложении нет кнопки «Восстановить покупки».

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

Еще мне скинули скриншот, который создаёт эти ложные ассоциации. Это был экран блокировки.

Слева экран с ложными ассоциациями, справа — сделанный прямо с моего телефона (который приняли)

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

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

Тут стоит упомянуть один интересный лайфхак: приложение прошло четыре проверки за пять дней, а средний срок проверки приложений, как я понял – неделя или две. Хотите также? Пишите специальную просьбу быстро проверить приложение в Apple.

Форма просьбы так далеко спрятана на сайте скорее всего для того, чтобы ей пользовалось меньше разработчиков. Причиной просьбы выбираем Time-Sensitive Event и пишем, что «у нас, вообще-то, уже началась запланированная рекламная компания, и мы тут деньги теряем!». Если вы отправляете не новое приложение, а обновляете старое — советую писать, что исправили критический баг и не хотите, чтобы люди его видели.

Итоги

Время

От начала до конца ушло два с чем-то месяца, и если бы периодически меня не заставал «паралич» воли, всё получилось бы несколько быстрее.

Вложения

1 тысяча рублей – подписка на уроки по Swift, 10 тысяч — на все иллюстрации и столько же на вывод приложения в топ App Store с помощью мотивированных закачек.

Показатели

5 тысяч скачиваний за месяц, и больше 1000 долларов «чистыми» за вычетом комиссии и налогов. Средняя оценка — 4,5 балла (причём, это уже вторая версия приложения). Попадание в топ-1 категории «Здоровье и фитнес» и топ-3 отечественного App Store по платным приложениям.

По факту, приложение полностью окупило все вложения и вышло на прибыль уже в первую неделю после публикации.

Планы

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

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

Присылайте собственные кейсы, в результате которых вам удалось заметно улучшить (или, наоборот, ухудшить) показатели проекта, на what@growthhacks.ru. Интересные эксперименты обязательно попадут на страницы рубрики Growth Hacks.

Статьи по теме
«Если вы хотите научиться программированию, будьте готовы потратить на это 10 лет»24 мая 2016, 17:55
Кейс из России: Как зайти в топ App Store и не выходить из него03 марта 2016, 12:59
Популярные статьи
Показать еще
Комментарии отсортированы
как обычно по времени по популярности

У приложения всего 27 оценок, я что-то пропустил? Как приложение с такой низкой популярностью выбилось в ТОП?
Это было бы интересней.

0

Видимо по количеству скачиваний, а не по числу оценок!

0

Молодец ! На самом деле то же самое по обучению кодить и в уневере,только гугл.Какая прибыль со встроенных покупок?

0

Сейчас единственную встроенную покупку купили 409 раз ($329). Как я считаю, встроенная покупка "окупилась" благодаря своему названию, ибо в обратной связи не раз фигурировали фразы вроде "Так желанный "Метаболизм"".

а что там, во встроенной покупке?

0

Еще одна тренировка взятая с просторов YouTube. По заявлению авторов "способствует ускорению метаболизма".

То есть люди заплатили за то, что могли бы получить бесплатно?

0

"опыт в программировании под iOS был равен «0»". А какой опыт уже имелся? Интересует ЯП.

Был очень скромный опыт в вебе, PHP и JS.

Понял, спасибо. Удачи!

0

А на каком сайте вы видеоуроки по Swift нашли?

0

Из достойных внимания.... это единственный ресурс?

0

что будешь делать когда настанет осень?

Извиняюсь за то, что отвечаю вопросом на вопрос... Что такого случится осенью помимо iOS10?

он имеет в виду, что лето кончится )

0

Переименуем в "Тело в осень"! А если серьезно, то в планах сильно развить его до следующей весны и повторить то, что получилось в этом году.

а я предложу вам добавить раздел, как не запустить себя к следующему году и поддерживать своё тело на протяжении "зимнего" периода

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

круговорот, понятно

0

HTML язык программирования? Оо

(сори за троллинг =)

хотя вообще да, молодец парень
А команда где?
один все делал?

Не говорю что HTML язык программирования. А делал всё один, за исключением иллюстраций, их рисовал фрилансер.

а не планируете набирать команду\пару коллег?

0

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

Но ведь я не разу не сказал что HTML это язык программирования. :)

Разметка и язык программирования - это разные вещи.
Это как сравнить монитор и системный блок

Молодец!) есть предложение, maxkholod@mail.ru

0

>Пробежавшись по ссылкам в поисковой выдаче реально найти один сайт, предлагающий видеоуроки по Swift. Этот язык в три раза труднее HTML. Для тех, кто не знает HTML, перефразирую — Swift выучить чуть легче, чем научиться играть в пинг-понг.

wtf am I reading?

Пожалуй куплю, поддержу разработчика. Да и мне не помешает такое приложение :-D

Разве в Крыму работают платежи?

0

> а средний срок проверки приложений, как я понял – неделя или две.
давно не так, сейчас средний срок проверки — 1.5-2 дня

> Пишите специальную просьбу быстро проверить приложение в Apple
писать можно не чаще чем раз в полгода, и то если есть действительно СЕРЬЁЗНАЯ на то причина. а то могут обидеться.

и не вижу твоего приложения ни по одному релевантному запросу, кроме, собственно "домашние тренировки". поработай над этим :)

а так, супер-круто, конечно.

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

0

Огромное спасибо за совет! А писал я им несколько раз подряд. Знаю что так делать нельзя, но вроде не обиделись.

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

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

Насчёт view помню тоже когда то столкнулся. И даже сохранил ответ:
   Not a day goes by that I don't see some version of this question. This is due to auto layout. If you set the frames of any objects you created in the storyboard or xib (with auto layout on), they will revert to their size and positions defined by their constraints whenever the view needs to be redrawn.

Менять frame у view, созданного в IB нет смысла, только transform или layer

0

Менять view руками не стоит, только если используется AutoLayout. Не важно, из кода интерфейс создаётся или из IB.

0

При прочих равных условиях, менять frame у view, чтобы изменить её origin смысла нет, но если view создаётся програмно то никаких проблем с этим не будет

0

View можно програмно создать и там же, програмно навесить на нее констрейнты, и в таком случае фрейм менять тоже нельзя. Также view можно создать в IB, но с отключенным AL, тогда frame/origin единственный способ изменения размера view, помимо autoresizingMask.

0

Круто! Тоже сейчас учу Swift на swiftbook.ru. Не подскажешь какой-нибудь подробный гайд по изучению интерфейса и функционалу Xcode?

Вот если честно я сам так и не нашел никакого гайда именно по интерфейсу. Поэтому считаю что лучший вариант это подсматривать как обращаются с Xcode в видео-уроках.

Видео-уроков тоже как грязи :( Будет круто, если подскажешь, какие именно уроки тебя больше всего "прокачали" - название или ссылку. Заранее спасибо.

0

Сейчас на этом канале смотрю уроки m.youtube.com/c/justdev
В принципе, с основами свифта, если есть навык других языков, а также с интерфейсом xcode помогает разобраться.

0

Дружище, в Xcode есть кнопочка Assistant editor (по-любому пользовался), и в ней есть функция Preview, она показывает как будет выглядеть твое приложение на экране устройства без запуска приложения. И в ней можно добавлять несколько экранов, чтобы оценить как оно работает на разных диагоналях.

Вы даже не представляете как сейчас облегчили моё жизнь. :)

10 тыр на вывод в топ AppStore? Серьезно? Не верю. Приложение ни в одном топе не видел. Статья фэйк.

Приложение в топ вышло в конце мая, если я всё правильно помню. С общего топа App Store мы ушли относительно быстро, а в топе "Здоровье и фитнес" остаемся до сих пор. Дальше в первый четверг вошло в подборку "Игры и приложения по 15 рублей" и остаётся там по сей день. Кроме того 2 или 3 недели висели в специальной подборке Apple "100 игр и приложений по самым низким ценам".

Так-что, никакого фейка.

Да я уже понял, Ярослав. Просто сижу с айпада, а на нем твоё приложение вообще не показывает. Надо после поиска переключать фильтр на айфон, чем я обычно никогда не пользуюсь. Поэтому не видел. Такие дела. =) Удачи! На зиму можно добавить в приложение упражнения в духе "Как набрать массу зимой", ну а весной сушка))

Подскажи, пожалуйста, через кого генерил мотивированные закачки?

За этим лучше в Telegram, думаю. @morgachev

> приложение прошло четыре проверки за пять дней, а средний срок проверки приложений, как я понял – неделя или две

Время проверки и его тренд легко проверить на, например, appreviewtimes.com/ - сейчас это 1-2 дня. Максимум, что я видел - это 9 дней, весна 2015 года, только что вышел Apple Watch и служба проверки завалена проверкой апдейтов и новых апп. Поэтому, если сроки критичны, подумайте, не выпускает ли Эппл чего-то нового в эти дни - будут очереди на проверку.

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

А у меня наоборот - есть только идеи. Придумывать могу, а реализовывать нет(

0

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

Спасибо! Я понимаю..
А может тут кто-то поучить меня немного?

0

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

Учить никто не будет просто так. Иди на ютуб, там видеоуроков ОЧЕНЬ много на любые темы, начни с них, на торрентах можешь накачать других видеоуроков и литературы - изучай, делай простые проекты, усложняй их. Я так учился на Rails-разработчика))) За пару месяцев освоил немного язык, стал что-то понимать в устройстве фреймворка, нашел одну стажировку, потом вторую уже оплачиваемую.... Всё в твоих руках и кроме тебя ты и твоё будущее НИКУМУ не нужно))

1

И чем дело кончилось? Уже зарплата 150 тысяч, приложения в Аппсторе, Инфинити в гараже?

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

в общем, дело кончилось ничем.

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

0

Круто, спасибо за статью

Супер, купил приложение, кстати формой для ускоренной проверки наскоко помню можно только один раз (или оч редко) воспользоваться, ты сколько раз отправлял?

0

Я её отправлял 4 или 5 раз кажется. Apple так делать настоятельно не рекомендует, но на меня вроде-бы не обиделись. Сначала писал что у меня запланированная рекламная кампания, а потом оставшиеся проверки что "рекламная кампания уже идет и деньги уходят в никуда".

закачки и топы это конечно круто
но как там retention rate, active users? какая часть скачавших действительно пользуется приложением?

0

На самом деле я не сильно вижу смысл смотреть на эти показатели с таким приложением. Это скорее "пробный забег".

Интересно! Я на год старше, но в свои 21, изучил андроид за пол года и имею по 10к$ в месяц и 2 млн инсталов за пол года, может мне тоже отправить статью?)))

0

Да! Было бы очень интересно почитать.

Красавец, что еще сказать. Удачи!

Отлично. Вы молодец. Есть что обсудить. samorodinov@gmail.com

0

хм. ни слова про приложение "seven", в народе "семь минут"

0

А я свое первое приложение писал около 6 месяцев (но это больше из-за того, что работал над ним ~10 часов в неделю). И тоже без знаний программирования под iOS. Правда у него нет таких впечатляющих результатов. С февраля месяца - около 10 загрузок в месяц: otherf.com/shoptracker/
Сейчас делаю вторую версию с большей функциональностью и измененным дизайном.
Правда тоже, трачу на нее мало времени :(

0

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

Вложения

1 тысяча рублей – подписка на уроки по Swift, 10 тысяч — на все иллюстрации и столько же на вывод приложения в топ App Store с помощью мотивированных закачек.

А как же лицензия разработчика?
У Вас Макбук?

Хорошая статья, хоть и не достаёт пару моментов. Спасибо

0

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

У меня MacBook и iMac. Работаю с iMac.

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

Кстати, на Swift можно писать, есть твой ПК на windows?

0

Hackintosh можно поставить.
Под iOS разработку нужен MacOS с Xcode

0

Спасибо за статью! Вдохновился самостоятельно изучать Swift :)

Возможность комментирования статьи доступна только в первые две недели после публикации.

Сейчас обсуждают
Sasha Zivers

Ничего не заставит.

«Добро пожаловать в 2030 год»: член датского парламента о счастливой жизни без приватности и личных вещей
0
Sasha Zivers

Ну да, приравнивать жену к предментам, ок-ок. )

«Добро пожаловать в 2030 год»: член датского парламента о счастливой жизни без приватности и личных вещей
0
Sasha Zivers

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

«Добро пожаловать в 2030 год»: член датского парламента о счастливой жизни без приватности и личных вещей
0
Artem Korsunov

Сайт написан на Laravel :)

«Омоймот» — сайт для подбора мотоциклов с блогами пользователей
0
Alexander Pershin
HTML Academy

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

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

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

Куда пойти учиться программисту: советы опытного тимлида, преподавателя и новичка
1
Показать еще