Стоит ли изучать C как веб-разработчика? Смогу ли я когда-нибудь использовать его?
Как веб-разработчик, стоит ли мне изучать язык программирования C? Должен ли я когда-нибудь использовать его? В настоящее время я использую PHP и Ruby on Rails.
Ответы
Ответ 1
Во-первых, вы должны определить "веб-разработчик". Вы строите веб-сайты или веб-программное обеспечение? Хотя обе эти задачи легко могут подпадать под категорию "веб-разработки", они несколько отличаются с точки зрения набора навыков, необходимых для успеха в нем.
Скорее всего, вы столкнетесь с фоновой обработкой и взаимодействием файловой/операционной системы с программным обеспечением, чем с "просто" веб-сайтом, и тем самым увеличите вероятность использования низкоуровневого языка, такого как C.
Сказав это, вы когда-нибудь будете использовать его? Вряд ли. Языки высокого уровня были введены десятками для решения проблем веб-разработки. С точки зрения веб-разработки, если вам нужно прибегать к C, это, скорее всего, потому, что у вас нет необходимых навыков на более подходящих языках. Помните огромное количество сайтов и программных решений различного размера, которые отлично работают на PHP и Rails.
Стоит ли учиться? Может быть. Если вы чувствуете, что вам нужны навыки хардкорного программирования, чтобы дополнить ваши навыки разработки веб-сайтов, и у вас есть время, чтобы сэкономить; Действуй. Если нет, не делайте этого. Вероятно, вам лучше поработать с Ruby/Rails.
Ответ 2
Бесконечная боль от надежной работы программ на C научит вас многому о том, почему PHP является более цивилизованным способом написания программного обеспечения.
И да, вы будете использовать его в конце концов.
Когда-нибудь вы столкнетесь с проблемой, не подходящей для PHP или Ruby. Вы сможете вернуться на C и выглядеть героем, потому что знаете что-то большее, чем другие люди.
Ответ 3
Джоэл Спольский призывает студентов-информатиков учиться C:
" Совет для студентов компьютерных наук" (январь 2005 г.)
Ответ 4
Не совсем. Во всяком случае, изучите C, потому что это весело, и отличный язык, чтобы помочь вам узнать больше о внутренних системах. Работа над веб-разработкой очень высока, и у вас не будет большого шанса действительно углубляться с системой. Использование C может помочь вам лучше понять, как инструкции выполняются на низком уровне, как работает управление памятью и как создавать много вещей, которые встроили PHP/Ruby.
Ответ 5
Я нашел его очень полезным, зная C как веб-разработчика. Например, одно веб-приложение, которое я написал, включает в себя фотогалерею. Он хранит фотографии за пределами веб-сайта, чтобы он мог проверить разрешения пользователя, прежде чем показывать фактические изображения.
В конце концов, я обнаружил, что накладные расходы для отображения страницы, полной миниатюр изображений, были невероятно высокими, используя веб-приложение на PHP. Итак, я переписал фактический код отображения фотографий в C как программу cgi, которая уменьшила накладные расходы почти до нуля.
Ответ 6
Изучение латыни имеет смысл для понимания структуры современных производных языков; поэтому в этом ключе я говорю, почему нет?
Ответ 7
Как утверждали другие, вы не можете использовать C, но по-прежнему существует ряд важных концепций, относящихся к компьютерам и информатике. Некоторые идеи могут быть получены из таких классических текстов, как C Programming Language, Kernighan и Ritchie.
Это включает
-
Пример очень хорошей документации и стиля письма при объяснении языка в кратком документе. Вы обнаружите, что полный язык объясняется в книге не более чем на 100 страницах. Сравните это с некоторыми из гробниц книг, проданных сегодня, которые позиционируют себя как преподавание языка и все же часто больше, чем повторные руководства по API.
-
Общие сведения о указателях, управлении памятью, массивах и символьных индексах. Вся хорошая информация, которая соответствует основным компьютерным предметам; хотя и низкий уровень, но достойная информация для профессионального программиста.
-
Своя легкая справочная книга. Снова вы не сломаете руку, поднимающую ее, и все же получите от нее много знаний.
В целом C полезен для тех случаев, когда вам действительно нужно приблизиться к машине или вам нужно расширить язык с помощью C-API.
Ответ 8
Я не думаю, что изучение любого нового языка - это "плохая" идея. В частности, для C это может только дать вам лучшее представление о том, как используемые вами языки запускаются "под капотом".
Ответ 9
Говоря по собственному опыту, поскольку я перехожу от Python к C (и обратно, woo!): Да - узнайте его.
Если вы еще этого не сделали, изучите фундаментальные структуры данных низкого уровня; изучите их хорошо.
Узнайте, что действительно делает HTTP-пост, возможно, напишите некоторые инструменты отладки низкого уровня для себя и других. Удивительно, как "под капотом" вы можете попасть в веб-разработку, когда можете написать модуль apache. (Хузза, ведровая бригада!)
Изучите in и out of setjmp/longjmp и, возможно, получите лучшее представление об обработке исключений - то есть о том, как это работает под капотом - на языках более высокого уровня.
Возможно, вам никогда не удастся написать строку кода C для веб-разработки, но если вы хорошо изучите язык, вы все равно будете давать себе преимущество. Просто будьте уверены, чтобы не срубить пальцы ног. (
Ответ 10
Вам, вероятно, никогда не придется использовать его, поэтому, если вы просто нацелитесь на "удобство использования", просто забудьте об этом. Тем не менее, обучение C - это хороший способ понять основные принципы программирования. Вы, вероятно, получите гораздо более глубокое понимание PHP и RoR бесплатно.
Как правило, если вы уверены в своих языках, нет - это не стоит цены;).
Ответ 11
Хотя я больше не использую C, мне полезно общаться с другими программистами на их языке. У вас может не быть опыта для решения конкретной проблемы самостоятельно, но вы можете говорить разумно тем, кто может.
То же самое происходит, конечно же.
И, как указано выше, C является основой почти любого другого языка, который пришел после него.
Ответ 12
Изучение нового языка всегда является приятным опытом и оказывает положительное влияние на то, как вы программируете.
Собираетесь ли вы использовать C в веб-разработке. Ответ, скорее всего, нет. Если вы не собираетесь кодировать расширение PHP или собственный веб-сервер.
Ответ 13
Всегда полезно изучать новый язык, поскольку вы уже используете инфраструктуру Ruby и Rails. Знание программирования на C пригодится, когда вы будете углубленно изучать язык написания Ruby, так как интерпретатор Matz Ruby или MRI написан на языке C. А также большинство веб-серверов написаны на языках программирования C и С++.
Когда у вас есть идея о том, как работают веб-серверы, у вас есть преимущество в создании масштабируемых приложений, а также сможете анализировать плюсы и минусы веб-серверов, над которыми вы развертываете свое приложение.
"Будь Джеком из всех, кого ты можешь быть магистром на любом языке программирования и в любой момент в своей карьере"....:)
Ответ 14
Изучение языков - это всегда хорошая идея. C отлично, потому что тонна языков официально или неофициально основана на нем, и знание того, что происходит на более низком уровне, может только помочь.
OTOH, чтобы действительно продвигать свои знания, я бы предложил изучить язык, который настолько резко отличается от того, что вы знаете, насколько это возможно - Erlang, LISP, Haskell, Smalltalk...
Ответ 15
Я скажу так. C - орехи. Это было написано за время до того, как люди думали полностью объектно-ориентированными способами. Это сорвет дерьмо из вас. Его трудно понять ПОСЛЕ изучения вещей так, как вы их знаете сейчас.
Но это очень полезно для понимания того, как все работает. Это отличный язык, который поможет вам перейти на другие языки, потому что большинство современных языков наследуют или строятся на нем (синтаксис, конструкции данных и т.д.).
Кроме того, как Ruby/Rails, так и PHP сильно основаны на C. Многие поддерживающие библиотеки написаны на C для этих языков. Его безумный быстрый, потому что он скомпилирован и довольно немного ниже уровня, имеет гораздо меньший API, чем PHP или Ruby/Rails.
Я бы определенно рекомендовал его изучить, даже если это просто для удовольствия изучать новый язык. Мой профессор всегда говорил мне: "Если вы можете дать мне руководство и проект, над которым стоит работать, и я изучу любой язык". Поэтому, если вы можете найти эти две вещи, пойдите для этого!
Ответ 16
Я говорю, говорю, говорю:
Да... но немного.
По крайней мере, некоторые самые основы: строки, манипуляции с указателями...
Даже если вы никогда не используете его, вы получите гораздо лучшее представление о проблемах производительности на языках с более высоким уровнем рычагов. Рассмотрим строки, с которыми мы работаем все время:
ссылки сложны Джоэлом Спольским
Ответ 17
Если вы узнаете, что есть большой шанс добиться успеха, в противном случае не будет никаких сомнений.
Ответ 18
Изучение языков никогда не бывает плохим. Но, как веб-разработчик, я думаю, что ваше время было бы лучше потрачено на хонингование по другой технологии. Я вникал в Rails и Java, но думаю, если бы я действительно хотел узнать что-то новое как веб-разработчик, я бы повсюду Django, движок Google, javascript, silverlight, flash... и несколько других технологий, прежде чем я даже подумал о c.
Ответ 19
На мой взгляд, для тех, кто пишет программное обеспечение, которое работает на компьютере, обучение C - это изучение латыни или греческого языка для ученого антропологии или литературоведения.
Значительная часть работы, которая была достигнута в разработке программного обеспечения сегодня, была выполнена на C, и это то, что вы действительно хотите узнать: это не столько о написании вашего программного обеспечения на C, а в том, что он может понять. И то, что возможно и что сделано. Были ли все, и почему мы все больше и больше перемещаемся от C во многих областях.
Счастливые Segfaults!; -)
Ответ 20
Альтернативные издержки обучения C высоки - вы можете научиться чему-то практическому.
Если вы являетесь веб-разработчиком и хотите продолжать быть одним из них, вероятно, вам будет более полезно узнать что-то более применимое к вашей области: Ruby и выяснить, как работает Ruby On Rails, Python и как работает Django, С# и как работает MSFT MVC. Или Flex. Или JavaScript и mooTools/JQuery.
Хотя вы можете получить множество базовых концепций компьютерной науки из обучения C, вам, вероятно, никогда не придется прикасаться к ним. Когда/если вы это сделаете, вы узнаете это.
Если вы хотите изучать информатику (не только немного низкоуровневое программирование), вы можете попробовать Project Euler или некоторые алгоритмы, действующие систем и т.д.