Я новичок в Python, и мне очень нравится это до сих пор. Один вопрос, который мне приходит в голову очень часто, заключается в том, нужно ли мне понимать и, следовательно, изучать внутреннее пространство языка программирования (как в моем случае Python). Как вы, возможно, знаете, сам Python написан на C.
Итак, мой вопрос: насколько глубоко нужно погрузиться в язык программирования, чтобы хорошо владеть этим языком или свободно владеть им. Я сравниваю этот вопрос с «естественными» языками. Я не знаю каждой детали грамматики на своем родном языке, но я могу выразить себя без проблем на этом языке. Это когда я говорю, что я свободно говорю на языке. Это относится и к языкам программирования?
programming-languages
python
knowledge
Фло Шенфельд
источник
источник
Ответы:
Вам не нужно ничего знать о внутренностях языка программирования, чтобы писать программы на этом языке. Однако, чем лучше вы понимаете язык, тем лучше будут ваши программы.
Знание структур данных и алгоритмов поможет вам выбрать структуры данных, которые наиболее подходят для вашей конкретной задачи. Некоторые языки обладают этими структурами данных внутри.
Понимание «культуры» языка помогает вам писать программы, которые следуют «наилучшим методам», делая их более понятными, более понятными и более эффективными.
Написание компилятора для этого языка (или компилятора для другого языка на этом языке) может дать вам глубокое понимание языка и улучшить ваши программы, не будучи просто средними.
Знание других языков (особенно языков другой парадигмы) делает вас лучшим программистом на вашем основном языке, потому что вы можете использовать эти навыки и инструменты на своем основном языке.
Как следствие, вам не нужно ничего знать о вашем компьютере, чтобы писать программы на нем. Но знание того, как работает ваш компьютер, помогает лучше писать программы для него.
источник
Проще говоря, да. До тех пор, пока вы можете хорошо выражать свои мысли (и понимать других), вы будете свободно владеть языком.
Тем не менее, просто бегло не достаточно для некоторых работ. Некоторым авторам, работам, которые требуют образцовых навыков публичных выступлений, и некоторым ученым, которые сосредоточены на языке, нужно знать его «лучше, чем бегло». Аналогично, некоторые специальности программистов требуют знания внутренних языков, но для большинства людей достаточно знания языка программирования, эквивалентного тому, как спрашивать ее номер или заказывать чизбургер.
источник
Я бы определил «опытный» с языком как:
Обратите внимание, что то, как работает язык, не входит в этот список, но есть много «способностей к обучению». По крайней мере, поверхностное понимание внутренних органов может быть полезным, но не обязательно, чтобы быть опытным. Однако, зная о них достаточно, чтобы вы могли понять любые ссылки в документации, которую вы читаете, это очень хорошая идея.
Например: я знаю, что и VB.NET, и C # компилируются в IL .NET (Intermediate Language) .NET, который затем компилируется для целевой платформы. Я не знаю много о IL, но знаю достаточно, чтобы распознать его, когда увижу, и понять в общем смысле, как он справляется с определенными вещами. Я считаю себя опытным в C #, но не в VB.NET, несмотря на то, что «внутренности» одинаковы, и мое понимание их не глубокое.
источник