Здоровье программиста 💔
Один мой друг, перед новым годом, решил себя побаловать и купил себе весьма удобное кресло для работы. Он программист. Это кресло марки «Aeron» средняя цена которого 150 000 рублей. Я не шучу, можете загуглить. Зачем же он это сделал?
Каждый программист после, примерно 25 лет, попадает в группу риска. Малоподвижная работа даёт о себе знать. Перечень недугов большой - от боли в сердце до проблем со спиной. Если вы связываете свое будущее с программированием, то вы должны быть осведомлены о возможных последствиях.
Всё дело в статике или, другими словами, в малоподвижном образе жизни. Мы постоянно сидим, уставившись в монитор и не двигаемся. И так на протяжении 8-12 часов — каждый день. После работы многие продолжают находиться за компьютером и играть в игры, либо смотреть сериалы / youtube. Всё это усугубляет и без того плачевное положение. Последствия, как правило, дают о себе знать после 25 лет. Боли в сердце, искривленный позвоночник, одышка при различных активностях, головокружение при резких подъёмах и многое другое.
Я и мои друзья не раз сталкивались с этой проблемой и решение всегда было одинаково — спорт или регулярные физические нагрузки. Даже дорогущее кресло не решит проблему. Любой фитнес тренер скажет вам, что как бы удобно вы не сидели, губит вас не то положение, в котором вы находитесь, хотя оно тоже имеет влияние, губит неподвижность. За 150 тыс. рублей можно было купить абонемент в фитнес клуб на ~5 лет.
Что можно предпринять, чтобы остановить или предупредить недуг?
🔹Самый лучший, на мой взгляд, вариант — это фитнес клуб. Ближайший фитнес в вашем районе подойдет. Посещайте его регулярно 2-3 раза в неделю.
🔹 Если ближайший фитнес клуб далеко от вас, то поищите просто бассейн. Плавание тоже отлично помогает держать свое тело в тонусе.
🔹 Регулярные пробежки утром или вечером. Начните бегать и ваше здоровье скажет вам спасибо! Главное не переусердствовать. Начинать надо с маленьких дистанций и постепенно наращивать их.
🔹 Если же рядом нет фитнеса или бассейна, а также возможности бегать из-за погодных условий или иных причин, то остается старый и проверенный метод — гантели и турник у вас дома. Регулярно занимайтесь дома и вы будете в форме!
🔹А еще, не сидите дома в выходные. Где бы вы не находились, всегда есть рядом места, где можно просто погулять и подышать свежим воздухом. Если же город маленький или проблемы с экологией, то вспомните, что вы можете работать удалённо и жить в любом городе Мира!
❗Я, к примеру, родился в Ташкентской области, а живу сейчас в Сочи 🌞
Один мой друг, перед новым годом, решил себя побаловать и купил себе весьма удобное кресло для работы. Он программист. Это кресло марки «Aeron» средняя цена которого 150 000 рублей. Я не шучу, можете загуглить. Зачем же он это сделал?
Каждый программист после, примерно 25 лет, попадает в группу риска. Малоподвижная работа даёт о себе знать. Перечень недугов большой - от боли в сердце до проблем со спиной. Если вы связываете свое будущее с программированием, то вы должны быть осведомлены о возможных последствиях.
Всё дело в статике или, другими словами, в малоподвижном образе жизни. Мы постоянно сидим, уставившись в монитор и не двигаемся. И так на протяжении 8-12 часов — каждый день. После работы многие продолжают находиться за компьютером и играть в игры, либо смотреть сериалы / youtube. Всё это усугубляет и без того плачевное положение. Последствия, как правило, дают о себе знать после 25 лет. Боли в сердце, искривленный позвоночник, одышка при различных активностях, головокружение при резких подъёмах и многое другое.
Я и мои друзья не раз сталкивались с этой проблемой и решение всегда было одинаково — спорт или регулярные физические нагрузки. Даже дорогущее кресло не решит проблему. Любой фитнес тренер скажет вам, что как бы удобно вы не сидели, губит вас не то положение, в котором вы находитесь, хотя оно тоже имеет влияние, губит неподвижность. За 150 тыс. рублей можно было купить абонемент в фитнес клуб на ~5 лет.
Что можно предпринять, чтобы остановить или предупредить недуг?
🔹Самый лучший, на мой взгляд, вариант — это фитнес клуб. Ближайший фитнес в вашем районе подойдет. Посещайте его регулярно 2-3 раза в неделю.
🔹 Если ближайший фитнес клуб далеко от вас, то поищите просто бассейн. Плавание тоже отлично помогает держать свое тело в тонусе.
🔹 Регулярные пробежки утром или вечером. Начните бегать и ваше здоровье скажет вам спасибо! Главное не переусердствовать. Начинать надо с маленьких дистанций и постепенно наращивать их.
🔹 Если же рядом нет фитнеса или бассейна, а также возможности бегать из-за погодных условий или иных причин, то остается старый и проверенный метод — гантели и турник у вас дома. Регулярно занимайтесь дома и вы будете в форме!
🔹А еще, не сидите дома в выходные. Где бы вы не находились, всегда есть рядом места, где можно просто погулять и подышать свежим воздухом. Если же город маленький или проблемы с экологией, то вспомните, что вы можете работать удалённо и жить в любом городе Мира!
❗Я, к примеру, родился в Ташкентской области, а живу сейчас в Сочи 🌞
🧨 Требования к кандидатам на позицию "PHP-Джуниор" по версии hh.ru
(было изучено более 50 вакансий)
Основное:
— Уверенное владение синтаксисом php 5.x и 7.x
— ООП и паттерны. Singleton, MVC, Facade и т.д.
— MySQL и сам SQL. Сложная выборка, джойны, подзапросы, отладка, оптимизация запросов, агрегирующие функции.
— Уверенное владение одним из фреймворков Yii2 / Symfony / Laravel
— Чтение чужого кода (Legacy Code).
А так же:
— Собственные проекты на github/bitbucket
— Уверенное владение GIT из командной строки
— Менеджер пакетов Composer
— Понимание html/css/js/jquery
— Различные протоколы: tcp/ip, http, dns, ssh, dns, sftp, RESTful API
— Сопутствующие сервисы и программы: Docker, RabbitMQ, Redis, Memcache, Sphinx или Elastic, x-Debug и другие.
— Модные слова: DRY, KISS, YAGNI
— Принципы SOLID
(было изучено более 50 вакансий)
Основное:
— Уверенное владение синтаксисом php 5.x и 7.x
— ООП и паттерны. Singleton, MVC, Facade и т.д.
— MySQL и сам SQL. Сложная выборка, джойны, подзапросы, отладка, оптимизация запросов, агрегирующие функции.
— Уверенное владение одним из фреймворков Yii2 / Symfony / Laravel
— Чтение чужого кода (Legacy Code).
А так же:
— Собственные проекты на github/bitbucket
— Уверенное владение GIT из командной строки
— Менеджер пакетов Composer
— Понимание html/css/js/jquery
— Различные протоколы: tcp/ip, http, dns, ssh, dns, sftp, RESTful API
— Сопутствующие сервисы и программы: Docker, RabbitMQ, Redis, Memcache, Sphinx или Elastic, x-Debug и другие.
— Модные слова: DRY, KISS, YAGNI
— Принципы SOLID
Планировщик задач — cron 🤔
Среди начинающих программистов мало кто знаком с Linux системами, а тех, кто слышал про cron и того меньше. Однако потребность в регулярном и автоматическом запуске определённых скриптов возникает крайне часто.
Вот далеко не полный перечень действий, которые обычно выполняет cron:
— Создание резервной копии сайта;
— Отправка e-mail с отчетом о работе сайта за сутки;
— Генерация обновлённой карты сайта;
— Генератор XML / YML файлов с товарами, к примеру, для Яндекс.Маркет’а;
— Регулярные уведомления или рассылки пользователям сайта;
— И многое другое;
Настройка задач Cron через панели управления хостингом.
Если вы пользуетесь обычным хостингом, то выполнить настройку задания можно через специальный web-интерфейс. Вам необходимо указать команду или скрипт для выполнения и обязательно указать периодичность.
Настройка задач Cron через ssh.
Если у вас не простой хостинг, а VPS/VDS или выделенный сервер то настройку планировщика придется делать средствами командной строки. Для работы с cron в Linux системах есть специальная утилита
Просмотр текущих заданий:
Редактирование заданий:
--
Продолжение в следующем посте
Среди начинающих программистов мало кто знаком с Linux системами, а тех, кто слышал про cron и того меньше. Однако потребность в регулярном и автоматическом запуске определённых скриптов возникает крайне часто.
Вот далеко не полный перечень действий, которые обычно выполняет cron:
— Создание резервной копии сайта;
— Отправка e-mail с отчетом о работе сайта за сутки;
— Генерация обновлённой карты сайта;
— Генератор XML / YML файлов с товарами, к примеру, для Яндекс.Маркет’а;
— Регулярные уведомления или рассылки пользователям сайта;
— И многое другое;
Настройка задач Cron через панели управления хостингом.
Если вы пользуетесь обычным хостингом, то выполнить настройку задания можно через специальный web-интерфейс. Вам необходимо указать команду или скрипт для выполнения и обязательно указать периодичность.
Настройка задач Cron через ssh.
Если у вас не простой хостинг, а VPS/VDS или выделенный сервер то настройку планировщика придется делать средствами командной строки. Для работы с cron в Linux системах есть специальная утилита
crontab. Она используется для просмотра текущих заданий, а также для добавления новых.
Просмотр текущих заданий:
crontab -l
Редактирование заданий:
crontab -e
--
Продолжение в следующем посте
Планировщик задач — cron. Продолжение 🤔
Для настройки задачи в cron нужно указать две вещи — команду и периодичность.
Формат следующий:
m — Минуты
h — Часы
dom — День месяца
mon — Месяц
dow — День недели
Описание параметров
минута
число от 0 до 59
час
число от 0 до 23
день месца
число от 1 до 31
месяц
число от 1 до 12 (можно 3 буквы из названия месяца: от jan до dec)
день недели
число от 0 до 6 (имейте ввиду, что 0 - это воскресение; можно также писать буквенное значение: от sun до sat)
--
Каждое из полей даты и времени может быть обозначено символом *, будет соответствовать любому возможному значению.
Помните, что список заданий для крона у каждого пользователя свой, однако root имеет возможность редактировать задачи любого пользователя.
Для настройки задачи в cron нужно указать две вещи — команду и периодичность.
Формат следующий:
m h dom mon dow command
m — Минуты
h — Часы
dom — День месяца
mon — Месяц
dow — День недели
Описание параметров
минута
число от 0 до 59
час
число от 0 до 23
день месца
число от 1 до 31
месяц
число от 1 до 12 (можно 3 буквы из названия месяца: от jan до dec)
день недели
число от 0 до 6 (имейте ввиду, что 0 - это воскресение; можно также писать буквенное значение: от sun до sat)
--
Каждое из полей даты и времени может быть обозначено символом *, будет соответствовать любому возможному значению.
Помните, что список заданий для крона у каждого пользователя свой, однако root имеет возможность редактировать задачи любого пользователя.
Несколько примеров из реальных проектов
Каждую 45-ю минуту каждого часа в период с 5 утра до 9 вечера, каждый день
Один раз в минуту
Каждый 30 минут в период с 5 утра до 9 вечера, каждый день
Каждый день в 23:45
Каждую 45-ю минуту каждого часа в период с 5 утра до 9 вечера, каждый день
45 5-21 * * * /usr/bin/php -f ~/local/cron/create_modification.php
Один раз в минуту
*/1 * * * * /usr/bin/php -f ~/bitrix/modules/main/tools/cron_events.php
Каждый 30 минут в период с 5 утра до 9 вечера, каждый день
*/30 5-21 * * * /usr/bin/php -f ~/local/cron/create_yml.php > ~/upload/yandex.yml
Каждый день в 23:45
45 23 * * * /local/cron/create_backup.sh
PHP7 в Подлиннике 📗
Если вы решили программировать на PHP и настроены очень серьёзно. Если вы планируете досконально изучить PHP в доль и поперёк то советую начать вот с этой книги.
Ссылка на скачивание 👇
https://justcoding.ru/pdf/php_7_podlinnik.pdf
Если вы решили программировать на PHP и настроены очень серьёзно. Если вы планируете досконально изучить PHP в доль и поперёк то советую начать вот с этой книги.
Ссылка на скачивание 👇
https://justcoding.ru/pdf/php_7_podlinnik.pdf
Навигация по каналу
"PHP Интервью"
— Требования к Джуинорам https://t.me/phpinterview/6
— Протокол TCP/IP https://t.me/phpinterview/12
— Протокол DNS https://t.me/phpinterview/37
— Планировщик задач CRON https://t.me/phpinterview/60
— Термины KISS/DRY https://t.me/phpinterview/24
— Ваш e-mail адрес https://t.me/phpinterview/26
— Операционные системы https://t.me/phpinterview/27
— Важность приоритетов https://t.me/phpinterview/29
— Подготовка к собеседованию https://t.me/phpinterview/34
— Что делать с резюме https://t.me/phpinterview/36
— Рождение программиста https://t.me/phpinterview/38
— Декомпозиция https://t.me/phpinterview/39
— Про менторство https://t.me/phpinterview/42
— Губительная сила CMS https://t.me/phpinterview/52
— Сколько нужно учиться? https://t.me/phpinterview/46
"PHP Интервью"
— Требования к Джуинорам https://t.me/phpinterview/6
— Протокол TCP/IP https://t.me/phpinterview/12
— Протокол DNS https://t.me/phpinterview/37
— Планировщик задач CRON https://t.me/phpinterview/60
— Термины KISS/DRY https://t.me/phpinterview/24
— Ваш e-mail адрес https://t.me/phpinterview/26
— Операционные системы https://t.me/phpinterview/27
— Важность приоритетов https://t.me/phpinterview/29
— Подготовка к собеседованию https://t.me/phpinterview/34
— Что делать с резюме https://t.me/phpinterview/36
— Рождение программиста https://t.me/phpinterview/38
— Декомпозиция https://t.me/phpinterview/39
— Про менторство https://t.me/phpinterview/42
— Губительная сила CMS https://t.me/phpinterview/52
— Сколько нужно учиться? https://t.me/phpinterview/46
Преждевременная оптимизация 😈
Дональд Кнут, автор творения «Искусство программирования» однажды сказал: «Настоящая проблема заключается в том, что программисты, не там, где нужно, и не тогда, когда нужно, тратят слишком много времени на заботу об эффективности. Преждевременная оптимизация — корень всех зол в программировании».
Оптимизировать программы по любому параметру стоит только после того, как станет понятно, нужна ли эта оптимизация. А понять, нужна ли оптимизация можно по определённым показателям.
Для бэкэнда один из самых важных показателей это временя генерации страницы. По-хорошему данный показатель не должен превышать 0.5 секунды, а Google ставит планку еще ниже — 0.3 секунды.
Еще один важный показатель — это потребление памяти. Если ваш скрипт съедает половину доступной памяти, то это повод задуматься о рефакторинге.
Типичная ошибка начинающего программиста начинается с мысли, что массив, используемый в коде, будет слишком большим и не влезет в память или количество операций слишком велико и наш бедный сервер не справится с задачей и загнется. Но правда в том, что вы даже приблизительно не можете себе представить лимиты и ограничения, которые исходят из железа, которое установлено на сервере.
Просто пишите свой код и всё будет хорошо)
Дональд Кнут, автор творения «Искусство программирования» однажды сказал: «Настоящая проблема заключается в том, что программисты, не там, где нужно, и не тогда, когда нужно, тратят слишком много времени на заботу об эффективности. Преждевременная оптимизация — корень всех зол в программировании».
Оптимизировать программы по любому параметру стоит только после того, как станет понятно, нужна ли эта оптимизация. А понять, нужна ли оптимизация можно по определённым показателям.
Для бэкэнда один из самых важных показателей это временя генерации страницы. По-хорошему данный показатель не должен превышать 0.5 секунды, а Google ставит планку еще ниже — 0.3 секунды.
Еще один важный показатель — это потребление памяти. Если ваш скрипт съедает половину доступной памяти, то это повод задуматься о рефакторинге.
Типичная ошибка начинающего программиста начинается с мысли, что массив, используемый в коде, будет слишком большим и не влезет в память или количество операций слишком велико и наш бедный сервер не справится с задачей и загнется. Но правда в том, что вы даже приблизительно не можете себе представить лимиты и ограничения, которые исходят из железа, которое установлено на сервере.
Просто пишите свой код и всё будет хорошо)
MySQL. Темы для изучения перед интервью ❗
✅ Утилиты командной строки:
mysql
mysqldump
✅ Информация о базах, таблицах, ключах и индексах:
use
show databases;
show tables;
show tables like '%table%';
desc
show indexes from
show keys from
show create table
✅ Манипуляция структурой и данными
create table
alter table
drop table
drop database
truncate table
✅ Выборка данных SELECT
— Изучить простой SELECT
— Изучить SELECT с псевдонимами: SELECT column_id as 'id', column_name as 'name' FROM tableName as t;
— Изучить SELECT c LIMIT
— Изучить SELECT c WHERE
— Изучить SELECT c WHERE columnName in (SELECT value FROM tableName)
— Изучить SELECT c WHERE columnName is null or columnName is not null
— Изучить SELECT c WHERE 'LIKE' vs '=' (понимать разницу)
— Изучить SELECT c ORDER
— Изучить SELECT c ORDER и RAND()
— Изучить SELECT c GROUP
— Изучить SELECT c агрегирующими функциями count(), max(), min(), sum() и т.д.
— Изучить SELECT c подзапросами FROM (SELECT * FROM tableName)
— Внимательно изучить SELECT c DISTINCT
— Внимательно изучить SELECT c EXPLAIN. Данная команда требует особого внимания!
— Что такое filesort в EXPLAIN
✅ Выборка данных через SELECT с JOIN
— Изучить обычный JOIN
— Изучить LEFT JOIN
— Изучить RIGHT JOIN
ВНИМАНИЕ: Важно четко понимать разницу между джойнами. Это любимый вопрос на собеседовании.
✅ Вставка данных
— Изучить INSERT с перечислением полей
— Изучить INSERT без перечисления полей
— Изучить INSERT c IGNORE
— Изучить INSERT c SELECT
— Изучить множественный INSERT
✅ Обновление данных
— Изучить простой UPDATE
— Изучить UPDATE с LIMIT и WHERE
✅ Индексы
— Для каких типов полей можно создать индекс?
— Какова длина индекса?
— Что такое составной индекс?
— Что такое уникальный индекс?
— Для типа TEXT можно ли создать индекс?
— Как определить используется ли в запросе индекс?
✅ Движки и форки
— Найти полный список движков в MySQL и изучить.
— Почитать про основные различия между MyISAM и InnoDB
— ВАЖНО: Четко понимать, что такое "транзакция" и "блокировка".
— Почитать про MariaDB и Percona Server
🚫 Если вы не знаете хотя бы половину того, что описано выше, то вам стоит не спешить с собеседованием и подтянуть свои знания.
✅ Утилиты командной строки:
mysql
mysqldump
✅ Информация о базах, таблицах, ключах и индексах:
use
databaseName
;show databases;
show tables;
show tables like '%table%';
desc
tableName
;show indexes from
tableName
;show keys from
tableName
;show create table
tableName
;✅ Манипуляция структурой и данными
create table
newTable
like oldTable;alter table
tableName
... ;drop table
tablename
;drop database
databasename
;truncate table
tableName
;✅ Выборка данных SELECT
— Изучить простой SELECT
— Изучить SELECT с псевдонимами: SELECT column_id as 'id', column_name as 'name' FROM tableName as t;
— Изучить SELECT c LIMIT
— Изучить SELECT c WHERE
— Изучить SELECT c WHERE columnName in (SELECT value FROM tableName)
— Изучить SELECT c WHERE columnName is null or columnName is not null
— Изучить SELECT c WHERE 'LIKE' vs '=' (понимать разницу)
— Изучить SELECT c ORDER
— Изучить SELECT c ORDER и RAND()
— Изучить SELECT c GROUP
— Изучить SELECT c агрегирующими функциями count(), max(), min(), sum() и т.д.
— Изучить SELECT c подзапросами FROM (SELECT * FROM tableName)
— Внимательно изучить SELECT c DISTINCT
— Внимательно изучить SELECT c EXPLAIN. Данная команда требует особого внимания!
— Что такое filesort в EXPLAIN
✅ Выборка данных через SELECT с JOIN
— Изучить обычный JOIN
— Изучить LEFT JOIN
— Изучить RIGHT JOIN
ВНИМАНИЕ: Важно четко понимать разницу между джойнами. Это любимый вопрос на собеседовании.
✅ Вставка данных
— Изучить INSERT с перечислением полей
— Изучить INSERT без перечисления полей
— Изучить INSERT c IGNORE
— Изучить INSERT c SELECT
— Изучить множественный INSERT
✅ Обновление данных
— Изучить простой UPDATE
— Изучить UPDATE с LIMIT и WHERE
✅ Индексы
— Для каких типов полей можно создать индекс?
— Какова длина индекса?
— Что такое составной индекс?
— Что такое уникальный индекс?
— Для типа TEXT можно ли создать индекс?
— Как определить используется ли в запросе индекс?
✅ Движки и форки
— Найти полный список движков в MySQL и изучить.
— Почитать про основные различия между MyISAM и InnoDB
— ВАЖНО: Четко понимать, что такое "транзакция" и "блокировка".
— Почитать про MariaDB и Percona Server
🚫 Если вы не знаете хотя бы половину того, что описано выше, то вам стоит не спешить с собеседованием и подтянуть свои знания.
🤔Как ни крути, но получить хороший опыт можно лишь с реального проекта. Вариантов тут не много, либо начать что-то делать для себя, либо найти проект на фрилансе и выполнить его бесплатно, либо устроиться на работу по вакансии PHP-Джуниор.
1⃣Вариант начать что-то делать для себя выглядит, как самый перспективный, но на деле самый сложный. Очень сложно, каждый день, заставлять себя делать работу, которая в итоге не будет вознаграждена, даже осознавая, что вознаграждение есть полученный опыт.
2⃣ Взять проект на фрилансе, тоже вариант, но есть риск испортить себе репутацию в самом начале карьеры, потому что задача может оказаться не по зубам.
3⃣ Остается последний, на мой взгляд достаточно надежный вариант, найти вакансию PHP-Джуниора. Весь фокус в том, что компания, которая берет к себе на работу Джуниора — прекрасно понимает все риски и готова инвестировать в вас, хоть иногда и требуя взамен некую расписку, что вы не убежите, как только чему-то научитесь. Дополнительным бонус будет наличие наставника, который поможет ознакомиться с текущим проектом и будет помогать с будущими задачами.
—
Из опубликованного ранее
1⃣Вариант начать что-то делать для себя выглядит, как самый перспективный, но на деле самый сложный. Очень сложно, каждый день, заставлять себя делать работу, которая в итоге не будет вознаграждена, даже осознавая, что вознаграждение есть полученный опыт.
2⃣ Взять проект на фрилансе, тоже вариант, но есть риск испортить себе репутацию в самом начале карьеры, потому что задача может оказаться не по зубам.
3⃣ Остается последний, на мой взгляд достаточно надежный вариант, найти вакансию PHP-Джуниора. Весь фокус в том, что компания, которая берет к себе на работу Джуниора — прекрасно понимает все риски и готова инвестировать в вас, хоть иногда и требуя взамен некую расписку, что вы не убежите, как только чему-то научитесь. Дополнительным бонус будет наличие наставника, который поможет ознакомиться с текущим проектом и будет помогать с будущими задачами.
—
Из опубликованного ранее
Программирование — это не для каждого.
Как же много сейчас студентов приходят учить программирование только потому, что за него много платят, не задумываясь, что за этим скрывается. А скрывается за этим тяжкий труд и огромное количество часов практики. Чтобы наработать такое количество практики одной финансовой мотивации не достаточно. Даже если вам понравилось программировать это всё равно не показатель, что вы добьетесь успеха и выйдите на желаемый уровень оплаты.
Очень важно иметь предрасположенность к программированию. Этот термин я давно вынашивал у себя в голове, пытаясь расшифровать, что же кроется за «предрасположенностью» и в итоге, после прочтения некоторых книг, я сформулировал определение:
❗Предрасположенность к программированию — это ваш жизненный опыт, который вы получили еще до того, как начать печатать первую строку «Hello World». Это ваши страсти и ваши знания, которые были получены в школе или институте. И эти знания и опыт были сильно бизки к навыкам программиста.
Как вы относились к задачам из Математики? Любили разгадывать головоломки? Как часто вы попадали в ситуации в которых вам помогла логика? Вы любили разгадывать загадки? Может вы занимались чем-то интересным и практически неподвижным много часов подряд?
Задайте себе эти вопросы и подумайте над ответами. Если большинство ответов отрицательны то вам будет сложно набрать нужное количество часов практики, чтобы выйти на желаемый уровень и начать хорошо зарабатывать. Вероятно ваша предрасположенность направлена в сторону другой профессии и не стоит тратить время и силы.
Заметьте, все вопросы в прошедшем времени, потому что иначе вы можете обмануть самого себя, задавая их в настоящем.
🤔Хорошенько подумайте над этим.
Как же много сейчас студентов приходят учить программирование только потому, что за него много платят, не задумываясь, что за этим скрывается. А скрывается за этим тяжкий труд и огромное количество часов практики. Чтобы наработать такое количество практики одной финансовой мотивации не достаточно. Даже если вам понравилось программировать это всё равно не показатель, что вы добьетесь успеха и выйдите на желаемый уровень оплаты.
Очень важно иметь предрасположенность к программированию. Этот термин я давно вынашивал у себя в голове, пытаясь расшифровать, что же кроется за «предрасположенностью» и в итоге, после прочтения некоторых книг, я сформулировал определение:
❗Предрасположенность к программированию — это ваш жизненный опыт, который вы получили еще до того, как начать печатать первую строку «Hello World». Это ваши страсти и ваши знания, которые были получены в школе или институте. И эти знания и опыт были сильно бизки к навыкам программиста.
Как вы относились к задачам из Математики? Любили разгадывать головоломки? Как часто вы попадали в ситуации в которых вам помогла логика? Вы любили разгадывать загадки? Может вы занимались чем-то интересным и практически неподвижным много часов подряд?
Задайте себе эти вопросы и подумайте над ответами. Если большинство ответов отрицательны то вам будет сложно набрать нужное количество часов практики, чтобы выйти на желаемый уровень и начать хорошо зарабатывать. Вероятно ваша предрасположенность направлена в сторону другой профессии и не стоит тратить время и силы.
Заметьте, все вопросы в прошедшем времени, потому что иначе вы можете обмануть самого себя, задавая их в настоящем.
🤔Хорошенько подумайте над этим.
Пароли должны остаться в прошлом 🔐
Подключение к удаленному серверу для его настройки или «деплоя» кода — это обычная повседневная практика программиста. Хранить или запоминать большое количество паролей от разных серверов не просто. В добавок есть риск, что пароль может быть похищен или скомпрометирован. Нередко новички работая в Windows сохраняют пароль в программе, а затем его похищает какой-нибудь троян и пиши пропало.
Что же делать?
Во-первых нужно отказаться, по возможности, от использования FTP. Это довольно старый протокол, разработанный еще в 70-е годы, а программы реализующие данный протокол часто бывают подвержены эксплоиту.
Есть отличная альтернатива sftp протокол, который работает на базе протокола ssh. Протокол ssh используется, в том числе, для удалённого управления сервером и его надежность на достаточно высоком уровне. Подключиться к серверу по ssh можно, как используя пароль, так и используя ключ доступа, о последнем методе я и хочу рассказать.
Ключи уже довольно давно используются в мире IT, как средство прохождения авторизации. Для начала работы с ключами, вам необходимо сгенерировать свою пару ключей: Публичный и Приватный. Команда для генерации
А дальше всё просто. Приватный ключ должен находиться на компьютере с которого происходит подключение, а публичный на сервере в файле
Напоследок хотел бы рассказать, как я храню пароли для сайтов, которые посещаю. Есть такое расширение для хрома (и не только) LastPass. Его можно установить в любой браузер, а также на телефоне. Ваши данные, которые вы сохраняете на сервере LastPass шифруются мастер-паролем и даже если сервер LastPass будет взломан, без мастер-пароля злоумышленники не смогут добраться до ваших данных.
——
К чему приводят пароли на стикерах
👉 https://habr.com/ru/post/255509/
Подключение к удаленному серверу для его настройки или «деплоя» кода — это обычная повседневная практика программиста. Хранить или запоминать большое количество паролей от разных серверов не просто. В добавок есть риск, что пароль может быть похищен или скомпрометирован. Нередко новички работая в Windows сохраняют пароль в программе, а затем его похищает какой-нибудь троян и пиши пропало.
Что же делать?
Во-первых нужно отказаться, по возможности, от использования FTP. Это довольно старый протокол, разработанный еще в 70-е годы, а программы реализующие данный протокол часто бывают подвержены эксплоиту.
Есть отличная альтернатива sftp протокол, который работает на базе протокола ssh. Протокол ssh используется, в том числе, для удалённого управления сервером и его надежность на достаточно высоком уровне. Подключиться к серверу по ssh можно, как используя пароль, так и используя ключ доступа, о последнем методе я и хочу рассказать.
Ключи уже довольно давно используются в мире IT, как средство прохождения авторизации. Для начала работы с ключами, вам необходимо сгенерировать свою пару ключей: Публичный и Приватный. Команда для генерации
ssh-keygen. Публичный ключ это по сути «замóк», который может открыть только тот приватный ключ, который был создан одновременно с публичным.
А дальше всё просто. Приватный ключ должен находиться на компьютере с которого происходит подключение, а публичный на сервере в файле
~/.ssh/authorized_keys. Данный файл находится в домашней директории пользователя под которым вы планируете производить подключение. Установите публичный ключ на всех серверах, с которыми вы работаете и вам не придется запоминать пароли для подключения. Приватный ключ храните у себя и не показывайте никому. Имея доступ к серверу по ssh вы также можете подключиться к нему используя протокол sftp. А еще, используя ключ, очень удобно работать с GIT через протокол ssh.
Напоследок хотел бы рассказать, как я храню пароли для сайтов, которые посещаю. Есть такое расширение для хрома (и не только) LastPass. Его можно установить в любой браузер, а также на телефоне. Ваши данные, которые вы сохраняете на сервере LastPass шифруются мастер-паролем и даже если сервер LastPass будет взломан, без мастер-пароля злоумышленники не смогут добраться до ваших данных.
——
К чему приводят пароли на стикерах
👉 https://habr.com/ru/post/255509/
Всем доброго дня!
На следующей недели (с 15 по 20 февраля) провожу 3 бесплатных собеседования с целью узнать свой текущий уровень знаний и навыков. Все вопросы будут касаться PHP и web-программирования.
Желающие пишите мне в личку.
Аккаунт @fxDev
На следующей недели (с 15 по 20 февраля) провожу 3 бесплатных собеседования с целью узнать свой текущий уровень знаний и навыков. Все вопросы будут касаться PHP и web-программирования.
Желающие пишите мне в личку.
Аккаунт @fxDev
Не упускайте теорию 📚
Часто новички в программировании стараются больше практиковаться в кодинге, совершенно забывая про теорию. Даже если они читают книги, то стараются искать иллюстрации кода, чтобы сразу воспользоваться новыми знаниями на практике.
Так зачем же теория программисту, если ему только и надо, что код писáть ⁉
Изучение теории расширяет наш кругозор. Это крайне важно для проектирования будущих проектов. Если программист не в состоянии спроектировать свой проект, то ему и кодить будет нечего.
Конечно, исключением являются крупные IT компании, где проектированием занимаются умные люди, которые уже перечитали массу книг о различных технологиях и методах проектирования. Но мы с вами едва ли попадем к ним работать на первых порах и потому, должны уметь самостоятельно проектировать.
Это совсем не означает, что нужно удариться в чтение и перестать кодить.
Я лишь призываю вас не упускать теорию, ведь на собеседовании первый этап, это как правило теория и лишь пройдя её вы сможете блеснуть перед интервьюером своим прекрасным кодом!
--
Сборник задач https://justcoding.ru/
Часто новички в программировании стараются больше практиковаться в кодинге, совершенно забывая про теорию. Даже если они читают книги, то стараются искать иллюстрации кода, чтобы сразу воспользоваться новыми знаниями на практике.
Так зачем же теория программисту, если ему только и надо, что код писáть ⁉
Изучение теории расширяет наш кругозор. Это крайне важно для проектирования будущих проектов. Если программист не в состоянии спроектировать свой проект, то ему и кодить будет нечего.
Конечно, исключением являются крупные IT компании, где проектированием занимаются умные люди, которые уже перечитали массу книг о различных технологиях и методах проектирования. Но мы с вами едва ли попадем к ним работать на первых порах и потому, должны уметь самостоятельно проектировать.
Это совсем не означает, что нужно удариться в чтение и перестать кодить.
Я лишь призываю вас не упускать теорию, ведь на собеседовании первый этап, это как правило теория и лишь пройдя её вы сможете блеснуть перед интервьюером своим прекрасным кодом!
--
Сборник задач https://justcoding.ru/
Числовой палиндром.
Палиндро́м — число, буквосочетание, слово или текст, одинаково читающееся в обоих направлениях.
Примеры числовых палиндромов:
— 3993
— 170071
— 955559
Условие задачи
Вам дадут 2 числа в качестве аргументов: (number, s).
Напишите функцию, которая возвращает массив из числа s палиндромов, которые идут после number. Если number - это сам палиндром, он должен быть включен в число.
Если один из входных параметров не является целым числом или меньше 0, верните «не действительно».
Ссылка на задачу 👇
https://justcoding.ru/solve-task?id=51
—
Завтра опубликую различные варианты решения данной задачи.
Палиндро́м — число, буквосочетание, слово или текст, одинаково читающееся в обоих направлениях.
Примеры числовых палиндромов:
— 3993
— 170071
— 955559
Условие задачи
Вам дадут 2 числа в качестве аргументов: (number, s).
Напишите функцию, которая возвращает массив из числа s палиндромов, которые идут после number. Если number - это сам палиндром, он должен быть включен в число.
Если один из входных параметров не является целым числом или меньше 0, верните «не действительно».
Ссылка на задачу 👇
https://justcoding.ru/solve-task?id=51
—
Завтра опубликую различные варианты решения данной задачи.