Как у вас есть шансы выучить несколько языков? [закрыто]

9

Я читаю Программист должен сконцентрироваться хотя бы на скольких языках? и я узнал, что я не знаю языков в цифрах 2, 3 первого ответа. Я хочу изучать больше языков, чтобы расширить свои знания и навыки программирования. Однако, как правило, в компаниях они используют фиксированные рамки и языки и редко меняются. Так что я не уверен, что смогу ли я выучить эти языки, и думаю, что это будет то же самое для других программистов.

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

Обновить

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

Санхьюн Ли
источник
7
Просто изучайте новые вещи в свободное время.
Джонас
1
Чувак, этот ответ был опубликован 39-летним программистом. Я думаю, что это хороший список, но не убивайте себя из-за этого.
Работа
7
Вы не «получаете» шансы. Вы делаете шансы. Если вы хотите изучать больше языков, то выходите и делайте это. Не ждите, пока к вам придет какая-то мифическая ответственность за работу.
Джоэл Этертон

Ответы:

10

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

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

Через пару дней мой инструмент был запущен и запущен, а в свободное время я продолжал изучать что-то новое о языке и добавлять к нему новые функциональные возможности.


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

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

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

Вы можете использовать любой язык сценариев для создания нового, даже с PHP.

Хосе Фаэти
источник
Я не знал, что могу создать свой собственный язык с Perl. Не могли бы вы уточнить это или дать мне ссылку?
Санхьюн Ли
Я просил об этом здесь . По сути, вы должны создать скрипт, который будет понимать (анализировать) ваши входные данные и выполнять различные задачи в зависимости от того, что вы вводите. Это может быть просто набор функций или совершенно новый синтаксис языка. Тогда вы можете автоматизировать все это при необходимости. Не только с Perl, вы можете использовать любой язык сценариев для создания нового.
Хосе Фаети
8

Такие вопросы всегда сбивают меня с толку. Я профессионально использовал 7 языков, написал код примерно на 5 языках для хобби и в академической среде, и могу читать код, возможно, еще на дюжине языков. Ни разу я не выучил язык ради него. Всегда есть какая-то конкретная и непосредственная цель. Например, в эти выходные я выучил достаточно библиотек Android, чтобы начать работу над приложением для моей семьи. Если бы у нас были айфоны, я бы изучил Objective-C.

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

Карл Билефельдт
источник
3

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

Томас Оуэнс
источник
2

Вам просто нужно найти время, чтобы сделать это. Проверьте книгу «Семь языков за семь недель» от Prags. Он познакомит вас с семью очень интересными языками, и оттуда вы сможете отправиться в самые разные места.

Захари К
источник
1

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

  • Учись в свое время. Выберите интересующий вас проект, в котором вы уверены, что сможете закончить его самостоятельно. Лучше всего сделать начальное чтение на вашем новом языке, чтобы судить, подходит ли он - у каждого языка есть свои сильные и слабые стороны, и лучше всего начать с проблемы, в которой язык был разработан, чтобы преуспеть.
  • Начните выполнять задачи по обслуживанию существующего проекта. Таким образом, вы можете выбрать большую часть языка, даже не читая документацию: многое может быть выведено из примера кода, а для частей, где вам нужно читать документацию, это будет намного понятнее, потому что вы видели код уже. Также проще посмотреть, «что делает этот код», чем «как я могу написать код, который делает X».
  • Используйте свой новый язык для небольших инструментов и вспомогательных средств, которые вам нужны: сценарии оболочки, одноразовый код для конкретных задач, быстрые вычисления (например, интерактивные интерпретаторы многих динамических языков - python, lisp, haskell и т. Д. - создают отличные калькуляторы). Хотя не все языки подходят для этого.
tdammers
источник
1

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

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

Fosco
источник
1
  • Я считаю, что некоторая часть моей работы - это «исследование». В 1998 году исследование означало исправление ошибок 2000 года. Прошлый месяц означал изучение Subversion. Я уже 40 лет занимаюсь исследованиями. Когда я перечисляю языки, я должен перечислять их в алфавитном порядке.

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

  • Практические исследования охватывают нормальные языки, такие как C # и Pascal. Расширенное исследование охватывает странные языки, такие как LISP и FORTH. Вероятно, вы никогда не будете использовать LISP профессионально, но его изучение значительно расширяет кругозор.

  • Конечно, в моей среде мне не платят за время, мне платят за доставку. Если я смогу родить за две недели, используя шесть часов в день, я смогу использовать три других для исследований. Если это занимает двенадцать часов в день, тогда никаких исследований.

  • Конечно, все исследования должны иметь какую-то потенциальную полезность для того, кто мне платит. Маленькие утилиты хороши; в следующий раз, когда вы захотите обработать ваш исходный код на C, попробуйте его на Python. (Нет, я не знаю Python, но я слышал, что он хорош для работы со строками.)

Энди Кэнфилд
источник
0

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

  1. Это совершенно новая технология. Например, многие компании платили за обучение C # для своих разработчиков в первые два или три года после выпуска .NET.

  2. Это легко учиться. Например, в магазине Linux вы обнаружите, что вам нужно написать сценарии .bash. Если вы использовали терминальные сеансы и т. Д., И есть другие разработчики, которые имеют опыт их написания, вы сможете приобрести этот навык, хотя бы для автоматизации некоторых ваших собственных задач.

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

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

Джей Элстон
источник
0

Отвечая на ваш вопрос, из своего собственного опыта (я довольно новичок в отрасли, поэтому не очень много) я изучаю новые языки, проводя некоторые исследования, чтобы выяснить, какой язык лучше всего соответствует моим потребностям. В колледже у меня был проект в криптографии, который требовал использования больших целых чисел. В C ++ это становилось довольно сложным, поэтому я обратился к Java, так как он предоставлял класс BigInteger. В моей текущей работе я видел, что сценарии оболочки не могли полностью решить мою проблему, не становясь слишком сложными, поэтому я изучил Perl. Учиться на лету - это мой совет как одно из требований. Конечно, если вам скучно, есть целый мир языков для изучения.

Абхишек Ананд
источник