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

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

Машинное обучение или разработка программного обеспечения: зарплата

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

В среднем разработчики программного обеспечения зарабатывают 92000 долларов в год. Для сравнения: 114000 долларов для экспертов по машинному обучению, опять же, в среднем в Великобритании ситуация выглядит примерно так же. Эти данные были взяты из Glassdoor. Он не принимает во внимание географическую разбивку внутри каждой страны.

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

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

Так, согласно веб-сайту, с 2015 по 2018 год количество вакансий для экспертов по машинному обучению выросло на 344%. А количество должностей разработчиков программного обеспечения за тот же период выросло на 207%. Вы можете увидеть заметный рост в обеих областях. Но опять же, количество вакансий для машинного обучения выросло немного больше по сравнению с разработчиками программного обеспечения.

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

Машинное обучение или разработка программного обеспечения: предрасположенность

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

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

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

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

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

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

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

Таким образом, вы должны также знать какой-нибудь объектно-ориентированный язык, такой как Java или C #, может быть, Python. А если вы тоже занимаетесь веб-технологиями, вам также необходимо знать JavaScript и его миллионы фреймворков. Итак, вы знаете, что быть разработчиком программного обеспечения - это бесконечная кривая обучения. Просто это длинная кривая.

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

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

Третье соображение - это препятствия на пути к машинному обучению. Барьеры для входа довольно высоки. Очень часто в вакансиях вы увидите, что требуется ученая степень в области математики, статистики, информатики или другие количественные степени. Иногда они даже прямо просят докторскую степень в этих областях. Но это не всегда так.

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

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

Что лучше для будущего?

Итак, давайте поговорим о прогнозах на следующие 10 лет, что является хорошим выбором между разработкой программного обеспечения или машинным обучением. Удивительно, но машинное обучение все еще растет, учитывая безумное количество данных, которые мы производим каждый день. Отправлено 500 миллионов твитов, на Facebook создано 4 петабайта данных. Отправлено 294 миллиарда писем. На каждом подключенном автомобиле создается 4 терабайта данных. В WhatsApp отправляется более одного миллиарда сообщений, выполняется пять миллиардов поисковых запросов.

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

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

Заключение

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

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