Как освоить новый язык программирования за одну ночь?

      Комментарии к записи Как освоить новый язык программирования за одну ночь? отключены

Как кое-какие разработчики осваивают новый язык программирования за одну ночь? Собственными рекомендациями поделились пользователи сайта Quora. Самые занимательные ответы — в отечественном материале.

Боб Кернс, разработчик и программист языков программирования, стаж 45 лет

В общем, языки программирования не так сложны. Стоит лишь освоить пара языков, осознать неспециализированную идею и останется только запоминать правила синтаксиса и ключевые слова. Значительно больше трудностей приводят к сложным интерфейсам программирования приложений (API).

Еще более сложными являются среды исполнения языков. Это тот комплект API, что идет вместе с языком – заберите, к примеру, Java. Перечень пакетов классов занимает несколько страницу. Я тружусь с Java уже около 20 лет. И все еще остаются части библиотеки рабочих программ, с которыми я не знаком. Кое-какие из них новые, кое-какие ветхие, а я их легко ни разу не применял.

Экосистемы (дешёвые библиотеки) кроме того сложнее. Никто полностью не знает экосистемы таких устойчиво функционирующих языков, как Java либо JavaScript. Они растут и развиваются стремительнее, чем человек способен отследить.

Google и сарафанное радио тут именно кстати.

Как освоить новый язык программирования за одну ночь?

Дэйв Бэггет, сотрудник №1 в Naughty Dog; учредитель ITA Software

Любой опытный программист, в котором имеется хоть капля здравого смысла, знает, как начать делать что-то новое, применяя рабочий пример откуда-нибудь (Сейчас, в большинстве случаев, из Гугл). Начиная с рабочего примера, большая часть программистов в состоянии создавать хорошие модификации и начать обучаться общению новой совокупности/нового языка. Подобное определенно возможно сделать за один сутки и это поэтому то, что вы видели и о чем задаёте вопросы.

Но обращение тут идет не о мастерстве. Для меня «освоение языка» подразумевает некий уровень мастерства, а его достижение кроме того у лучших разработчиков занимает семь дней, месяцы а также годы.

Освоение некоторых языков на самом высоком уровне занимает многие годы. Не смотря на то, что многие вычисляют себя специалистами в С++, я буду честно удивлен, в случае, если доскональная проверка 10000 таких специалистов окажет помощь нам найти больше одного специалиста, что в действительности знает язык на уровне, нужном для написания компилятора либо верного ответа на спорный вопрос, касающийся синтаксиса либо семантики. Я кодирую на С с 1979, а на С++ с 1994 и я кроме того близко не являюсь специалистом в С++. Не смотря на то, что я ни при каких обстоятельствах к этому и не стремился.

Так что, время, нужное для изучения языка, по большей части зависит от языка. Но в любом случае пригодится больше, чем одна ночь.

Амо Хьюигл, программист

Мне думается, я имею право ответить на этот вопрос, поскольку я это делал. в один раз я выучил язык программирования за одну ночь, в силу того, что на следующий сутки мне нужно было затевать работу над проектом.

Первое, что я сделал – это постарался осознать требования и свой проект. Когда мне стали понятны требования и я разобрался в логической схеме внедрения, я выучил в сети пара главных синтаксических правил, нужных для внедрения моей схемы.

На следующее утро я приступил к работе над проектом. И не смотря на то, что сначала я столкнулся с некоторыми проблемами, в сети хватало нужной информации для исправления синтаксических неточностей. В течение следующих 2-3 дней я продолжил работу над проектом и овладел языком программирования, что разрешило мне без особенных трудностей совладать с проектом. Моим единственным девизом стала фраза: «К концу дня я обязан знать об этом языке больше, чем я знал день назад».

Пара серьёзных моментов, каковые помогли мне в изучении языка:

1) Проект. Потому, что существовал проект, который связан с языком, я имел возможность понемногу осваивать язык.

2) Широкие знания в области программирования. В то время я уже хорошо владел вторыми языками программирования, что помогло мне скоро «впитать» ответственные правила нового языка.

3) Последовательность. Крайне важно быть последовательным в учебе. Лучше обучаться по 2 часа в сутки на протяжении семи дней, чем 14 часов за один раз.

Вим тен Бринк, более 40 лет самостоятельно развиваю навыки программирования

Я изучаю новые языки на лету, это не сложно, в случае, если осознавать базы разработки.

Большая часть языков включает в себя всего три элемента: утверждения, условия и циклы. Довольно часто поэтому они группируются в способах, функциях либо операциях, создающих из них «составных операторов». Принцип ориентирования на объект пребывает в присоединении составных операторов к записи данных, и вы приобретаете неспециализированную структуру наследования. Довольно часто интерфейсы смогут использоваться к классам чтобы «трансформировать» разные классы в похожие. А другое грубо говоря – лишь отличие в синтаксисе.

Умелый разработчик может бегло ознакомиться с языком и подметить названные мной вещи. Это не делает его специалистом мгновенно, но многие смогут сделать кое-какие выводы относительно нового синтаксиса и, тем самым, сэкономить время на его изучение. Возможно заявить, что такие разработчики больше не трудятся с языками. Они трудятся со структурами. Не имеет значения, какой язык вы выберете, все они имеют схожую структуру.

Ирэн Бернард, программирую с 80-х годов

Программирование тяжело осознать, языки программирования, наоборот, легки (в большинстве случаев требуется усвоить только кое-какие особенности). Когда программист обучится программированию, в особенности всем нужным азам парадигмы программирования, для освоения языка ему/ей останется только обратить внимание на кое-какие моменты.

Отличие между языками программирования, в большинстве случаев, кроме этого незначительна, как и отличие интерфейса Микрософт Office Word от интерфейса LibreOffice Write. Оба делают одни и ту же функции (форматируют текст, его стили, параграфы, заголовки, разделы, страницы и т.д., включая таблицы/перечни/изображения/и т.д., добавим ко мне диагностику правописания, подсчет слов, автоматическую настройку полей, создание оглавления и т.д.), применяя схожие способы. Пользователь на другие кнопки, расположенные в других местах.

Также самое и с языками, вещи именуются по-различному, пунктуация разна, «грамматика» может различаться – но , пока оба языка трудятся на базе одной парадигмы программирования, на этом различия и заканчиваются. Если они трудятся на различных парадигмах (напр., процедурное не объектно-ориентированное против объектно-ориентированного, либо императивное против декларативного и т.д.), тогда это будет скорее быть похожим сравнение Word и Exel… они делают различные функции по-различному (кроме того не обращая внимания на то, что один имел возможность бы достигнуть той же цели, но будут использованы новые пути).

В то время, когда языки трудятся на базе различных парадигм, делается сложновато. К примеру: переход от С к С++ думается несложным, но чтобы полностью изучить С++, программисту нужно осознать объектное ориентирование, с которым он(а) ни при каких обстоятельствах не сталкивал(а)ся в С. Именно ЭТО займет довольно много времени, в особенности по причине того, что в остальном С++ весьма похож на С (кроме того пунктуация и грамматика остаются неизменными). Но допустим, кто-то переходит с Python на Ruby… Языки весьма похожи, маленькая отличие в грамматике, кое-какие различия в пунктуации – меня тянет заявить, что программисту, «отлично» обладающему Python, должно быть несложно выучить Ruby за 1-2 дня.

Еще одно. Что вы подразумеваете под «освоением» языка? К примеру: умелый программист, обладающий С++, может легко выучить Python за один сутки. Но как отлично он/она будет знать Python? Что по поводу создания перечней синтаксическими способами, а не применяя циклы?

Подобные вещи в большинстве случаев предваряют новые модели, с которыми программист имел возможность до этого не сталкиваться, но одновременно с этим их вовсе не обязательно знать, дабы применять язык. есть ли знание таких моментов необходимым условием чтобы заявить, что вы овладели Python? В большинстве случаев это именуют «свободным владением» . Знакомство с тонкостями может занять больше одного дня, но кроме того при таких условиях, когда вы изучите их в одном языке, вы найдёте что-то похожее и в других.

Скотт Гартнер, программирую в течении 33 лет

Ответ очень несложен: это нереально. Возможно изучить синтаксис языка программирования, (особенно в случае, если это язык наподобие LIST, в котором предельное число синтаксических правил).

Но процесс осваивания языка – это все-таки поэтому процесс, а не одноразовое воздействие. Программирую на C# уже в течении 12 лет и до сих пор учу данный язык. Я тружусь с PHP около 9 лет, с Java – около 8, и я могу дальше продолжить данный перечень. Я вольно обладаю всеми этими, и многими вторыми языками, но сущность содержится в том, что процесс изучения нового не заканчивается ни при каких обстоятельствах. Если бы я захотел возвратиться к языку Java, мне бы было нужно израсходовать достаточное время, дабы освежить в памяти многие моменты. Я больше не тружусь с этим языком, но я все равно читаю новости, касающиеся его.

Исходя из этого любой, кто говорит вам об изучении языка программирования за одну ночь, всего лишь пудрит вам мозги.

Джиакомо Сорби, программист-самоучка, увлечен программированием достаточно, дабы стать таким хорошим программистом, как пригодится

В действительности люди не смогут выучить новый язык программирования за одну ночь, кроме того невозможно заявить, что они за эту ночь смогут перейти от программирования на языке Python к языку Ruby либо напротив.

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

За это время возможно понять, что в различных языках остаются неизменными многие из инструментов и ключевых понятий, а время, нужно чтобы более детально разобраться в остальных, менее понятных моментах.

Стив Кук, участвую на разных уровнях разработки ПО в течении 20 лет

В первую очередь стоит выяснить сами понятия «изучить» и «новый язык»

Довольно часто мне приходится оценивать новые разработки, включая новые языки, объектные структуры и другое. У меня приводят к улыбке компании, каковые уверены в том, что на изучение новой объектной структуры мне нужно полгода, в то время, когда на деле данный процесс займет у меня не более пары дней.

Изучение нового языка с большего занимает не более нескольких суток, в случае, если кроме того несколько сутки… Но подождите, что же поэтому я имею в виду под этими словами?

«Изучение языка» возможно осознавать по-различному. Я не могу абсолютно овладеть языком за один сутки, постоянно будут оставаться малоизвестные мне мелочи, но наряду с этим по окончании этого времени я смогу начать кодировать на нем.

Под изучением языка я подразумеваю изучение его структуры, основных понятий и синтаксиса, а не изучение каждого отдельного случая.

Главные вопросы, на каковые стоит обратить внимание:

  • точки входа и Общая структура
  • Базисные структуры данных и области применения. Осваиваются при помощи тщательной проработки пары примеров (категории, область применения, применение интерфейсов)
  • Неспециализированная логика и управление потоком данных. Редко требует громадного количества времени. По большей мере делается очевидным из ранее изученных языков.
  • Управление памятью и потоком. Речь заходит о таких вещах, как вызов функции, концепты синхронизации и т.д. Главные сведения в большинстве случаев воспринимаются достаточно легко, не смотря на то, что сложности смогут вызывать кое-какие пункты, такие как, к примеру, детальное управление памятью и потоком, в зависимости от степени нужной сложности.

Любой программист, у которого имеется хоть капля мозгов, поймёт, что независимо от того, трудишься ли ты с этим языком один сутки либо 10 лет, в любой момент может появиться обстановка, в которой смогут оказать помощь лишь внешние источники, Гугл, к примеру.

Я не утверждаю, что спустя один сутки начну кодить так, как это делает кто-то, кто уже знаком с этим языком в течении месяцев либо кроме того лет. Существуют языки, с которыми я бы не смог начать трудиться спустя один сутки.

Нет необходимости быть в курсе каждой внутренней либо внешней мелочи, дабы знать что-либо. При четком понимании основных алгоритмов и теории возможно овладеть языком и начать им пользовать при минимальной затрате упрочнений (в том случае, если данный язык логически оформлен).

По данной причине я бы дал совет израсходовать время на изучение, быть может кроме того и на овладение Assembler, С, С++, и на Java и C#. Это даст вам четкие теоретические знания, и познание базисного уровня. Когда вы освоите их, стоит переходить к изучению языков, основанных не на языке С. Это будет точно сложной задачей, поскольку придется в некоей степени поменять движение мышления, но такими языками, как python либо lisp, вправду стоит овладеть.

Марк Бадиола, INFJ, программист, блогер, иллюстратор

Полное овладение, само собой разумеется, нереально. Но возможно достигнуть определенного уровня, что разрешит вам ощущать себя с уверенностью так, что уже на следующий сутки вы сможете создавать приложения на этом языке.

Я тружусь в компании, в которой программисты не идентифицируют себя как Java-разработчик, С либо C#-разработчик и т.д. Само собой разумеется, у нас имеется любимые языки программирования, но наряду с этим мы получаем удовольствие, трудясь с другими языками, в том случае, если эти языки лучше удовлетворят потребности клиентов. Исходя из этого нам вправду характерно пробовать за одну ночь выучить новый язык/оболочку, дабы создать действенную стратегию, как интегрировать отечественную работу с уже существующей совокупностью, либо же иметь прочное обоснование, предлагая цену за проект.

Я предпочитаю направляться трем несложным рекомендациям:

1. Не следует думать на каком-то определенном языке, лучше думать на псевдокоде.. это облегчит процесс обучения и не разрешит вам сравнивать языки.

2. Создайте пример приложения, которое затрагивает по крайней мере азы того, что вам хочется либо нужно знать. Для информационных совокупностей хорошим началом может стать приложение для управления сведениями о сотрудниках либо что-то подобное. Такое приложение затрагивает синтаксис, структуры данных, и взаимодействует с базами данных. Вы кроме того имеете возможность создать логин для обеспечения безопасности. Не смотря на то, что, кое-какие применяют для этого готовые структуры. У меня имеется привычный разработчик игр, что постоянно начинал с понга, поскольку именно это касалось анимации, спорных моментов, физических явлений и других серьёзных качеств в программировании игр.

3. Применяйте интернет. Пункт номер 2 посоветует вам направление. С его помощью вы определите, что вам нужно искать. Вместо запроса «обучающая программа для языка Х», поиск возможно начать с чего-то более конкретного, к примеру «определение классов в языке Х». Я не могу принимать и запоминать данные, которая не нужна мне прямо на данный момент. К примеру, для чего изучать все типы циклов, в случае, если в данном приложении все они мне не пригодятся? Я буду искать данные о них лишь тогда, в то время, когда они мне будут необходимы.

Само собой очевидно, что я веду обращение о моем стиле обучения. Другие люди обучаются совершено по-второму.

Секрет начинающим программистам. Можно ли самому самостоятельно выучить программирование.


Интересные записи: