Я считаю себя разработчиком программного обеспечения высокого уровня. Мне очень нравится читать, и это помогло мне на протяжении всей моей карьеры. Я думаю, у меня все хорошо.
Прямо сейчас я провожу много времени, изучая новые вещи. Я не отстой, когда дело доходит до написания кода прямо сейчас, но я собираюсь создать семью, и я регулярно вижу много пожилых людей с 14-15-летним опытом, которые - потому что они сократили изучение новых вещей - теперь отстой при программировании. В какой-то момент они были вдохновляющими фигурами, но это уже не так.
Вы можете утверждать, что основы никогда не меняются, но, похоже, это имеет значение, когда вы программируете на Delphi в течение 10 лет, и вдруг все используют .NET Framework. Это правда, что опытный разработчик займет меньше времени при изучении новой платформы, но это все еще требует времени и усилий.
Как разработчик программного обеспечения управляет требованиями работы, в то же время имея возможность сконцентрироваться на вещах, которые обязательно увольняют вас с работы, таких как создание семьи?
Ответы:
Что-то, что вы сказали, выделялось: «Я регулярно вижу многих пожилых людей со стажем 14–15 лет ... они теперь отстой в программировании». Это довольно широкий мазок кисти, который вы используете, чтобы рисовать людей с опытом. Я хотел бы указать на пару вещей для рассмотрения:
Возможно, люди, на которых вы ссылаетесь, никогда не были хорошими. Вполне возможно, что они смотрят на вас, думая, почему вы настаиваете на том, чтобы делать что-то нелегко?
Правда, когда вы заводите семью, у вас гораздо меньше времени, чтобы не отставать от новых игрушек. У вас действительно меньше времени, когда ваши дети становятся старше, чем вы, когда они младше. Игрушки не делают тебя лучшим программистом. Ни один не делает инструменты. Что делает вас хорошим, так это способность разбирать проблемы и находить работающее решение. Что делает тебя великим, так это способность учить других быть хорошими. Вот где опыт начинает сиять.
источник
Трудно предсказать будущее. Но одна вещь, безусловно, самая ценная, независимо от технологии.
Это способность разработчика решать проблемы .
Многие из качества разработчика независимы от технологий. Например, аналитические способности - самое важное качество, о котором я знаю. Это как учить математику. Это просто вне времени.
источник
Хотелось бы, чтобы у меня была позитивная или конкретная мысль - но я думаю, что программист идет в ногу со временем и баланс работы / семьи сильно варьируется от программиста к программисту.
Случайные мысли:
источник
Во-первых, Microsoft занимается продажей инструментов и платформ для разработки программного обеспечения, на которых можно запускать это программное обеспечение. Это стимулирует их вносить изменения независимо от того, нужны они или нет. Это не значит, что все их изменения бесполезны, просто есть много областей в нашей профессии, которые намного более стабильны. С опытом вы сможете лучше понять, на какие подножки стоит прыгнуть сразу, а на какие подождать, чтобы повзрослеть.
Во-вторых, опыт просто требует времени. Большинство разработчиков с 15-летним опытом, которые сейчас плохие, были плохими 15 лет назад. Не приписывайте возрасту то, что можно адекватно объяснить некомпетентностью.
В-третьих, не путайте устаревшие знания с неспособностью использовать новейшие и лучшие средства, когда в этом возникает необходимость. Обычно достаточно просто знать, что там. Например, до недавнего времени мои познания в области веб-программирования были устаревшими в конце 90-х, но когда я захотел создать веб-сайт для своего брата, я знал достаточно, чтобы проверить «новомодные» технологии, такие как CSS, jQuery и системы управления контентом, и был довольно до скорости в пару недель. Другими словами, если вам что-то не нужно в течение последних 10 лет, у вас вряд ли возникнет чрезвычайная ситуация, когда вы захотите, чтобы вы были в курсе событий прямо сейчас.
Наконец, быть родителем - это действительно большое время, но, похоже, меньше времени, чем думают многие бездетные люди. Родителям все еще удается читать книги, смотреть телевизор, играть в игры, просматривать веб-страницы и даже иногда посещать занятия. Шокер, я знаю. Вы просто делаете это небольшими порциями и расставляете приоритеты. Единственное, от чего я полностью отказался, это просмотр повторов.
источник
Я могу заверить вас, что люди, которые демонстрируют плохие навыки программирования после десяти-пятнадцати лет, никогда не осваивали разработку программного обеспечения. Овладение набором инструментов - это не то же самое, что овладение искусством разработки программного обеспечения.
Я пишу код более тридцати лет. Я прошел через несколько периодов, когда мне приходилось ставить свою карьеру на автопилоте из-за внешних обязательств и / или интересов. То, что нужно научиться делать по мере старения, - это избегать преждевременного появления технологий. Большинство технологий не в состоянии оправдать их обман. Как пожилой практикующий с обязательствами вне работы, он должен быть скупым со временем. Опытный практик может позволить себе подождать пару лет, пока новая технология не станет зрелой, потому что он уже освоил искусство разработки программного обеспечения.
источник
За мой многолетний опыт работы:
flavor of the day
(иногда хорошее, часто плохое).Как отмечалось в обсуждении моделей, банда из четырех человек не изобрела шаблоны. Они придумали терминологию и шаблоны для решений, которые уже применяются.
В отличие от многих других областей, все еще много чего не является обычной практикой. Я видел много передовых вещей приходят и уходят. Многие из них были перефразировкой техник, уже применяемых на практике, и те, которые обычно достигли успеха в некоторой степени. Другие более или менее ушли, и большинство, где новые подходы. (Кто-нибудь видел язык пятого поколения в последнее время?)
Наиболее эффективные программисты, которых я видел, могут выбирать и собирать проверенные компоненты в рабочее решение. Это редко включает в себя что-то передовое, что обычно увеличивает риск проекта. Способность опираться на работу, которая уже была проделана, позволяет нам расширить сферу возможного.
Языки программирования имеют тенденцию делиться на относительно небольшое количество семей. Знакомство с одним языком в семье облегчает работу с похожими языками. Понимание библиотек, доступных на языке, и их использование могут значительно повысить производительность и надежность. В общем, я бы выбрал более старый язык с соответствующими библиотеками вместо более нового языка без соответствующих библиотек.
При применении новых технологий важно избегать
Because We Can
синдрома. Добавление новой технологии, потому что это вкус года, имеет тенденцию вызывать больше проблем, чем решает. Знание того, когда технология решит реальную проблему, а когда она только добавит сложности, является полезным навыком.По-настоящему хороший программист решит новые проблемы, а остальное использует существующие решения. Немногим компаниям нужны передовые технологии, всем нужны надежные решения.
Я обычно сожалею о скольжении лезвия бритвы. Я не помню, чтобы когда-либо сожалел об использовании проверенной технологии. Тем не менее, многое из того, что описано как
new
переупаковка чего-то существующего. Обычно эта переупаковка делает вещи проще для понимания и применения соответствующим образом.источник
Никто не может идти в ногу со всем. Вы, вероятно, были довольно заняты, не отставая от предложений Microsoft. Вы рассматривали Ruby для баз данных RAILS и Python и NoSQL, а также для создания Hadoop и мобильных приложений, CSS, HTML5, jQuery, ExtJS и ...?
Я был в программном обеспечении довольно давно. Я стараюсь не отставать от действительно новых технологий, таких как новые идеи для массивно параллельных баз данных, и максимально игнорирую уродливые (например, MFC, WinForms, SOAP, XML, EJB) и тривиальные. В основном мы просто видим большие старые идеи, переупакованные и наконец принятые. Функциональное программирование? Я использовал INTERLISP в 1977 году. Приложения для мобильных телефонов? Это тот же управляемый событиями пользовательский интерфейс и 2D-графика, которыми мы занимались не менее 30 лет. Конечно, есть умение разработать удобное приложение для небольшого сенсорного экрана, но программирование вовсе не ново.
источник
Я согласен с @Amir, что ваше мастерство - это решение проблем, а не предметная область, но я ценю вашу заботу, поэтому:
Если у вас есть свобода выбора текущего языка, выберите тот, который максимально приближен к первым принципам (например, язык языка C ++), чтобы при задании на работу в новую область кривая обучения была меньше - поскольку она просто абстракции над вами. Если вы сейчас инвестируете только в языки высокого уровня, двигаться по абстракции намного сложнее (даже если только в восприятии).
Если у вас нет этого корма, то просто в полной мере используйте свои 8 часов на работе ... если ваша страсть высока, вы не будете "застревать", и вы всегда найдете интересные проблемы, с которыми можно решить, естественно, заставит вас узнать больше ,
источник
Это будет зависеть от вашей работы и работы, которую вы хотите. Есть позиции, где разработчики все еще используют старые технологии. Все еще много Кобола, чтобы продолжать идти (я уверен, что что-то изменилось.).
Работа в компании, которая делает серьезное переключение, как вы описали, может лишить некоторых людей работы. Иногда компания вкладывает средства в обучение, а не требует обучения самостоятельно.
Наличие семьи может ограничить ваш выбор работы. Может сделать вас менее мобильным. Можете ли вы пойти на работу за половину своей зарплаты в надежде на большую зарплату - может быть, не с детьми и ипотекой.
Новее не всегда лучше, и многие не живут.
источник
Я не в области медицины, но как насчет аналогии между разработчиком и врачом? За последние 20 лет в обеих областях произошли огромные изменения, и темпы изменений становятся все быстрее. Все врачи идут в ногу? Все ли разработчики идут в ногу? Нет. Можете ли вы сделать какие-либо обобщения о разработчиках или врачах с опытом работы 14-15 лет? Больше опыта означает, что у вас больше ответов на подобные проблемы. Опыт превосходит интерес? Не в долгосрочной перспективе.
Думай как акула, которая должна плавать или умирать. Продолжайте учиться или умрите (или перейдите к управлению, куда большинство стремятся, поскольку пики развития карьеры достигают своего пика примерно через 10-15 лет).
источник
В глубине моего сознания я испытываю те же проблемы, но в последнее время я думаю об этом, чтобы перестать пытаться предсказать вашу собственную способность адаптироваться и просто адаптироваться. Я считаю, что, если я предполагаю, что могу не отставать, я обычно просто делаю. Если я переживаю из-за того, что устарел, это может сделать пророчество самоисполняющимся.
Как ты сказал, оставайся на цыпочках. И если ты не можешь не отставать, не парься слишком сильно. У технологии есть забавный способ обойти полный круг, и вы можете снова оказаться в мейнстриме, отлично выступая.
источник