Есть ли причина, по которой я не должен начинать с С#

Я думаю, что я склоняюсь к С# и .net как к языку концентрации для изучения веб-разработки. Я хотел бы изучить хорошие основы программирования, и я просмотрел почти все остальное. Четверо меня сузили до С#, Python, Ruby и PHP. Есть ли причина держаться подальше от С# (и я не думаю, что проблема с затратами действительно применима к моей ситуации сольного разработчика, но я мог бы быть абсолютно неправ). Любые мысли?

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

Ответ 1

Если вы идете с С# для веб-разработки, в зависимости от вашего опыта работы с веб-технологиями, я бы от всей души рекомендовал начинать с ASP.NET MVC до веб-форм ASP.NET.

ASP.NET Web Forms - это оригинальный стиль создания приложений ASP.NET и пытается абстрагировать множество деталей. Он позволяет создавать приложения, не осознавая, что происходит под капотом (почтовые данные, управление государством). На мой взгляд, эти абстракции, хотя и упрощают задачу, сначала начинают "течь", когда вы переходите к более сложным сценариям (как этот урок доказывает).

ASP.NET MVC, с другой стороны, упрощает создание веб-сайтов, которые намного "ближе к металлу", в то же время сохраняя вы продуктивны. Если вы хотите полностью контролировать полученный HTML-код и не боитесь таких вещей, как куки файлы, создавать теги, столбцы и строковые данные запроса, тогда вы можете наслаждаться ASP.NET MVC намного больше.

Конечно, было бы полезно знать оба. Но если бы я начинал сейчас, я бы, вероятно, начал с MVC и перешел в Forms (тогда понял, насколько он плох и движется назад:)).

Ответ 2

Это, скорее всего, приведет к flamewar, но я думаю, что С# - очень хороший язык для начала в Web Development.

Это полнофункциональный объектно-ориентированный язык, который статически типизирован и скомпилирован. Он очень хорошо документирован и имеет огромное сообщество разработчиков.

Если вам абсолютно необходимо работать с Linux/Apache и не хотите использовать Mono, это было бы причиной не использовать С#. Кроме этого, я не думаю, что есть веская причина не в этом, особенно в ASP.NET MVC, который позволяет вам отойти от модели WebForms.

Это не означает, что WebForms обязательно плох, но некоторые могут возражать против WebForms, поскольку он вводит абстракции, которые не присущи другим платформам веб-разработки.

Ответ 3

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

Поскольку ваш вопрос "почему бы не узнать С#" , я бы сказал:

  • Если вы планируете работать с другими ОС, то Windows (Mono не может сравниться).
  • Если работа в режиме env или с людьми не поддерживается .net(например, банк, ученые)
  • Если вы работаете в env или с людьми, которые являются экспертами в другой хорошей технологии (никогда не недооценивайте использование хорошего мастера).
  • Если вы считаете, что свободное программное обеспечение так важно, что использование продукта MS не стоит того.
  • Если вам не нравится MS Visual Studio (работа в С# без хорошей IDE - это боль).
  • Если вы планируете запрограммировать что-то, что .net не подходит (например, встроенные устройства, сценарии, система реального времени, отказоустойчивая система, AI и т.д.).
  • Если вы являетесь веб-разработчиком и не можете позволить себе лицензию Windows Server.
  • Если вы хотите научиться программированию с помощью самых простых функций, включая простые функции и быстрые и грязные скрипты.

Теперь я программирую на Php, Python, Java и С#. Python - мой язык выбора, но С# - это действительно первый инструмент программирования MS, который соблазнил меня: он чист и эффективен. Действительно, это о том, что вы хотите сделать, а не о религии.

Сделайте ВАШ выбор.

Тем не менее, С# сосет и скалы Python.

Ответ 4

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

Еще одна проблема, если вы смотрите на мультимедийные материалы в Интернете, вам нужно рассмотреть Flash и/или Silverlight. Если вы перейдете на С#, то вы можете использовать Silverlight, не изучая другой язык.

Ответ 5

Не беспокойтесь о стоимости. Компилятор может использовать вместе с остальной частью Fx SDK, и вы даже можете бесплатно загрузить Visual Studio.

Ответ 6

Недостаток обучения С# заключается в том, что он связывает вас с запатентованной платформой и стеком программного обеспечения. Теперь есть Mono, который неплохо выполняет большую часть С# и .Net, но основная и самая полная реализация - это Microsoft, который является несвободным.

Я не использовал С# достаточно, чтобы обсудить его технические достоинства в отношении Ruby или Python. Я могу сказать, однако, что обучение использованию и даже внесение обратно в бесплатное программное обеспечение может быть довольно образовательным, в дополнение к другим преимуществам (обсужденным в другом месте), которые предоставляет бесплатное программное обеспечение.

Ответ 7

С# - хороший язык для начала, потому что:

  • Это очень хороший и очень чистый язык.
  • У него отличная библиотека (.NET framework). Это одна из самых важных вещей, которые следует учитывать при выборе языка.
  • Он очень популярен, вы всегда сможете найти ответ, который вы ищете от сообщества.
  • Если вы знаете С#, вы в значительной степени знаете VB.NET.
  • С# синтаксически похож на Java. Изучение С# не научит вас Java-библиотекам, но значительно сократит кривую обучения, если вы хотите войти в лагерь Java.
  • С# синтаксически похож на С++. Опять же, он использует другую библиотеку, и в отличие от С++ вы получаете управление памятью; но кривая обучения должна быть несколько уменьшена, если вы решите играть с С++.

Что касается Интернета...

Веб-формы ASP.NET делают для вас много волшебства. ASP.NET MVC (только что выпущенный) почти не приносит вам магии. Для обучения MVC - лучший выбор.

Ответ 8

С# - отличный язык для использования. А поскольку вы используете его через веб-приложения, а не настольные приложения, например, вам не нужно беспокоиться о том, чтобы быть мультиплатформенным, так как код запускается на вашем сервере и выводится клиентам. С учетом сказанного вам нужно будет найти Windows-хостинг (который иногда может быть немного дороже) или использовать моно (который не является самым последним обновленным программным обеспечением там). Недостатки минимальны, хотя, возьмите копию экспресс-издания и идите за ней!

Ответ 9

Я думаю, что стоимость развертывания может быть другой, т.е. если ваш проект должен масштабироваться горизонтально и добавить больше серверов для балансировки нагрузки или даже для географически распределенных серверов. Обычно хостинг Windows будет работать чуть больше, чем Linux (даже не учитывая причины пламенных войн).

Ответ 10

С# отлично подходит для запуска, если вы занимаетесь веб-разработкой. Однако я рекомендую вам не начинать программирование с веб-разработки. Веб-разработка трудно понять. Путь сложнее, чем немного вещей в командной строке. Я рекомендую вам получить хорошее программирование для командной строки, а затем перейти к графическому интерфейсу, а затем перейти в Интернет. В Интернете есть целая куча вещей, о которых вам нужно беспокоиться. Вы должны знать 3 языка (HTML, JS, С# (или вставьте свой серверный язык здесь)). Кроме того, вам нужно беспокоиться обо всех приключениях и т.д. И это даже не попадание в базы данных. Обычно это используется в большинстве веб-приложений, но открывает целую другую червь червей.

Ответ 11

Учитывая все ответы до сих пор, я думал, что посмотрю на все упомянутые четыре языка.

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

Python - отличный язык, но для меня Ruby - это все, что Python и немного больше. Лично я пошел бы за Рубином.

С# тоже отличный язык, но пока я не использовал С#, чтобы сказать что-либо с уверенностью, я считаю, что Ruby - лучший выбор.

Ответ 12

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

Проприетарная вещь будет рассмотрена, если вы программируете как хобби или вне своего ограниченного бюджета, или хотите внести свой вклад в разработку компилятора/языка. Я предполагаю, что это не так. (Изменить: как указывали другие, существуют среды с открытым исходным кодом для С#.)

Ответ 13

Это зависит от нескольких вещей. С# и .Net заполняются, и th инструменты действительно очень легки (по сравнению с Java! Java-разработчиком, говорящим здесь...), но Windows Hosting является дорогостоящим против LAMP (включая Ruby, Python и PHP).

Для меня все зависит от инструмента, который вы хотите использовать. Для веб-сервисов и т.д. Я бы использовал С#, но для простого веб-сайта PHP с его легкостью.

Это также зависит от рынка труда вашего местоположения... здесь, в Южной Африке, вы получаете гораздо больше вакансий на С#, а не много PHP и т.д. Конечно, если ваш внештатный сотрудник будет изо всех сил пытаться найти работу.

Для меня Ruby снова хорош для моих личных вещей, но вы не получаете никаких работ Ruby здесь.

Ответ 14

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

ASP.net(С#) и Ruby on Rails используются в высокопрофильных сайтах, поэтому вы не можете ошибиться ни с одним из них. Могу ли я также предложить вам попробовать программирование на Python с помощью django? Это то, что я предпочитаю для веб-программирования.

Ответ 15

Я разработчик С#.Net, и я думаю, что это здорово, но я выделил бы опасность в WebForms Asp.Net. Это в отличие от большинства других веб-фреймворков и делает много магии под обложками. Как утверждают другие, ASP.Net MVC, вероятно, более тесно связан с другими веб-фреймворками (например, Rails). Веб-формы аннотируют много гаек и болтов webdev, которые, если вы хотите стать веб-разработчиком, вам в конечном итоге нужно будет знать. Итак, да С# отлично, но я бы начал с MVC, а затем посмотрел на веб-формы. Также смотреть на другие языки и рамки настоятельно рекомендуется всегда учиться.

Ответ 16

Коммерчески я разработчик С#. Я люблю С#. С# - отличный строго типизированный язык. С установкой Resharper я могу быстро выстроить свои идеи в коде и свести его к своей воле.

Когда я возвращаюсь домой каждый вечер, я использую Ruby. Несмотря на то, что у меня нет поддержки рефакторинга (snif.), Я считаю, что я намного более продуктивен в Ruby, чем в С#.

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

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

Еще одна вещь, которую следует учитывать (в том, что касается выбора языка для изучения), - это то, что ruby ​​является объектно-ориентированным языком. Даже классы - это объекты. С# - ориентированный на класс язык, т.е. он предоставляет вам один способ создания объектов. Сначала определите класс. (не совсем верно.. вы можете генерировать сборки в памяти, используя codedom.. но это отнюдь не просто).

Это может показаться тонкой точкой, но есть разница. И пока вы не получите опыт работы с языком OO, вроде ruby ​​или smalltalk, это не очевидно, что это такое. Как только вы почувствуете свободу создания объектов, смешивая функциональность во время выполнения и т.д., Вы обнаружите, что все "работа, которые вы должны были делать на С#, исчезают. Не имея защитной сети интерфейсов, сначала кажется страшным.

В общем, я бы изучил рубин.

  • Если вы новичок в программировании (полностью), я бы начал с http://pine.fm/LearnToProgram/
  • Затем я узнал бы BDD (RSpec) и заразился бы как можно скорее.
  • Затем я бы использовал рельсы и скриншоты, пока мои глаза не появятся.

Единственная проблема в том, что.. если вы начнете с ruby, а затем перейдите на С#, вы обнаружите, что собираетесь "Aaaaagh! Это было бы намного проще сделать в рубине" все время. Я знаю, что знаю.

Ответ 17

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

Просто мое наблюдение...

Ответ 18

Никаких недостатков, кроме того, что вы будете нежелательны в тех социальных группах (и даже географических регионах), которые выступают против "злого Microsoft".

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

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

Учитывая затраты на лицензирование, вы можете рассмотреть следующее: если это небольшой сайт, вы можете бесплатно пользоваться Visual Studio Express/SQL Server Express, и этого будет достаточно. Если вы придумаете какой-то крупный проект с крупными жертвами торговли людьми, вы, скорее всего, найдете способ заработать и покрыть расходы на лицензирование.

Ответ 19

Обучение С# велико в 2009 году.

Вернувшись в тот же день, когда я вошел в профессиональный мир, языковой пейзаж был совсем другим. Я профессионально кодировал C и Modula 3 (язык замены Pascal).

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

Изучение нескольких платформ - отличный способ добиться этого. Например, вы могли бы использовать С#/.NET в качестве своего основного навыка, но также работать с JAVA. Когда появляется новая платформа, вы можете добавить ее в качестве своего набора навыков перехода или резервного копирования.