За последние несколько месяцев я учился создавать приложения для iOS на Objective-C, и только сейчас я наконец начал в этом разбираться. Должен сказать, это намного сложнее, чем я себе представлял.

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

ec3deb8ca0071e7a3e65e8d3837b26c6

На пути создания приложений я многому научился — не только тому, как разрабатывать приложения для iOS, но и общему планированию, и даже мои навыки программирования улучшились. Однако многих проблем можно было бы избежать, если бы я выбрал другой подход к изучению Objective-C.

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

Найдите «напарника по программированию»

Сначала найдите «напарника по программированию», с которым можно обмениваться идеями.

Мой друг Джош — Python-разработчик, который также знает Objective-C. Ему нравились многие содержательные вопросы, которые я задавал («Как снова использовать операторы if?»), и когда я полностью застревал, он помогал мне отлаживать код. Это был поистине случай, когда обучение приносит пользу и учителю, и ученику.

Честно говоря, то, что такой терпеливый друг-программист объяснял мне базовые принципы программирования, было чрезвычайно полезно. Если бы у меня был такой друг раньше, я считаю, я не пошёл бы по стольким окольным путям с Objective-C.

Используйте все доступные ресурсы

Если рядом нет такого терпеливого напарника по программированию, вы можете получить помощь следующими способами:

1. Stack Overflow

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

2. Подпишитесь на онлайн-рассылки

Онлайн-ресурсы для обучения сложны и часто могут запутать новичков. Некоторые онлайн-рассылки регулярно присылают вам свежий качественный контент, чтобы вы могли учиться выборочно. Мы рекомендуем «Happy Coder», запущенный CodeCao; вы можете сразу нажать здесь, чтобы подписаться по электронной почте.

3. Treehouse

Узнайте, как программировать, с помощью видеокурсов и встроенных форумов сообщества.

4. askadev

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

5. Codementor

Если вы не против потратить немного денег, чтобы получить помощь от опытных разработчиков, возможно, стоит попробовать Codementor. Он подберёт вам лучшие варианты, охватывающие языки, включая Android, iOS, HTML, CSS, PHP, Python и так далее.

6. Метод резиновой уточки

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

Пока вы объясняете, вы часто внезапно прозреваете и вспоминаете ответ (или замечаете что-то неладное).

Изучите основы

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

Например, использование API означает, что вам нужно понимать, как работает API, как использовать POST- и GET-запросы и как разбирать данные JSON. Вам даже нужно знать, как получать данные JSON.

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

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

Если бы я учился заново, я обязательно освоил бы основы HTML и CSS. Если бы я снова делал приложение, я бы никогда не начинал вслепую, как в тот раз; вместо этого я сначала создал бы прочную основу.

Первый язык

Любой язык — это актив. Хотя HTML и CSS, которые я выучил, всё ещё не пригодились, я всё равно не считаю, что их изучение было пустой тратой времени.

Новички могут начать с попыток создавать сайты с помощью HTML и CSS. На самом деле это языки разметки, поэтому они могут не сильно помочь при создании мобильных или веб-приложений. Но даже если они не приносят прямой пользы, мы всё равно получаем много знаний и опыта в процессе обучения, что облегчает изучение следующего языка программирования.

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

Найдите проект, над которым действительно хотите работать

Я считаю себя довольно трудолюбивым человеком. Я выучил HTML и CSS подростком, затем несколько лет назад выучил основы Ruby, а недавно решил взяться за Python.

Затем я решил учить Objective-C — не потому, что он мне больше нравился или потому что я увидел, как его учат другие, и позавидовал, а потому что хотел создать приложение для iOS. Мне действительно очень хотелось создать его самому.

Можно сказать, что моя страсть к изучению Objective-C была сильнее, чем к любому языку до него.

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

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

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


Ссылка на перевод: http://www.codeceo.com/article/what-to-do-if-be-programmer.html
Английский оригинал:Что бы я сделал иначе, если бы учился программировать сегодня
Переводчик:CodeCao– Xiaofeng