Выбор языка программирования

Автор: Igor Kirsanov

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

На сайте "Программисту.РФ" будет рассматриваться программирование для компьютеров и мобильных устройств. Узкоспециализированные отрасли, например, робототехника временно останутся в стороне.

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

Вопрос 1: Какой язык самый лучший

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

Вопрос 2: Какой язык программирования самый быстрый

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

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

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

Вопрос 3: Типичные ошибки и как их избежать

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

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

Вопрос 4: Как работать с исходниками

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

Работа с исходным кодом будет состоять из:
  • Обязательного комментирования и документирования исходников
  • Сбора из исходников готового решения
  • Устранения "узких" мест в программе

Вопрос 5: Как программу сделать быстрой

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

Например, для сайтов на PHP таким решением будет кеширование. Если кеширование не помогает, то некоторые модули сайта могут быть переписаны на более производительном языке таком как Java или C++

Вопрос 6: Что почитать и с чего начать изучение

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

Вопрос 7: Работа для программиста

Заработная плата программиста чаще всего зависит от следующих факторов:

  • Востребованность данной специализации на рынке
  • Места проживания или работы программиста
  • Репутации как человека, так и организации предлагающей работу
  • Редкости языка программирования
  • Квалификации и уровня знания языка

По данным на начало 2012 года стабильная заплата PHP программиста в Москве 30-50 тыс. руб., в то время как программист 1С или Java - 80-110 тыс. руб.

Вроде бы не мало, но тут вступает в действие другой закон

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

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