0

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

По какому признаку выбирать язык программирования

Пути выбора

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

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

Было время, когда выбор языка программирования сделать было не возможно, так как число языков программирования было небольшим или даже был один язык, одна машина, например, как у меня. Вот я и начинал с Фортрана для ЭВМ Минск 32. Сегодня число языков программирования настолько велико, что объять необъятное не так просто. Одни хорошо использовать при численных расчетах, другие при отработке текстовой информации, третьи хорошо проявили себя с обработкой видео изображений, четвертые хорошо понимают язык искусственного интеллекта и т.д. и т.п.

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


Наиболее популярные языки программирования

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

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

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

Третий путь — выбор языка программирования от выбранной будущей профессии. То есть сначала определяетесь с профессией, а под нее выбираете языки, на которых в будущем создавать программные продуктов для выбранной профессии (направления).

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

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

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

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

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

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

Например, понятие «конкатенация», а не «сложение» строк не совсем просто воспринимается обучаемыми, и еще кажется странным, что понятия разные, а оператор один. С операторами тоже путаница у простых языков это “+”, у сложных “.”(точка), или требуется переопределение, как в С.
При выборе языка программирования по критерию сложности обучения Basic, Pascal и Python любой из них практически идеальный вариант. Главное не делать  выбор языка программирования ради языка программирования, а не для достижения определённых целей в жизни.

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

Как выбрать язык программирования от будущей профессии? Вопрос не риторический. Во-первых, надо знать, а какие профессии имеются? Например:
-прикладные программисты занимаются написанием различных программ и приложений;
-системные программисты занимаются созданием операционных систем;
-программист-разработчик разработка внутренних инфраструктурных продуктов компании;
-инженер-программист — разработка и развитие проектов компании.

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

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

Профессии программистов

Программист в гуманитарной сфере

Для начинающих программировать конечно надо начинать с элементарного  одного( а не нескольких) любого, какой больше нравится или доступнее в данный момент времени, языка программирования. Например, для будущих экономистов, юристов и менеджеров достаточно изучить только основной синтаксис языка, стандартные типы данных и структуру программы на языке программирования Visual Basic, скажем в интегрированной среде программирования Microsoft Visual Studio. Научиться выполнять простые приложения, но решающие конкретные практические задачи.

Далее, если все хорошо, есть время, возможности и желание углубиться в процесс программирования, то перейти к созданию и использованию сложных(ссылочных и значимых) типов данных — перечисления, структуры и классы, освоению программной реализации принципов инкапсуляции и наследования и т.п. При этом можно усвоить и научиться использовать одну из встроенных в Visual Studio библиотек классов, например, широко распространенную платформу Microsoft .NET Framework. Обширные знания языка Visual Basic позволят затем продолжить обучения на требуемых профессиональных языках выбранного направления.

Если имеется потребность более глубокого совершенствования навыков программирования, то можно перейти к изучению языка программирования Python. Благодаря простому и точному синтаксису Python — отличный язык для изучения. Python является языком программирования высокого уровня. Интерпретируемый (некомпилируемый) язык, также известный как “скриптовый язык”. Этот язык отличается динамической типизацией, автоматическим управлением памятью и поддержкой разных парадигм программирования. В основном используется в качестве инструмента для программирования специализированных задач, таких как задачи по автоматизации и анализу данных. Имеет сильный набор инструментов для математических и научных вычислений, часто используется исследователями.

Программист в IT – технологиях

С точки зрения будущей IT-профессии начинать для любого направления можно с простого языка Python, но для IT специалиста наиболее подходящим является  выбор одного из  двух направлений: первое связано с алгоритмическими языками С, С++ и С #, а второе – с языком Java.

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

На каком языке программирования написана операционные системы Windows, Unix, Linux? Ответ – на Си. На каком языке программирования пишутся современные операционные системы Windows 10 и более? Ответ – на С#. Если в будущем будите стремиться к работе в Microsoft, то потребуется знания языка С, С++, С#. Начинать конечно надо с языка С. Этот язык, хотя и труден для изучения, но осилить его можно при определенной предварительной подготовке.

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

Язык C# используется в качестве основного языка для современной  платформы dotNET и также похож на C++, является расширением языка программирования C++, но с важным дополнением в виде компонентно-ориентированных возможностей.

Например, нас интересует трудная, но очень перспективная профессия «Компьютерная безопасность». В ВУЗах изучают — полгода С, полгода С++, полгода С# и год ассемблер. Кстати об ассемблере. Вот с чего надо начинать программировать. А точнее с машинных языков. Тогда, программируя на высокоуровневых алгоритмических языках, Вы будите, как говорится, “печенками” чувствовать компьютер и его систему команд. Но этот подход трудноват. Если трудно, то можно выбрать язык попроще, но Си-подобный. Такими языками программирования являются Python, PHP.

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

Для более глубокого изучения языков С, С++, С# можно обратиться в Образовательный IT-портал GeekBrains, та есть курсы программирования на портале GeekBrains, закончив которые у Вас не будет проблем с программированием.

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

Удаленная работа программистом

На каком языке программирования написана большая часть прикладного программного обеспечения? Ответ – на Java. Если в будущем будите стремиться к работе в таких организациях как IBM и Oracle, то потребуется знания языка Java или Java.Net. Java является языком высокого уровня и для его использования требуется специальная виртуальная машина(Java Virtual Machine).

Java это сложный строго типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Хорошо масштабируем, так как имеет мало внешних зависимостей, а поэтому может применяться для работы на любой физической машине. Часто используется в сетевой архитектуре, а также во встраиваемых устройствах и других вычислительных приложениях. Но этот язык достаточно сложен в изучении и в применении.

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

Отсюда необходимо начинать с Java-подобных языков программирования, которые изучить проще. К таким языкам относятся  Groovy — объектно-ориентированный язык программирования, разработанный для платформы Java как дополнение к языку Java. Groovy использует Java-подобный синтаксис с динамической компиляцией в JVM байт-код и напрямую работает с другим Java кодом и библиотеками. Язык может использоваться в любом Java-проекте.

К этой группе также относится язык Scala — мультипарадигмальный язык программирования, спроектированный кратким и типобезопасным для простого и быстрого создания компонентного программного обеспечения, сочетающий возможности функционального и объектно-ориентированного программирования. Groovy, Scala может стать преемником языка Java.

Для удаленной работы программистом кроме языка Java часто требуется специалисты, знающие язык C#, который также стабильно входит в ТОП-10 наиболее популярных языков программирования. Споры о том, какой язык программирования лучше C# или Java конечно не прекращаются, но последнее время их становится всё меньше, потому C# стал кросс-платформенным, сильно продвинулся в возможностях по достижению высокого уровня производительности, а по типизации и синтаксическим характеристикам даже превосходит Java. Так что для профессиональной ориентации выбирать нужно между Java и C#, а можно и то и другое.

Например, на сайте kadrof.ru представлены сайты вакансий: общие и специализированные, сайты для поиска работы web-программистам, форумы и доски объявлений, компании, предлагающие удаленную работу программистам, биржи фриланса для программистов, каталог программистов с бесплатной регистрацией, в который Вы можете добавить свое резюме.


Сайты вакансий программистов

Язык программирования C# это один из лучших вариантов, это один из наиболее сбалансированных языков с точки зрения типизации, не говоря уже о лаконичности синтаксиса и отсутствия тяжёлого наследственного багажа как в случае С++. Популярность C# объясняется не только тем, что его легко изучать, но и реальными преимуществами языка в смысле его профессионального применения для решения сложных задач автоматизации.

Кросс-платформенность языка C# позволяет без особого труда писать на нём программы, работающие под Windows, Linux, Mac OS и другие операционные системы. Огромное количество уже готовых встроенных в среду программирования библиотек даёт возможность не изобретать велосипеды, а создавать программные шедевры, использую существующий код.

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

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

Заключение

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

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

Поэтому применяется обратный путь сначала создание программ на любом, но простеньком языке — будь то простейший Visual Basic или немного посложнее – Pascal, а для самых решительных Python. Это тоже правильно, почувствовать, попробовать программирование на простых примерах, а уж потом выбирать настоящие — язык, платформу или корпорацию.

Дорога к профессиональному программированию трудна. Кто осилил ее, поделись опытом.

 

brasm

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *