Что я уяснил, будучи разработчиком-самоучкой? Часть 2

NOP
NOP::Nuances of Programming
4 min readJul 20, 2018

Перевод статьи Victor Cassone: Lessons learned from my journey as a self-taught developer

Предыдущие части: Часть 1

Stack Overflow — отличный сервис (и опасный)

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

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

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

Совет

ctrl+C и ctrl+V — это чуть ли не худший способ научиться кодингу.

Stack Overflow — это одновременно и благословение, и проклятие. Он реально помогает вам в решении возникающих проблем. Но в тоже время он может стать костылем, от которого вы всегда будете зависеть, если вовремя не прекратите.

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

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

Найдите квалифицированную помощь

Первое, что я сделал после того, как решил, что хочу научиться программированию — купил две книги по разработке на Android.

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

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

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

Дни превращались в недели, а я все не мог сдвинуться с места.

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

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

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

Первым нашим заданием было написать программу на основе карточной игры — блэкджек. Все таки те 5–6 месяцев самообучения не прошли даром и кое-что мне пригодилось. Я справился с заданием и был крайне горд собой. Однако, мое чувство гордости тут же исчезло.

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

Совет

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

Если бы в то время мне удалось поговорить с опытными разработчиками, они бы увидели, чем я занимаюсь, помогли бы мне расставить приоритеты и подбодрили бы меня. Они помогли бы мне во многом разобраться и направили бы мои старания в нужное русло (например, отговорили бы меня использовать библиотеки FFMPEG).

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

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

Но вместо этого, я просто себя изолировал.

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

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

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

--

--