Чи повинен новий програміст зосередитись на одній технології, поки він не буде досвідчений у цьому? [зачинено]


10

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

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

Однак це не проблема. Він продовжує стрибати до нових технологій (Node.js, MongoDB, EC2 тощо). Я спробував сказати йому, що він повинен вивчити деякі основи свого вибору RDMS (MySQL), оскільки він використовує його щодня, перш ніж вкладати купу часу на вивчення основ MongoDB (І, мабуть, переходити до чогось нового).

Я невірний тут, чи він повинен намагатися зосередитись на одній справі за часом і справді добре в цьому?


6
Здається, це гарна нагода вимагати, щоб його веб-додаток підтримував сеанси та сторінки. Хіба це не призвело б до того, щоб він його вивчив?

Також якої єдиної технології слід вивчити?

@ ThorbjørnRavnAndersen Не стільки одна технологія, але стек LAMP - це те, з чим він працює щодня. Я думаю, що він повинен вивчити всі основні / відповідні його деталі роботи про MySQL, Apache, PHP та JavaScript як мінімум.
Брендон Вамбольдт

1
Тоді ви по суті відповіли на власне питання "ні".

1
Хіба він уже не вивчає відразу декілька технологій, таких як веб, база даних тощо? Які межі того, що являє собою тут технологія?
JB King

Відповіді:


18

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

Але я думаю, що більш важливим недоліком є ​​те, що мови та рамки, як правило, мають ідеологію. Є багато програмістів (можливо, більшість програмістів), які застосовують лише одну ідеологію у всьому, що вони програмують. Це часто тому, що вони дуже добре засвоїли одну рамку однією мовою, і тепер нічого не бачать без окулярів.

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


2
+1 для другого абзацу. Додам, що перегляд різних мов, фреймворків та API може багато чого навчити вас, ЧОМУ дизайнери вирішили реалізувати задану мову / рамку / API так, як вони це зробили. Надання учня глибшого розуміння програмування та програмного забезпечення в цілому. Принаймні, imho
Джеймі Тейлор

+1 Є ситуації, коли ви навчитеся зосереджуватися, наприклад, коли у вас є "справжня" робота з програмування. Але як влаштуватися на роботу, якщо ви потрапили лише на одну рамку? Навчіться писати щось у кількох рамках / бібліотеці, щоб ви могли залишити своє резюме і показати, що ви не упереджені однією конкретною технологією. ;-) Ви можете дізнатися такі речі, як пагинація та RMDB пізніше, як тільки ви отримаєте фактичний контекст для цього.
Спойк

@Spoike У нього "справжня" робота з програмування, отже, я намагаюся змусити його зосередити увагу на технології, яку він використовує щодня для цієї роботи
Брендон Вамбольдт,

1
@RougeCoder: Поставте йому відповідні завдання (перегляньте цей гігантський список, фільтруйте елементи, намалюйте схему з згрупованими зразками тощо), щоб він міг навчитися робити поняття, про які ви хочете його знати. Якщо таких завдань немає, то для нього немає контексту, щоб зробити ці знання.
Спойк

1
Раніше я думав, що це BS або, принаймні, перебільшення, коли люди говорили, що "навчитися функціональному програмуванню змушує думати інакше". Виявляється, вони вирізали ефект, який він впливає на ваш код. Мій код вже зовсім інший, і я ще не володію своєю функціональною мовою на вибір, і не намагаюся змінити спосіб написання коду. Це насправді відкривачка для очей.
Стівен Еверс

5

Існують вагомі міркування з обох сторін цього питання. Знати " достатньо " про безліч різних технологій, безумовно, цінно. Знаючи « трохи » про безліч різних технологій? Не так багато.

Глибокі знання певних технологій, безумовно, можуть бути корисними - ЯКЩО на них постійно попит. Знаючи " все, що потрібно знати " про певну технологію? ... швидше за все, надмірність.

Отже, все в балансі. Якщо він закінчує створювати чудові програми за допомогою noql, чому б він повинен знати різницю між двигуном InnoDB та двигуном MyISAM?


Ну, різниця між InnoDB та MyISAM - це в основному транзакції. Якщо він не розуміє транзакцій, який шанс у нього правильно працювати з такими поняттями, як "можлива послідовність"?
Майкл Боргвардт

Пробачте? Ніхто не сказав, що він не розуміє транзакцій, і те, що я написав, не означає цього на ВСІХ.
пн

3

Я згоден частково. Йому потрібно знати основні принципи - але йому не потрібно просто сідати за одне і дійсно добре в цьому. Ніхто не робить.

На те, щоб сісти з однією справою і отримати справді добре

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

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

Однак принципи важливі

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

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

Тут питання: чи він знає, що таке $ $! він робить, чи він програміст, який не має уявлення, як програмувати?


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

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

3

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

Існує тонка грань між вивченням теорії / побудови фундаменту та намаганням залишатися мотивованою.

Принаймні, він не застряг ні в одній мові. Іноді ви сприймаєте добро з поганим.


3

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

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

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

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

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

Я думаю, що він робить підхід зверху вниз, а ти, з іншого боку, хочеш, щоб він підходив знизу вгору


1

Чому це погано?

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

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

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

Я думаю, що це має ідеальний сенс.


1

Особисто, якщо хтось повинен був зосередитися лише на одній технології, я б сказав, що це повинен бути C # / Java, який використовується разом із SQL.

З цього, я вважаю, ви можете адаптуватися до будь-якої іншої технології.

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

В ідеалі - одна об'єктно-орієнтована платформа, одна мобільна платформа, одна веб-платформа, а потім дуже хороші знання SQL (або будь-якого іншого середовища DB).

І основи спочатку, інакше він ВІДКРИТИ пізніше!


0

Непогано, якщо він новачок у програмуванні.

Він побачить, як працюють деякі речі. Але якщо він не розуміє, що робить, краще взагалі цього не робити.

У мене була ця проблема з собою, я хочу знати це все Java, C, C ++, C #, Phyton, ASP.NET ... і т. Д., Але я зрозумів, що не можу це все знати, тому я зосередився на кількох речах, і це багато краще.

То що йому робити (порадити):

  1. Подумайте, які речі ви хочете зробити
  2. Вивчіть усі варіанти
  3. Знайдіть те, що вам підходить
  4. Дізнайтеся це
  5. Ніколи не припиняйте вчитися

Я б не погоджувався з @arnaud, якщо ти завжди досліджуєш і вивчаєш нові речі, коли перед тобою новий проект (ну не повністю). Потрібно занадто багато часу, щоб вивчати та вивчати нові речі знову і знову, а деякі проекти мають обмежений час. Але з іншого боку, якщо вам потрібно вивчити деякі прості нові речі, це нормально: D.


0

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

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