Мой провал в памяти - изо всех сил пытающийся изучить Objective C

это было бы моим первым вопросом после регистрации! Так или иначе вот мой вопрос, я сделал Java в университете, и мне всегда говорили, что я - хороший программист. Однако я никогда не преследовал его как карьеру - я вошел в поддержку и управление вместо этого. Я в значительной степени скучаю над своим заданием, я поэтому начал изучать Objective C так, чтобы я мог разработать приложения для iPhone. Я в настоящее время смотрю несколько различных Видео / Книги.

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

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

Действительно ли я прав в высказывании, что документация Apple является просто не четкой? и что хорошо для обращения к видео/книге или Google? или форумы в этом отношении?

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

Когда я запускаю проект программирования, я могу использовать превосходные поисковые навыки, что я должен найти код, я нуждаюсь, копирую и вставляю его (да, я действительно понимаю это), НО затем я чувствую себя виновным, говоря себе это, почему Вы не продумали код сами???? Поэтому Ваш не настоящий программист, Ваш просто хороший в поиске с помощью Google.

В настоящее время я прохожу 20 + книги так, чтобы я мог изучить большинство платформ, синтаксис и т.д. для разработки приложений для iPhone. Я верю, делаю ли я это, затем когда я думаю о проекте, я могу сделать его быстро. Я должен прочитать несколько книг, как 2-3 и затем только запустить проект / приложение, и если я застреваю, просто гуглят его и получают код, в котором я нуждаюсь?

Кто-либо может ответить на мои вопросы?

Править:

АБСОЛЮТНО БЛЕСТЯЩИЕ ответы и комментарии получены от всех. Я крайне признателен.

С этого времени я буду использовать все форумы, книги, документацию и пример кода, в котором я нуждаюсь, не чувствуя себя виновным! Как некоторые люди сказали, документы Apple не являются четкими (и ДА, я очень знаком с Синтаксисом Objective C). Я дам Вам пример: Чтобы заставить клавиатуру уйти на iPhone, необходимо использовать названный метод resignfirstresponder. Я изучил, как использовать этот метод из Видео учебного руководства!

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

Это - мое схватывание - документы Apple должны быть четкими (по крайней мере, с некоторым примером кода). Это кажется людьми, которые являются хорошими программистами (но не хороший в поиске с помощью Google) проигрывают на этой арене. И это кажется не, таким образом, хорошие программисты могут все еще продвинуться - только путем поиска с помощью Google или просмотра нескольких видео (который/может профессиональный программист, имеют доступ к по любой причине). Целое дело кажется довольно несправедливым и несбалансированным, если Вы спрашиваете меня.

Спасибо за Ваших людей ответов.

6
задан Mohsen Nosratinia 8 May 2015 в 14:26
поделиться

15 ответов

Каждый учится по-своему. Как и вы, я предпочитаю (рабочие) примеры чтению документации API. Но это касается всех языков, которые я использую.

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

0
ответ дан 8 December 2019 в 02:04
поделиться

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

1
ответ дан 8 December 2019 в 02:04
поделиться

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

1
ответ дан 8 December 2019 в 02:04
поделиться

Здесь могут быть уместны некоторые концепции изучения естественного языка.

Вы можете различать восприимчивые языковые навыки и продуктивные языковые навыки. Воспитательные навыки включают слушание и чтение на языке. Продуктивные языковые навыки предполагают владение языком. Если вы проводите много времени, изучая язык самостоятельно, и еще не создали много материала на этом языке, вы можете обнаружить, что у вас хорошие навыки восприятия, но не так хороши в продуктивных. Возможно, вы досконально выучили все правила грамматики. И когда вам сложно написать предложение, и кто-то вам помогает, вы обнаруживаете, что они не использовали никаких принципов, о которых вы еще не знали. Тем не менее, это может быть трудно производить, если только ваши навыки восприятия хороши. Это может быть то, где вы находитесь с Objective C. Похоже, вы хорошо читаете язык, но для того, чтобы научиться его писать, требуется больше практики.

Тем не менее: в документации Apple много не сказано. Например, большая часть документации по функциям Apple Objective C не сообщает вам, кому принадлежит память для возвращаемых значений. Это потому, что они неявно сообщают вам через соглашение об именах. Если вы не читали документацию по этому вопросу, похоже, что в отдельных документах функций чего-то не хватает.

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

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

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

5
ответ дан 8 December 2019 в 02:04
поделиться

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

Нет ничего плохого в том, чтобы использовать Google, чтобы найти ответы на свои вопросы

0
ответ дан 8 December 2019 в 02:04
поделиться

Шаг 1: Расслабьтесь

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

Шаг 3. Поймите, что Apple API ОГРОМНЫЙ и постоянно развивается. Я работаю с ним с эпохи Mac-Classic / NextStep и каждый день узнаю что-то новое.

Шаг 4. Чем меньше языков программирования вам пришлось выучить, тем сложнее выучить новые. Вы будете учиться медленнее, чем тот, кто уже выучил полдюжины языков / API.

Шаг 5: Не бойтесь использовать повторение и грубую силу. Я думаю, что то, что замедляет новичков, - это не изучение поведения и методов общих базовых классов, таких как NSString, NSArray, NSDictionary и т. Д. Разбейте карточки.

Шаг 6. Расслабьтесь

7
ответ дан 8 December 2019 в 02:04
поделиться

Правильно ли я говорю, что документация Apple просто непонятна?

Нет. Просто документация не предназначена для абсолютных новичков в Objective-C.

и можно ли ссылаться на видео / книгу или Google? или форумы в этом отношении?

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

Когда я начал изучать Objective-C, я был опытным программистом на C, Java и C ++, а также на нескольких других языках, поэтому я начинал с более выгодной позиции, чем вы. Я пытался выучить язык и Какао из документации Apple, но это оказалось невозможным. Просто найти, с чего начать, является огромным препятствием, если вы ничего не знаете о языке. Например, рекомендации по управлению памятью довольно просты и легки для понимания, но, как программисту на Java, вам, вероятно, не придет в голову, что вам даже нужно их искать.

Я обнаружил, что лучший способ изучить Objective-C - это прочитать книгу, в которой утверждалось, что она преподается. Я выбрал книгу Аарона Хиллегаса, но есть и другие.

НО тогда я чувствую себя виноватым, говоря себе, что почему вы сами не придумали код?

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

4
ответ дан 8 December 2019 в 02:04
поделиться

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

1
ответ дан 8 December 2019 в 02:04
поделиться

Понять документацию вполне приемлемо, и все же нужно знать, как ее использовать. Например, я могу сказать вам, что означает «код», но без контекста трудно представить, как его правильно использовать. Я имею в виду, вы знаете, что это означает, но как именно вы его используете?

Я работаю с Objective-C с начала 1990-х годов с NeXTSTEP, и я все еще смотрю образец кода, когда выпускается новый фреймворк. или еще много чего. Почему? Потому что это экономит мне много времени, а контекст важен.

11
ответ дан 8 December 2019 в 02:04
поделиться

Я не совсем понимаю, в чем ваш вопрос. У вас есть «ментальный блок», из-за которого вы чувствуете себя «виноватым», потому что вы не можете освоить новую технологию, просто прочитав справочное руководство? Это звучит как личная проблема, и никто не сможет дать короткий письменный ответ, который заставит его исчезнуть, особенно если вам уже сказали то же самое от других «профессиональных программистов». .

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

3
ответ дан 8 December 2019 в 02:04
поделиться

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

Пример: Документация класса NSString предоставляет точные определения поведения различных методов NSString, в то время как сопутствующее руководство описывает, как выполнять все виды задач со строками.

И ... что сказал Рейн .

(Мне также смешно, когда люди утверждают, что документация Java или .NET намного лучше - я считаю, что документация Apple намного лучше. Я полностью и полностью признаю это потому, что у меня есть опыт работы с Cocoa, пока я Java пришла в упадок, и я никогда глубоко не погружался в .NET.)

4
ответ дан 8 December 2019 в 02:04
поделиться

Я мог разобраться в проблеме и иногда могу почувствовать ощущение «неготовности».

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

0
ответ дан 8 December 2019 в 02:04
поделиться

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

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

Один известный программист из Microsoft выступает за то, что он называет "чтением кода", когда вы выбираете проект Open Source, который, по вашему мнению, является хорошим примером качественного кода. Вы изучаете его и выясняете, как он был создан и почему. Вы можете посмотреть больше здесь...

http://www.hanselman.com/blog/TheWeeklySourceCode41SearchingCodeSharingCodeAndReadingCodeAndComments.aspx

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

1
ответ дан 8 December 2019 в 02:04
поделиться

Я был опытным программистом на Java, прежде чем пару лет назад занялся iPhone SDK, и я думаю, что документация Apple - одна из самых ясных, что я видел за свою карьеру.

Я думаю, ваша проблема в том, что вы проводите слишком много времени за чтением книг и документации. У вас уже есть опыт программирования, так что учитесь на практике. Начните с учебника Ваше первое приложение для iPhone , чтобы вы познакомились с основами Objective-C, MVC и Interface Builder. В предложении «Куда дальше» есть советы о том, что попробовать потом. После этого у вас, вероятно, будет по крайней мере достаточно хорошая начальная база знаний, чтобы создать свою собственную идею приложения или, по крайней мере, с чего начать.

3
ответ дан 8 December 2019 в 02:04
поделиться

Кто-то однажды сказал:

«Мы учимся на деле, другого нет. способ ».

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

13
ответ дан 8 December 2019 в 02:04
поделиться