Изучение нового языка похоже на изучение нового языка.

Я начал изучать Python в прошлом году в рамках онлайн-курса Искусственный интеллект на онлайн-платформе Колумбийского университета. Назначенный язык для курса - Python. Я только начинал понимать Python, а потом у меня появилась возможность сделать свою первую внештатную работу. Единственная загвоздка заключалась в том, что это должно было быть в Groovy (настоящее имя), построенном поверх Java. Это был лихорадочный порыв, чтобы иметь возможность программировать что-то на новом языке, но я справился с этой задачей благодаря нашей национальной изоляции.

Сходство между началом с нуля в программировании и началом с нуля в новом разговорном языке было поразительным. Достаточно сверхъестественно, что вы можете найти его в Google и найти множество интернет-артефактов, используя одно и то же сравнение. Вы используете неправильные слова, ваша память превосходит самые простые операции, но вы все еще не в восторге от того, насколько сложным будет финальное сообщение. Ваша первая работа — это точно не поэзия или, по крайней мере, не намеренная поэзия.

Моя старшая школа выбрала короткую соломинку, и мы программировали на ныне почти забытом языке программирования с ироничным названием Delphi. Учитывая школьную программу, я чувствовал себя гением программирования, изучая все, вплоть до функций и массивов. Трюк с некоторыми курсами университетского уровня заключается в том, что вы проходите через работу уровня средней школы в первой главе. В мире разработки программного обеспечения для больших мальчиков нужно было еще многому научиться.

Выбор программного обеспечения для изучения является часто обсуждаемой темой на форумах, веб-сайтах и ​​среди программистов-ютуберов (таких как Mosh, Tech Lead и все другие). Судя по погружению пальцев в разговор, кажется, что все языки эфемерны. Ни один язык не остается неоспоримым в одной области в течение длительного периода времени. Разработчики языков соперничают за большую часть рыночного пирога, и во многом это доминирование зависит от технологий. Если Apple или Android поддерживают какой-либо язык, будет соответствующий всплеск (см. Swift), машинное обучение и Python идут рука об руку, а поддержка JavaScript в браузерах сделала его явным победителем. Лучшие претенденты поднимаются на вершину за счет использования разработчиками.

Несмотря на то, что на заднем плане гремит гладиаторская борьба за использование, между живыми языками все еще существует большая часть общего. Перенос моих первоначальных знаний о Delphi на Python, а затем обоих предшественников на Java очень помог. Органический рост языков программирования, кажется, также имеет некоторое сходство с разговорными языками. Переход с Python на Java похож на переход с французского на итальянский. Французский и итальянский — романские языки, а Python и Java — объектно-ориентированные. Общее происхождение помогает передавать знания.

Вдобавок ко всей этой борьбе вам, возможно, придется вернуться и изучить менее популярные, менее обсуждаемые языки, а не просто скачайте их с GitHub. Питер Норвиг сообщил, что будучи настоящим профессиональным программистом, вы читаете много чужого кода и будете участвовать в групповых проектах, поэтому желательно получить в них некоторый опыт. Прочтите статью, которую он написал о том, как стать разработчиком программного обеспечения за 10 лет в качестве контраргумента всем нашим [вставить сложный новый язык] за [произвольное количество] [произвольная мера времени] книги. Устаревшие системы широко распространены в промышленности, и чужое программирование (иногда плохое программирование) также широко распространено.

Существуют сотни языков, предназначенных для различных целей, с доминирующей группой из 20 языков наверху. Глядя на все доступные разнообразные и яркие языковые культуры, можно, вероятно, захотеть общаться как с носителем языка, но для этого нужна практика. Тяжелая повторяющаяся, рутинная, монотонная практика. Я нашел Sololearn полезным как приложение для уроков по размеру байта. Это отличная альтернатива просмотру бессмысленных групповых сообщений WhatsApp, разоблачающих развратные действия правительства в связи с блокировкой. Я также обнаружил, что, помимо таких приложений, как Sololearn, мне все еще нужно выделять жирный кусок времени, чтобы вонзить свои зубы программирования в любую проблему на любом языке.

Натыкаясь на работу с подходом гугления, githubing, попытки с нуля, неудачи и попытки снова; Я дошел до производства чего-то, что должно работать на внештатной работе. Я отправил код и теперь жду отзывов об интеграции.