Как я недавно говорил, нельзя просто взять и выучить какой-то язык программирования. Тем не менее, откуда-то все-таки берутся программисты, и многие из них даже неплохо знают свое дело. Как же так получается?
Человек, заявляющий "я хочу стать программистом, научите меня", подобен младенцу. Не только не знает он, как по-русски будет "пюре с тефтелями" - само понятие божественных "тефтелей" чуждо ему.
От этих слов я не собираюсь отказываться, тем более, что рано или поздно суть тефтелей открывается каждому. Не труднее постижима и суть программизма.
Обычно речь идет о решении какой-то задачи. Например, нужно приложение для мобильного телефона. Или для Windows. Или просто веб-сайт.
Во всех этих случаях решение задачи тянет за собой свою экосистему. А уже в нее обычно входят и языки, пригодные для выполнения задачи, и среда, в которой будет исполняться код. А еще такие вещи, как типовые задачи и их решения, способы отладки. Да и просто организация документации каждый раз может быть разной.
Если вы, скажем, хотите собрать себе комод, волей-неволей вам придется освоить не только соединение "ласточкин хвост", но и разведать ближайшие строительные магазины, поставщиков древесины, познакомиться с правильными способами работы с инструментами, а потом найти источники информации о всяческих полезных лайфхаках.
Программирование, безусловно - магия. Но в XXI веке это уже ремесленная магия: заклинания вполне себе описаны в магических книгах, а чтобы добыть книги, не надо убивать предыдущего владельца. Можно просто купить в магической лавке.
И вот для того, чтобы решить, какой язык вам стоит выучить, стоит для начала понять, какого рода задачи предстоит решать.
Мой выбор - PHP. Он подходит для создания так называемой backend-части сайта. Это "задняя часть" сайта, которую пользователь никогда не увидит, поэтому там можно творить все, что угодно, лишь бы работало.
У сайтов есть еще frontend ("передний конец"), который пользователь видит. Если надо придать ему живости, придется изучать другой язык - Javascript. Но, в большинстве случаев, нормально и так.
Натурально, еще каких-то двадцать лет назад, для того, чтобы научиться разрабатывать сайты, приходилось сначала понять, что вообще такое "сайт".
И вот пошли особенности, например: среда исполнения кода на php - сервер. То есть особенный компьютер, который мы настроили, чтобы исполнять наш код и показывать результат пользователю. Стало быть, выполнение нашего кода происходит под нашим контролем (разработчики разных приложух для телефонов - завидуйте).
А какие задачи вообще решает технология? А пожалуйста: принять от пользователя запрос, достать из базы данных результат, оформить его в виде, пригодном для потребления браузером, и послать обратно. В случае с PHP, фраза "php must die" - не дразнилка, а родная философия: процесс рождается, обслуживает ровно один запрос и умирает. PHP, натурально, must die.
А какие типовые проблемы? Проверить пользовательские данные на корректность, нигде не налажать с базой данных, сгенерировать html-код по шаблону, подключить библиотеки с чужим кодом. Разложить код по файлам, чтобы не запутаться. И все решения этих проблем изложены в магических книгах, нужно только найти подходящую книжную лавку. А в общем-то, сейчас и этого не требуется - можно просто спросить у поисковика.
Я, кстати, нигде не написал, что требуется освоить синтаксис (то, что обычно и понимают под словом "выучить язык"), потому что запомнить в каком месте ставить точку с запятой, знак доллара или фигурную скобку можно за вечер.
Основная задача - научиться обрабатывать типовые случаи. Понять, что именно является типовым случаем. И знать, где искать ответы на вопросы.
И самое главное - понять, что компьютер тупой. Что с этого момента ты будешь говорить ему, что делать.
А для этого есть уже готовые заклинания, которые ты расставишь в правильном порядке. В этом смысле современный программист уже "стоит на плечах титанов".