Преимущества изучения языков, которые Вы не будете использовать [закрытый]

Да, правильно. Если Ваш список сотрудников будет иметь 10 000 записей, и только 5 записей имеют employeetypeID в (1,2,3), то это будет, скорее всего, использовать индекс для выборки записей. Однако, если это находит, что 9 000 записей имеют employeeIDType в (1,2,3), тогда это, скорее всего, просто сделало бы сканирование таблицы для получения соответствующего EmployeeIDs, поскольку это быстрее только для пробежки целой таблицы, чем перейти к каждому ответвлению индексного дерева и посмотреть на записи индивидуально.

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

Select EmployeeId From Employee WITH (Index(Index_EmployeeTypeId )) Where EmployeeTypeId IN (1,2,3)

Принятие индекса, который Вы имеете на поле EmployeeTypeId, называют Index_EmployeeTypeId.

17
задан borjab 13 July 2009 в 14:49
поделиться

19 ответов

IMHO, все дело в изучении новой парадигмы программирования. Если вы знаете Java, а затем C #, вы не получите особого преимущества, поскольку оба они имеют почти одинаковый «тип программирования».

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

Это что-то вроде: « Это так легко сделать на {другом языке, который вы выучили}. Должен быть способ лучше чтобы сделать это на {языке, который вы уже знаете} ". А затем вы переосмысливаете и создаете более элегантный способ сделать это на {языке, который вы уже знаете}.

20
ответ дан 30 November 2019 в 11:08
поделиться

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

Мне также нравится то, что все говорят о перспективах программирования.

0
ответ дан 30 November 2019 в 11:08
поделиться

Я потратил некоторое время на изучение clojure, хотя знал, что не буду использовать его в ближайшем будущем (в основном потому, что я не могу развернуть его на JVM).

У него есть концепции, которые не поддерживаются используемыми мной языками (C # / C / C ++ / Python / Perl), и я хотел знать, чего мне не хватало, а также, стоит ли изучать библиотеки, которые претендуют на добавление этих функций.

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

0
ответ дан 30 November 2019 в 11:08
поделиться

Какие преимущества изучения математики или физики, которые вы не будете использовать, или преимущества изучения философии или мертвых языков?

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

0
ответ дан 30 November 2019 в 11:08
поделиться

Это полностью субъективно, но когда-то, когда, пройдя курс бакалавриата по Haskell, я заметил, что мой стиль программирования на C на какое-то время стал более «похожим на Haskell»; Я использовал множество простых рекурсивных функций. Я также заметил, что этот стиль программирования, похоже, дает некоторые из тех же преимуществ, что и программирование на Haskell; ошибок было меньше, код легче понимать (хотя и медленнее).

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

0
ответ дан 30 November 2019 в 11:08
поделиться

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

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

0
ответ дан 30 November 2019 в 11:08
поделиться

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

0
ответ дан 30 November 2019 в 11:08
поделиться

В разных языках есть разные способы реализации одних и тех же идей. Изучая новые языки, вы получаете другой взгляд на то, как можно достичь желаемого, и затем может использовать эти знания для подхода к программированию в текущей среде. Подумайте об объектно-ориентированном и функциональном программировании. ОО Программисты могут многое узнать о парреллизации из таких языков, как C.

0
ответ дан 30 November 2019 в 11:08
поделиться

Изучение языка, особенно языка, использующего новую парадигму, очень полезно для каждого программиста. Например, изучение схемы поможет понять функциональное программирование. Позже программист может практиковать то, что он / она изучил, на других языках, таких как C #. Она может придумать новые способы ведения дел.

Кроме того, по мере развития языков высока вероятность того, что язык, который вы используете, перенимает некоторые особенности других языков. Изучив себя Ruby, я смог гораздо легче понять изменения в C # 3.0.

0
ответ дан 30 November 2019 в 11:08
поделиться

Если вы доверяете ребятам из Pragmatic Programming , примите во внимание их совет со страницы 14 их первой книги :

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

1
ответ дан 30 November 2019 в 11:08
поделиться

Some examples that come to mind:

Knowing C and having to deal with memory management and do-it-yourself data structures can help you understand performance issues when programming in a higher level language where those details are hidden from you.

Conversely, learning an OO language can affect your C programming - with, for example, the concept of Polymorphism prompting you to use function pointers in ways you might not have otherwise.

Learning a language where functions are first class objects that can be passed around can make you think of similar techniques in other languages, even if, in those other languages, you have to make the functions methods in objects that get passed around.

Learning about the way Erlang handles concurrency can make you rethink how much shared state you use between threads in other languages.

Any language that has a built-in feature you find useful can prompt you to implement your own version of that feature in another language that doesn't have it, and thus allow you to solve problems in ways you might not have thought of if you hadn't been exposed to the feature in the language that has it built-in.

Learning about Interfaces in Java can make you think about the benefits of precisely specifying your (small "i") interfaces in other languages that don't have them as a formal construct in a type system.

No doubt there are others.

1
ответ дан 30 November 2019 в 11:08
поделиться

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

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

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

1
ответ дан 30 November 2019 в 11:08
поделиться

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

здесь есть некоторые ссылки на исследования

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

1
ответ дан 30 November 2019 в 11:08
поделиться

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

1
ответ дан 30 November 2019 в 11:08
поделиться

Большой побочный эффект изучения новых языков - это возможность применения на вашем существующем языке.

Например, я программист на Java, и я потратил время на изучение своего первого функционального языка (Haskell). Недавно меня попросили изучить Scala для будущего проекта. Это очень просто, поскольку я понимаю принципы защиты, рекурсии и т. Д. Из Haskell.

2
ответ дан 30 November 2019 в 11:08
поделиться

У меня нет веских доказательств, но я действительно ценил другой взгляд на проблемы, который у меня есть с тех пор, как я изучил lisp (то же самое касается python и c).

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

Хорошие примеры - функциональные, императивные, объектно-ориентированные и т. Д. общие дизайнерские различия интерпретируются по сравнению с компилируемыми языками; статическая или динамическая типизация и т. д.

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

11
ответ дан 30 November 2019 в 11:08
поделиться

Some good points have been made.

I would add that learning languages you won't use in production work can be of value

  1. To better appreciate and absorb the arguments and methods in texts and papers that will improve programming ability in languages I do use for production work (e.g. MIX/MMIX for Knuth's Art of Computer Programming; RATFOR for Kernighan and Plauger's Software Tools; I still use some ALGOL-based syntax for some pseudocode although I never wrote runnable code in ALGOL outside University)

  2. To be able to check or prototype programs that will be written in a different language (e.g. some routines for numerical computing in C can be quickly checked or scaled using languages that have appropriate functionality built in such as Fortran, Python or Haskell)

  3. Learning a new language can give insight as to how it could be used to more easily solve problems that were put to one side because of time or complexity constraints.

0
ответ дан 30 November 2019 в 11:08
поделиться

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

3
ответ дан 30 November 2019 в 11:08
поделиться

Программирование - это способ мышление, а не написание кода на языке программирования X : это «кодирование», а не «программирование».

Зная хотя бы что-то о более чем одном языке программирования - предпочтительно в разных парадигмах, так что настоятельно / ООП / функциональный / логический - вы тренируете этот образ мышления о проблемах вне контекста конкретных деталей и особенностей языка X .

Я думаю, что это всегда улучшает ваши способности быть (приходить) намного лучше программиста.

3
ответ дан 30 November 2019 в 11:08
поделиться
Другие вопросы по тегам:

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