Чи варто вивчати нові мови чи лише зосереджуватися на мовах, які ви вже знаєте, та розширювати свої знання про неї? [зачинено]


22

Який спосіб більш вигідний і продуктивний?


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

@Chris: Пропозиція, "Мови та рамки", більшість розробників вже не працює лише з компілятором командного рядка та текстовим редактором, але з бібліотеками, IDE, BD, Thrid-Party Tools, ... ;-)
umlcat

1
Судячи з підрахунку голосів, це питання є конструктивним на думку багатьох. Я думаю, що Марк Трапп - це фактично комп’ютерна програма, написана для закриття питань.
Т. Вебстер

Відповіді:


18

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

Отже, витрачайте більшу частину часу на покращення обраного рівня та витрачайте частину свого часу на вивчення нового.


4
+1 Для того, щоб знати, як добре використовувати ваш «молоток», а також знаючи, що такі речі, як «викрутки», «пилки» та «липкий клей», існують.
Райан Хейс

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

8

Хтось сказав: "Мова, яка не змінює те, як ти думаєш про програмування, не варто вивчати".

Отже, якщо ви знаєте Java, виграш у навчанні C # (або навпаки) мало. Якщо б не з прагматичних причин (тобто вам це потрібно для вирішення проблеми), я б запропонував дотримуватися однієї мови за парадигмою, і ваш графік все ще достатньо повний;).

Спеціалізація, з іншого боку, за моїм досвідом здебільшого досягається «в області», тобто, коли я працюю над проектом, так що це природно.


1
C # пропонує цікаві нові функції розробникам Java. Вислови Linq & lambda могли б відкрити очі на новий світ.
Carra

Власне, я б сказав, що вивести програму C # на ринок було простіше (як мінімум, для мене), а потім вивести програму Java на ринок. Тож у цьому сенсі у мене відкрилися очі, щоб я міг мати зручності Яви, уникаючи деяких її недоліків. Без речей мовних вогнів, я б сказав, що це хороший момент.
riwalk

+1 Я розпочав роботу в .NET і дуже багато чого навчився з моїх проблем з Objective C та JavaScript.
Тревор

@Carra: Я цього не знав (мій останній досвід в глибині з обома, коли Java 1.5 була чинною). Чи різниця у вашому досвіді зросла достатньо великою, щоб зробити їх досить різними, щоб зробити рекомендацію навчитися обом (з "академічної" точки зору)?
keppla

Вам, мабуть, ще краще вивчити одну та функціональну мову. Тож загалом я з вами згоден.
Carra

3

Дуже багато справді хороших суперечок з обох сторін. Багато років тому мені поставили саме це запитання ... зосередитись на своїй основній мові і намагатися стати "експертом" АБО, взяти нову мову та розширити свою товарність. Я вирішив сконцентруватися на одній мові.

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


2

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

Ви повинні зосередитись на вдосконаленні своїх програм (і є багато показників для вимірювання цього, багато суб'єктивних; неважливо, вибирайте метрики та уточнюйте їх з часом, використовуйте їх для навчання).

Сказавши це, вивчення «новіших» мов (скажімо, Python) над старішим списком (як, скажімо, C«і багато подібних») допоможе вам думати ефективніше і зосередитись на тих основних концепціях, які слід вдосконалити. Якщо взяти далі приклад, він може з’явитися не відразу, але ви можете виявити, що ваше Cпрограмування стає кращим, оскільки ви думали в Python. Ви навіть можете почати писати Python замість psudo-коду для C. Тепер це набагато більш читабельний і перевірений псудокод.

Що підводить нас до підсумків основного питання:
Так, вам слід зосередитись на мовах, які ви вже знаєте, і розширити свої знання в них - до тих пір, поки вони все ще використовуються для вас. Крім того , вам слід також попростувати новітніми мовами, щоб дати своїм мозгам новіші інструменти, щоб мислити (можливо, навіть швидше) рішення для ваших потреб програмування.


1

Домінуйте в рамках програмування (і пов'язаній з ним мові) і залишайте вільний час для іншого, бажано іншого "домену". Приклад: клієнт-сервер C ++, Ruby on Web


1

Вивчення нової мови

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

Глибші знання поточної мови

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

  1. Скільки програм ви написали мовою X?
  2. Якщо ви перейдете на Stack Overflow і подивіться на питання, позначені міткою X, на скільки з них ви б почували себе комфортно, даючи відповідь?
  3. Чи звертаються до вас люди за допомогою мови X?

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


0

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

Окрім мов, є рамки, шаблони ... щоб вивчити рамки, ви повинні знати мову, тому для дуже схожих мов їх вивчення не допомагає нічого, ніж принести деякі не такі веселі забави.

Моя особиста думка - ви завжди повинні розвивати свої можливості робити швидше, надійніше, надійніше програмне забезпечення для більшої кількості платформ і скорочувати час, який потрібно скоротити, для цього вам може знадобитися вивчення нової мови, нової основи, нового IDE (це так само важливо, як і мова), і лише тоді, коли ви до цього ставитесь, ваші інвестиції варті.

Принаймні не вивчайте нову мову, щоб збільшити кількість мов, які ви знаєте.

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