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

Как долго учиться C?

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

Мой вопрос в том, как долго я могу ожидать изучения языка C, чтобы получить эти преимущества?

Прошло ли несколько выходных дней, прочитав книгу K & R из обложки, чтобы покрыть достаточно, или мне нужно запланировать время, чтобы сократить код? Нужно ли мне тратить время на изучение любых библиотек или понимание концепций первого порядка на языке, достаточном для улучшения моего кода на С#?

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

4b9b3361

Ответ 1

C потребуется неделя, чтобы учиться, и на всю жизнь осваивать.

Ответ 2

Чтение книги K & R, а не написания кода - это как чтение книги об оружии и никогда не стрельба. Да, вы читали в книге, что это работает так, но вы никогда не сталкивались с типичными проблемами, возникающими при этом. Без практики такой "knowlegde" стоит очень мало.

Планируйте потратить 2-3 года, медленно пиши небольшие программы для решения различных задач в C. Это будет считаться реальным опытом. C обеспечивает отсроченное удовлетворение для ваших усилий.

Ответ 3

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

Ответ 5

Если вы можете прочитать K & R и понять все это, это очень хорошо, так как K & R охватывает почти весь язык.

Однако, читая его и понимая, все это совсем другое. Вероятно, вам нужно пройти несколько проходов через K & R и выполнить все связанные упражнения, чтобы вы действительно знали это.

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

Есть несколько предостережений, которые у вас есть на этом языке. Один из тех, которые обычно вызывали у меня проблемы, состоит в том, что все указатели имеют одинаковый размер (4 байта на x86), независимо от того, что они указывают. A char * - тот же размер, что и void * и int *.

Ответ 6

Вам определенно нужно написать код - я не верю, что вы можете изучать любой язык, не делая этого. У K & R есть множество упражнений, на которые вы можете практиковать. Трудно понять, как долго с точки зрения времени, затрачиваемого на получение хороших рабочих знаний, - я преподавал почти весь язык за 4,5 дня, но это довольно интенсивно. Я бы предложил около месяца, если вы делаете час или около того в день.

Изменить: Должен признаться, я нахожу это немного удручающим, что многие люди считают C настолько сложным. K & R составляет 272 страницы в моей копии и охватывает в основном все, что вам нужно знать, включая стандартную библиотеку. Есть ли книга в ЛЮБОЙ другой язык программирования, который охватывает весь shebang так лаконично? Я так не думаю, и причина не в том, что K & R сжимается каким-то образом (Брайан Керниган - величайший технический писатель, IMHO), но этот язык прост и прост для описания.

Ответ 7

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

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

Ответ 8

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

Я уверен, что библиотеки C сделают вас более продуктивными программами написания, но если вы просто изучаете C, вас интересует, тогда вы можете реализовать все, что вам нужно. www.projecteuler.net - хороший источник проблем (хотя и немного математический в целом) для вас, чтобы начать работу, если вам кажется, упражнений K ^ R.

Ответ 9

Через пару выходных дней вы получите в основном два результата:

  • привет мир
  • много ошибок сегментации

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

Ответ 10

40 дней и 40 ночей.

Если вы не можете делать дни и ночи последовательно, тогда это будет 42 выходных дня.

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

Если вы сказали, что вам понадобилось 6 месяцев, чтобы быть хорошим на С#, то, может быть, мы можем сказать, что это займет у вас 6 месяцев * X (где X по-прежнему догадывается, но лучше предположить, чем сейчас).

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

Ответ 11

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

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

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

ИМО: от 3 до 4 лет, чтобы действительно понять большинство концепций. Книга поможет вам понять, каковы возможности языка.