Программирование

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

Думаю, всё просто. Существует не так много общеизвестных перечислений: арабские цифр, латинские и греческие буквы. Ещё в 1950х годах компания IBM использовала греческие буквы для описания стадий тестирования, затем эта практика распространилась в индустрии. Теперь буквой α обозначают стадию разработки, на которой хромой и спотыкающийся продукт уже хоть как-то но можно тестировать, а буквой β - стадию тестирования перед непосредственным выпуском продукта или сервиса.

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

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

Если не будет вакансий, то Ваше обучение будет бесполезно. Писал на эту тему на своем канале.

А если Вы хотите просто научиться программировать, то выбирайте Python. Дмитрий в этом абсолютно прав :)

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

Один из классических учебников, по которому учились, например, многие программисты Яндекса – Dive into Python Марка Пилгрима. И он лежит в открытом доступе совершенно легально :) Версия для python3 вот – http://www.diveintopython3.net. На русском, наверно, тоже где-то есть.

Обновлено 6 месяцев назад

Что такое SQL-инъекция? — 2 ответа

+5

SQL - это язык для управления базами данных.

Типичные запросы в нем выглядят так:

SELECT * FROM users WHERE name = 'Yandex';

Этот запрос возвращает всех юзеров из таблицы users с именем 'Yandex'.

Часто запрос формируется в коде таким образом (пример на языке Python):

return "SELECT * FROM users WHERE name = '%s';" % name

То есть запрос формируется как строка, куда в кавычки вместо %s вставляется значение строки name.

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

Например, кто-то в Польше создал компанию с названием "Dariusz Jakubowski x'; DROP TABLE users; SELECT '1" (https://prod.ceidg.gov.pl/CEIDG/CEIDG.Public.UI/SearchDetails.aspx?Id=e82735cd-bc2b-4ac0-8bac-a1dc54d8c013)

Предположим, эта компания заполнила форму этим именем, и питоновский код сформировал такой SQL-запрос:

SELECT * FROM users WHERE name = 'Dariusz Jakubowski x'; DROP TABLE users; SELECT '1';

Теперь вместо старой логики "найди мне юзеров с данным именем" этот код находит юзеров с именем 'Dariusz Jakubowski x', если есть, а после этого удаляет таблицу users (!!!) и возвращает '1'.

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

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

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

Изучите базовые концепции (переменные, функции, классы, условные операторы, циклы...) и базовые структуры данных и алгоритмы (списки и деревья, сортировку и поиск...). Лучше, конечно, учиться по учебнику – в магазинах и в сети много книжек, хороших и разных. Азы программирования вам дадут везде, примерно в одинаковом порядке и наборе.

Потом надо набить руку – порешать программистские задачки на сайтах вроде https://www.hackerrank.com. Ну а дальше – сами решайте, куда развиваться.

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

Если у Вас уже программировали на других языках, то есть бесплатный и хороший курс -
"Java. Базовый курс". Курс отхватывает все базовые возможности языка.

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

Маска сети это 32-битное число.

Это означает, что маска представляет собой последовательность из 32 нулей и единиц, то есть двоичное число, причем единицы всегда идут вначале, а нули в конце, например вот так в двоичной записи будет выглядеть маска "255.255.255.0": "11111111 11111111 11111111 00000000"