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


28

Мені завжди дають поради, що розробникам потрібно бути в курсі новітніх технологій - таких як webrtc, оновлення html5 та css3 та нових js-бібліотек, програмних методологій, таких як TDD, DDD та BDD.

Питання - чому ? Чому нам потрібно постійно оновлювати себе? Чи не можемо ми просто дотримуватися того, що ми знаємо, і стати кращими?


16
У розробці програмного забезпечення потрібно зробити те і інше: глибше ознайомитися з деякими технологіями та бути в курсі нових технологій, що постійно змінюються. Частково тому дуже важко знайти хороших розробників.
joshin4colours

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

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

1
@bmike: Я згоден з тобою: звичайно, цікавий розум захоче весь час вчитися новому. У цьому випадку новий матеріал означає те, що ви не знаєте, що може бути цікавою мовою програмування, яка існує вже 40 років або довше (наприклад, Lisp). Промисловість підштовхує нас до оновлення та розгляду останніх матеріалів цікавими, ефективнішими за замовчуванням. Моя головна думка: вивчати технологію, яка вам не потрібна, лише тому, що вона нова, це марна трата часу.
Джорджіо

1
@RobertHarvey Це не так, якби запитання "Як?" або те, що?" як це було б NC. Це запитання ЧОМУ, і я особисто вважаю, що це актуально і відповідає.
maple_shaft

Відповіді:


42

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

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

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


3
+1: вивчення нових технологій є часто корисно, навіть якщо ви ніколи не безпосередньо застосовувати цю технологію: нові погляди і перспективи , які він, може , звичайно , застосовуватися з використанням «старої» технології.
Йоахім Зауер

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

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

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

@dbracey: Правильно, і через двадцять років якась велика компанія може знайти цю тезу, що тим часом дослідники переробили в якусь зрілу технологію і почали продавати її як нову технологію .
Джорджіо

27

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

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

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


1 Наприклад, вибравши COBOL над PL / I на початку вашої кар'єри в 1965 році.

2 Це працює як для природних, так і для мов програмування.


1
+1 @dasblinkenlight Я люблю це твердження: "... вивчення нових речей достроково допоможе вам зменшити криву навчання, коли наступний технологічний зсув прийде у ваш куточок галузі". Саме тому я вчуся Opa в даний час
Anthony

12

Чи не можемо ми просто дотримуватися того, що ми знаємо, і стати кращими?

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

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


2
Ніщо не бентежить мене більше на роботі, ніж треба застрягти в команді з програмістом, який пише код, як він робив 10 років тому. Каркаси еволюціонували. Інструменти розвивалися. Ви не хочете полегшити свою роботу? Ви не бачите теслярів, які цілими днями використовують ручні свердла та ручні пилки, коли в них зараз є електроінструмент. Вони еволюціонували. І як і будь-яка професія, для вирішення потреб винайдено нові інструменти. Якщо не використовувати новий інструмент, а намагатися зламати щось старе, зазвичай це шкодить якості того, що будується. Будь то в коді або в деревині.
CaffGeek

2
"Рамки розвинулися. Інструменти розвинулися. Не хочете, щоб полегшити роботу?": Існує нескінченний спосіб вирішення певних проблем, а іноді новий інструмент чи мова не кращі, а просто еквівалентні старої. Але у вас є набагато більше досвіду роботи зі старим, щоб ви могли бути більш продуктивними з ним. Ми вважаємо занадто часто, що НОВИЙ == КРАЩИЙ. Натомість нам завжди слід оскаржувати це твердження.
Джорджіо

2
@Giorgio - Одне з них - здоровий скептицизм до «наступної великої речі». Це інше, щоб покласти голову в пісок, коли реальний прогрес пройде повз вас. Пізніший спосіб занадто поширений.
Теластин

4
@Telastyn: Я би призначив 50% обом відношенням: іноді у мене складається враження, що нова технологія підштовхується лише тому, що вона нова. І це лише альтернативний (не кращий) спосіб робити речі. Тож нам доводиться витрачати місяці на знання нових технологій, після чого ми знову такі ж продуктивні, як і раніше зі старою. Але, звичайно, ти маєш рацію, що класти голову в пісок - це теж неправильно і завжди слідкувати за новими речами.
Джорджіо

@ Giorgio, як ти дізнаєшся, чи краще новий шлях чи ні, якщо ти не дізнаєшся про нього чи не спробуєш?
CaffGeek

7

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

Особисто я працюю над вбудованими пристроями, вивчив C, і це досить добре працювало для мене.

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

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


+1: Гарна відповідь. Слід вивчити технології, які потребують чи вважають корисними. Нові технології важливі, і варто озирнутися, щоб знати, що відбувається. Але НОВИЙ не повинен бути єдиним критерієм вибору того, що ми дізнаємось. Крім того, якщо C відповідає вашим потребам програмування, я погоджуюся, що це може бути хорошою мовою для роботи, навіть якщо вона існує довгий час.
Джорджіо

Це також вказує на те, що нові технології часто більше шарів поверх існуючих старих технологій. У чому реалізований ваш VM? C або C ++.
dbracey

Введення залежності - це лише нова назва дуже старої ідеї.
MarkJ

6

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

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

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

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

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


+1: Я згоден з вами щодо шуму. Багато інновацій - це (на жаль) галас, і нам слід дуже обережно вибирати нові технології, на які ми витрачаємо час. Один з мотивів цього моменту - лямбда (що, до речі, я вважаю дуже корисною концепцією): кожна сучасна мова повинна їх мати (C #, C ++, Java?), Інакше це вже не круто! Але лямбди вже близько 50 років, і ніхто не переймався, коли ці мови спочатку розроблялися. Тепер їх додають як задум, щоб лише слідкувати за останнім шумом. ;-)
Джорджіо

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

Що ви маєте на увазі під «сподіваюсь, не Java»? Що їх не запровадять? Мені подобається і використовую лямбда (у Scheme, Haskell): вони досить легке поняття. Але в C #, C ++ та Java вони здаються мені пізнім доповненням, яке якось не відповідає решті мови. Я сумніваюся, що винахідники не знали жодної Ліспи, але вони вирішили, що лямбди не належать до цих мов. Тепер вони стали обов'язковими. Так, мені дуже подобається лямбда, але в C #, C ++ та Java вони здаються просто галас, який використовується для продажу нових компіляторів, книг тощо.
Джорджіо

1
@Giorgio: Java є (або була) досить мінімалістичною мовою. Не потрібно багато знати (наприклад, лямбда), щоб зрозуміти, що хтось ще написав. Мені це подобається. C # - максималістична мова. Кожна нова лінія може представити технології, яких ви ніколи не бачили. Це вибух писати, рідше читати. Не потрібні лямбда, хоча вони допомагають більше в C #, ніж вони в Java з синтаксису. Але вони круті, і вони зберігають пару рядків коду. Іншими словами, ви маєте рацію. Але це C #, а не Java. І все-таки.
RalphChapin

1
@iconoclast: Маючи 20-річний досвід роботи програміста, я не вважаю себе новачком. Однак факт, що Java є (була) порівняно простою та чистою мовою, робить мене більш продуктивною (я можу розробляти складніші програми з меншими зусиллями). Я думаю, що помилкова думка, що проста мова - це для початківців: проста мова дозволить будь-якому програмісту з будь-яким ступенем досвіду більше зосередитись на певних аспектах розвитку (наприклад, керування складною архітектурою, рефакторинг), оскільки вони витрачають менше часу на справу інші аспекти (наприклад, управління пам’яттю, криптовалютний синтаксис тощо).
Джорджіо

3

ІМХО, вам потрібно знайти баланс. Це вимагає майстерності та досвіду.

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

Але ви також повинні побачити, як ця мова розвивається, і зрозуміти динаміку розвитку програмного забезпечення в цілому. Чи буде Java через 10 років, Phyton залишиться там, PHP буде замінено .NET і Mono?

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

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


2

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

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

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

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


2

Тому що "дотримуватися того, що ти знаєш" означає невдачу "оздоровитись". Вам не доведеться застосовувати будь-яку нову практику і рамки, які випливають, але ви повинні хоча б мати усвідомлену думку щодо популярних. У веб-розробці просто поставити запитання буде виглядати жахливо для інтерв'юера. Веб-розробник завалений кар'єрами трупів людей, які хотіли перестати вчитися новому після 2000 року, і це так, як має бути, тому що вони роблять більше роботи для решти нас. Тримайтеся подалі від диявола, якщо це вас не цікавить. Це неприємне співвідношення $ / година, якщо частина, де ви дізнаєтесь нові речі, відчуває себе роботою.


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

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

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