Советы по выбору языка программирования
Решив начать освоение программирования, следует, прежде всего, ответить на вопрос: "Зачем мне это нужно?". От ответа будет зависеть выбор языка и методика занятий. Варианты могут быть такими:
- "Я хочу уяснить как пишутся компьютерные программы, поскольку моя деятельность косвенно связана с программированием". Этот подход может быть свойственен для специалистов, занимающихся продажами или поддержкой программных продуктов, но непосредственно в их создании не участвующих. Знакомство с программированием в этом случае может быть ограничено несколькими беседами с экспертами, выполнением простых учебных задач, просмотром популярных тематических видеороликов.
- "Я хочу самостоятельно писать программы, которые помогут мне решать профессиональные задачи без привлечения профессиональных программистов". Современные языки программирования вполне рассчитаны на такую деятельность. Специалист, не являющийся профессиональным программистом, в состоянии создать компьютерное приложение или утилиту, веб-сервис средней сложности без привлечения специалистов. Это позволяет сэкономить как время, которое могло бы быть затрачено на постановку задачи, так и финансовые средства. При таком подходе следует выбирать языки программирования с низким порогом вхождения, не требующие организации сложной среды разработки (Python, JavaScript и т.п.).
- "Я хочу связать свою профессиональную деятельность с программированием и стать в этой отрасли высококлассным и высокооплачиваемым специалистом". В этом случае следует сразу ориентироваться на относительно сложные, эффективные и востребованные языки программирования, такие, как C++, C#, Java, Go, Swift, Rust. Их изучение потребует дополнительных усилий и времени, но преодолевший эти препятствия специалист сможет в итоге рассчитывать на высокий доход.
Рисунок 1. Примерные ставки оплаты труда программистов. Автор24 — интернет-биржа студенческих работ
Советы по организации среды разработки
Освоение программирования сводится не только к изучению языка, но и к организации рабочего места: установке на компьютер программного обеспечения, позволяющего эффективно разрабатывать программы и готовить их к распространению среди пользователей. Начинающему программисту предстоит освоить следующие инструменты:
- редактор кода; редакторы для написания компьютерных программ существенно отличаются от используемых для создания обычных текстов: они оснащены функциями нумерации строк, подсветки синтаксиса, автодополнения и другими возможностями, ускоряющими написание программ; можно рекомендовать начинающим такие редакторы, как Notepad++, Sublime, VisualCode;
- средства сборки; мало написать текст программы на языке программирования, нужно еще превратить его в работающую программу, безошибочно исполняемую компьютером; для этого применяются компиляторы, линковщики, упаковщики и прочие утилиты, превращающие исходный код в работающее приложение, утилиту или сервис;
- система управления версиями; в процессе коллективной работы программист обменивается фрагментами исходного кода с коллегами; при этом важно сохранять не только актуальные, но и предыдущие состояния программного кода, чтобы можно было вернуться к ошибочно отвергнутым решениям; кроме того, в процессе разработки часто возникает потребность провести эксперимент, выбрать лучший из вариантов, не повредив при этом основной продукт; для решения всех этих задач предназначены системы управления версиями, наиболее популярной из которых является git.
Рисунок 2. Редактор кода Notepad++. Автор24 — интернет-биржа студенческих работ
Советы по поиску информации о выбранном ЯП
Важно с самого начала процесса обучения приучаться к правильным способам поиска информации в случае затруднений, неизбежно встречающихся при освоении программирования.
фреймворкам, протоколам. Автор24 — интернет-биржа студенческих работ" />
Рисунок 3. Devdocs - ресурс, содержащий коллекцию документации по наиболее востребованным языкам программирования, фреймворкам, протоколам. Автор24 — интернет-биржа студенческих работ
Метод проб и ошибок, которым пытаются руководствоваться многие начинающие программисты, малоэффективен и ведет к большим затратам времени и сил. Не следует "изобретать велосипеды". Использование чужих наработок в программировании, особенно тех, доступ к которым открыт, является признаком не "недостатка собственного ума", а, напротив, профессионализма. В связи с этим можно сформулировать несколько рекомендаций:
- необходимо уделять время изучению стандартов, касающихся выбранного ЯП, а также базовой документации по нему; начинающие программисты часто осваивают профессию методом "копипастинга": находят в чужих исходниках работающие фрагменты кода и вставляют в свои программы; такой эмпирический подход допустим, но чреват потерей эффективности; автор, у которого скопирован фрагмент, может не обладать достаточной степенью профессионализма, поэтому рекомендуется сначала найти подходящие решения в документации, и лишь потом, если возникли трудности, искать готовые варианты их применения; так, например, для изучающих JavaScript хорошей отправной точкой для изучения возможностей языка может стать ресурс Mozilla Development Network;
- следует прочитать хотя бы одно полное руководство по выбранному языку, причем желательно наиболее свежее; при этом хорошим подспорьем будет знание английского языка, поскольку русскоязычных авторов, пишущих учебники по программированию, мало и качество их работ уступает уровню западных авторов; во-вторых, переводная литература появляется на рынке хоть и довольно оперативно, но, все-таки, с некоторой задержкой; в-третьих, русскоязычные учебники продаются, в основном, в бумажном виде и стоят довольно дорого, тогда как англоязычные можно легко найти в электронном виде в Сети;
- при поиске ответов на возникающие вопросы следует прибегать к информации, накопленной в рамках крупных сообществ программистов; за каждым популярным языком программирования стоит, как правило, мощное коммюнити, члены которого могут давать полезные советы новичкам в случае затруднений; здесь вновь следует отметить, что в основном такие ресурсы (форумы, социальные сети, базы знаний) англоязычны;
- хорошим тоном считается практика самостоятельного поиска информации, предшествующего обращению с вопросами к опытным участникам сообщества; как правило, с проблемой, с которой столкнулся начинающий программист, уже кто-то сталкивался до него, и она уже хорошо раскрыта на таких ресурсах, как stackoverflow.com, Goggle Groups, GitHub и т.д.