«Половина всего, что вы знаете, устареет через 18-24 месяца» = (Правда или Ложь?) [Закрыто]


33

Просто наткнулся на это и задумался, есть ли у кого-нибудь способ доказать или опровергнуть это утверждение:

Что-то иметь в виду ... что такое период полураспада знаний в области высоких технологий? Это соответствует закону Мура: половина всего, что вы знаете, устареет через 18-24 месяца.

ИСТОЧНИК: В рамках ответа Крейга Трейдера на этот вопрос: « Какую единственную наиболее эффективную вещь вы сделали, чтобы улучшить свои навыки программирования? »


2
Я не понимаю, как это можно доказать.
Одед

50
Statement = (True or False)Да.
Glasnt

3
Я думаю, что это зависит от того, что вы знаете.
LennyProgrammers

3
@glasnt: в этом случае это всегда так: /
Simon

2
Половина всего, что я знаю, сейчас устарела.
JD Исаакс

Ответы:


131

Это утверждение относится только к эфемерным технологиям, которые вы должны изучать только по мере необходимости. Тем не менее, вы многому научитесь за свою карьеру.

Основополагающие принципы и методы программирования вечны.


5
Восхитительно лаконичен. +1
Тим Пост

27
@ Стивен А. Лоу +1 за признание того, что вы посмотрели «эфемерно»
Тим Пост

2
Удивительно, насколько эфемерной может стать технология, которую вы потратили на изучение и использование в течение 7 лет, когда она проигрывает Oracle (или Linux). По общему признанию, то, что я узнал о создании и развертывании приложений, не исчезло, но никто не заботится о Pick, Ultrix или любом количестве проигрышных технологий.
Крейг Трейдер

71

Ерунда

Люди, которые говорят такие вещи, просто пытаются быть сенсационными, иначе они учатся не тем вещам.


8
+1 за «Они учат неправильные вещи»
Мартин

4
Вы знаете, я действительно думаю, что вы должны полностью бросить это и .. подождите .. БЛИЖНЯЯ!
Тим Пост

+1 за внимание к сенсационности, распространенной в этой отрасли.
Рей Миясака


17

Лучший (худший?) Тест, который я могу придумать, это просто вспомнить год. Сколько знаний в области программирования, которые вы используете каждый день, были изучены в предыдущие 18 - 24 месяца? Кроме того, сколько было изобретено в предыдущие 18-24 месяца? Принцип кажется мне весьма подозрительным, так как большинство знаний в области программирования и технических знаний, которые я использую ежедневно, были получены в течение 5-10 лет.

Теперь, если вы разрабатываете что-то вроде платформы для мобильного телефона, возможно, это другая игра в мяч.


2
Нет, мобильный телефон ничем не отличается от всего остального. Все жизненно важные навыки, которые вы используете в повседневной жизни, длятся годами. Я предполагаю, что легко забыть о повседневных навыках, потому что они полуавтоматические.
Джим

1
Основы не меняются, но API и методы меняются. Если вы программируете мобильное приложение, думая о настольном компьютере, у вас, скорее всего, не будет чего-то полезного.
jmort253

По данным Apple, 85% MacOS X и iOS идентичны.
gnasher729

15

По моему опыту, существует огромный разрыв между медиа / публичным имиджем того, какая технология представляет собой Новое Новое, и тем, что на самом деле используется в реальном мире.

Возьмите что-то вроде Visual C ++ / MFC в пространство приложений для настольных компьютеров. Хотя это может показаться старым и устаревшим, и, возможно, это не то, чему новый программист должен сейчас учиться для разработки десктопов, в нем по-прежнему написано огромное количество реальных проектов и заданий, которые поддерживаются - и вероятно, будет сохраняться в течение многих лет и десятилетий. Я собирался привести COBOL в качестве примера, но это будет говорить теоретически - я лично очень хорошо знаю пример VC ++ / MFC.

По сути, дело не в том, что технологии становятся бесполезными и неиспользованными, когда они становятся «устаревшими», а в том, что они больше не рассматриваются как самый современный способ ведения дел и запуска новых проектов. Но вывод из эксплуатации больших программных систем реального мира, которые не сломаны и не нуждаются в исправлении, происходит намного медленнее. Многие из проектов Visual C ++ / MFC, над которыми я работал (начатые в начале 1990-х годов), все еще очень живы, и в них задействовано много программистов (как в обслуживании, так и в новых разработках), и, похоже, никуда не денутся в любое время скоро. На самом деле, я уверен, что большинство из тех, о которых я думаю, будет еще в 2020 году и дольше.

Конечно, это даже не главная проблема. Основная проблема заключается в том, что многие концепции похожи или связаны, и вы не «начинаете с нуля», изучая какую-то новую технологию. Например: как только вы поймете языки разметки и то, о чем они, очень легко выучить новые. Так что не так уж важно, что JSON - это новая вещь, и все, что вы использовали годами, это XML. Это просто вопрос изучения нового синтаксиса - в отличие от того, чтобы быть не программистом, который ничего не знает о том, что такое языки разметки, или о внутренних концепциях, лежащих в основе данных, которые они представляют, и т. Д.

TL; DR: 1) Существует множество «устаревших» технологий, которые используются, но, поскольку это не сексуально новая вещь, вы не слышите об этом много - но это далеко не бесполезно для тех, кто работает с ней. , 2) Концепции программирования строятся друг на друге и развиваются. Мало что действительно нужно изучать с нуля и забыть старое.


4
MFC - какая боль!
Работа

@ Job - О да.
Бобби Столы

Lol, разве это не боль? P
crosenblum

Привет, я тоже работаю над VC ++ / MFC!
Дэвид Торнли

2
+1 Преимущественно за указание на вещи не перестаешь быть использованным, просто перестань быть частью духа времени.
Orbling

12

Все зависит от того, что вы сосредоточены на изучении, запоминании и в целом наполнении вашего мозга. Детали могут быстро устареть, но принципы должны длиться гораздо дольше.

Примеры из вещей, в которые я был глубоко вовлечен в последнее время:

  • Общий синтаксис Java против типизированных контейнеров
  • Типы данных MySQL, лимиты хранения и т. Д. В сравнении с принципами масштабируемости баз данных
  • Облегченный уровень абстракции базы данных, который я помог создать против принципов жесткости / гибкости абстракции базы данных

Те вещи, которые я выучил жирным шрифтом, будут длиться намного дольше, чем вещи на левой стороне. Если вы хотите избежать ошибок устаревания в программировании, сфокусируйтесь на принципах .


11

Роберт Харви прибил это , но, подумав об этом, я вынужден бросить краткость на ветер и ответить.

Я должен добавить отказ от ответственности, я не копался в Perl On Rails в тот момент, когда это было объявлено. У меня было ощущение, что оно хорошо работает для очень ограниченного использования, для которого оно было разработано, и сделало заметку об этом для дальнейшего использования.

Я также не поддался более чем 50 перестановкам в стандартной библиотеке C в течение последних двух десятилетий, я хотел бы ссылаться на них, но теперь они, как представляется, сталкиваются с существенными проблемами.

Вставьте длинную шутку о том, что вы верите всему, что вы читаете или слышите.

Когда выходит что-то новое, возьмите его и посмотрите. Если вы говорите «Ик», бросьте его. Если вы говорите «вау», улучшите его. Если вы не можете обдумать такое решение, выберите мозг людей, которые могут.

Судите все по техническим качествам в одиночку . Стоит вашего времени, что означает, что это экономит ваше время, когда вы получаете одобрение от большинства ваших коллег.

Теперь я отвечу на ваш вопрос напрямую:

Половина всего, что вы знаете, устареет через 18 - 24 месяца, правда или ложь?

Вы должны будете сообщить нам об этом через 18 - 24 месяца. Компании платят значительные суммы, чтобы люди говорили о том, насколько хорош их продукт. Мы должны пройти через не только начинающие компании, но и зарекомендовавших себя гигантов, которые выделяют значительные суммы денег на:

  • [Sic] уважаемые блоггеры срыгивают коммерческое предложение своим читателям
  • Отправьте дорогостоящее фирменное бесплатное снаряжение, чтобы занять место бренда, где это можно заметить при хвастовстве или использовании.
  • Платите людям, чтобы убедиться, что вы видите «рабочее решение» в топ-10 Google при исследовании проблемы
  • Оплачивайте «награды» с сайтов «первой десятки» и делайте вид, что они авторитетные
  • Истинное множество других способов убедить людей перестать думать и просто следовать за толпой

Конечно, вы могли бы формировать свои собственные решения на основе предыдущего опыта и своих испытаний с чем-то новым. Делая это, избегайте работодателей, у которых есть менеджеры, которые раздают заповеди, основанные на их читателе RSS.

Однако у меня есть эта удивительная новая библиотека для строительства мостов, которая достаточно умна, чтобы переключаться между Бруклином и Лондоном в зависимости от вашего региона. Это будет огромный, ты хочешь попасть на первом этаже?

Мой ответ действительно намеренно сардонический и, возможно, антибулевский, но на самом деле? В целях обработки исключений мой ответ является ложным .

Если вы думаете, что что-то технически исправно - примите это, иначе это обычный бизнес. C - мой основной язык, он работает так же хорошо, как и два десятилетия назад, в то время как мне платят вдвое больше, чем мне почти два десятилетия назад.

Я восхищаюсь вашей лаконичной формой и цитатами, но это, похоже, эксперимент по прорыву .

Отлично сработано :)


8

Это зависит от того, что вы тратите на изучение. Я изучил Bourne shell и C программирование в 1980 году. Я до сих пор использую его каждый день. С другой стороны, время, которое я потратил на изучение структур меню Compuserve, является полной потерей, и оно не было действительно очень полезным даже в то время. Тогда есть промежуточные вещи, такие как разводка кабеля RS-232 и последовательные протоколы: сегодня бесполезны, но необходимы примерно десять лет моей жизни. Выберите технологии, которые вы уделяете много времени тщательно.


Обратите внимание, что последовательная связь все еще с нами. Просто не кабели.

RS-232 жив и здоров и живет во встроенном пространстве.
Тим Уиллискрофт

7

Принцип верен. Фактическая стоимость - насколько мне известно - гораздо больше.

Я вспоминаю презентацию Pragmatic Programmer, где они говорили о семи годах, но я не могу найти ее сейчас, поэтому значение может быть немного другим.

Подумайте, как изменились технологии: пятнадцать лет назад Интернет был совершенно новым, и мы все пытались писать веб-страницы - возможно, даже с таблицами - и анимированные GIF. Семь лет назад AJAX взлетел. Сегодня некоторые люди пишут Doom-подобные игры для мобильных телефонов.

Лучше всего изучать общие вещи, которые могут быть применимы к следующей технологии, вместо того чтобы сказать: «Беги! Я знаю только Visual Basic!» (или эквивалент через 15 лет).


Я попробовал Fizz Buzz в VB, но .. не удалось ... :(
Тим Пост

@ Тим, подожди 10 лет и, надеюсь, тебе не придется ...

5

Я не думаю, что это точно.

Когда-то это было ближе к истине - давно у вас не было иного выбора, кроме как программировать на относительно низком уровне абстракции, что означало знание огромного количества деталей, которые больше не актуальны на новой платформе.

Однако со временем все больше и больше программ делается на все более и более высоких уровнях абстракции. Более высокий уровень абстракции более или менее напрямую приводит к меньшей озабоченности деталями, которые могут измениться и быстро устареть.

Очевидно, что есть люди, которые работают над такими вещами, как драйверы устройств или крошечные встроенные системы, которым все еще приходится работать на низком уровне абстракции. За пределами таких областей, однако, есть относительно мало оправданий для таких вещей. Да, много людей делают узнать много мелочи они не нужны, но если вы действительно используете такие вещи в вашем коде много, шансы очень хорошо , что вы просто не делаете очень хорошие решения. Большинство таких вещей можно (и что более важно, следует) вообще избегать.


Я помню, когда GNU загрузился и стал жизнеспособным, и все «крутые дети» использовали его. Но это было еще в тот день, когда у «крутых детей» был даже не метод, а степень мысли в их безумии. Я хочу сказать, что в наши дни вы правы.
Тим Пост

4

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


Да, они становятся ориентиром или, в худшем случае, анти-паттерном. :)
ideasman42

4

Если бы это было так только 5.39x10 -6 из Мифический человеко-месяц будет актуален и сегодня. Поскольку есть очень немного ключевых принципов, которые Фред Брукс детализирует, которые значительно датированы или оказались в корне неверными.


1
Я не совсем уверен. Некоторые из них устарели (кто-нибудь в настоящее время действительно использует команду главного программиста?), Очень немногие совершенно не правы (его вывод о сокрытии информации приходит на ум), и довольно много вещей было установлено в популярная культура, и, возможно, не более актуальны, чем аргументы Зигмунда Фрейда о том, что есть части нашего разума, о которых мы не подозреваем. Это все еще стоит прочитать, и, конечно, есть более пяти частей на миллион (две буквы?), Которые имеют отношение к делу.
Дэвид Торнли

Хороший комментарий, (+1), чтобы ответить, я бы сказал, что команда главного программиста - это не принцип, а ответ. Правда, он был очень неправ насчет сокрытия информации; но он также признает это в 20-м выпуске Anniversay. Я бы сказал, что многое из того, что сказал Брукс, не зарекомендовало себя в культуре разработки программного обеспечения, иначе у нас не было бы такой чрезвычайной частоты неудач в разработке программного обеспечения.
AlexC

Я думаю, что подхожу к этому вопросу о том, какая часть книги актуальна сегодня. Глава CPT, например, не актуальна, но глава о расписаниях устарела и, очевидно, не является частью современной культуры. Издание «20th Anniversary», конечно же, получило отчасти из-за своего эссе «Нет серебряной пули». (Это вышло 16 лет назад, и поэтому по принципу в названии должно быть примерно 0,4% релевантно, и я думаю, мы можем согласиться, что оно более актуально, чем это.)
Дэвид Торнли

Последнее, что я слышал, IBM не использовал команды главных программистов из-за нехватки людей, которые могли бы быть главными программистами, а из-за недостатка метода. Я был главным программистом, это работает довольно хорошо.
Тим Уиллискрофт

3

Многое из ваших знаний останется актуальным во время теста времени (хотя может потребоваться некоторое обновление со временем), особенно основных принципов, таких как структуры данных и т. Д.

Конечно, если вы знаете язык программирования X и Y, изучение языка Z будет проще, чем если бы вы не знали ни X, ни Y, поэтому вы можете использовать свои предыдущие знания для адаптации новых знаний.

Стоит также отметить, что многие навыки, которые были актуальны десятилетия назад, все еще актуальны сегодня, даже конкретные технологии, такие как C (начало 1970 года, все еще актуальны сегодня).

Вполне возможно, что половина того, что вы знаете, через какое-то время устареет, и, вероятно, больше, чем половина, но каждые 18-24 месяца звучат довольно экстремально.


2

Отдельные факты не имеют большого значения. Вы берете их, понимаете их, применяете их только на мгновение.

Но это учит вас процессу обработки фактов или, по крайней мере, обработке определенного набора фактов. Я изучил много математики в школе, которую я никогда не использовал. Тем не менее я учился и тренировал математическое мышление.

Я работал веб-программистом в Ruby on Rails. И хотя я сейчас не пишу веб-сайты, это сильно повлияло на мой образ мышления и сделало меня лучшим программистом на C ++. (Например, больше STL).

Подобное идет для изучения Ракетки. Я никогда не писал больших программ, но это дало мне новую точку зрения для применения в некотором проблемном пространстве.

Это просто тренировка ума ...


2

Я думаю, что вы можете легко опровергнуть утверждение, играя с объектом, который вы в «половине всего, что вы знаете».

Существует определенное распределение знаний, некоторые из которых устаревают (независимо от уровня.) Таким образом, если данный человек содержит знания только из половины этого спектра, которая останется через 18-24 месяца, они нарушают утверждение.


2

Вот лучшая версия предложения: половина всего, что вы узнали сегодня (или на этой неделе, или в этом месяце, или в этом году), устареет через год или два. Это правда - вы узнаете, как сделать что-то в 5-й версии инструмента, и когда выйдет 6, он сделает это автоматически, или вы узнаете, как сделать что-то на языке, который не завоевал популярность, поэтому вы никогда не будете использовать его снова. Но вторая половина того, что вы изучаете каждый день, остается с вами и растет, и это делает разработчика с 20-летним опытом лучше, чем двухлетний.


1

Здесь есть частичка правды или актуальности, но я думаю, что она представлена ​​неточно.

Лучший способ представить это было бы

Какую часть знаний, которыми вы пользуетесь сегодня, вы приобрели 18-24 месяца назад?

или

Через 18-24 месяца вы уже знаете, сколько знаний, к которым вы будете подавать заявку? Чему вам нужно научиться сегодня, чтобы выполнить эти задачи?

Это может зависеть от того, в какой сфере вы работаете, но я знаю, что я постоянно работаю над новыми технологиями. Кажется, что у каждого проекта есть огромный кусок нового материала, который мне нужно изучить - новые фреймворки и шаблоны, новые подходы к слегка измененным задачам или просто новые инструменты, которые (предположительно!) Лучше, чем те, которые мы использовали ранее.

Если в каждом шестимесячном проекте требуется только 12,5% новых знаний, то в течение двух лет полные 50% используемых знаний будут «новыми».

Сказав это, это не очень многозначительно или точно.

  • «Старые» вещи не устарели.
  • «Новые» вещи сильно перекрываются со старыми
  • Принципы, как правило, переносимы

1

О Боже, такой замечательный ответ здравого смысла выше. Хорошо сделано.

Проще говоря, если это модный тренд или тенденция, если вы хороший программист, вы прочитаете об этом, а затем вернетесь к тому, что вы обычно делаете или работаете.

Если нет ничего важного для того, что вы делаете, или новых практик, которые имеют смысл для вас.

Просто потому, что что-то новое, несколько новое или несколько старое, не делает его обязательным решением для чего-либо.

У меня есть простая фраза, все это на обложке.

«Если это работает, используйте это»

Это означает, что если эта новая технология удивительно крутая, но не та, которая делает вашу работу более продуктивной, более качественной или менее подверженной ошибкам, или решает технические проблемы, такие как мобильные или клиент-серверные решения. Чем лучше это прочитать, то игнорировать, пока у вас не появится практическое применение.

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

Важно всегда учиться, практиковаться и совершенствовать свое мастерство и навыки.

Однако вы должны узнать, что полезно или что дает вам различные перспективы для решения проблем, которые у вас обычно есть.

Но помимо этого следует вернуться к основам того, чтобы быть отличным программистом.

  1. http://www.joelonsoftware.com/articles/fog0000000043.html
  2. планирование
  3. Процесс управления проектом - чтобы убедиться, что код не запущен до того, как составлен четкий план и утвержден людьми, которые попросили вас о работе.
  4. Улучшение читабельности вашего кода - потому что мы все работаем над кодом других людей
  5. Будьте организованы, будьте эффективными

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

Потому что, если честно, круто это не круто.


0

Я слышал эту фразу, приписываемую инженерным областям, а не программированию. В частности, я слышал: «Когда вы получите степень бакалавра в области машиностроения, ваши первые два года обучения будут основаны на старых технологиях». (Или что-то в этом роде.)

Я не думаю, что это относится к программированию вообще. Единственный возможный способ, которым я мог видеть это, связан с тем, когда функции устарели или удалены из языка программирования / библиотеки / чего-либо еще.


0

Средняя технологическая платформа существует где-то между 10 и 25 годами, поэтому мне это кажется маловероятным, даже если вы полностью игнорируете тот факт, что знание шаблонов сохраняется благодаря технологиям. Если вы работаете на какой-либо крупной платформе, вы можете рассчитывать на то, что этот стек будет популярен по крайней мере 5 или 6 лет, прежде чем он начнет исчезать. Я знаю программистов, которые 30 лет кодировали в RPG, используя практически идентичные аппаратные и программные инструменты.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.