Cooking PHP. Программирование с Екатериной
172 subscribers
12 photos
3 videos
1 file
25 links
Учим php на кухне с нуля 🙄

Сложно ли девушке работать программистом?
Офисные заметки, размышления о работе и о жизни.

Более 20 лет в ИТ, более 15 в php
Download Telegram
Про веб-дизайн на примере вишбука.
Вот такую страничку мы с сестрой нарисовали в 2015 (вроде) году в фотошопе.
🔥6👍32
Это и есть основное, что делает веб-дизайнер, рисует в программе странички или отдельные объекты, баннеры, блоки.
Потом эту страничку верстальщик превращает в код, который выглядит так (это реальный пример с сайта, кусочек):
<div class="header">
<div class="header-inner">
<div class="col-1">
<a class="logo" href="#"></a>
</div>
<div class="col-2">
<div class="top-menu">
<ul>
<li><a href="#">Желания</a></li>
<li><a href="#">Магический шар</a></li>
<li><a href="#">Форум</a></li>
<li><a href="#">Изменимся вместе</a></li>
<li><a href="#">Витрина</a></li>
</ul>
</div>
</div>
<div class="col-3">
<div class="login">
<div><a href="#" class="login-link">Вход</a></div>
<div class="login-links">
<a href="#">Забыли пароль?</a>
<a href="#">Зарегистрироваться</a>
</div>
</div>
</div>
</div>
</div>
👍72
Но лично мне веб-дизайн не подошел. Не люблю, когда заказчик говорит: "сделай, чтобы красиво". Делаю красиво, на мой вкус. А на его не очень, а почему, и сам не знает.
Еще хуже, когда двое принимают работу. Одному нравится, другому нет.
Я уже как-то даже начала заранее говорить: "А. уже смотрел, ему понравилось". Тогда В. кивает, говорит, да, нормально. Приходит А., я ему говорю: "В. понравилось". И ему тоже тогда нравится.

Но я люблю все же четенько. Есть задача - я ее делаю. Результат - работает или не работает, однозначно.
Заказчик код не видит и не понимает.

Конечно, код тоже должен быть красивым, но это видят только твои ребята-программисты, и если что не так, они подскажут. Это гораздо проще, чем рисовать перпендикулярные параллельные прозрачные квадраты 😅
6👍4
И еще, друзья.
Я поняла, по итогам вчерашнего разговора, что не верю в курсы по программированию 🙈
Вернее, основы можно получить на курсе, но это и книжку можно прочитать.
Все остальное - практика на реальных проектах.
Поэтому не хочу делать никаких курсов.
Скорее, я бы взялась бесплатно рассказать с точки зрения теории, а на практику (теоретически, пока это абстракция) взяла бы пару человек под личное ведение, но это было бы не так, что вот вам пример, скопируйте и вставьте, а все по-настоящему, техническое задание и разработка проекта, который сразу пойдет в портфолио. Я бы смотрела каждую строчку кода и поясняла бы, что не так и как лучше.
Вот такой вариант гораздо эффективнее и быстрее. За полгода максимум можно выйти разработчиком.
👍163
А вообще, есть у меня те, кто сейчас уже точно знает, что хотел бы пойти в разработку и стать программистом?
Ну вот я скажу, что если поднапрячься, то через условно полгода вы выйдете на работу младшим разработчиком? Кто был бы готов поднапрячься?
Я не знаю, зачем мне это нужно, какая-то бредовая идея в голове сидит вторые сутки 🙈 дать хотя бы базовый начальный уровень того, что я умею.
А если точнее, научить программировать на php и писать бэкенд для сайтов.
Вопрос только, кому это реально нужно? Пишите в комментариях, хочу понять, стоит ли мне дальше думать на эту тему или заняться более полезными делами)))
10👍3
Девочки, когда вы говорите “я далека от программирования” или “не представляю себя в этом”, то сразу демотивируете себя же.
Вопрос только в одном, хотите ли вы освоить новую профессию, которая позволяет неплохо зарабатывать удаленно, или вам это не надо. И все.
Вы думаете, что нужно быть очень умной или что это очень сложно? Или, еще не лучше, я умнее вас?
Да нет, конечно. Я – абсолютно обычная, с самым обычным средним мозгом, не тупая и не умная. И изначально была не просто далека от этого, а вообще терпеть не могла информатику, у меня и компьютера тогда не было.
Просто я однажды захотела стать разработчиком, и все.

Намерение – единственное, что определяет результат.

Освоить тот же php (на котором я пишу) можно даже по книге, это простой язык. Но поначалу будет в любом случае сложно и не все понятно, это же новая деятельность. И тут важно к себе очень лояльно относиться, понимая, что нужно время и терпение. И помнить, что ошибки – это неминуемая часть разработки.

И у меня они возникают до сих пор и будут возникать всегда.

Тут нужен важный навык – скопировать ошибку и загуглить ее. 99% решение будет найдено сразу.

Поэтому, если вам кажется, что это не ваше, но вы бы теоретически хотели бы такую работу, скажите себе “я буду программистом”. И поверьте себе.
14👍1
Про ошибки.

Программисты всегда ошибаются. Некоторые (такие, как я), часто. Наверное, поэтому у меня была привычка думать, что именно я все сломала, если что-то в общем проекте вдруг сломалось.⠀
На крик “Кто сломал новости” я сразу подумаю на себя, даже если ничего не делала в этом блоке месяца два.

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

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

Ну а я что. Я знаю, что ошибаюсь, и уже смирилась с этим 🙄 Я взяла эту свинку себе и сказала, что это скорее всего я.

Ведущий подошел ко мне удивленный, на что я сказала:

- Да я не переживаю из-за ошибок. Не ошибается тот…
- Кто ничего не делает, - закончил он.

И больше мы эту свинку никогда не видели. Она исчезла. 🙄🤷‍♀️
14👍4
Переименовала группу, не теряйте.
Все-таки придется нам заняться php 😃
Всем, кому интересно ИТ, но сложно выбрать направление или язык программирования, говорю: больше никаких мук выбора, я выбрала за вас 😃

Вопрос только один, в этом канале займемся или новый сделать?
❤‍🔥8🔥7😁51
Я пока еще не поняла, зачем в это ввязалась, но попробую.

Попробую максимально понятно дать основы программирования на php.

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

И все же я попробую🙄

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

Напрягаться сильно не придется, просто читайте посты, которые я пишу, и пишите, понятно было или нет.

Под конец вы точно будете знать, насколько вам понятно и насколько вы захотите перейти к практике.

Но у меня к вам просьба.

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

Отправьте им ссылку на этот канал - https://t.me/cookingphp

Мне будет приятно, а им, возможно, полезно❤️
👍156
А сейчас о том, чем мы займемся.

Вот есть сайт (любой, но для примера): https://www.mywishbook.ru

Дизайн - картинку в посте выше вы видели.

Следующий этап - этот дизайн переводится в веб-страницу, верстается с помощью html тегов. Это - язык разметки. Мы версткой заниматься не будем, это как раз фронтенд разработка, но основы понимать должны.

Сейчас этим сильно не заморачивайтесь, но пример покажу. Упрощенный.

<!DOCTYPE html>
<html lang="ru">
<head>
<title>Книга Желаний и онлайн дневник. Исполнение желаний силой мысли</title>
</head>
<body>
<h1>Книга Желаний</h1>
<p><strong>Этот сайт помогает в сложных жизненных ситуациях и исполняет желания. Книга Желаний исполнила уже 123119 желаний! </strong></p>
<p><a href="/mydiary/top">Читайте воодушевляющие истории</a>, если вам грустно, скучно или не верится в исполнение желаний ;-)</p>
</body>
</html>

Вот и вся страница, она будет работать.
Просто текст, размеченный тегами, открывающий и закрывающий.

В этом примере:

<title></title> Заголовок страницы, который вы видите в заголовке окна браузера
<body></body> тело страницы
<h1></h1> - основной заголовок страницы
<p></p> - параграфы (внутри текст обычно)
<strong></strong> - выделение жирным
<a href="урл страницы, куда отправляем">текст ссылки</a> ссылки

И вот теперь, если вы скопируете этот код в текстовый редактор и сохраните его с расширением .html (например, test.html) и откроете в любом браузере, то увидите веб-страницу.

Очень быстро и просто.
👍101
Но html нас сейчас особо не беспокоит.

Мне он нужен был для более понятного объяснения, что такое php и какова его роль.

Всю динамику берет на себя язык программирования, в нашем случае php.

Вот заходите вы на страницу исполнившихся желаний https://www.mywishbook.ru/mydiary/realized

Откуда там берутся отзывы?

Внизу есть форма.

Пользователь пишут туда что-то и нажимает кнопку "Отправить". Данные улетают на сервер, и тут уже php код, заботливо написанный вами, смотрит, что прилетело, какие поля, и кладет их в базу данных в отдельную таблицу типа realized. Делается это очень просто, если знать немного синтаксис, а это мы узнаем.

А вот когда вы заходите на страницу https://www.mywishbook.ru/mydiary/realized, то php скрипт обращается к базе данных с запросом к таблице realized, чтобы она отдала все отзывы, которые у нее там есть.
И потом этот скрипт отдает уже готовые отзывы на страницу, а мы их читаем.

И точно так же php занимается всем остальным: складывает в базу новых пользователей, новые статьи, новые желания и т.д., а потом, по запросу, возвращает их обратно.

Вы, как пользователь, добавили данные (любые, комментарий, желание, лайк наконец), php это в базу занес.

Вы, как пользователь, хотите прочитать статью, php из базы ее достал и вам показал.

Понятно в самых общих чертах, чем на сайтах занимается php?
11👌3🔥2
Чем занимается php на сайтах мы приблизительно в общих чертах поняли, теперь на сцену выходит другой важнейший участник событий - база данных.

Как вы понимаете, опять же на примере mywishbook.ru, если проект не чисто информативный, вроде одной странички с адресом, то есть много неких данных, которые нужно где-то хранить.

Когда mywishbook.ru только появился на свет, какие данные нужно было сохранять?

Прежде всего, вас, пользователей.

Чтобы человек мог воспользоваться Книгой Желаний или сделать запись в личном дневнике, нужно зарегистрироваться на сайте, то есть, ввести в форму логин, емейл, имя и пароль.

Это вы делаете на большинстве сайтов и приложений, ну может, не имя и логин, а телефон, это не важно.

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

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

Создать базу данных можно легко в специальной программе или sql-запросом вида:
CREATE DATABASE mywishbook;

Все, база для проекта есть, можно создавать таблицы.

Какие таблицы нам понадобятся? Зависит от того, что будет на проекте, но их всегда можно будет добавить или изменить.

Но продумать все равно архитектуру важно на начальном этапе.

Вишбук 2010 года предполагал две возможности: ведение личного дневника и ведение Книги Желаний.
Значит, нам нужны таблицы типа diary и wishbook.
Кто будет вести записи? Пользователи. Нам нужна еще таблица users.

Какая таблица тут должна быть первой, с чего все начинается? Думаю, вы догадались, что с пользователей. Нет пользователей, нет и никаких дневников и желаний.

Запросы для нашей базы пишутся на sql, особо сложного ничего нет в этом языке, по крайней мере, поначалу. Нам актуальны в 90% случаев будут запросы вида создать таблицу, вставить в нее запись, выбрать запись (или несколько), удалить запись. И все.

Создаем таблицу.
CREATE TABLE table_name
(
column_name_1 column_type_1,
column_name_2 column_type_2,
...,
column_name_N column_type_N,
);
column_name_1 название колонки
column_type_1 тип колонки

Я предположила, что мне нужны будут следующие данные:

id - уникальный идентификатор пользователя
login - логин
psswd - пароль, всегда в зашифрованном виде, поэтому я ваши пароли тоже не знаю
name - имя по желанию
email - емейл, раньше был необязательный, я думала, что не все захотят оставлять емейл, желания и дневники все же очень личное, но со временем оказалось, что нельзя без этого поля
inserted - дата добавления записи

Заведем таблицу с пользователями (это все можно не писать руками, а делать в программе, но понимать нужно):

CREATE TABLE users (
id bigint(20) NOT NULL,
login varchar(256) NOT NULL,
psswd varchar(256) NOT NULL,
name varchar(256) DEFAULT NULL,
email varchar(256) DEFAULT NULL,
inserted timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP);

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

Заполнить таблицу данными тоже можно через программу, или таким запросом руками:

INSERT INTO users`(`id, login, psswd, name, email, `inserted`)
VALUES (1,'testoviy login','y6fgf6gc#d','тестовое имя','xxx@yandex.ru','2010-09-01 06:35');

Понятно, что в запросе происходит, или расшифровать?


Поскольку я руками, конечно, никого никуда не добавляю, то у нас этим на сайте занимается наш любимый php.

Вот вы зарегились https://www.mywishbook.ru/users/register, т.е. ввели данные в форму, они улетели на сервер, php проверил (с моей помощью, конечно, я определаю правила), все ли там правильно и сделал запрос в базу на вставку новой записи. Т.е. это php отправит запрос вида INSERT INTO users ...

На скриншоте пример, как выглядит таблица users (упрощенная, сейчас там побольше всего).
В программе я ее вижу точно так же,
👍12
как вы сейчас в экселе. Просто таблица. Ну с фейковыми данными, конечно.

До этого момента понятно?

#урокиphp #sql #базаданных
👍11
Ну и табличка users наша, я ее экспортировала в эксель, никаких ABC колонок нет, это экселевское, просто для наглядности
👍11
Продолжаем. Еще немного про базы и данные, и перейдем к php.

Вот у нас есть табличка users. Я ее переделала, спасибо за вопрос в комментах, будет запись, которую мы вставляли с testoviy login, и логины с емейлами должны быть уникальными

Вот пользователь приходит снова на сайт, хочет добавить желания.

Он вводит логин и пароль, php обратится к базе с запростом:

отдай мне пользователя, у которого логин = 'testoviy login' и пароль = 'пароль'

на sql это выглядит как

SELECT * FROM users WHERE login='testoviy login' AND psswd='пароль'

Вернее, поскольку пароли зашифрованы, то php зашифрует ваш пароль, он превратится в некие 7436a45e3b818216c98ba73577850d3c
и запрос будет выглядеть как

SELECT * FROM users WHERE login='testoviy login' AND psswd='7436a45e3b818216c98ba73577850d3c'

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

Табличка с желаниями выглядит так:

CREATE TABLE wishbook (
id bigint(20) NOT NULL,
userid bigint(20) NOT NULL,
inserted timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
itemtext longtext CHARACTER SET utf8mb4,
result varchar(20) NOT NULL DEFAULT 'new',
)

Здесь все понятно?

userid - это id пользователя из таблицы users. По нему мы сможем понять, какие желания выводить пользователю. Чтобы именно его были, а не чьи-то)
itemtext - собственно, само желание.
CHARACTER SET utf8mb4 - эта опция необязательна, я ее добавила не так давно, чтобы можно было добавлять смайлики, и база их не резала.
result - лучше, конечно, цифровые коды тут зашить, быстрее будет работать, но написано давно, поэтому так. Тут статусы - новое желание, исполнилось, не исполнилось.

А дальше - все тоже самое. Пользователь добавляет желание, оно записывается в базу, когда он переходит на страницу "Все мои желания" (или как она там), то php дергает базу с запросом:

SELECT * FROM wishbook WHERE userid=1;

Вопросы?
Продолжаем, или это уже слишком?))))

#урокиphp #sql #базаданных
👍11
Для мотивации.

Девушка-программист – какие плюсы?

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

Об остальных девушках только слышала, как бы они есть, но где? На десятки коллег-мужчин за 20 лет – одна девушка, кроме меня.

Но почему? Мужчины часто меня спрашивают: “А что, ты реально программистом работаешь?”
И я всегда недоумеваю. Ну да, а что в этом такого? Это не аццкий физический труд, который женщине не под силу.

И в силу дефицита у девушек-программистов есть свои бонусы.

Лично я особенно ценю следующие:

1. Если вы девушка, то став программистом, получите невероятное количество внимания. В этой профессии 99% программистов – мужчины. Они будут относиться к вам настороженно, скептически, но как только убедятся, что вы чего-то в самом деле понимаете и можете, будут вам бесконечно помогать, подтягивать, подсказывать, даже настраивать вам компьютер)
2. На собраниях, скорее всего, вы тоже будете единственной девушкой, зато никаких женских интриг и сплетен не встретите. А технари бывают очень веселыми ребятами.
3. Вас будут уважать не только коллеги, но и другие люди. Потому что “программист” во многих вызывает подсознательное равенство со словом “умный”. Эта профессия кажется сложной, а значит, вы сразу получите +100 очков.
4. Если вам актуальны изменения в личной жизни, то именно в этой работе вы встретите много умных, перспективных, неплохо зарабатывающих ребят. И минимум конкуренции.
5. Да хотя бы придите на форум по программированию и задайте вопрос по какой-то проблеме. Сразу увидите, что желающих помочь много. Мой бывший начальник женился на девушке, которая что-то спросила на таком форуме)

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

#мотивация
11👍1👏1😁1