Як у вас є шанси вивчити кілька мов? [зачинено]


9

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

Однак я бачив багатьох розробників, які знають кілька мов. Як ви маєте шанси вивчити багато мов?

Оновлення

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


7
Просто вивчайте нові речі у свій епоху.
Йонас

1
Чувак, цю відповідь опублікував 39 років програміст. Я думаю, що це хороший список, але не вбивайте себе над ним.
робота

7
Ви не "отримуєте" шансів. Ви РЕЗУЛЬТАТИ шанси. Якщо ви хочете вивчити більше мов, тоді вийдіть і зробіть це. Не чекайте, коли до вас прийде якась міфічна відповідальність за роботу.
Джоель Етертон

Відповіді:


10

Я вважаю, що найкращий спосіб вивчити мову - це використовувати її негайно, щоб зробити щось корисне або що вам потрібно .

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

За пару днів я запустив і запустив свій інструмент, потім у вільний час я продовжував вивчати нові речі про мову та додавати їй більше функціональних можливостей.


Ще один чудовий варіант, який спадає на думку: якщо ви не знайдете потрібну вам мову або вважаєте, що не повністю відповідає вашим потребам, ви все одно можете створити свою власну мову .

Я зараз роблю це з Perl, я вибрав синтаксис, який допоможе мені найкраще вирішити мої конкретні проблеми (оскільки ви пишете власну мову, ви можете вибрати правильний синтаксис для роботи, той, який найкраще описує та вирішує ваші конкретні проблеми з доменом).

Результат? Зараз розробка набагато швидша, а сам код набагато більш описовий, оскільки мова є специфічною для домену. Я задав питання, пов'язані з цією темою, кілька тижнів тому з багатьма корисними посиланнями.

Ви можете використовувати будь-яку мову сценаріїв, щоб створити нову, навіть із PHP.


Я не знав, що можу створити власну мову за допомогою Perl. Чи можете ви це детальніше розробити чи дати мені посилання?
Sanghyun Lee

Я про це просив тут . В основному вам потрібно створити сценарій, який зрозуміє (розбере) ваші входи та складе різні завдання залежно від того, що ви вводите. Це може бути просто набір функцій або зовсім новий синтаксис мови. Тоді ви можете автоматизувати все це за потреби. Не тільки за допомогою Perl, ви можете використовувати будь-яку мову сценаріїв, щоб створити нову.
Хосе Фаети

8

Ці питання завжди мене бентежать. Я професійно використовував 7 мов, написав код ще приблизно на 5 мовах в хобі та академічних умовах, і можу прочитати код, можливо, ще з десяток мов. Не раз я вивчив мову лише заради неї. Завжди є на увазі якась конкретна і безпосередня мета. Наприклад, у ці вихідні я вивчив достатню кількість бібліотек Android, щоб почати працювати над додатком для своєї родини. Якби у нас були iPhone, я б навчився Objective-C.

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


3

Найкращий спосіб вивчити нову мову, коли у вас виникнуть проблеми. Замість того, щоб просто використовувати те, що вам зручно, приділіть деякий час, щоб розглянути, які інструменти (мови, рамки, бібліотеки) можуть бути корисними для вирішення проблеми. Якщо у вас є час вивчити новий інструмент, займіться його. Ви не можете зробити це на роботі, якщо у вас є графік тиску та обмеження технологій, зумовлені зовнішніми факторами, але немає причин, чому ви не можете скористатися таким підходом до особистих проектів.


2

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


1

Просто почніть його використовувати. Очевидно, що побудувати виробничу систему з нуля мовою, якою ви ніколи не піддавалися, є поганою ідеєю, але ось кілька пропозицій:

  • Вчись у свій час. Виберіть проект, який вам цікавий, і ви впевнені, що можете закінчити його самостійно. Краще провести кілька ознайомчих читань на новій мові, щоб оцінити, чи підходить вона - кожна мова має сильні та слабкі сторони, і найкраще почати з проблеми, в якій мова була розроблена.
  • Почніть виконувати завдання з обслуговування існуючого проекту. Таким чином, ви можете підібрати значну частину мови, навіть не читаючи документації: багато чого можна зробити з прикладу коду, а для частин, де вам потрібно прочитати документацію, буде набагато зрозуміліше, оскільки ви бачили код уже. Так само простіше шукати "що робить цей код", ніж "як я можу написати код, що робить X".
  • Використовуйте свою нову мову для невеликих потрібних вам інструментів і скриптів: скриптів оболонки, викидний код для конкретних завдань, швидких обчислень (наприклад, інтерактивні інтерпретатори багатьох динамічних мов - python, lisp, haskell тощо - створюють чудові калькулятори). Не всі мови для цього підходять.

1

Виберіть щось порівняно невелике, що ви зробили на одній мові, і розробіть заміну, що випадає на іншу. Зробіть це просто, щоб кинути виклик собі. Щоб завершити його, ви багато дізнаєтесь про іншу мову.

Лише протягом минулого тижня я вирішив вивчити і переписати веб-сервіс в NodeJS (раніше послуга JSP.) На роботу сервісу з голими кістками знадобився лише день, а через кілька днів Я розширив її інфраструктуру, обробку помилок, ведення журналів і додав моніторинг в реальному часі. Зараз він перевершує оригінал. Приймає це чи ні керівництво це не має значення, оскільки я чомусь навчився і дуже задоволений цим.


1
  • Я вважаю, що частина моєї роботи - це "дослідження". У 1998 році дослідження мали на увазі виправлення помилок Y2K. Останній місяць резерв означав навчання Subversion. У мене берін займається дослідженнями 40 років. Коли я перераховую мови, я повинен перераховувати їх в алфавітному порядку.

  • Коли я вивчаю мову, я читаю обкладинку посібника з посиланням. Тоді я фактично користуюсь нею кілька місяців. Потім я знову прочитав посібник. Друге читання виявляє безліч хитрощів та наслідків, які я пропустив уперше.

  • Практичне дослідження охоплює звичайні мови, наприклад, C # і Pascal. Розширені дослідження охоплюють дивні мови, такі як LISP та FORTH. Напевно, ви ніколи не будете використовувати LISP професійно, але навчившись це значно розширить ваш розум.

  • Звичайно, в моєму середовищі мені не платять час, мені платять за доставку. Якщо я можу доставити за два тижні, використовуючи шість годин на день, я можу використати інші три для дослідження. Якщо це займає дванадцять годин на день, ну ніяких досліджень тоді.

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


0

Іноді можливості виходять від вас зайнятості. Зазвичай для цього виду є один з трьох драйверів.

  1. Це абсолютно нова технологія. Наприклад, багато компаній оплачували навчання C # для своїх розробників у перші два-три роки після виходу .NET.

  2. Це легко навчитися. Наприклад, в магазині Linux ви знайдете, що вам потрібно написати сценарії .bash. Якщо ви використовуєте термінальні сеанси тощо, і є інші розробники, які мають досвід їх написання, ви повинні мати можливість придбати цей навик, хоч лише для автоматизації деяких власних завдань.

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

Інші можливості, які потрібно зробити для себе поза роботою. Вибирайте уважно - які технології ви вважаєте корисними в майбутньому? У цих випадках вам доведеться вкласти час та зусилля на вивчення та застосування технології. Це має бути частиною загального плану кар’єри, і, можливо, доведеться платити за заняття. (Мені пощастило - коли я вивчив Яву, вони викладали її вечорами в місцевому коледжі громади).


0

Відповідаючи на ваше запитання, з власного досвіду (я досить новий в галузі, тому його не так багато), я можу вивчати нові мови, роблячи деякі дослідження, щоб побачити, яка мова найкраще відповідає моїм потребам. У коледжі у мене був проект криптографії, який вимагав використання великих цілих чисел. Це стало досить привабливим для C ++, тому я звернувся до Java, оскільки він забезпечував клас BigInteger. На моїй теперішній роботі я бачив, що сценарій оболонки не зміг повністю вирішити мою проблему, не став занадто складним, тому я навчився Perl. Вчися на льоту - моя порада як одна; вимога. Звичайно, якщо вам нудно, є цілий світ мов, які потрібно вивчити.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.