Вивчаючи нові мови, чи краще взяти себе на одну мову на 100% і зачекати, поки ви «освоїли» її, щоб перейти на іншу, або попрацювати над вивченням різних мов одночасно?
Якщо це важливо, я зараз вивчаю C ++, і я хотів би також знати Java та Python.
Вивчаючи нові мови, чи краще взяти себе на одну мову на 100% і зачекати, поки ви «освоїли» її, щоб перейти на іншу, або попрацювати над вивченням різних мов одночасно?
Якщо це важливо, я зараз вивчаю C ++, і я хотів би також знати Java та Python.
Відповіді:
Мало того, що я не бачу проблеми з вивченням декількох мов за один раз, я думаю, що це може вам безпосередньо принести користь у тому, що щось на одній мові може усунути проблемну область, яку ви можете мати на іншій мові. Наприклад, моя основна мова - це C #, і при роботі з LINQ я використовував формат SQL (це нормально, я його зовсім не стукаю, але це просто не здається «крутим способом» зробити це). Я тримався подалі від Ламбдаса, бо, чесно кажучи, я їх не розумів, і документація на C #, яку я бачив, не давала чіткого визначення (для мене). Тоді я почав збирати кілька книг на F # і почав вивчати це, що дало мені момент «ах!», Коли я зрозумів, що таке Лямбда.
Я виявив, що, коли я все більше переживаю інші мови (і рамки), мені стає краще в C # (і ASP.Net). Ось чому я вважаю, що вивчення кількох мов за один раз зовсім не погана справа!
Я думаю, що важливим навиком для програмістів є вміння вивчати нові мови програмування. Як такий я схиляюсь до того, щоб спробувати спочатку вивчити одну мову, а потім додати інші.
Незалежно від вашої першої мови процес вивчення додаткових мов повинен:
З часом, накопичуючи мови, ви сформуєте власну внутрішню абстрактну мову псевдокоду, яка допоможе вам перекладати мови, які ви знаєте. Ця внутрішня мова є основою, яку ви використовуєте для швидкого вивчення нових мов.
Паралельне вивчення мов - це досить нормальна річ. Наприклад, веб-програмування. Ви маєте справу з щонайменше трьома мовами: стороною сервера (php, java, .net, ruby, python ...), клієнтським кодом (сценарій Java та html), базою даних (sql).
html
не sql
є мовами програмування.
Я не бачу проблеми з вивченням декількох мов одночасно. Насправді ви ніколи не справді володієте мовою, так що насправді будь-коли працюючи з більш ніж однією мовою, ви, мабуть, вивчаєте їх обидві.
Можливо, ви захочете сконцентруватися на одній мові, щоб пройти основи, щоб не заплутати дві мови. Це особливо актуально, якщо ви вивчаєте подібні мови, наприклад, Java та C #.
Я викладаю програмування кілька років, тому можу поділитися своїм досвідом з вами. Я припускаю, що C # - це ваша перша мова, тому мій досвід навчання програмування людям, які раніше ніколи не програмували, може бути корисним.
Перш за все, дозвольте сказати, що вивчення більше однієї мови - це те, що повинен робити кожен досвідчений програміст. Але це не означає, що ви повинні вивчати кілька мов одночасно, якщо ви тільки починаєте.
Протягом багатьох років студенти показали, що потрібен приблизно рік, щоб мова затверділа в розумі (принаймні перша), іноді трохи більше, іноді трохи менше. Якщо ви намагаєтесь навчити більше однієї мови за один рік, студенти, як правило, змішують їх і плутають поняття та мови. Хоча студенти досягають успіху, вони стикаються з багатьма шкідливими звичками, які важко вилучити пізніше. Якщо ви навчаєтесь самостійно, цей ризик вище.
Однак я помітив, що це допомагає, якщо ви навчаєте дві мови з дуже різним синтаксисом. Коли дві мови програмування виглядають по- різному, це допомагає розуму бачити їх як справді різні сутності, не забруднюючи один одного. (Коли одна мова програмування допомагає зрозуміти складні поняття іншою мовою, це добре; коли одна мова змушує вас писати поганий код на іншій мові, це погано).
Тому моєю рекомендацією було б дотримуватися однієї мови програмування на перший рік. Крім того, може бути хорошою ідеєю вивчати дві мови одночасно, якщо вони / виглядають дуже різними. Якщо ваша перша мова - це C #, я б точно не тримався від C, C ++, Objective C та Java; і, ймовірно, Python, Ruby та Javascript. Я рекомендую поєднувати C # з такою функціональною мовою, як Haskell, Scheme, F #, Erlang, Clojure або, можливо, Scala.
Я думаю, що вивчати декілька мов одночасно насправді краще, ніж вивчати одну за одною, адже якщо мови достатньо різні, кожна дає вам відпочити від іншої. Спробуйте змайструвати їх так, щоб ви почали з нового, як тільки ви пройшли етап "абсолютного новачка" попереднього; таким чином у вас буде набагато більше шансів зберегти не тільки те, що ви дізналися про мову, але і як ви вивчили нову мову. (Узагальнена майстерність вивчення мови - це те, за що ви будете дуже вдячні пізніше в житті програмування.)
Однак, вивчення першої мови вимагає великих витрат часу та енергії, і ви, можливо, просто не матимете часу брати участь у іншому великому проекті під час цього процесу. Якщо ви думаєте про те, щоб почати іншу мову, тому що вам нудно C ++ - не варто! Це спонукає вас до зволікання. Якщо ви думаєте про початок іншої мови, тому що ви постійно бачите згадки про проекти, написані на (скажімо) Java, і вам страшно, що ви не можете легко прочитати та проаналізувати код - робіть! Це прекрасний привід вивчити іншу мову в будь-який час.
Я виявив, що вивчення декількох мов одночасно може призвести до того, що вивчити одну конкретну мову, очевидно, потрібно більше часу (не кажучи вже про це). Однак у моєму випадку це дозволило мені вирішити, які мови я віддаю перевагу та стиль кодування, який мені найбільше подобається.
У моєму випадку я почав із C #, потім потрапив у Python та F #. Мені дуже сподобався функціональний стиль F #, який змусив мене спробувати Scala та Clojure. Тепер завдяки вивченню всіх цих мов я вважав, що Скала добре підходить для того, що я роблю. Плюс я зараз впевнений у OOP та функціональних стилях і вмію читати та писати декілька мов грамотно. Це велика майстерність.