Почему начинающие программисты (как я) всегда спрашивают о следующем языке, который они должны изучать, вместо того, чтобы спрашивать о следующем проекте, который нужно решить?
Почему Эрик Рэймонд в разделе « Как стать программистом » своего эссе « Как стать хакером » рассказал о порядке, в котором вы должны изучать языки (в сравнении с порядком, в котором вы должны заниматься проектами).
Неужели начинающие плотники спрашивают: «Я знаю, как использовать молоток… Должен ли я научиться использовать пилу или следующий уровень?»
Я спрашиваю , потому что я нахожу , что почти любой значимый проект я заинтересован в решении проблемы (например , веб - приложение, набор инструментов анализа покер) требует , чтобы я узнал достаточно просто из множества языков (Python, C, HTML, CSS , Javascript, SQL) и фреймворки / библиотеки (wxPython, tkinter, Django) для их реализации.
Благодарность,
Майк
источник
Ответы:
Я думаю, что, когда большинство людей начинают изучать язык, они делают это, потому что хотят заняться проектом, написанным на этом языке, сейчас или в будущем. Для этого они должны выучить тот язык, который требует времени. Языки программирования похожи на инструменты, но, хотя вы можете научиться использовать молоток примерно за шестьдесят секунд, языкам требуется немного больше времени, чтобы научиться использовать; таким образом, многие люди сосредоточены на изучении языка, прежде чем сосредоточиться на работе над проектом, написанным на этом языке.
На другой ноте, я думаю , когда большинство людей спрашивают , на каком языке учиться дальше, они на самом деле имеют в виду , что проецировать учиться дальше, но они сосредоточены на первом изучении языка.
Наконец, изучение языков может быть увлекательным , даже если у вас нет конкретного проекта или цели.
источник
Мотивом многих разработчиков на полную ставку является повышение занятости.
Быть более трудоустроенным обычно означает преодоление препятствий для проверки кадров (а затем преодоление препятствий на самом собеседовании).
Типичный специалист по проверке кадров обычно имеет контрольный список языков, которые он может сопоставить с резюме, но не имеет возможности оценить навыки или проекты.
Успех в реальном собеседовании обычно больше зависит от удачи и минимальных навыков в языке, чем от опыта и глубокого понимания языка.
Следовательно, быть посредственным во многих языках лучше для трудоустройства, чем быть экспертом в нескольких, если только один не претендует на руководящие должности.
источник
Аналогичные варианты программирования для плотника: «Какое приложение я должен построить дальше?» или "Какую систему я должен построить дальше?" которые являются довольно действительными и отделены от проекта, который действительно может применяться практически повсеместно. У меня мог быть проект, чтобы изменить мою диету или потерять 20 фунтов так же легко, как у меня могло бы быть что-то, что требует написания нового программного обеспечения, чтобы связать вещи вместе.
Чтобы ответить на этот вопрос, я думаю, что идея состоит в том, что язык представляет собой инструмент в наборе инструментов этого человека, который может быть полезен в резюме. Некоторые люди могут стать программистом, чтобы оплачивать счета, и если так, то они могут спросить, какой следующий инструмент следует добавить, который часто будет языком, но есть и другие возможности, такие как изучение методологий развертывания, контроля версий, тестирования и разработки для Назовите несколько других областей. Если бы плотнику пришлось раскрыть, какие инструменты у него были, у него, возможно, была бы похожая точка зрения. Тем не менее, существует общий набор инструментов, которые, как предполагается, большинство плотников либо имеют, либо имеют доступ к ним, если они запрашиваются довольно быстро. Вы когда-нибудь видели, сколько существует различных видов пил и молотков для людей?
источник
Возможно, это отчасти из-за хакерского менталитета, по крайней мере, для некоторых программистов. Хакер определяется в файле Jargon как
Итак, для хакерской души, это больше об изучении и "освоении" процесса, концепций, инструментов и, да, языков создания чего-либо, чем самого конечного продукта. Подробнее о самом процессе.
Это постоянное стремление к следующей новой вещи и / или вызову. Законченный проект быстро теряет привлекательность. Иногда (большую часть времени?) Величайшие творческие или технические проблемы преодолеваются до завершения проекта. Многие проекты заброшены, когда ум, жаждущий новых умственных проблем, движется вперед.
Особенно хакеры интересуются новыми точками зрения, концепциями, абстракциями и способами мышления, разновидностью умственного взлома:
источник
На сегодняшний день существует множество дрянных языков: C, C ++, C #, Java, JavaScript, Python, Perl, Ruby, Visual Basic и т. Д. Программисты восполняют присущие им языки, изучая и смешивая многие из них. вместе.
Существует небольшое сообщество, известное как сообщество Lisp, которое свободно от безумия, которое пронизывает современные вычисления.
Поскольку Lisp является программируемым языком программирования, вы можете выражать в нем все свои идеи, не прибегая к другим языкам или другим форматам данных, таким как XML. Lisp может применяться везде, даже до аппаратного уровня, как мы видели на машинах Lisp .
источник
Потому что изучение нового языка программирования - это огромные инвестиции, и никто не любит делать плохие инвестиции.
Изучение нового языка программирования не сводится к запоминанию того, как писать циклические конструкции, объявлять классы, импортировать другой модуль ...
Вы должны знать, как написать идиоматический код на этом языке, и этот процесс действительно требует значительного количества времени и усилий. ,
Время - ограниченный ресурс, усилие - ограниченный ресурс, но отвлечение, ежедневный стресс, счета и спортивные игры по воскресеньям всегда рядом и с ними нужно жить.
Программисты хотят инвестировать с умом.
источник