Чому завжди "на якій мові я повинен вивчитись далі", а не "над яким проектом слід займатися далі?" [зачинено]


14

Чому початківці програмісти (як я) завжди запитують про наступну мову, яку вони повинні вивчити, а не питати про наступний проект, який потрібно вирішити?

Чому Ерік Реймонд у розділі " Навчитися програмувати " свого есе " Як стати хакером " розповів про порядок, коли слід вивчати мови (порівняно з порядком, у якому ти повинен брати участь у проектах).

Чи питають початківці столяри "Я знаю, як користуватися молотком ... чи слід навчитися користуватися пилою або рівнем далі?"

Я питаю , тому що я знаходжу , що майже будь-який значущий проект я зацікавлений у вирішенні проблеми (наприклад , веб - додаток, набір інструментів аналізу покер) вимагає , щоб я дізнався досить просто з безлічі мов (Python, C, HTML, CSS , Javascript, SQL) та фреймворки / бібліотеки (wxPython, tkinter, Django) для їх реалізації.

Спасибі,

Майк


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

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

Справедливий коментар щодо: ranty ... збирався розважати. Вибачте, якщо це натрапило на рента.
MikeRand

4
Порівняння мови програмування для використання інструментів не дуже вдале порівняння. Здається, це має сенс поверхово, але швидко розпадається і виявляється більш шкідливим, ніж корисним. Крім того, занадто багато людей ставляться до цього так, як це є безперечною правдою. Цей хлопець робить гідну роботу, окреслюючи деякі причини, чому він не працює. journal.dedasys.com/2007/12/12/…
Нік Ноулсон

Мені подобається це питання ...!
Майкл К

Відповіді:


6

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

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

Нарешті, вивчення мов може бути цікавим , навіть якщо ви не маєте на увазі конкретного проекту чи мети.


6
  • Мотив багатьох розробників, які працюють на повний робочий день, - бути більш працездатними.

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

  • Типовий провідник кадрів зазвичай має контрольний список мов, який він може відповідати резюме, але не має можливості оцінювати навички чи проекти.

  • Успіх у фактичному інтерв'ю, як правило, більше залежить від удачі та мінімальних навичок у мові, ніж від досвіду та глибокого розуміння мови.

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


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

1
@Jeff, з того, що я чув про скринінг HR, все, що вони хочуть, - це скоротити кількість резюме до керованого рівня, і вони застосовують безліч довільних фільтрів, як-от "бін, якщо більше 2 сторінок".
Домінік МакДоннелл

2

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

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


1

Можливо, це частково стосується хакерського менталітету, принаймні для деяких програмістів. Хакер визначений у файлі Jargon як

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

Отже, для душі хакера - це більше про навчання та «майстерність» з процесом, концепціями, інструментами та так, мовами створення чогось, ніж сам кінцевий продукт. Детальніше про сам процес.

Це постійне прагнення до наступної нової речі та / або виклику. Готовий проект швидко втрачає привабливість. Іноді (більшу частину часу?) Перед завершенням проекту перемагають найбільші творчі чи технічні виклики. Багато проектів забувають, коли розум, який прагне нових психічних викликів, рухається вперед.

Особливо хакерів цікавлять нові точки зору, концепції, абстракції та способи мислення, вид психічного злому:

"Мова, яка не впливає на те, як ви думаєте про програмування, не варто знати". - Алан Перліс


0

На сьогоднішній день загальноприйняті різні безладні мови: C, C ++, C #, Java, JavaScript, Python, Perl, Ruby, Visual Basic тощо. Програмісти заповнюють властиву цим мовам можливість вивчення та змішування багатьох з них разом.

Існує невелика громада, відома як Ліспська спільнота, яка не містить божевілля, яке пронизує сучасні обчислення.

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


Ви повинні знати якомога більше різних мов, щоб ефективно кодувати в Lisp. В іншому випадку ви перейдете до винайдення колеса замість того, щоб просто вкрасти відповідні поняття та ідеї з інших мов та реалізувати їх поверх Lisp.
SK-логіка

Погодьтесь із вашими настроями щодо сили Ліспа, але не погоджуйтесь, що вивчати інші мови неприємно: більшість хитрощів, які я використовую в Ліспі, активно експлуатують те, що я навчився з інших мов (будь то візерунки чи анти-шаблони ...)
mikera

0

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

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