Подтвердить что ты не робот

Как узнать C и Objective-C

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

Спасибо

Кроме того, сколько времени требуется, чтобы узнать C? Пока я не перейду к Objective-C 2.0

4b9b3361

Ответ 1

Не нужно спешить. Учитесь в своем собственном темпе и находите оптимальный способ обучения.

Если чтение - это ваша вещь, попробуйте прочитать некоторые книги и сделать это медленно.

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

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

(Хотя в вашем возрасте это может быть немного сложно найти - я не получил никаких формальных занятий до колледжа - моя средняя школа не предлагала никаких курсов программирования.)

Одна из вещей, которые нужно соблюдать, - это изучить ее неправильно.

Проникновение материала или чтение плохо написанного, неточного учебного материала могут привести к ситуации, когда вам нужно "не изучать" концепции и переучивать ее правильно.

В этом отношении книга K & R (Язык программирования C от Kernighan и Ritchie) будет "правильным способом" обучения, но это не очень доступная книга. Это не значит, что это окончательная книга на C, но даже после программирования на C в течение пары лет я все же стараюсь считать, что это размер укуса за раз.

Но опять же, я не могу думать о других "великих" источниках для обучения C. Моей рекомендацией было бы взглянуть на K & R и работать на нескольких страницах за раз. Не думайте о том, чтобы читать это как обычную книгу - прочитайте один раздел, попробуйте. Сделайте это понемногу. Еще раз, не спешите. Работайте на собственной скорости.

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

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

Это будет длинное приключение, поэтому сделайте шаг за шагом. Удачи!

Ответ 2

Для обучения C я настоятельно рекомендую Learn C на Mac от Dave Mark. Он не только нацелен на новичков, но и учит вас многому о важных основах программирования и информатики (например, структуры данных, рекурсия и т.д.). Это очень доступное, хорошо написанное и легко читаемое. Кроме того, я нашел примеры интересными и интересными. После этого, если вы действительно хотите укрепить свои основы в C, я бы рекомендовал перейти к The C Programming Language. Это сложная книга, так что медленно. Если вы обнаружите, что у вас слишком много проблем, я бы сказал, что вы можете просто перейти к Objective-C, а затем вернуться к языку программирования C позже, как только вы приобретете больше знаний о программировании в целом.

Многие люди, вероятно, порекомендуют язык программирования C (aka "K & R" ) в качестве первой книги для чтения на C. Без сомнения, это очень хорошо написанная книга C (и она слишком короткая - только вокруг 200 страниц), но я бы сказал, что это будет немного пугаться, поскольку 12-летняя первая публикация C: это довольно плотная и хардкорная. Вы можете сказать, что это определенно предназначено для более старой аудитории с сильным опытом работы в компьютерах/инженерии. Но тем не менее, если вы уже знаете основы программирования, чтение K & R даст вам неоценимое понимание и понимание C. Вы должны обязательно прочитать его в какой-то момент ваших программных задач.

В любом случае, для Objective-C, если есть только одна книга, которую я мог бы порекомендовать, она определенно была бы Cocoa Программирование для Mac OS X, Аарон Хиллегасс. Это действительно не так долго (~ 400 страниц или около того, хотя я бы считал, что многое из-за количества иллюстраций в книге), и вы можете получить несколько хороших проектов и работать днем. Это очень понятно и легко читать, примеры практичны и интересны, но, самое главное, он получил это правильное сочетание не слишком пугающего, сохраняя при этом твердую информацию. Кроме того, это научит вас больше, чем просто Objective-C: я обнаружил, что я узнал некоторые очень полезные шаблоны проектирования, например, узнав, как работают некоторые из компонентов Cocoa.

Ответ 3

Когда я смотрю на заголовок этого вопроса, я предполагаю, что вам 12.

Я начал программировать, когда мне было 13 (мне сейчас 14).

Я обнаружил, что обучение зависит от того, кем вы являетесь!

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

PS, вот маленький совет. Это может расстраивать (асептически в нашем возрасте). Если вы расстроены, просто положите его на 10 минут. Затем вернитесь и изучите, что вы учите. Программирование будет очень расстраивать время от времени.

EDIT: Кстати, мне нравится учиться на видео: p

Ответ 4

Стэнфордский университет публикует в Интернете лекции, заметки о классе и задания для CS193P (класс разработки iPhone). Если вы вообще не знаете C или Objective-C, это может быть сложно, но я настоятельно рекомендую это, если вы намерены заниматься разработкой iPhone.

Я думаю, что прочитал каждую книгу Cocoa и Objective-C там, и большинство из них понравилось Aaron Hillegass 'Cocoa Программирование для Mac OS X.

Ответ 5

Я бы посмотрел на Язык программирования C (K & R C). Это намного меньше, чем 1000 страниц, и я думаю, что вы найдете его хорошо стоящим. Как говорилось в htw, книги действительно служат цели, поскольку они обеспечивают тщательный и структурированный подход. K & R C, в частности, даст вам реальную информацию непосредственно от создателей C.

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

Ответ 7

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

И следуйте за Stack Overflow;)

Ответ 8

Я был там, где ты есть. Это было не весело. Вот что меня спасло:

(По-видимому, новым пользователям не разрешено размещать гиперссылки, поэтому google для "steve summit C", используйте либо первую, либо третью ссылку, а затем нажмите "вводные заметки класса программирования C" )

Это класс C от парня по имени Стив Саммит. Супер легко следовать, намного проще, чем K & R, imo. Кроме того, он бесплатный, и нет рекламы. Я люблю это. Это как я научился C. Я надеюсь, что он сделает то же самое для вас.

Ответ 9

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

Темы (или "идиомы" ) в нем были настолько полезны и применимы к языкам, которые некоторые умные люди использовали для их тиражирования на разных языках. Каждый из них имеет разнообразный уровень полноты, но интересно посмотреть, как разные языки выполняют одни и те же вещи.

Взгляните здесь http://pleac.sourceforge.net/ для самородков мудрости программирования, в которые вы можете встряхнуть палку. По крайней мере, интересно посмотреть, как простые вещи, написанные на одном языке, требуют повторного использования кода в другом.

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

Удачи.

Ответ 10

Честно говоря, я изучил Java как свой первый язык программирования (я открыл его в старшей школе и решил, что программирование было забавным, и это было то, что я хотел сделать)

Я только что забрал Obj-C через несколько недель, немного прочитав некоторые книги, но не целую книгу и много использую интернет, если не могу понять синтаксис (формат/грамматика того, как программа должна быть структурирована и написана) для чего-то и т.д.

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

Если вы можете понять основы программирования в целом, то вы должны иметь возможность применить его к любому языку, сложная часть - изучение и запоминание синтаксиса разных языков. Как и в Java, вам не нужно выполнять выделение памяти, но в C, С++ и Obj-C вы делаете. Я никогда не писал программу на C или С++, но теперь, когда я изучил и написал некоторые программы в Obj-C (я делал iPhone, это весело), ​​я уверен, что смогу забрать C и С++ вроде ничего.

Вам не нужно сначала изучать C, чтобы узнать Obj-C, что я пытаюсь сказать. Но никогда не больно знать несколько языков.

Это все о вашем уровне понимания того, как работает программа, как ее структурировать. Мне нравится objective-C, потому что он ориентирован на объекты как Java, поэтому мне было легче понять и быстро научиться, просто пришлось привыкнуть к некоторым различиям в синтаксисе

(Я также приближаюсь к тому, чтобы окончить колледж сейчас, поэтому я окружен материалом для программирования, от процедурных языков, таких как ada, до объектно-ориентированного, как java, и зная, что nitty gritty за кулисами, что делает работу программы, поэтому понимание и изучение нового языка стало намного легче для меня, вы начинаете видеть, как они соотносятся и не связаны, и это круто)

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

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

Я не знаю, если это вообще помогло, я надеюсь, что это так, как-то...

=)

Ответ 11

То, как я научился быстрее всего, - это смотреть короткие видеоуроки.

Ответ 12

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

Как 13-летний, я рекомендую начинать с PHP. Это более простой язык для изучения, чем C, но он основан на C, поэтому будет сложно выполнить переход, когда вы это сделаете.

Ответ 13

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

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

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

Если вам нужна идея, напишите программу проверки сукоку. Затем напишите решение sudoku!

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

Лично мне нравятся книги O'Reilly Publishing для их болтливого и читабельного стиля. Я изучил C из Deitel, который больше похож на учебник класса, но в нем много примеров и дискуссионных вопросов.

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

Последнее предложение. Почему бы не начать с Python, а не с C? Я слышал, что многие школы учат Python своим детям. Причины, которые я предлагаю, следующие:

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

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

Мне просто нравится посещать новые части python все время.

Вы можете многое сделать в python. Он поставляется с множеством встроенных модулей, чтобы делать практически все, что вам нравится: электронную почту, веб-сайт, xml, графику, gui и т.д.

:)

Ответ 14

Когда я учился программировать на C, я обнаружил, что Практическое программирование на C был хорошим ресурсом. Это очень доступная книга с большим количеством примеров.

Ответ 15

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

  • Задайте цель, которую вы хотите сделать, и запустите простой проект.
  • Вместо того, чтобы читать слишком много книг теоретически, Google, что вы хотите знать, чтобы получить его мгновенно, когда вы проходите через свой проект. Таким образом вы получаете знания ПРАКТИЧЕСКОГО.
  • Смотрите видеоролики онлайн. Посмотрите мой вопрос на ВИДЕО здесь
  • Задайте то, что вы не понимаете в stackoverflow. Мы здесь, чтобы помочь:)

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

Ура!

Ответ 16

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

P.S. Я начал программировать в возрасте 12 лет с APL/360. У меня был взрыв, и я делал это с тех пор, как 35 лет и считал. Удачи и не забывайте получать удовольствие!

Ответ 17

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

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

Ответ 18

Я начал учиться программировать в Basic примерно в 1981 году, когда мне было 10. Не много лет спустя это была сборка 6502, чтобы попытаться получить больше скорости из 1 МГц Apple IIe клона.

Паскаль был откровением в 1988 году - программирование без номеров строк.

Modula-2, C, Eiffel, Miranda, Haskel и Prolog в университете, а также скрипты на любом количестве языков.

С++ профессионально около 6 лет.

С#, затем Java, Ruby и обратно на С# за последние 18 месяцев.

Python где-то по пути.

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

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

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

Что касается того, как долго до перехода на Objective-C, это действительно зависит от того, насколько вы талантливы. Если вы действительно хороши, то, как только вы изучили свой 3-й или 4-й язык, вы сможете быть более продуктивным, чем большинство программистов, в течение 6 недель после начала нового языка (хотя изменение языковых семейств (то есть императивных, функциональных, объектно-ориентированных) занимает больше времени). Если вам нехорошо, тогда не ожидайте, чтобы пройти мимо первого. Надеюсь, вы попадете в первую категорию.

Ответ 19

В дополнение ко всем книгам и веб-сайтам, которые вы в конечном итоге используете, вы можете подумать о том, чтобы оглядеть свой район для локальных групп поддержки. Во многих областях есть группа пользователей Linux или группа для программирования на Java или Ruby. Профессиональные программисты используют эти группы, чтобы помогать друг другу в решении проблем программирования, но группы, как правило, дружелюбны к молодым людям и начинающим. Не чувствуйте себя неловко или неудобно из-за вашего возраста и неопытности. Большинство людей будут восхищаться вашей инициативой и любопытством и будем рады помочь вам, когда вы столкнетесь с проблемами.

Ответ 20

Предполагая, что у вас есть базовые знания в программировании, Cocoa Dev Central имеет серию статей, которые объясняют базовый C, а затем Objective-C, с несколькими способами, чем 1000 страниц.

Узнать C для Cocoa, затем Узнать Objective-C

Не нужно тратить час. Статьи не охватывают ничего удаленного, но если вы изучаете ObjC для написания приложений OS X, бит ObjC в основном тривиальный, это Cocoa, который трудно изучить!

Ответ 21

Если вы хотите изучить Objectif-C для создания приложения для iPhone, не тратьте время на C и не изучайте Objectif-C сейчас, а затем книгу по программированию на iPhone. Это будет более 1000 страниц, но если вы хотите запрограммировать в своей жизни, вы должны быть использованы для чтения этих типов книг.

Ответ 22

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

http://www.learn-c.org