С чего начать изучать программирование?

Первый этап - определяемся с целью изучения программирования


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

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




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

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

Современные среды разработки, например Embarcadero RAD Studio дают возможность очень даже быстро набросать программу, особо не вникая в тонкости программирования. Аббревиатура "RAD" - это сокращение английского словосочетания rapid application development - концепции быстрого и удобного программирования. Для примера скажу, что текстовый редактор, который будет немного похожа на MS Word, на Delphi, зная азы программирования в Embarcadero RAD Studio, можно будет написать за пару часов или даже быстрее.

И этот текстовый редактор будет относительно полноценно работать. В нем можно будет набирать текст, вставлять картинки и таблицы и делать очень многое, что можно делать и в самом MS Word.

Но, программирование на Delphi подразумевает использование многочисленных компонентов. Компоненты по своей сути - готовые куски программы. И вот один из таких компонентов и есть тот самый текстовый редактор. Достаточно будет его найти в Интернете, скачать и "прикрутить" к программе. И все очень быстро заработает.

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

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

Второй этап - осваиваем основы и парадигмы программирования


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

Основы программирования

Парадигмы программирования появлялись только с одной целью - упростить процесс программирования. Условно можно выделить вот какие парадигмы:

Процедурное программирование

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

Модульное программирование

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

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

Функциональное программирование

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

Объектное программирование

Самая распространенный подход в настоящее время - это Объектно-Ориентированное Программирование (ООП). Вот с ним и следует разобраться основательно, чтобы уже более уверенно приступить к изучению языков программирования, которые поддерживают ООП.

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

Какой начать изучать язык программирования


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

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

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

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

Можно пойти другим путем, выбрав какой-нибудь язык программирования без оглядки на современность. Можно изучить его, тогда можно в перспективе быть крутым программистом, на опыт которого не будет никакого спроса! Простой пример: ближе к концу 90-х прошлого века многие организации нуждались в крутых программистах, которые быстро разрабатывают программы на FoxPro. Было и прошло. Visual FoxPro где-то еще изредка используется, даже вполне можно устроиться на работу и зарабатывать целых двести долларов в месяц!

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

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

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

3 комментариев

В статье упоминается возврат параметров из процедуры и функции. Не стоит путать это со значением, которая может возвратить только функция. Процедура ничего не возвращает, но если параметры в процедуру передаются по ссылке, то такие параметры могут быть изменены внутри процедуры и эти изменения будут видны вне процедуры, которая изменила параметры.
Если кто-то пожелает научиться делать программы для смартфонов и планшетов, работающих на Android, сразу могу сказать, что изучать стоит язык программирования Java и среду разработки Android Studio! Хотя есть и другие достойные среды разработки для Java - NetBeans, IntelliJIdea, Eclipse и другие. Какую из них использовать решает уже сам программист, исходя из своих привычек и предпочтений. Сравнивать на уровне "эта лучше, а эта хуже" тут не получится, так как каждый из инструментов обладает своим набором плюсов и минусов.
SeaMan75, статья очень объемная и чтобы она не выглядела белой простыней, сделайте тематические скриншоты к 2-3 разделам статьи и вышлите мне, я их вставлю.
  • Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.