Дейкстра пишет здесь :
Помимо математической склонности, исключительно хорошее владение родным языком является самым важным активом компетентного программиста.
Я не понимаю последнюю часть этой цитаты. Можете ли вы объяснить или уточнить?
PS Я вырос в Индии. Я говорю по- бенгальски дома; Я говорю на маратхи в сообществе, в котором я живу; Хинди - национальный язык, на котором говорят очень широко, так что я знаю это, и в школе и колледже меня учили с английским языком в качестве первого. Конечно, теперь я думаю на множестве языков и должен признать, что не владею ни одним из них . Это действительно влияет на мои способности к программированию? Если да, то как? и есть ли решения ?
Ответы:
Хотя я согласен с тем, что сказал alex и fast_now, я считаю, что может быть и другое вращение. Это моя собственная теория, и я не предполагаю, что Дейкстра имел в виду то же самое.
Что такое «владение языком»: это способность взять основные строительные блоки языка и поместить их в конструктивные, полезные фразы и предложения. Алфавиты и символы сами по себе бессмысленны. Вы должны соединить их и извлечь из этого смысл. Слова сами по себе бессмысленны; только когда вы помещаете их в правильную последовательность, основанную на синтаксисе и грамматике, они выражают конкретные идеи.
Разве это не то же самое в компьютерном программировании? Мы собрали несколько ключевых слов и символов и сделали из них конкретные работоспособные вещи. Язык программирования имеет символы и грамматику, как и естественный язык. Владение языком программирования требует умения соединять эти (индивидуально бессмысленные) символы и правила, чтобы сделать что-то значимое и полезное.
Я полагаю, что это означает, что существует прямая связь между способностью человека изучать человеческий язык и компьютерным языком. Оба нуждаются в одинаковом наборе человеческих способностей и мыслительных способностей Посмотрите среди своих коллег, и вы обнаружите, что те, у кого плохие навыки программирования, также не могут говорить или писать так же ясно, как другие. У тех, кто хорошо разбирается в людских языках, есть навыки, необходимые для того, чтобы стать хорошими программистами.
источник
Дейкстра говорит, что вы должны уметь писать и говорить четко, кратко и убедительно на окружающем языке вашего рабочего места. Он совершенно прав: если вы не можете говорить и писать о технических (и нетехнических) проблемах так, чтобы другие могли их сразу понять, вам мешают и в некоторой степени неэффективны в качестве инженера-программиста.
Идея заключается в том , что писать о коде так же важно , как написание самого кода.
Итак, идеальный пример: сколько раз мы видели, как хорошие, острые, ценные вопросы были снесены или закрыты, потому что плакат не мог хорошо выразить себя на английском языке? Ответ: слишком много.
источник
Цитата говорит, что вам нужно знать свой родной язык (например, маратхи в вашем случае). Это важный актив.
Психологи обычно считают , что хорошее знание языка помогает вам лучше выражать свои мысли. Некоторые говорят, что все наши мысли ограничены нашим основным языком. Чем богаче язык (и его знание), тем лучше человек может общаться и структурировать идеи.
Знание нескольких языков помогает понять разные модели мышления.
источник
Если посмотреть на статью целиком, то это интересный список, но он датируется 1975 годом. Справедливо сказать, что в какой-то степени время изменилось за прошедший период, что делает некоторые части этого списка принципов несколько устаревшими.
Ключевым навыком, который, по моему мнению, должен иметь программист, является умение эффективно общаться. Это не просто объяснение; это означает понимание. Независимо от того, каким будет ваш рабочий язык, в вашем случае английский, хотя и не ваш родной язык, тем, кто испытывает трудности в эффективном общении на своем родном языке, не будет легче в другом месте.
В качестве общего замечания можно сказать, что независимо от вашего жизненного положения, если у вас возникнут трудности с вашим родным языком, вы окажетесь в невыгодном положении в повседневной жизни.
Я бы не стал разбираться в том, что он подразумевает под мастерством - основываясь на вашем вкладе выше, я подозреваю, что вы обладаете более чем достаточным знанием английского языка, и из этого я экстраполирую ваше эффективное общение на других ваших языках.
источник
Я подозреваю, что он имеет в виду хорошее понимание того, что от вас хотят люди - иными словами, хорошие способности к устному общению.
(Подчеркну: «Это означает, что в контексте программирования иногда нужно понимать, что люди НЕ говорят или что они говорят, но не очень четко».)
источник
Я думаю, что хорошо (любой) язык служит этому -
Если ваша точка зрения не ясна, вы можете подумать, пересмотреть, пересказать в улучшенной манере. Пока то, что вы говорите, не является тем, что вы хотите, чтобы следующий человек (или машина) понял.
источник