Как вы держите все эти языки прямо в голове

10

Я знаю Java, C #, C ++. Я использовал Perl и собираю Python и Actionscript 3.

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

Джон Робертсон
источник
14
Я не. Я использую отладчик ;-)
PengOne
1
Практика делает идеальным. Языки, как правило, используют один и тот же набор конструкций информатики, поэтому просто помнить синтаксические различия и предложения функций.
17
редактор с подсветкой синтаксиса. продолжайте редактировать, пока не изменится цвет ...
Торстен Мюллер
2
Я не. Я использую гугл.
Работа
1
@John, дайте нам несколько примеров того, что вы склонны путать или забыть в разных языках (имена встроенных методов? Приоритет операторов? Библиотеки? Идиомы?) Как часто вы переключаетесь между языками (ежемесячно? Почасово?)
smci

Ответы:

15

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

янь
источник
8

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

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

hotpaw2
источник
3
+1 за то, что не все: «Ну, если вы настоящий программист, у вас не будет никаких проблем». Если вы программируете на достаточно разных языках, ссылки на синтаксис обязательны.
Satanicpuppy
4
Не могли бы вы опубликовать эту «Синтаксическую диаграмму в стиле железной дороги на 1 листе плюс краткий справочник» для C ++? Мне бы очень хотелось увидеть такого зверя.
SBI
Или один для Perl. Это было бы зрелище.
Чжехао Мао
Если вам нужно больше, чем умещается на одной странице, вам, вероятно, пока не следует использовать эти языковые функции, пока вы не будете лучше помнить язык.
hotpaw2
5

Вы смотрели на шпаргалки для языков и библиотек, которые вы регулярно используете? У меня есть пара на стене, одна для VIM, другая для PL / SQL. Этот веб-сайт: http://devcheatsheet.com/, кажется, имеет много читов.

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

FrustratedWithFormsDesigner
источник
3

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

Patrick87
источник
3

У меня есть небольшие проблемы с разделением языков в моей голове, за исключением нескольких типов машинного ввода (таких как необходимость подавлять точку с запятой в конце строки в Python или VB).

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

tdammers
источник
+1 за следующие соглашения для языка. Может быть заманчиво просто кодировать каждый язык с одинаковым стилем, но это делает его очень «чужим» для «аборигенов». Когда-нибудь «родной» программист будет поддерживать наш код. Поэтому мы должны написать это так, чтобы это было для них естественно.
gMale
1
@gMale: дело не только в том, чтобы быть милым с другими; также необходимо использовать языковую культуру, чтобы использовать ее в полной мере. Культура растет вокруг языка, потому что некоторые способы работают лучше, чем другие, и те укрепляются в культуре; изучая их, вы можете извлечь выгоду из ошибок других.
tdammers
1

Помогает то, что все языки, о которых вы говорите, относительно похожи (т.е. обязательно)

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

Теперь, когда вы начинаете изучать использование (а не только синтаксис), это становится намного сложнее. Научиться использовать Java как программист Java не так просто для программиста C ++ (синтаксис прост, идиомы использования сложны).

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

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

Мартин Йорк
источник
1

Вот если бы IDE пришли на помощь ;-) единственное, что меняется во всех этих языках - это наличие if-then-else или if-else. у некоторых будет '(', а у некоторых нет. Это так просто :)

Все, что нас волнует, - это логика и простейшая читаемая реализация.

Арвинд Чинния
источник
1

Я не. Я все время путаю их, поэтому я разработал набор компенсирующих поведений и инструментов.

  • Я работаю в кодах больших проектов, поэтому проверю код вокруг себя.
  • Я использую редактор подсветки синтаксиса (быстро, Perl использует elsif, elif или еще, если? Я не помню, но редактор будет держать меня в курсе.)
  • Я использую языковые идиомы - если я пишу на C #, я использую lambdas, linq и var. Это делает его менее похожим на Java, чем если бы я использовал только объекты и классы.
  • Я использую разные среды для каждого языка: C # -> Visual Studio, Java -> Eclipse, Perl -> Vim. Различные визуальные стили держат меня на ходу.
Шон Макмиллан
источник
0

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

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

jonsca
источник
0

Думайте об этом как о музыке. Языки, которые вы изучаете, - это просто разные инструменты в оркестре, которые в конечном итоге создают одинаковые ноты. Воспоминание о том, как играть на инструментах, требует практики, но в конечном итоге вы сможете подобрать тот, который давно не играл, и, как по волшебству, ноты просто встают на свои места. Точно так же, по мере того, как вы продолжаете расширять свои познания в музыке (программировании), вы все больше и больше приобретаете новый инструмент и учитесь играть на нем.

Дрянная аналогия, но в конце концов, практика делает идеальным. Время от времени проводите время с каждым инструментом в этом оркестре, чтобы ваша способность играть ноты не ослабла.

Cᴏʀʏ
источник
0

Я в основном разработчик PHP. Так что прости мое пристрастное мнение.

Недавно я обнаружил, насколько похож код C на PHP (или наоборот, в зависимости от того, как вы себя чувствуете;))

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

MattyD
источник
0

Я использую javascript и HTML / CSS, в основном, также я люблю c ++, когда мне нужен небольшой инструмент помощи с использованием QT, и я использую VB и f #, иногда я знаю, что это немного сумасшествие, но когда я чувствую, что начал терять язык особенно когда они имеют разный синтаксис (VB и F # и c ++ / javascript), поэтому я взял своего брата и сказал ему, что научу его, тогда я просто начинаю делать примеры с нуля, и когда я обнаруживаю, что не помню, как именно это сделать кое-что (однажды я забыл, как сделать, ЕСЛИ ЕЩЕ в VB) я просто гуглю это;

achmas
источник
0

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

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

gMale
источник
0

На самом деле: я не сильно переживаю из-за явных попыток построить какую-либо структуру в моей голове.

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

perdian
источник