Программирование для непрограммистов

Почему каждому инженеру следует задуматься о развитии аналитических навыков и навыков программирования?

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

«Специалист по анализу данных: самая сексуальная работа XXI века». «Данные - новая нефть». «Данные влияют на то, как мы видим мир». Фразы, которые крутятся в голове, заставляют задуматься, приняли ли вы лучшее решение, выбирая академическую специальность или профессиональную карьеру. «Моя специальность не требует навыков программирования». «Нет необходимости учиться разрабатывать программное обеспечение». «Если бы я знал, как программировать, я бы изучал информатику». Парадигмы необходимо было сломать в то время, когда непрерывное образование и постоянное самообучение представляют собой ключи к обновлению и квалификации в сегодняшнем высокотехнологичном и конкурентном мире. Как промышленный и системный инженер, я хотел бы пригласить инженеров и специалистов, не занимающихся компьютерными науками, начать развивать аналитические навыки и навыки программирования, рассказывая о том, как они помогли мне повысить мою профессиональную карьеру в молодом возрасте, а также о преимуществах и преимуществах, которые они могут принести им. тоже.

«Объединение людей, технологий и бизнеса»

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

«Инженеры любят числа и чувствуют себя комфортно с ними»

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

Использование данных minig, машинного обучения и алгоритмов глубокого обучения (например, линейная регрессия, логистическая регрессия, кластеризация k-средних, машины опорных векторов, искусственные нейронные сети) в основном задействовано на этапах верхней части пирамиды DIKW. Однако из-за большого количества данных, которым вы будете подвергаться, их внедрение вручную станет неэффективным, трудоемким и бесконечным. Именно здесь навыки программирования играют основную роль. Возможность кодирования этих алгоритмов в компьютерные программы позволит вам работать с большими и неструктурированными наборами данных более быстрым и эффективным способом. Тем не менее, разработка, обучение, тестирование и проверка математической, прогнозирующей, классификационной или аналитической модели (и это лишь некоторые из них) представляют собой лишь некоторые из задач, связанных с этими шагами. Делать выводы, получать инсайты, получать знания и обретать мудрость - вот конечная цель, которая делает аналитика данных, специалиста по данным и инженера по данным ценным активом для компаний и организаций. Именно здесь сильные аналитические навыки играют важную роль.

«Сообщать о своих результатах и ​​выводах так же (или даже больше), как и их получать»

Большой! Вы разработали отличный алгоритм. Вы получили результаты и важные выводы. Что дальше? Общайтесь и делитесь ими со своей командой. На первый взгляд это может показаться самой простой задачей всего процесса, но правда в том, что многие люди находят ее самой сложной. Лучше меньше, да лучше. Вы должны уметь сообщать о своих результатах и ​​выводах как можно более ясно и кратко на техническом языке, который могут понять даже люди без серьезного опыта в области статистики и программирования. Редко часто менеджеры спрашивают вас о процессе, который привел вас к окончательному результату, но вместо этого они попросят вас объяснить, обосновать и защитить ваши окончательные результаты. Это причина того, почему большинство объявлений о вакансиях требует, чтобы кандидаты обладали как «сильными аналитическими, так и коммуникативными навыками».

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

1. Это поможет вам укрепить логическое мышление.

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

2. Это поможет вам укрепить системное мышление.

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

3. Это поможет вам укрепить свои навыки решения проблем

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

4. Это будет стимулировать ваше творчество при разработке решений

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

5. Это поможет вам лучше понять процессы

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

6. Это заставит вас чувствовать себя увереннее при принятии решений.

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

7. Это выведет вас из зоны комфорта.

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

Заключительные мысли

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

Попробуйте. Ощущение запуска написанного вами кода, который работает эффективно, просто потрясающее.

Подтверждение

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

— —

Если вы нашли эту статью полезной, не стесняйтесь загрузить мои личные коды на GitHub. Вы также можете написать мне по электронной почте [email protected] и найти меня в LinkedIn. Хотите узнать больше о приложениях для анализа данных, обработки данных и машинного обучения в инженерной сфере? Изучите мои предыдущие статьи, посетив мой профиль на Медиуме. Спасибо за внимание.

- Роберт