Должен ли я учить C, если я уже знаю ассемблер? - PullRequest
4 голосов
/ 29 января 2009

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

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

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

Ответы [ 14 ]

0 голосов
/ 29 января 2009

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

Если бы вы знали только Java, я бы сказал: да, было бы здорово.

0 голосов
/ 29 января 2009

Это зависит. Если вы хотите работать с C ++, вам, безусловно, также следует выучить C. Если вы хотите писать код на Python или Perl, он вам на самом деле не нужен, так как у вас есть понимание внутренних компонентов от Assembler.

Одно: вы работали в Ассемблере с указателями и кучей? Понимание указателей и управление памятью очень важно для каждого высшего языка. Если вы не правильно поняли указатели и кучу, вам следует попробовать С.

0 голосов
/ 29 января 2009

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

Я сам, после написания perl или javascript для более длительных периодов времени, всегда нахожу языки более низкого уровня, такие как C или C ++, например, где в perl я пишу foreach (@array), в C / C ++ мне приходится возиться с для циклов и индексов и / или итераторов.

Итак, да, я могу только представить, сколько вы получите от абстракций, которые вам предоставит С.

Кроме того, расширение вашей перспективы - это всегда хорошо.

0 голосов
/ 29 января 2009

Возможно, нет ... но учить его не повредит :) Я лично изучил сборку x86 до C, и мои знания по сборке облегчили мне понимание указателей C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...