Вот пример списка поисковых запросов, которые могут быть актуальны при разработке, например, «формы обратной связи» на сайте, функционал которой следующий: «пользователь может указать в форме: тему, текст сообщения и e-mail для связи с ним, затем, нажав кнопку “отправить”, данные отправлялись бы администратору сайта в админпанель и на его e-mail».
Пример списка поисковых запросов:
?
Пример HTML-формы для отправки запроса на сервер.?
HTML тег INPUT и его параметры.?
Что такое POST-запрос.?
PHP обработка POST-запроса.?
PHP подключение к базе данных MySQL.?
PHP подготовка данных для вставки в БД.?
PHP пример вставки строки в таблицу MySQL.?
PHP отправка сообщения на E-Mail.?
PHP параметры функции mail .?
CSS для оформления блока «спасибо за сообщение».Вы спросите: «Откуда же мне знать заранее, еще до написания программы и вообще не имея опыта, что искать в сети? Вот откуда на начальном этапе мне знать про какую-то там команду mail , чтобы искать про нее информацию?».
На самом деле все просто. Вам не нужно формулировать сразу весь список вопросов для поиска. Надо лишь сформулировать первый. Просто подумайте, с чего начинается ваша программа? С HTML-формы, куда пользователь будет вводить сообщение. Вот и поищите информацию о ней. Изучая найденный HTML-код, вы увидите в нём теги INPUT, изучите их, также найдя про них информацию. Затем подумайте, что должна делать форма? Верно, отправлять данные на сервер. Поищите информацию, как это сделать, отправить и принять данные. Вы встретите упоминания о POST-запросе – отлично, «погуглите» про него. И так дальше, шаг за шагом, по мере продвижения вашей работы.
Ваша программа готова! Таким образом, просто понимая, какую функцию должна выполнять программа, можно разбить ее алгоритм на последовательность действий, а затем «загуглить», как реализовать каждое из полученного списка. Конечно же найденные результаты требуют осмысления и могут нуждаться в доработке, но именно так реализуется подход «обучение во время работы».
6. Полный стек
Алан Кёртис Кэй
В мире «айти» есть разные профессии, одних только типов программистов насчитывается несколько десятков, и все в определенной степени являются специалистами – просто разными. Одни разрабатывают приложения для мобильных устройств, другие пишут программы для операционных систем семейства Linux, третьи работают с веб-технологиями. Для работы в каждом направлении, требуется уникальный перечень технологий, который программист должен знать. Это называется «стек» (т.е. список) технологий».
Бывают узкоспециализированные программисты, которые знают ограниченное количество технологий. Их преимущество в том, что они знают эти технологии в совершенстве, оттачивая мастерство годами. К недостаткам можно отнести то, что, ограничившись определенным, узким «стеком» программисту будет крайне сложно реализовать готовый «продукт», с нуля до конечного «релиза» (выхода в свет). Готовый продукт чаще всего требует гораздо большего набора технологий, чем владеет узкоспециализированный программист.
Программист, владеющий всем перечнем технологий в своей нише, называется «Разработчик Full-stack» (от англ. Full stack – полный стек, список). Его преимущества очевидны: возможность решать максимум поставленных перед ним задач самому, реализовывать проекты, требующие всего перечня технологий. А к недостаткам можно отнести то, что как правило «разработчик Full-stack» в первые годы практики владеет познаниями технологий не настолько глубоко, как узкий специалист. Разумеется с годами он догонит, однако в силу более широкого перечня технологий развитие «в глубину» у Full-stack программиста идет медленнее.
У каждого программиста, занятого в своем направлении, стек технологий свой. Я являюсь веб-разработчиком, и мой стек технологий выглядит следующим образом: HTML, CSS, JavaScript, PHP, MySQL, основы администрирования веб-серверов на базе Linux (далее мы будем разбирать именно этот список). У разработчика мобильных приложений под iOS стек будет таким: Objective-C, Swift, JavaScript, Flutter. А вот для Android уже другой стек: Java, Kotlin, Jetpack Compose. У разработчика программ для операционной системы Windows: C#, WinForms, WPF, MS SQL.
Стек технологий может дополняться знаниями специализированных библиотек (расширяющих базовый язык программирования, например jQuery для JavaScript) и фреймворков (готовых наборов инструментов, например Laravel для PHP).