Выбор операционной системы для программирования

Выбор операционной системы для программирования

vtop

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

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

Mac OS vs Linux vs Windows?

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

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

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

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

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

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

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

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

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

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

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

Всё сводится к тому, что незаменимых в бизнесе быть не должно. Так как если в бизнесе будет сотрудник, которого нельзя заменить, то весь бизнес будет зависеть от него.

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

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

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

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

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

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

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

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

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

 Как выбрать операционную систему или язык программирования?

Для ответа на данный вопрос выберем только один вариант для рассмотрения. Вы хотите стать профессиональным программистом, зарабатывающим на «хлеб» программистским трудом. И вы хотите всю свою жизнь посвятить IT, программированию.

Так как у нас во главе цели стоит финансовая составляющая, необходимо составить список компаний 10-20 штук, в которых вы хотите работать. Если вы не знаете точно, в каких компаниях вы хотите работать, или нет такого яркого желания работать именно в Yandex, Ubuntu, Google, Microsoft, Informatikum, банки и т. д., тогда вы можете открыть ресурсы по поиску работы и найти 10-20 компаний, устраивающих вас по вашим критериям (основной — это зарплата).

По найденному списку компаний смотрим вакансии программистов, в которых описаны все необходимые требования к кандидатам.

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

Эта таблица или список, будет ответом на ваш вопрос. Вы наглядно увидите, что хотят коммерческие компании от кандидатов.

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

Но не будем забывать про спрос на рынке труда и про ваши преимущества среди других кандидатов.

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

  1.  ВыбоВыбор ОС для web-программирования.

Веб-программирование как минимум делится на фронтэнд (frontend — внешняя часть программы, с которой работает пользователь напрямую, интерфейс) и бэкэнд (backend — внутренняя часть программы, серверная).

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

Для разработки серверной части лучше всего использовать ОС Linux, так как большинство компаний выбирают для своих серверов в качестве основной ОС именно Linux. Можно, конечно, использовать и Mac OS с Windows. Для написания сложной программы необходимо знать некоторые тонкости ОС, на которой она будет выполняться. И если вы работаете ежедневно с Linux, вы обязательно будете каждый день по чуть-чуть узнавать новые тонкости для решения сложных задач. Если вы, например, разрабатываете под Mac OS, а программа будет выполняться на Linux, то в некоторых случаях вы будете испытывать дискомфорт.

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

Есть ряд компаний, которые выбирают в качестве серверной ОС Windows. Соответственно, если вы хотите работать в подобной компании и участвовать в разработках ПО, которыми она занимается, вам необходимо разбираться не только в десктопной версии Windows, но и в серверной.

2. Выбор ОС для программирования игр.

В первую очередь в направлении разработки игр играет не сама ОС. Важную роль выбора составляют — компания, в которой вы будете работать, создание 2д, 3д или браузерной игры, будете вы вести разработку фронтэнд или бекэнд.

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

Предположим, что вы хотите работать в американской корпорации компании-разработчике компьютерных игр Valve software. Valve разрабатывает игры для PC, консоли, спонсирует веб-игры. Разработала Steam, который есть на всех ОС. При этом Valve выпускает свою Steam ОС, базирующейся на Linux, и свою Steam Консоль. Поэтому в этой компании можно работать в совершенно разных направлениях.

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

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

Ubuntu + Python + Си, таким будет короткий ответ на выбор ОС для программирования. Основным критерием, повлиявшим на выбор именно такой комбинации, стало программирование микроконтроллеров (роботов) и изучение программирования в школе.

В основном микроконтроллеры можно программировать на Си. Есть готовые платы, которые позволяют программировать на Python. При этом Python отлично подходит в качестве первого языка программирования для школьников и для веб-программирования.


Report Page