Какой-либо программист должен знать C? Да, почему? Нет, почему? [закрытый]

Несмотря на то, что в приведенном выше ответе говорится, что в коде Matlab отсутствует значение «решить», «решить» может означать множество различных вещей в R,

фактически принимает обратное,

обратное к A, MATLAB: inv (A) R: решить (A)

, следовательно, vcov_beta_hat = [sigma2_hat.*inv((X'*X))];

6
задан tunnuz 29 January 2009 в 10:04
поделиться

17 ответов

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

И конечно знание ассемблера также ценно. Но в вышеупомянутом абзаце, я хотел быть нацеленным на нижний уровень языка программирования. Просто, потому что на современных языках, мы считаем так много само собой разумеющимся (OO, обширные библиотеки, сборка "мусора" для именования некоторых). И да это помогает нам программисты работать более эффективно. Но это скрывает некоторые аспекты машины, которые мы иногда должны видеть, и вот почему столь важно, чтобы мы знали внутренние работы.

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

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

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

Должны знать/изучать C? Вероятно, не, хотя это могло бы сделать изучение некоторых понятий легче. Понимая что-то о выделении памяти, структуры и указатели всех видов стоят, и C является хорошим языком для использования для получения того понимания. Плюс, честно говоря, "прямой" C действительно не сложен. Хитрый для разбираний, уверенный, но не сам по себе сложный. Я советовал бы овладевать компилятором, который не был C++ один также, тот путь может лечь безумие. (Любящие памяти Quick C Для Windows)

Должны знать/изучать C++?Точно нет.

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

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

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

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

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

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

Выделение памяти и указатели.

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

Кроме того, в школе, начиная с Паскаля и затем C позволил нам изучать "программирование" сначала, старый путь, и затем перемещаться в более усовершенствованные языки (ООП, и т.д.) вдобавок ко всему

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

Я думаю, что Вы имеете.

Языки имеют свою собственную эволюцию. Они разработали в рамках очень интригующей и быстрой эволюции компьютерных систем. Мощность ЦП выросла, функции выросли, Ассемблер стал более сложным... все стало более мощным.

Вещь: если Вы никогда не видели низкого уровня и "легкое" начало, и Вы запускаете с некоторых высокоуровневых языков как C#, C++ или Java, Вы не поймете элегантности или перспективы бэкенда этих очень мощных языков.

Я думаю, что Вы не должны изучать LISP, потому что, если отличается много от подобного языкам C общего. Но некоторый C является должен - знают. Это для разработчиков от разработчиков, очень близко к машинному коду. Знайте то, что машина делает при программировании ее.

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

Все знание полезно, таким образом, да, необходимо завидовать их знанию. Необходимо также завидовать людям, которые являются компьютерными фанатами AI и знают LISP и т.д. Лучшее соединение было бы динамическим языком, функциональным языком, SQL, низкоуровневым языком и объектно-ориентированным языком.

Если бы Вы хотите, чтобы некоторый незнакомец предоставил некоторые рекомендации, я пошел бы Python, OCaml, SQL, C и Java/C#. Но, найдите свой собственный путь :-)

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

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

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

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

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

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

C не является моим предпочтительным языком, но даже по сей день, C везде.

Когда я делаю некоторый маленький код в использовании Lua LuaCurl, я пользуюсь библиотекой C. Сам Lua записан в C.

Когда я делаю некоторое Приморское веб-приложение в Писке Smalltalk, я использую VM, сгенерированный в C (Писк, который VM записан в Smalltalk, и затем это генерирует код C как портативный ассемблер).

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

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

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

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

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

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

Другое серьезное основание знать C состоит в том, что много кода написано в C поэтому, если Вы захотите узнать из кода других, то это будет очень полезно.

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

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

Eric Sink также когда-то думал о том вопросе.

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

Что-то я нахожу пропавших без вести из большинства этих ответов, - то, что C является очень легким языком для изучения. Все, что необходимо будет когда-либо знать о синтаксисе, содержится в одной тонкой, краткой книге (K&R), и это включает все стандартные библиотеки. Таким образом, я поощрил бы Вас, по крайней мере, просматривать книгу и видеть то, о чем это - все, даже если Вы не намереваетесь использовать его.

Тот простой синтаксис C только расширен для большинства современных языков на базе С (C++, C#, Java). Вы не можете сказать реальное знание тех языков, пока Вы не освоили, по крайней мере, подмножество сотен библиотек, которые идут с ними, и это может занять месяцы или годы опыта.

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

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

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

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

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

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

Я не называю меня программистом C, но я могу написать код в C. Это помогло мне неоднократно в моей карьере. Я провел много времени, работая с Visual Basic, и существуют некоторые вещи, которые Вы просто не можете сделать с VB. Было очень удобно к выпадающему к C сделать вещи как рычаги окон. Это сделало меня "героем" время или два.

0
ответ дан 8 December 2019 в 02:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: