За последние несколько лет программирование приложений Windows претерпело значительные изменения

Обновлено: 30.06.2024

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

Виртуализация приносит экономию средств и экономит время ИТ-специалистам, которые курируют роботов-роботов. Для эффективной реализации требуется облачная среда.

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

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

Чтобы добиться высокой доступности и отказоустойчивости в AWS, ИТ-администраторы должны сначала понять различия между двумя моделями.

Amazon ECS и EKS похожи, но их различий достаточно, чтобы выделить их для пользователей AWS. Узнайте, что лучше всего подходит для вашего .

Хороший дизайн базы данных необходим для удовлетворения потребностей обработки в системах SQL Server. На вебинаре консультант Коэн Вербек предложил .

Базы данных SQL Server можно переместить в облако Azure несколькими способами. Вот что вы получите от каждого из вариантов .

В отрывке из этой книги вы познакомитесь с методами LEFT OUTER JOIN и RIGHT OUTER JOIN и найдете различные примеры создания SQL.

ИТ-администраторам, рассматривающим возможность перехода на Windows 11, следует узнать, как функции версии Enterprise могут помочь их .

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

Администраторам настольных компьютеров следует обратить внимание на собственные функции безопасности и архитектуру Windows 10, чтобы установить базовый уровень настольных компьютеров.

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

Люди, использующие виртуальный рабочий стол VMware на смартфонах и планшетах Samsung, могут получить доступ к Windows как на устройстве, так и на .

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

Оглядываясь назад на 2010–2020 годы, я расскажу об основных изменениях, которые я заметил в разработке программного обеспечения. Если это десятилетие что-то и доказывает, так это то, что технологии продолжают меняться и развиваться. Но какая-то стабильность все же есть: Java и JIRA. Посмотрим, переживут ли они и следующее десятилетие, и где на этот раз окажутся тенденции 2020 года.

Что больше всего изменилось в период с 2010 по 2019 год

Что не изменилось за последнее десятилетие

  • Ява. Зрелый, надежный и разумный выбор для серверной разработки как в 2010, так и в 2020 году.
  • ДЖИРА. Жалуйтесь сколько хотите; Я еще не видел компании со штатом более 500 человек, которая рано или поздно не перешла бы на JIRA для управления проектами. Существует конкуренция только в том, что использовать для управления проектами для небольших организаций и команд.
  • Компании заново открывают для себя передовой инженерный опыт методом проб и ошибок. Модульное тестирование, проверка кода, наличие спецификации перед написанием программного обеспечения. Все имеет смысл, доказано, что они работают, по ним опубликованы технические документы и исследования. Тем не менее, новые компании с проверенными бизнес-моделями часто не используют их, пока не накопит столько технического долга, что не обнаружат их ценность методом проб и ошибок. Разработчики со званием «сеньор» в некоторых компаниях часто не видят особой ценности в этих методах. Я надеюсь, что к следующему десятилетию ситуация изменится. Не в последнюю очередь поэтому я пишу книгу, которая, надеюсь, повысит осведомленность об этих темах.

Мобильная разработка

  • Телефон Windows. Родился и умер в одно и то же десятилетие. Если бы у Windows Phone было надгробие, на нем была бы живая плитка с надписью «2010-2019. RIP». Для меня это горько-сладкая часть истории, поскольку я был плодовитым разработчиком на пике развития платформы, набрав несколько миллионов загрузок моих бесплатных приложений и десятки тысяч покупок платных приложений. Эти приложения также открыли мне много возможностей в моей профессиональной карьере.
  • Разделение iOS/Android. iOS – это то место, где все больше денег, но у Android есть пользователи, которые все более и более неохотно покупают приложения или приложения. Хотя разработчики iOS и Android пользуются спросом, я предполагаю, что iOS получит больше инвестиций от компаний из-за более высоких общих доходов и гораздо более высокого дохода на пользователя.
  • Умные часы: Apple победила. Apple Watch заняли рынок, где и Pebble, и Google Wear имели фору, но не смогли извлечь выгоду.
  • Опыт разработчика: шаг вперед, шаг назад. Для тех, кто создавал приложения для Windows Phone 2010-2013 с помощью Visual Studio 2013, Xcode и Android Studio все еще на годы отстают от опыта разработки Visual Studio 2013 года. Но время показало, что Apple была права: ориентируйтесь на клиентов, а разработчики смирятся с Xcode. У них не будет особого выбора.
  • Развитие кроссплатформенных мобильных приложений на подъеме. React Native стартовал в 2015 году, а Flutter — в 2018.Кроссплатформенная разработка для мобильных устройств по-прежнему не является панацеей и не обеспечивает такой экономии средств, как надеются многие команды, но ее популярность растет.

Веб-разработка

  • Смерть многофункциональных веб-приложений. Помните апплеты Silverlight, Flash или Java? Все они возлагали большие надежды в 2010 году и через несколько лет вышли на пенсию. Это произошло из-за.
  • Появление одностраничных приложений. Angular, Knockout, Ember, Meteor были самыми горячими ребятами и подходом к созданию сложных веб-приложений в 2012–2015 годах. Многие компании/команды, которые раньше создавали RWA, перешли на этот более веб-стек.
  • React и Vue. Начиная с 2015 года React, Vue и другие фреймворки стали более популярными среди приложений SPA первого поколения.
  • Консолидация браузеров: прощайте проблемы с несколькими браузерами. В 2010 году веб-разработчикам приходилось поддерживать IE6+, Firefox, Chrome, Safari и, возможно, Opera. К 2020 году большинство разработчиков обеспечат его работу в Chrome, а остальные последуют этому примеру. Более тщательные будут тестироваться на Firefox и Edge, но Edge также есть на Chromium. Пища для размышлений: если бы JQuery еще не существовало, возникла бы необходимость в создании чего-то подобного в 2020 году? Я думаю, что не будет.
  • Инструменты разработчика: спасибо, Google. Поскольку опыт разработчиков на мобильных устройствах для iOS и Android разочаровывает, в Интернете Google создал довольно впечатляющие инструменты. Возможности отладки, производительности и профилирования памяти инструментов разработки Chrome не имеют себе равных.

Бэкенд-разработка

Более подробный обзор изменений в распределенных вычислениях, включая контейнеры, NoSQL, потоковую передачу и CI/CD, см. в подробном обзоре за последнее десятилетие Синди Шридхаран.

Инженерная карьера

  • Разнообразие и инклюзивность. В 2010 году у технологий была большая проблема разнообразия, и никто об этом не говорил. К 2020 году об этом говорят все. Некоторые также говорят об инклюзивности, и все больше людей и компаний что-то делают для этого. Однако проблема все еще здесь.
  • Учебные курсы как средство входа в отрасль. В 2010 году степень технического бакалавра де-факто была требованием для большинства вакансий, а для некоторых подходили кандидаты-самоучки. Учебные курсы, начиная примерно с 2015 года, меняют это, предлагая многим возможности для смены карьеры. Однако они преувеличивают то, чему они учат, и недооценивают, насколько сложно проникнуть в индустрию программного обеспечения и остаться в ней.
  • Развитие инженерного менеджмента. 1:1, лидерство-слуга и руководство по коучингу/наставничеству, возможно, были в 2010 году, но я не знал никого, кто сталкивался с этим, включая меня самого. Менеджеры были либо нетехническими, либо техническими руководителями без обучения и с небольшим количеством идей, что делать. Это резко меняется. Начиная с 2017 года публикуются высококачественные инженерные книги по менеджменту, начиная с Пути менеджера. Сообщества EM и хорошие конференции становятся все более узнаваемыми и популярными.
  • Блестящие придурки-разработчики исчезают. В 2010 году индустрия была заполнена «гениальными придурками» и 10-кратными инженерами — парнями, которые якобы были отличными кодерами, но не имели никаких социальных навыков. Если вы не могли работать с одним из этих людей, вина была на вас. С более зрелым инженерным менеджментом менеджеры (и команды) теперь понимают, насколько токсичны эти люди. Лучшие компании не нанимают людей с токсичным отношением. См. также книгу «Нет мудакам».
  • Варианты стартапа не всегда являются билетом к миллионам. До 2010 года покупка опционов на запуск казалась надежным способом заработать миллионы. В 2010-2020 годах это происходило все реже и реже, так как падение цен и фолды единорогов стали более распространенными, чем IPO единорогов. Заметка от Startup L Jackson по-прежнему актуальна с выводом: "не присоединяйтесь к стартапу только ради денег".

Избранные вакансии инженера-прагматика

    в интро. 150-225 тысяч долларов + собственный капитал. Лос-Анджелес, Калифорния. в OpenTable. Берлин. в Джем. Сан-Франциско. в Кэжуал. 150-250 тысяч долларов + собственный капитал. Удаленно (США, ЕС). в Патине. Удаленный (США). в Теро. €70-100K + собственный капитал. Амстердам, удаленный (ЕС). в календаре подъема. €80-120K + собственный капитал. Удаленный (ЕС). Я инвестор. у Разлива. 80-100 тысяч фунтов стерлингов + собственный капитал. Лондон, удаленный (ЕС). у Разлива. 80-100 тысяч фунтов стерлингов + собственный капитал. Лондон, удаленный (ЕС). в Оживить. €55-75K + собственный капитал. Удаленный (ЕС). в Киле. 90-130 тысяч фунтов стерлингов + собственный капитал. Удаленный (ЕС). в Уэйбридже. 60-110 тысяч фунтов стерлингов + собственный капитал. Лондон. в Пакфлите. $105-240K + собственный капитал. Нью-Йорк, удаленно (США, ЕС). в Здоровье буфера обмена. Удаленно (США, ЕС). в Клевертех. 60-125 тысяч долларов. Удаленный (глобальный). в Барсале. $100K+ + собственный капитал. Удаленный (глобальный). в Рейкасте. 140-170 тысяч долларов + собственный капитал. Удаленный (ЕС).

Информационный бюллетень

Информационный бюллетень

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

Гергели Орош

Написание информационного бюллетеня The Pragmatic Engineer и консультант на mobile.dev.Ранее работал в Uber, Microsoft, Skype, Skyscanner.

Поделиться этой публикацией

Проверки производительности для разработчиков программного обеспечения — как я их делаю (надеюсь) честным образом

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

Уроки распределенных систем в 2019 году

В конце года я оглядываюсь назад на то, чему научился, пока мои команды создавали и управляли распределенными системами…


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

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

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

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

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

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

Домены, архитектура и дизайн

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

<р>2. Программное обеспечение — это всего лишь инструмент для решения проблем предметной области. Поскольку это необходимо почти во всех областях, развивайтесь в той, которая вас интересует. Если вы хорошо разбираетесь в предметной области и увлечены ею, вы станете гораздо лучшим и более мотивированным разработчиком. Вы также будете в геометрической прогрессии более ценными и прибыльными для компаний, нанимающих сотрудников в выбранной вами области.

<р>3. Не позволяйте одному домену привязывать вас к одному способу кодирования. Примером может служить мобильный разработчик, который в основном хорошо справляется с объединением существующих API, но не может придумать нормальное представление данных. Не будьте пони с одним трюком.

<р>4. Планируйте свой код вдали от компьютера. Это поможет вам построить четкую мысленную модель, прежде чем вы начнете. Вы используете ту же стратегию в письменной форме, потому что, если у вас нет плана, ваш контент становится беспорядочным потоком сознания.

<р>5. «Когда вы застряли, напишите свою программу на бумаге. Я серьезно. Это магия. Это стандартная практика на соревнованиях по программированию. (Я думаю, это работает, потому что, когда вам не нужно думать о синтаксисе, у вас появляется больше избыточной мощности мозга для решения реальной проблемы.)» (Источник)
—Джозеф Джентл

<р>6. «Увлекательные веб-приложения, как правило, используют данные неожиданным образом или для решения повседневных задач. Узнайте все, что можно, о хранении данных». (Источник)
— Мэгги Нельсон

<р>7. Как архитектор, вы не можете иметь слепых зон в своем понимании ваших приложений и сред их выполнения. Вам нужно знать, как все работает во внешнем интерфейсе (UI), серверной части, хранилище данных, ОС, любых уровнях виртуализации, оборудовании, сети и центре обработки данных.

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

<р>8. Участвуйте в проектах с открытым исходным кодом в качестве моста от новичка к промежуточному. Сотрудничайте с разработчиками проекта и посещайте встречи, чтобы лично сотрудничать с другими разработчиками.

<р>9. Не позволяйте ничему мешать первоначальной мотивации изучать программирование и просто создавать что-то. Иногда вы блокируете себя, слишком сильно сосредотачиваясь сначала на чтении книг или ресурсов. В других случаях новички будут пытаться найти идеальный первый язык. Ваш родной язык не имеет значения. Важно научиться хорошо программировать. Просто начните программировать.

<р>10. «Изучение языков программирования — это НЕ обучение программированию. Сосредоточьтесь на методах программирования, решении проблем и аналитических навыках, а не на изучении как можно большего количества языков».
—Ричард Энг

<р>11.Изучите несколько парадигм программирования, таких как объектно-ориентированное программирование, функциональное программирование, рефлексивное программирование и т. д. Хотите верьте, хотите нет, но ваше программирование в одной парадигме улучшится после изучения альтернативной парадигмы.

<р>12. "Везде, где это возможно, всегда выбирайте более простой язык программирования. Более сложные языки увеличивают когнитивную нагрузку на ваш мозг. Простые языки не обязательно уступают в мощности или выразительности".
—Ричард Энг

<р>13. Новички изучают достаточное количество инструментов, чтобы свести концы с концами. Чтобы стать разработчиком среднего уровня или экспертом, вам нужно хорошо знать свои инструменты. Изучите все функции, меню и контекстные меню. Научитесь использовать их без мыши, запомнив сочетания клавиш. Найдите все доступные статьи с советами и рекомендациями.

<р>14. Изучите свой стек на самых глубоких уровнях, прежде чем решите изобрести велосипед. Питер Никси приводит несколько хороших примеров: «Если вы разработчик Ruby, найдите время, чтобы изучить невероятный набор методов языка. Если вы разработчик Node, найдите время, чтобы понять архитектуру, методы и образ мышления Node. Если вы разработчик Angular, подойдите прямо к скале и поймите логику невероятной архитектуры, которую основная команда создает прямо сейчас. Спросите, прежде чем изобретать». (Источник)
—Питер Никси

<р>15. То же самое касается языков, на которых вы работаете. Изучите наиболее важные библиотеки для ваших случаев использования. Чем больше библиотек вы знаете, тем меньше вероятность того, что вы попытаетесь изобретать велосипед.

<р>16. По возможности используйте языки программирования, которые устранят целые классы ошибок времени выполнения. Для этого ищите языки с такими функциями, как строгая типизация, статическая типизация, управляемая память и/или неизменяемые данные.

<р>17. «Фреймворки, библиотеки, языки, неважно, если вы не сможете понять, что вы найдете под капотом с первой попытки. Вы всегда можете отложить их в сторону и вернуться к ним позже, просто убедитесь, что вы можете разобрать их и посмотреть. Все правила, которым вы должны следовать, когда вы впервые изучаете, были кем-то изобретены, вы можете сделать их своими, чтобы изобретать их заново с некоторой настойчивостью. Держитесь подальше от инструментов, которые создают барьеры на пути этой деятельности, которые заставляют вас зависеть от них неправильным образом». (Источник)
— Ян Кристиан Мейер

<р>18. «[При чтении высококачественного кода] может возникнуть соблазн найти main() и начать с него, но вы, вероятно, потратите много времени только на чтение кода настройки и анализ командной строки. Я предпочитаю сканировать имена файлов, чтобы найти интересующую меня активность, а затем копаться в этих файлах. Не обязательно понимать весь проект или все тонкости всего дизайна, вы измотаете себя, делая это. Прочтите код. Посмотрите на комментарии, посмотрите, что делают авторы и как они это сделали». (Источник)
— Эндрю Бинсток

<р>19. Создайте несколько собственных инструментов. (Но, конечно, если вы собираетесь использовать его в производстве, убедитесь, что это не очередное изобретение колеса.)

<р>20. Сделайте общие программы, которые были сделаны раньше. Не для производственного проекта (см. «изобретение велосипеда»), а для учебного проекта. Если другие разработчики могут сделать калькулятор, текстовый редактор, рисование, тетрис или понг, то и вы сможете. Посмотрите на несколько примеров таких приложений, написанных более опытными разработчиками, и попытайтесь изучить их приемы.

Читаемость кода и ремонтопригодность

22. «Не спрашивайте разрешения на рефакторинг, тестирование, документирование и т. д. Это все часть «программирования». Не спрашивай разрешения делать свою работу». (Источник)
— Джером Терри

23. «Исправьте то, что не сломано. Вы должны вернуться к своему последнему проекту и прочитать код. Подумайте о том, что делает каждая часть. Здесь есть цикл, немного сортировки там, немного обработки чисел, обновления экрана, генерация HTML, база данных CRUD и тому подобное Теперь замените жестко закодированный HTML системой шаблонов, вытащите базу данных CRUD из ваших бизнес-объектов и перепишите ее, чтобы использовать правильные параметризованные запросы вместо конкатенации строк, замените все «writelns» и «MessageBoxes» в ваших обработчиках ошибок с инфраструктурой ведения журналов, рефакторинг кода, который пытается заимствовать методы из других классов, использовать форматирование строк с учетом локали, перестать гадать, насколько большим должен быть массив, и использовать динамическую коллекцию, удалить потерянный код». (Источник)
— Крис Уэнам

24. Большинство разработчиков слышали поговорку: «Всегда пишите код так, как будто человек, который в конечном итоге будет поддерживать его, будет жестоким психопатом, который знает, где вы живете». На самом деле это означает, что вы должны писать удобочитаемый код, который год спустя сможет легко понять незаинтересованный и спешащий человек. Если вам когда-либо приходилось копаться в неразборчивом коде, вы знаете, почему это так важно. Проявляйте сочувствие к разработчикам, которые будут читать ваш код.

25. Назовите переменные, чтобы другие разработчики могли лучше понять ваш код. Это навык, который вам нужно развивать.

26. Использование наследования часто снижает возможность тестирования и повторного использования вашего объектно-ориентированного кода в долгосрочной перспективе. В первую очередь следует использовать композицию и интерфейсы.

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

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

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

<р>30. Овладейте искусством отладки с помощью «операторов печати». Во многих случаях вам не доступен сложный отладчик, но я никогда не встречал платформы или среды, где вы не могли бы выводить текстовую информацию на экран или в файл.
—Ричард Энг

31. Отличные навыки письма и общения напрямую переходят в навыки программирования. Джоэл Спольски поясняет, почему это так:
«Разница между сносным программистом и великим программистом не в том, сколько языков программирования они знают, и не в том, предпочитают ли они Python или Java. ... Убеждая других людей, они получают рычаги влияния. Написав четкие комментарии и технические спецификации, они позволяют другим программистам понять их код, что означает, что другие программисты могут использовать и работать с их кодом, а не переписывать его. Без этого их код ничего не стоит. "

32. Как и в случае с естественными языками, вы не овладеете программированием до тех пор, пока не увидите и не начнете думать в коде. Популярная книга Абельсона Сассмана Структура и интерпретация компьютерных программ — один из лучших ресурсов, который поможет вам в этом. Не беспокойтесь, что его примеры есть в Scheme; это оптимальный язык для обучения мышлению в коде.

Технический долг, покрытие кода и процесс

33. Дональд Кнут известен своими принципами «Если сомневаешься, используй грубую силу» и «Преждевременная оптимизация — корень всех зол». Когда он говорит «используйте грубую силу», он имеет в виду, что вы не должны позволить себе застрять, пытаясь придумать преждевременно оптимальный алгоритм. Просто используйте простейший незамысловатый алгоритм, который будет работать, и повторяйте его. Использование простейшей формулы также поможет вам лучше понять, как должно работать ваше программное обеспечение, и вы сможете приступить к формированию мысленной модели, с помощью которой можно будет придумать более совершенные и эффективные алгоритмы.

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

35. В контексте ваших проектов узнайте, каков правильный объем тестирования. Слишком мало, и ваше программное обеспечение становится ненадежным, и все боятся запускать его в производство. Слишком много, и вы в конечном итоге потратите слишком много времени и ресурсов на их написание и поддержку, а также замедлите процесс разработки.

36. Оценить время сложно. Вот почему так популярны итеративные методы разработки, такие как Scrum. Подталкивайте себя и свою команду к сокращению циклов выпуска. Удивительно, но код доставки чаще всего снижает риск, а не увеличивает его. Это заставляет вас использовать более эффективные организационные методы и создавать лучший продукт для клиента с более быстрой обратной связью.

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

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

39. Вы можете потратить экспоненциально больше времени на поиск последних 1% ошибок в проекте, чем на поиск первых 90%. Если вы не работаете в области, которая требует, чтобы ваше программное обеспечение работало идеально в течение 99,999 % времени, вам следует тратить меньше времени на отладку пограничных случаев и функций, которые люди, вероятно, не будут использовать.

Сотрудничество и продуктивность

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

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

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

43. Не бойтесь часто делиться своей незавершенной работой с другими.

44. «Эмоционально отстранитесь от своего кода. Найдите код, которым вы больше всего гордитесь, и удалите его, а затем перепишите его с нуля другим способом. Используйте «шаблон проектирования», который вас смущает или который вы ненавидите (например, Singleton ) и выясните, как заставить его работать. При необходимости удалите его после того, как он заработает, и попробуйте еще раз с новым шаблоном или языком. Вы не только узнаете, что существует больше, чем один способ сделать это, но и Вы поймете, что ваш код преходящ. Код по своей природе не просто неразрывно связан со своим языком, платформой и API, которые он потребляет, но написан в виде эфемерных статических зарядов, ориентаций магнитных частиц, подверженных капризам. рынка, закон Мура и ваш работодатель… Помните, что эмоциональная отстраненность от кода — это добродетель, но это не означает, что эмоциональная отстраненность от работы — тоже добродетель. вместо этого проявляйте интерес к результату». (Источник)
— Крис Уэнам

45. Поиск в Google — важный навык разработчика. Научиться делать то, чего вы раньше не делали, и найти оптимальные решения с помощью коллективного разума сообщества разработчиков — это полдела в программировании.

46. «Хорошие программисты знают, что писать, а великие знают, что переписывать (и использовать повторно)». (Источник)
— Эрик С. Рэймонд

47. Учить. Даже если вы новичок в программировании, вы кое в чем разбираетесь. Преподавание учит учителя. И если вы можете обучать других работников, ваш руководитель должен понимать, что вы гораздо более ценны.

48. Не зацикливайтесь на том, чтобы стать «10-кратным» программистом. Прочтите эти статьи Мэтта Асая и Скотта Хансельмана, чтобы понять почему.

49. «Вы не станете — вы не сможете — стать лучшим программистом только благодаря силе программирования. Вы можете только дополнить и улучшить свои существующие навыки программирования, расширившись. Узнайте о своих пользователях. Узнайте об отрасли. Узнайте о своем бизнесе. Чем больше вещей вас интересует, тем лучше будет ваша работа». (Источник)
—Джефф Этвуд

<р>50. Совершайте ошибки, задавайте вопросы, получайте быструю обратную связь, чувствуйте себя некомфортно, сравнивайте это с тем, что вы знаете, продолжайте. Подробнее об этом здесь.

Дополнительные ресурсы и комментарии

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

  • Выступление Рича Хики «Просто стало легко»
  • Статья Кента Бека XP Simplicity Rules
  • Книга Джима Маккарти Динамика разработки программного обеспечения
  • Книга Энди Ханта и Дэйва Томаса The Pragmatic Programmer

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

Продолжайте учиться

Подробнее о состоянии качества с помощью руководства TechBeacon. А также: загрузите бесплатный Отчет о качестве в мире за 2021–2022 годы.

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

Ironhack_Students

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

0. Unix >>>>>>> Windows

Вековые дебаты между Mac и ПК окончены. На самом деле, он был завоеван задолго до того, как Mac или Windows родились предком Mac, Unix. Программисты знают, что Unix и его потомки Mac, Linux и BSD намного лучше Windows почти во всем, особенно в разработке. Интегрированные среды разработки (IDE) — это мощные инструменты, которые программисты используют для написания и часто компиляции программного обеспечения. Вы можете установить IDE в Windows, но, как гласит старая поговорка о программировании, «Unix является IDE.«Все в том, как устроены Mac, Linux и BSD, делает их идеальными платформами для разработки программистами. Кроме того, у них есть широкий набор инструментов, которые либо встроены, либо легко доступны бесплатно.

1. Компиляция — лучшее оправдание

Итак, вам не хочется какое-то время ничего не делать? Скомпилируйте какое-нибудь программное обеспечение. Это может занять много времени, и не так много работодателей, которые попытаются заставить вас работать, пока ваша система полностью занята созданием программного обеспечения. Конечно, языки веб-разработки обычно не нужно компилировать, но если вы работаете с таким языком, как C++, компиляция может дать вам хороший незапланированный перерыв.

2. Командная строка великолепна

Когда вы пишете код, вы напрямую взаимодействуете с компьютером. Вы говорите на его языке и даете ему указания. Работа в командной строке такая же. На самом деле все, что вы делаете в командной строке, является программированием на языке сценариев оболочки, обычно Bash. Как только вы привыкнете к уровню контроля, который дает вам программирование, наведение и нажатие становятся неуклюжими и неудобными.

3. Точки с запятой, круглые скобки и квадратные скобки — зло в чистом виде

Представьте, что вы только что потратили целый день на то, чтобы создать кусок кода длиной в сотни строк. Вы кропотливо настроили логику, чтобы гарантировать, что все части органично сочетаются друг с другом. Когда вы уверены, что все в порядке, вы идете запускать его. Бум! Это вообще не работает. Теперь вы снова и снова оглядываетесь назад, пытаясь понять, почему. Это именно тот кошмар, который может вызвать отсутствующая или неуместная точка с запятой, скобка или квадратная скобка. Программисты потратили на них бессчетное количество часов.

4. Лень — это добродетель

Программисты понимают, что невозможно сделать все с нуля и что усердно работать не всегда хорошо. В мире программирования принцип «Работать умнее, а не усерднее» является необходимостью. Билл Гейтс, как известно, повторил эту философию, сказав: «Я выбираю ленивого человека для тяжелой работы. Потому что ленивый человек найдет простой способ сделать это». Лень не только мотивирует вас создавать простой код, но и побуждает вас использовать код других людей. Проекты с открытым исходным кодом существуют не просто так. Они позволяют программистам использовать результаты работы друг друга и не тратить время на изобретение велосипеда.

5. Комментарии важны и являются отличным местом для глупых сообщений

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

6. Никого не волнует, как это работает, пока оно работает

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

7. Нет, просто добавить/изменить это непросто

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

Вам нравится эта статья? Продолжайте изучать веб-разработку!

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

8. Каково быть волшебником

Стать программистом — это все равно, что получить письмо из Хогвартса, о котором вы всегда мечтали. В начале все захватывающе, фантастично и немного страшно. Вы обладаете способностями, превосходящими то, что понимает обычный человек. Когда вы говорите людям, что вы программист, они будут впечатлены и решат, что вы можете делать довольно крутые вещи. Работая и накапливая опыт, вы будете делать удивительные и впечатляющие вещи. Вы не только удивите себя тем, как «заклинания», которые вы пишете, приводят к таким интересным вещам, люди, с которыми вы поделитесь своей работой, будут искренне поражены. В современном мире программисты — это волшебники, использующие свою магию для создания технических чудес, которыми пользуются все, но понимают лишь немногие.

9. Ошибки похожи на тех, что в Starship Troopers

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

10. Программирование — лучшая логическая головоломка

Когда вы пишете код, вы решаете головоломку. В отличие от других логических головоломок, таких как судоку, в программировании не так много правил. Вы можете пойти в любом направлении и построить практически что угодно. Головоломка заключается в том, чтобы знать, с чего вы начинаете, и знать, что вам нужно иметь в конце, а затем выяснять, как этого достичь. Существует более одного решения и более одного способа собрать его вместе. Таким образом, это одновременно и сложно, и полезно. Это даже позволяет вам быть творческим. Неудивительно, что программирование может вызывать такое привыкание.

11. Еще много занудных шуток

У программистов есть своя субкультура. Вместе с этим приходит программистский юмор. Кодеры склонны включать свое часто сухое и саркастическое чувство юмора в свою работу и разговоры с другими программистами. Если вы еще не знакомы, вы уже видели это в комментариях ранее. Есть даже популярные, посвященные программистскому юмору. И не забывайте классиков вроде: «В мире есть 10 типов людей. Люди, которые понимают двоичный код, и люди, которые не понимают».

12. Ложки нет

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

13. Почему видеоигры выходят так долго и почему они еще круче

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

14. Ощущение, что ты можешь сделать что угодно

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

Более 10 000 человеков и предпринимателей начали свою карьеру в технологической отрасли благодаря учебным курсам Ironhack. Сделайте шаг вперед и присоединитесь к технологической революции!

Читайте также: