Предисловие
Я явлюсь человеком, который прошел нелегкий путь с нуля до «карманного программиста».
Карманный программист — разработчик, который работает напрямую только с одним заказчиком и выполняет любые требования начиная от реализации простого плагина, заканчивая полной разработкой сложной платформы которая приносит прибыль.
Хочу поделиться с вами своим опытом и так как я пытался обучать некоторых людей с нуля, то расскажу о том, что останавливает этих самых новичков в достижений результата.
Мой путь становления
Тут ничего особенного выделить не могу, так как это является просто результатом усердного труда на протяжении 2-ух лет по 12+ часов в сутки.
Что тормозит новичков в развитии
Я выделил основные пункты которые на мой взгляд являются основополагающими, все примеры и цитаты основанный на реальных событиях.
- Кодинг в слепую
- Поиск новой фичи
- Отвержение от готовых решений
Кодинг в слепую
Вот прекрасная ситуация. Рассказал новичку о базовых вещах, показал методы дебага и функцию
var_dump();
Дал задание. Сделать редирект по ссылке из базы.
И через некоторое время тебе приходит сообщение следующего содержания.
Я все сделал, но у меня почему то не указывается ссылка.
После анализа кода в 100 строк на PHP выясняется, что этот уникум сделал опечатку в обращений к таблице на 10 строке.
-Как ты написал 100 строк когда твоя программа сломалась уже на 10?
-Ээээ, ну да бывает.
-Подожди я правда не понял, как ты пытался вывести нужное значение, когда ты даже не знал что у тебя в переменной?
-Ну я примерно представлял что там.
Такая ситуация была у 100% моих учеников — их за все время было 20 человек.
Если вы не будете после каждой строчки проверять состояние вашей программы через дебаг или хотя бы просто выводить переменные на экран, то вы оттягиваете свое обучение и становление программистом до того момента, пока не научитесь ими пользоваться, чтобы нормально обучаться.
Поиск новой фичи
В программировании на любом языке все состоит из элементарных типов данных и базовых вещей в виде функций, ветвлений, переменных, циклов.
Даешь задание человеку вывести все картинки из базы, по клику на которых будет переход на уникальную страницу данной картинки.
Надо всего-то записать в тег указать динамическую ссылку с GET параметром id, предварительно достав из базы все записи.
Элементарная задача с конкатенацией двух строк
$path = "image?id=" . $item['id']
И тут начинаются приколы. Самая популярная попытка.
Человек создает форму с методом GET, пытается как-то положить туда запись из БД, после говорит, что не знает как это сделать.
После того как ты ему напрямую говоришь, что нужно просто сконкатенировать 2 строки, он даже это сделать не может. Ведь решение не должно быть таким простым.
А когда ему решение показываешь, он говорит, что непонятно как работает.
Хотя перед этим ему расскажешь про все тонкости и возможности метода GET, даже приведешь аналогичный пример, который он делает сейчас.
Новички — вам даже толком не нужно пытаться заучивать эти все страшные слова GET, POST, конкатенация. Все что вам нужно сделать это научиться решать задачу способами которые вам уже известный.
Склейка строк, циклы, функции, ветвления. Больше нет ни какой магий.
Отвержение от готовых решений
В основу этого пункта ляжет история, которая произошла с моим учеником, который знал достаточно из основ, но не рос дальше.
Мы писали свой фреймворк с нуля и тут он мне говорит.
-Ну вот на*** это все надо, расскажи мне, как сделать, допустим, интернет-магазин, вот тебе ссылка, расскажи как все устроено внутри.
Я говорю окей, нам нужен будет фреймворк для клиентской части. Он выбрал Vue.js
Как только я ему прислал урок, где рассказал как развернуть проект на Vue показал npm, то тут приходит сообщение.
-На*** это вообще все надо? Тут уже куча файлов, наш фреймворк, composer еще и на Vue какие то папки и файлы добавились.
После моего аргумента о том, что плохого в этих файлах? Их не ты писал, они помогают тебе придерживаться структуры, тебе даже не нужно знать, что в них. Писать на чистом HTML и JS без какой-либо структуры, его интернет-магазин для него самого станет еще более не понятным и вопросы, а на*** это надо вырастут еще в 100 раз больше.
В этот момент человек прекратил обучаться и что-то пошел пытаться создавать сам. Сейчас он стоит на месте и даже никуда не продвинулся. Мораль следующая.
Да-да, новички, вам придется узнать о том, как все это работает — шаблонизаторы, менеджеры пакетов, сборщики проектов. Знания этих вещей дает вам 80% шанса на то, чтобы довести проект до конца без всяких сложностей и проблем. Они будут модифицировать стиль написания кода и вам это нужно принять. Так как это станет действительно вашим залогом успеха.
Спасибо за прочтение.
Автор: new player