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

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

Более 20 лет в ИТ, более 15 в php
Download Telegram
Для мотивации.

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

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

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

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

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

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

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

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

#мотивация
11👍1👏1😁1
Что только для вас не сделаешь. Даже на hh.ru сходила, чтобы заставить вас читать 😁
🔥7👍1👏1
300тыс до вычета налогов подойдет, или нафиг их, пусть сами налоги платят? 😃
🔥8🤣5❤‍🔥1
Вопрос. Что будет, если логины у нас в базе не уникальные? А если емейлы? А если имя?
👍5
Программист должен заранее предусмотреть, как будет использоваться приложение.
На вишбуке пользователи входят, используя логин. Значит, он должен быть уникальным. Иначе, как вы верно заметили, он может получить чужие данные.
Для этого еще на этапе регистрации нужна проверка, что такого логина еще не было. Ну и для подстраховки на уровне базы мы повесим unique уникальный ключ на поле login, чтобы база сама нас развернула, если мы ей одинаковый логин предложим.
Что касается емейла, на вишбуке и почти везде он уникальный тоже, чтобы упростить задачу по восстановлению пароля и просто идентифицировать пользователя. У нас сейчас марафоны автоматом по емейлу активируются.
А имя. В нашем случае мы по нему не ищем пользователя, никакой особой нагрузки у поля нет, чисто для юзабилити используем, чтобы написать приветствие или типа того ⤵️

Но! Уникальность полей определяется приложением. По-разному бывает.
👍10
Такой проект, как Книга Желаний 2010го года, с двумя разделами, регистрацией пользователей, при наличии верстки можно запрограммировать за несколько дней.
Собственно, я сейчас и более сложные (но типовые, админка, вывод новостей по категориям с тегами) проекты делаю за несколько дней. А вот с крупными проектами приходится возиться годами) вернее, это уже не столько разработка, сколько поддержка и новые разделы.

Как разрабатываются проекты?

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

Если заказчика нет, все равно желательно для себя расписать последовательность шагов.
Я уже не помню, что и как писала 15 лет назад, когда вишбук пришел мне в голову, но могу предположить общую схему.

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

Дальше что может делать пользователь? Восстанавливать пароль, если забыл, менять свои данные (кроме логина, это тоже можно разрешить, но я не стала), вести дневник и Книгу Желаний.
Пока больше ничего не может, но нам этого достаточно для начала.

Значит, список задач и подзадач выглядит приблизительно так:
1. Пользователь
1.1 Страница регистрации пользователя.
1.2 Авторизация пользователя.
1.3 Восстановление пароля.
1.4 Страница личного кабинета, где можно поменять свои данные.

2. Раздел "Он-лайн дневник"
2.1 Страница добавления записи (на ней же можно удалить запись)
2.2 Страница со списком всех записей (с постраничной навигацией) и фильтрами (например, показать записи с 2.06.2022 по 4.09.2023)
2.3 Страница редактирования записи

3. Раздел Книга Желаний
3.1 Страница добавления записи (на ней же можно удалить запись)
3.2 Страница со списком всех записей (с постраничной навигацией) и фильтрами (например, показать только неисполненное)
3.3 Страница редактирования записи

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

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

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

#архитектурапроекта #проектирование
👍6🔥41
Что касается php, то у любого php-программиста есть верный друг, русскоговорящий, что немаловажно.

Это https://www.php.net

А точнее, https://www.php.net/manual/ru/

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

Документация начинается с основ синтаксиса, и я частично ее использую, частично от себя вам наболтаю.

Весь основной код мы пишем в файлах .php.

Когда PHP обрабатывает файл, он ищет открывающие и закрывающие теги, такие как <?php и ?>, которые указывают PHP, когда начинать и заканчивать обработку кода между ними.

Классический пример:

<?php

echo "Hello world";

?>
На экране выведется строка Hello world

Пока понятно?

#урокиphp #синтаксис
👍13🔥4
Ну что, продолжим знакомиться с синтаксисом php.

Как сравнили в комментариях, изучение языка программирования в чем-то схоже с изучением иностранного языка. Но на мой вкус проще.

PHP-скрипт - это перечень инструкций. Кстати, отделяются инструкции точкой запятой. Напомню, как это выглядит:

<?php echo "Какой-то текст"; ?>

Эта инструкция означает: выведи текст "Какой-то текст"

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

Комментарии помечаются двойным слешом // или #
Многострочные отделяются так:
/* здесь комментарий */

Это нужно, чтобы пояснить, что делает определенный код, либо когда вы не хотите удалить кусок кода, но пока не хотите, чтобы он работал.

<?php
echo "Это тест"; // Это однострочный комментарий в стиле C++
/* Это многострочный комментарий
ещё одна строка комментария */
echo "Это ещё один тест";
echo "Последний тест"; # Это комментарий в стиле оболочки Unix
?>

Здесь все понятно? Я каждый раз спрашиваю, чтобы самой понимать, насколько подробно расписывать, ну и чтобы еще раз объяснить, если непонятно, чем потом латать дыры)

Напишите в комментариях, что выведется на экран пользователю?

#урокиphp #синтаксисphp
5
Поскольку суть php - работа с данными, то основа языка - это типы данных.

Про типы данных чуть позже, а пока поговорим про переменные.

Что это такое и зачем нужно?

Помните, на математике в школе решали примеры вроде:

x+2=5
x=3

Вот х - переменная.

В программировании переменная – это величина, имеющая переменное (отсюда и название) значение.

Переменные в PHP представлены знаком доллара, за которым идёт имя переменной. Имя переменной чувствительно к регистру.

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

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


<?php

$var = 'Боб';
$Var = 'Джо';
echo "$var, $Var";

$4site = 555;
$_4site = 7;

$var = 'Катя';

echo $var;

?>

Напишите, какие переменные верно записаны с точки зрения синтаксиса, а какие неверно, кто понял?
И что выведется в строке echo "$var, $Var"; ?
А что выведется в последней строке echo $var; ?

Я обещала, что думать будет не надо, только читать)
Могу сразу ответы писать.
Или все же задачки оставлять?

#урокиphp #синтаксисphp
4🔥1
Я вам все еще буду делать вбросы обычных постов, помимо обучающих. Изначально многие ради них подписывались, а не голову ломать 😃

Стоит ли учиться по книгам?

Вы часто спрашиваете, какие курсы лучше пройти. Здорово, что сейчас такой выбор обучающих курсов, уроков, материалов, платных и бесплатных.

С одной стороны, да. С другой – большой выбор имеет свои проблемы. Слишком сложно выбрать, и даже после выбора, сомневаешься, может, что-то другое надо было.

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

Базовые знания (фотошоп, верстка, php) я получала по книгам.

Это тоже вариант, не самый плохой, но нужно учитывать, что большинство книг в этой сфере устаревают к моменту публикации.

Довелось мне однажды побывать техническим редактором книги по html. Я уж не помню, как так получилось. Оплата за мою работу была очень скромной, но я согласилась из любопытства, посмотреть, что у меня получится, и вообще, как это. Ну и было
бы приятно увидеть свое имя мелким шрифтом на странице, которую все равно
никто не читает 😂

Мне достался очень плачевный перевод
с англоязычной книги (переводчик явно не обладал техническими знаниями), хуже
того, книгу уже на этом этапе уже было бы лучше не читать, чтобы не забивать голову устаревшими конструкциями. Например, автор предлагал использовать тег font, который w3.org объявил deprecated.

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

Потом отдала книгу на вычитку обычному редактору, и по плану, после ее правок,
мне должны были прислать эту книгу на окончательную вычитку. Мало ли, что
редактор напутает)

Прошел год!!

Я сменила работу, была очень загружена.
Забыла уже сто раз про эту книгу. И тут мне ее присылают на окончательную вычитку.

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

Они меня не поняли. Удивились, что я отказалась ее повторно вычитать, потому
что работы уже осталось немного, а они мне еще почти не заплатили.

Но я больше не хотела видеть свое имя напечатанным в этой книге 🙄

Встречали такие безнадежно устаревшие книги?
Учитесь по книгам?

Вообще, если что, я за книги. Но важно следить, чтобы автор был практикующим то, о чем пишет, ну и все равно учитывать, что что-то может устареть, год выпуска тут не вполне показателен.
5
А теперь пост-урок.
Честно скажу, вчера я сперва озадачилась, нужно ли продолжать такие посты, комментариев не было поначалу, но потом девчонки порадовали и ответами правильными, и вопросами интересными.

Хочу только еще раз заметить. Не пытайтесь наперед прикидывать, как вы из всего этого будете программировать и что как использовать что-то из конкретных примеров. Может, и никак, но на примерах я показываю синтаксис пока, мы не пишем ничего серьезного и не сможем пока, но постепенно все выстроится. Не парьтесь, как запомнить все эти знаки с запятой. Когда доходит до дела, вы копируете пример в программу и смотрите, что получилось. Если что забыли - php вам об этом напишет.

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

Вы же не ждете в другой специальности, что прочитали пару страниц и стали хорошим юристом? Или кем угодно еще.
Нужно время.

Ладно, перейдем к делу.

Про переменные я немного потом еще расскажу, как их лучше называть и еще что-нибудь, пока поговорим про типы данных.

Вчера был отличный вопрос: почему в первом echo переменные записаны в кавычках, а во втором без?

Все дело в том, что мы оперируем разными типами данных.

В первом случае у нас строка, она должна быть в кавычках и у php есть огромное количество функций для работы со строками.

Простейший способ определить строку — заключить строку в одинарные кавычки (символ '). Двойные тоже можно, но лучше одинарные.

Строку необязательно присваивать переменной, можно и сразу вывести.

<?php

echo 'Это — простая строка';

?>

У php очень много функций для работы со строками, он нам очень помогает в этом. Я их сама все не знаю, но знаю, что всегда могу подсмотреть в документации.

Пример (первый от балды в доке взяла):

str_repeat($string, $times) - Функция возвращает строку string, повторенную times раз.


<?php

echo str_repeat("-=", 10);

?>

Результат выполнения приведённого примера:

-=-=-=-=-=-=-=-=-=-=

Зачем это надо?
Понятия не имею 😂 Мне кажется, именно эту функцию я никогда не использовала. А может, не помню просто.

На самом деле, полезных функций тоже много. Объединение строк, поиск по подстроке, обрезание лишних пробелов или других символов и прочее и прочее, что реально надо в работе.

Например, заполнил пользователь поля в форме регистрации, а я в базе хочу хранить в одном поле Имя Фамилию. И заодно эти и другие поля почистить от пробелом и хтмл-символов, чтобы исключить неверные данные. Тут-то и пригождаются строковые функции.

Числовые типы - это int и float
int - целое число, float - плавающее

<?php

$a = 1234; // десятичное число
$b = 1.234; // плавающее число

?>

Для них у php тоже много функций, что хотите с ними делайте, ваша математичка льет слезы, если сможете протащить комп за парту. Хоть округлить, хоть арккосинус посчитать (Господи, что это, сто лет не встречала) - и все это одной из функций, в одно движение.

Например,

ceil — Округляет дробное число в бо́льшую сторону


<?php

echo ceil(4.3); // 5
echo ceil(9.999); // 10
echo ceil(-3.14); // -3
?>

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

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

С этими двумя типами все понятно? У нас их впереди еще много.

#урокиphp #синтаксисphp
👍14
Давайте еще немного про типы данных поговорим. Все приводить пока не буду, избыток информации, которая пока не используется, не будет полезным, но про важные, самые используемые типы надо договорить.

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

К примеру, на вопрос "вам уже есть 18 лет?" в можете ответить да, то есть true, или нет, то есть false.

Давайте посмотрим на примере:

<?php
$isAdult = true; // уже взрослый
?>

Поменяем значение на другое:

<?php
$isAdult = false; // еще не взрослый
?>
Выведем значение нашей переменной на экран. Используем для этого специальную функцию var_dump:


<?php
$isAdult = true;
var_dump($isAdult); // выведет true
?>

А вот через echo выводить логические значения не удобно:

<?php echo true; // выведет 1
echo false; // выведет пустоту?>
?>


Тип данных null

В PHP существует еще одно специальное значение null, которое обозначает "ничего". К примеру, мы можем присвоить переменной это значение в знак того, что там ничего не лежит.

Давайте посмотрим на примере:
<?php
$test = null;
?>

Выведем значение нашей переменной с помощью var_dump:
<?php
$test = null;
var_dump($test); // выведет null
?>

А вот через echo мы ничего не увидим:
<?php
$test = null;
echo $test; // выведет пустоту
?>

Вопрос на засыпку, можете привести пример, как может использоваться этот тип?
Для чего может быть нужна пустая переменная?

#урокиphp #синтаксисphp
👍6
Отвечаю на вопрос, хотя вы правильно ответили.

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

На сервер прилетят данные по полям:
$name = 'Екатерина';
$patronymic = null;
$surname = 'Голева';

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

-------
Итак, я зарегистрировалась без имени, решила залогиниться под своим логином и паролем.
Php сделает запрос в базу и получит мое имя-фамилию, без отчества.

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

Но конечно, не только для полей формы или базы используется этот тип, в будущем мы с ним не раз еще встретимся.


Что касается вопроса про var_dump и echo - отличный вопрос.

echo (есть еще аналог print, делает то же самое) выводит строку.

var_dump помимо вывода строки или числа еще будет указывать тип выводимых данных.

<?php

$example = 'Hello world';
var_dump($example);

?>

Выведется

string(12) "Hello world"

Зачем это нужно?
Пользователю не нужно. А программисту очень нужно бывает для отладки программы. Конечно, когда у нас простая строка вроде 'Hello world', то мы и сами видим, что там за тип и что вообще внутри содержится.
Но когда мы дойдем до массивов и объектов, то очень часто бывает нужно посмотреть, что содержится внутри. Ведь в коде чаще всего данные берутся от пользователя или из базы, а вовсе не программист пишет все эти $example = 'Hello world';,
поэтому нам надо понимать, что именно прилетело.
👍8
Вопрос:

С точки зрения программиста самого начального уровня.

Какие задания программист получает? И как начинает выполнять? И что является результатом работы?

Например, если я экономист - мне поручают, например, анализ финансового состояния - дают набор документов и сведения для анализа, есть критерии, по которым я должна проверить эти документы и сведения и выслать результат. Тут мне все понятно. То есть существует некий образец, формулы, по которым проверяются документы и сравниваются с нормальными параметрами. Начинаю я работу с разбивки на разделы и анализа каждого из них. Потом соединяю.
Если я юрист - у меня есть запрос клиента на оценку ситуации - примерно такая же схема работы. Если просят составить документ - я открываю какие-то уже имеющиеся у меня шаблоны и с учётом ситуации и действующих норм их корректирую, создаю то, что нужно в этот раз. Но даже если шаблона нет - создаю его сама с учётом уже имеющегося опыта и знаний.
Вот эти виды деятельности мне понятны на 500%))

А программист?
Полностью каждый раз создаёт что/то из ничего? Или у него тоже есть шаблоны - он смотрит - какой подходит - берет его и начинает корректировать?
Как начинающему программисту понимать какие шаблоны можно использовать в каждой ситуации?
Или он как писатель - заново каждый раз пишет свою книгу с нуля?

Программист выполняет все задания полностью сам или есть руководитель/поверяющий, который, даёт какой-то блок/часть работы, а потом это соединяет, который проверяет ошибки и корректирует? Это командная работа или нет?

И насколько реально начинающему программисту сразу начать работать онлайн? Возможно ли это без помощи более опытных сотрудников?

В общем, видите, пока -
полная каша, страхи и неуверенность.

Ответ.

Мы по умолчанию будем говорить только про начинающих программистов.

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

Варианты могут быть такие для начинающего программиста:
1. Программист хорошо проникся теорией (читал книги или смотрел уроки в бесплатных курсах, на ютубе и т.д.), может делать простые задачи, но свой проект с нуля не делал.
2. Программист знает теорию и делал свой хотя бы один проект с нуля.
3. Программист знает теорию и делал разные проекты с нуля, пусть простые и для себя, но все же. Еще лучше, если использовал фреймворки (я их пока не касалась).

Мы тут не говорим об идеальном знании теории, но нужно приблизительно знать возможности языка и где можно посмотреть подробнее. Но сами понимаете, если даже этого нет, то смысл идти в эту сферу.

"Какие задания программист получает? И как начинает выполнять? И что является результатом работы?"

1. Если программист работает в команде с другими разработчиками, то ему поначалу дают простые задания. Например, компания разрабатывает новостной проект. Задачи могут быть такие:
- поправь вывод даты, выведи дату публикации новости, а не дату создания
- измени сортировку вывода, по дате публицкации, а не дате создания
- чуть-чуть сложнее: добавь поле в базу новое, Дата публикации. И возможность в админке сохранять для новости эту дату.

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

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

2. Если программист работает один (например, на фрилансе), то ему очень желателен опыт разворачивания своего проекта, хотя бы одного, простого.
Тогда задачи могут быть такие.

1. Сторонний заказчик просит переписать имеющийся сайт с кривого кода (или старый дизайн решили обновить, а заодно и код сайта) на новый вариант.
2. Просят дописать отдельный модуль, какие-то новые возможности в проекте, например, отправку писем пользователям при определенных событиях (уведомления о новых статьях
👍6👏2
Не влезло...
2. Просят дописать отдельный модуль, какие-то новые возможности в проекте, например, отправку писем пользователям при определенных событиях (уведомления о новых статьях для тех, кто подписался на таую рассылку, например).
Получает программист задания в письменном виде, где заказчик (или, если это в рамках компании, ведущий программист) описывает задачу.
В компании обычно подробно описывают задачу, какие поля надо, что и как должно проверяться и работать, заказчики сторонние
обычно в детали не впадают и пишут абстрактно, что хотят видеть, а детали программист сам продумывает. Но лучше максимально подробно
согласовать, чтобы не переделывать сто раз.
Программисту обычно дают готовую верстку (если он не подрядился еще и по фронту поверстать сам), у него уже компьютер настроен так, чтобы сесть и начать писать код, после чего он этот код отдает прямо на флешке либо через git.

Результатом работы является работающее приложение. Сайт с цветочками и желаниями, в котором все работает, желания добавляются без ошибок, а потом выводятся, как в примере вашем было.

Шаблоны есть у программиста. Но не совсем шаблоны, как вы их понимаете.

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

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

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

Всегда опираясь на три вещи:
1. документацию
2. чужие примеры
3. свой опыт и свой имеющийся уже код

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

Как начинающему программисту понимать какие шаблоны можно использовать в каждой ситуации?

Гугл и собственный опыт. Или спросить коллег, если они есть.

Программист выполняет все задания полностью сам или есть руководитель/поверяющий, который, даёт какой-то блок/часть работы, а потом это соединяет, который проверяет ошибки и корректирует? Это командная работа или нет?

Зависит от задач. Есть компании, где программист один. Он сам себя проверяет и контролирует. Есть компании, где программист еще и верстает сам, и рисует сам. Но это маленькие скромные компании с простым проектом.
(mywishbook.ru мог бы к ним относиться в начале развития, но мы с ним вместе развились до средненького). В крупной компании и на крупных проектах всегда командная работа.

И насколько реально начинающему программисту сразу начать работать онлайн? Возможно ли это без помощи более опытных сотрудников?

Что вы имеете в виду под "сразу"? И что вы имеете в виду под "начинающим" программистом?

Все-таки начинающий - это не полный ноль, это уже понимание какое-то должно быть. Если чисто только стажироваться идти, там можно почти с нуля. Без помощи - реально, но тогда собственный опыт должен быть. Часы, потраченные уже на свой проект, созданный по курсу или по книге или еще как-то.
Но вообще, это все равно все условно я написала. Есть любые варианты, правда 🙃

Зависят от человека, от его заинтересованности, от того, сколько времени потратил.

Лучше всего и быстрее всего получается у тех, кто пошел в эту сферу не чисто из-за денег, а из интереса. Мне вот нравилось программировать и хотелось этим заниматься. Хотя перегорания бывали, но все равно. Сама
деятельность вовлекает, и часы летят незаметно.
👍105
Сегодня немного ускоримся и рассмотрим сразу специальный тип данных, который называется массив, циклы и условия. С попыткой примера из реальной жизни. Потому что огда-то в школе я очень долго не могла врубить, что такое цикл.

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

Для создания массива используются квадратные скобки:

<?php
$arr = []; // создаем массив $arr
?>
Пока созданный нами массив не содержит никаких данных. Заполним его названиями дней недели:


<?php
$arr = ['пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс'];
?>
Каждое значение списка, который мы записали в массив, в нашем случае каждый день недели, называется элементом массива. Как вы видите, элементы разделяются между собой запятой.

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

<?php
$arr = [1, 2, 3];
?>

Кроме строк и чисел в массиве можно хранить все допустимые типы данных PHP, а также смешивать их между собой в одном массиве, пример:

<?php
$arr = [1, 2, 'a', 'b', null, true, false];
?>

Массивы бывают ассоциативными (с ключами) и многомерными, об этом позже.

2. Условия.

Специальная конструкция if-else, которая позволяет выполнять некоторый код в зависимости от выполнения какого-либо условия. Синтаксис конструкции выглядит так:

<?php
if (операция сравнения)
{
/* расположенный здесь код выполнится, если результат операция сравнения верный */
}
else
{
/* расположенный здесь код выполнится, если результат операция сравнения неверный
*/
}
?>

Пример:

<?php
$test = 1;

if ($test > 0)
{
echo '+++'; // сработает это
}
else
{
echo '---';
}
?>

3. Цикл.

Циклы используются для прохождения по элементам массива.
Есть разные варианты циклов в php, мы рассмотрим самый используемый:

foreach ($items as $item)
{
//обработка элемента цикла
}

Синтаксис такой: пишется ключевое слово foreach, а после него круглые скобки (). В этих скобках указывается переменная, в которой лежит перебираемый массив, потом слово as, а после него - переменная, в которую при каждом проходе цикла будет попадать элемент массива. Затем должны идти фигурные скобки
{}, в которых будет расположено тело цикла.

Пример:
Переберем массив с числами циклом и выведем на экран квадраты этих чисел:

<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem)
{
echo $elem * $elem . '<br>';
}
?>
. '<br>';
Точка объединяет строки.
<br> - тег переноса строки.
Выведется в столбик:
1
4
9
16
25

#урокиphp #синтаксисphp
👍5
Попробую пример из реальной жизни привести.

Есть рецепт.
Приготовить салат.
Ингредиенты:
помидоры
баклажаны
перцы

Порезать овощи, запечь баклажаны и перцы.

Изобразим на видео
👍4
Смотрим видео и представляем его в виде кода.

У нас есть массив овощей:

<?php

$vegetables = ['перец', 'баклажан', 'баклажан', 'огурец', 'помидор', 'помидор'];

?>

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

Выглядеть это будет так (схематично, такой кухонный реализм я в виде кода не писала еще):


<?php

foreach($vegetables as $vegetable)
{
if($vegetable == 'огурец')
{
continue; //если элемент цикла - огурец, пропускаем его, нам он не нужен, переходим к следующему элементу
}
if($vegetable == 'перец')
{
cleanup($vegetable); //если элемент цикла - перец, вызываем функцию, которая почистит его
}
cut_vegetable($vegetable); //все элементы порезать (кроме огурца, мы его пропустили) - вызвали функцию, которая режет

if($vegetable == 'баклажан' || $vegetable == 'помидор')
{
bake($vegetable); //если элемент массива помидор или баклажан, то запекаем
}

}
?>

В таком раскладе что-нибудь понятно?
Или лучше на цифрах и стандарных примерах из учебников показывать?

И конкретнее.
Что такое массив - понятно?
А цикл и для чего он? (foreach)
А условия? (if ... else)

#cookingphp
👍2
Когда только начинаешь изучать php, вроде, синтаксис весь этот понятен приблизительно, но непонятно, что с этим дальше делать.

Ну вот получили мы какие-то данные, а дальше что? Красивые странички мы получаем с помощью html, используя html-верстку, а при чем тут php?
Мы можем отдать результаты работы php в html-шаблон, например, выборку из базы.

В реальной разработке используются шаблонизаторы (впрочем,
необязательно), мы пока на простом примере посмотрим, как сочетается php с html. И без базы. Зададим переменные прямо в шаблоне. Просто для иллюстрации, как это будет.

<?php
$title = 'Про мышей';
$a = 'а котята ещё выше.';
$b = 'а котята кувырком.';
$c = 'а котята ха-ха-ха.';
?>

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Про мышей</title>
</head>
<body>
Тише, мыши, кот на крыше,<br>
<?php echo $a?><br>
Кот пошёл за молоком,<br>
<?php echo $b?><br>
Кот пришёл без молока,<br>
<?php echo $c?>
</body>
</html>

Чтобы не заниматься разворачиванием и настройкой php, но попробовать что-то
попрограммировать, запомните и воспользуйтесь ссылкой:https://www.w3schools.com/php/phptryit.asp?filename=tryphp_compiler

Скопируйте туда код и посмотрите, что получится.

Вместо <?php echo $c?> можно использовать <?=$c?> в хтмл-шаблонах, это будет эквивалент.

Кто попробовал? Понятно, что происходит в этом примере?
3