За несколько лет программирования я играл со всеми, от Ruby до C ++. Я сделал все, от простого изучения базового синтаксиса (Ruby) до завершения нескольких крупных (для меня) проектов, которые расширили мои возможности языком. Учитывая это разнообразие (и тот факт, что истинное изучение языка никогда не прекращается), когда я могу сказать, что знаю (или выучил) язык?
programming-languages
SomeKittens
источник
источник
Ответы:
В какой момент вы можете сказать, что вы «выучили» такой язык, как английский или французский? Я думаю, что большинство людей признают, что вы выучили язык, когда вы можете использовать его для общения. Вам не нужно знать каждое слово или понимать каждую идиому, но вы должны знать большую часть (довольно небольшого) подмножества языка, который люди используют в повседневной беседе. «Выучив» язык до такой степени, вы можете продолжать изучать больше, если ежедневно используете язык и подвергаете себя все большему и большему его изучению. К тому времени, когда ты умрешь, ты еще не будешь знать все, что нужно знать о языке, но никто не скажет, что ты никогда не "изучал" язык.
Так же, как я думаю, с компьютерными языками. Вы можете сказать, что «знаете» такой язык, как C ++ или Ruby, когда можете писать на нем полезные программы. Если вам нужно определить степень, в которой вы знаете язык, используйте те же термины, что и для человеческого языка. Скажите «Я немного знаю С ++», «Я знаю разговорный С ++» или «Я свободно владею С ++», чтобы обозначить, что вы знаете достаточно, чтобы пролистать, достаточно, чтобы сделать полезные дела, или что вы эксперт, соответственно.
источник
using
в C # илиb, a = a, b
и генераторы в питоне. В противном случае +1.Это зависит от того, кто спрашивает
Человек, который спрашивает правдоподобно, имеет определенное представление о том, какой уровень квалификации ожидается от того, кто говорит, что он «выучил язык».
По сути, я столкнулся с двумя архетипическими шкалами, по которым люди судят об ответе на вопрос "ты изучил Х?"
Для большинства ботаников это вопрос с подвохом, чтобы отсеять позеров. Это уже продемонстрировано другими ответами на ваш вопрос;). Если вы говорите, что выучили его, вы не видите объема задачи, которая неявно является «совершенством», и, что еще хуже, вы терпите неудачу в смирении.
Для большинства боссов вы «выучили это», если вы можете решить их проблемы , критерий часто уже встречался, если ваш код компилируется. Смиренный ответ на его вопрос приведет к тому, что он назначит задачу проблемнику, который также может быть родственником.
Итак, какова ваша аудитория?
источник
Я думаю, что люди сосредотачиваются на окончательности слова «выученный» , которое означает « совершенное время», это означает, что вы закончили учиться. И, как все отмечали, языки программирования - это живые существа, как и разговорные языки. Например, тот, кто полностью овладел C # 2, посмотрел на C # 3 с помощью LINQ, Lambdas,
var
ключевого слова, инициализаторов объектов / коллекций и методов расширения и обнаружил, что многое изменилось по сравнению с тем, что он изучил в предыдущей версии. То же самое происходит с C # 4await
,async
ключевыми словами и другими новыми языковыми конструкциями.И мы просто говорим здесь синтаксис. Мы забываем, что большинство языков в паре с каркасом . C # имеет платформу .NET, Java имеет собственную структуру, как и Ruby, C ++, PHP и PERL. Думайте о структуре языка как о словаре, а сам язык - просто синтаксис. Знание языка означает, что вы знаете, как составить предложение на этом языке. Знание основы означает, что вы можете хорошо выразить себя на языке. Наконец, когда вы знаете синтаксис и словарный запас, вам нужно выучить идиомы, чтобы писать код как «носитель языка».
Я бы сказал, что есть несколько уровней обучения.
источник
await
из C # 5, главной новой вещью в C # 4 былаdynamic
.Вы редко можете сказать, что выучили язык. Это означает, что вы уже узнали об этом, что ... глупо.
Сказать, что вы знаете язык, - это хорошо, когда вы можете писать код, который явно не нарушает идиомы языка (возможно, после недели уничтожения знаний) без ссылки на синтаксис.
источник
Это скорее фактор, основанный на мнении. Во всех технических терминах «Изученный» будет означать, что вы обладаете полным знанием того, что и вы должны знать ВСЕ о языке.
Тем не менее, в мире программирования я считаю, что это больше, если вы можете свободно программировать на языке, чтобы выполнить задачу / задачу. Это также, вероятно, означает, что вы знакомы с языком. Конечно, вы могли бы пойти туда и получить диплом после нескольких лет колледжа, но это только чтобы быть замеченным? Вы определяете, когда вы можете сказать, что выучили язык.
источник
Когда вы начинаете замечать его недостатки. Как только вы начинаете изучать язык, вы, как правило, все еще заняты изучением того, чтобы делать что-то, или сильно вовлечены в него, чтобы замечать, где он терпит неудачу (конечно, если вы не начнете изучать его с негативной точки зрения, просто чтобы увидеть, насколько он хуже это по сравнению с вашим любимым языком до сих пор). Я бы сказал, что вы по-настоящему не знаете язык, пока не осознаете области, где он не работает.
источник
Мой личный ответ на это когда,
С этого момента я бы не назвал это обучением, но мастерством.
источник
В тот момент, когда ваше приложение или компонент может читать почту, то есть закон Завински , который гласит:
Это было обновлено, когда RSS стал популярным для "... может читать RSS-каналы" и, вероятно, может быть обновлено в эти дни на "... может читать Twitter-каналы". ;-)
источник
Я думаю, что вы выучили язык, когда вы его не видите. Вы видите не циклы и обращения к данным, а рабочий процесс алгоритма.
Вы не разыгрываете трюки с передачей параметров и обработкой массива, магическими макросами. Вы не думаете о своем коде как о самом маркетинговом материале, который вы хотите показать своим друзьям и учителям, а о том, как выразить свое понимание проблемы и свою волю компьютеру наиболее читабельным способом.
У вас есть привычки, которые помогут вам избежать множества ошибок, просто следуя им, например: используйте {} блоки кода и () в выражениях, даже если вы абсолютно уверены, что «это будет только одна строка» или «я не дурак и знаю порядок приоритета оператора ".
Вы перестаете считать, сколько классов, шаблонов и API интерфейсов вы знаете. Это то, что intellisense, ссылки и учебники, и Google для. Но когда вы смотрите на проблему, вы сразу же знаете, на какие части ее можно разделить, и какими инструментами и алгоритмами вы их решите.
То, что вы делаете, работает , элегантно и мало . Вы наслаждаетесь кодированием и легко находите свои ошибки. Да, мастера также делают ошибки, потому что они люди - но они находят их быстро, потому что их структура кода приводит их в нужное место.
И, наконец, осознайте: вы научились думать, анализировать и решать проблемы; по сравнению с ними реальный язык является второстепенным, просто текущая коробка правил и инструментов.
источник