Мысли вслух, или зачем нужен живой преподавать в программировании
Есть некие базовые вещи, которые начинающий программист не знает. Он их не то, что не знает, он даже не сможет правильно сформулировать вопрос, чтобы получить ответ у поисковика. Именно в таком случае и очень пригодится живой преподаватель. В этой заметке я попробую рассказать вам об этом подробнее.
Введение
В университете у нас был такой предмет «Начертательная геометрия и инженерная графика». На самом первом занятии преподаватель нам сказал: не пытайтесь понять, что вы делаете, просто делайте по инструкции и понимание со временем придет само. Так и получилось. Мы чертили какие-то проекции по каким-то правилам и не понимали. Ничего не понимали, но продолжали чертить. И в какой-то момент пришло озарение, система в мозгу выстроилась, и мы увидели не чертеж, а сам предмет, саму сущность за этим чертежом. Это было круто.
К чему я это сказал? Так и в программировании (да и во многих других областях) – вы нередко что-то делаете, получаете результат, но не знаете, как оно так получилось. Чем-то похоже на китайскую комнату (упрощенно – черный ящик, который на вход получает инструкции, а на выход ответы, при этом не понимая ни инструкций, ни ответов).
Джуниор и вордпресс
Простой пример. Вы – джуниор, самый-самый начинающий веб-программист. Вы в панели хостера устанавливаете в один клик какую-то CMS (например Wordpress), открываете адрес в браузере и уже видите результат. Если у хостера есть технический домен, то вам даже не надо покупать домен и вся процедура займет меньше 5-ти минут.
Дальше вы открывает админку, создает страницы, начинаете писать свои заметки. Вы не знаете ничего: ни как работает PHP, ни какие сложные процессы происходят на сервере, ни как браузер рендерит вашу страничку, ни как происходит обновление и передача информации. Ни протоколов – ничего.
Дальше вы начинаете изучать html, css. После этого обращаетесь к PHP. Вы опять же очень много не знаете, но уже можете редактировать тему вордпресс, кастомизовать сайт под свои нужды. И так далее. Вы постепенно углубляете и расширяете свои знания Вы можете за всю жизнь так и не выйти за пределы вордпресса и если вам этого и не надо, то гуд.
Далее
Но вот случается что-то неожиданное. При очередном обновлении вордпресс сломался. Или вы хотите изучать дальше. Вы создаете некий файл с расширением php, заливаете его на сервер по SFTP, открывает в браузере и видите, что он делает то, что вам требуется. Например, выводит ваше имя.
Вы опять же ничего не знаете о протоколах, но уже вышли на несколько более высокий уровень. Дальше пробуете создать свой MVP, изучаете JS и перед вами возникают новые, неожиданные проблемы, через какие проходят все новички. Например, отличие JS от PHP и как заставить взаимодействовать динамично страницу с пользователем.
Вы не знаете как это выразить, вы пытаетесь понять, как заменить JS PHP или наоборот. А всего т о надо будет узнать такое слова как ajax и тогда уже строить свои интерактивные сайты. Или возвращаетесь к WP и там глубже погружаетесь в его возможность – тот же ajax, апи, вебхуки.
Что я хотел показать этим примером? А то, что у человека нет основ. Он изучил вордпресс, умеет верстать, даже править темы, но он не понимает, как все работает в целом. Не говорю о вордпрессе, а именно об основах веб-программирования.
Он не знает, что всё основано на запросах (POST-GET-PUT), по каким принципам работает движок, как взаимодействует с базой данных. Это можно назвать уровнями абстракции.
Уровни абстракции
Пожалуй, самое наглядное представление об уровнях абстракции дают сетевые протокола, сетевые интерфейсы. Есть физический уровень – уровень микросхем, кабелей и транзисторов и уровень высокий – https, например. Хороший программист не должен знать все в подробностях как оно там работает на всех уровнях, но он обязан иметь представление.
Это как у вас сломалась машина. Просто встала. Вы можете не иметь понятия о том, какие физически процессы происходят при восполнении бензина, но какое-то общее представление о ДВС и внутренностях авто должны иметь, чтобы заменить свечу.
Кстати, тут хорошая аналогия в связи с тем, что как и у водителя, у программиста накапливает опят, багаж стандартны ситуаций, которые он может решить, не заглядывая за советом в интернет.
Живой человек
Вот затем и нужен живой человек. Он рассмотрит вашу ситуацию и даст путь к решению проблемы. Либо к созданию дорожной карты. Дать некую базу, основы, без которых будет трудно идти дальше.
И еще кое-что
Не секрет, что у многих программистов нет не только высшего, но даже и профильного образования. У немалого числа нет даже курсов за плечами. Это не хороши не плохо, это данность. Это не делает их плохими программистами, просто некоторые вещи они не знают; применяют массивы, где нужны коллекции.
Итак
Если вы хотите стать программистом, то вам необходимо будет много учиться. Вы можете пройти этот путь самостоятельно. Но, оглядываясь назад, лично я бы сэкономил огромную кучу времени, если бы имел такого преподавателя (ну или консультанта) по некоторым вопросам – как я сейчас.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.