История 00056. Хочешь стать разработчиком? Садись и разрабатывай!

История 00056. Хочешь стать разработчиком? Садись и разрабатывай! Это небольшое пособие для тех, кто решал стать разработчиком (программистом, кодировщиком), но не очень уверен в своих силах и способностей, да и желаниях тоже. Ходят устойчивые слухи, что сегодня (июнь 2024) ситуация для программистов на рынке труда в России выгодна для искателей работы. Это, действительно, так. Об этом мне поведала Начальник Управления по борьбе с персоналом Вера Ивановна. Если раньше было 10 кандидатов на 1 место, то теперь всего лишь 9.

Главная О проекте Карта сайта Истории Картинки Соц сети Контакты

История 00056. Хочешь стать разрабом? Спроси её как!

История 00056. Хочешь стать разработчиком? Садись и разрабатывай!




С чего начать.



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

Проведите самодиагностику. Вам в школе нравилась математика? Вы любите играть в шахматы? Если ответили "да" на оба вопроса, скорее всего, программирование - это ваше дело.

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

Добро пожаловать в семью. У нас тут очень хорошо, комфортно. Наш девиз "Gens Una Sumas". Мы все помогаем друг другу как можем. Вы тоже вполне можете рассчитывать на такую помощь.




Javascript - начало всех начал.



Давайте, начнем с языка Javascript (Джаваскрипт, Яваскрипт). Вообще, разных языков программирования очень много: Питон, PHP, C++, Java и т.д.

Javascript имеет то огромное преимущество перед другими языками программирования, что он уже есть в вашем телефоне, планшете, компьютере. Он встроен в любой браузер. Мы можете немедленно написать первую программу прямо сейчас.

Следуя старым добрым традициям, напишем первую программу в стиле вывода значения строки "Hello, World!"

Текст программы "Hello, World!"

console.log("Превед, Медвед!");


Скопируйте текст программы в буфер обмена, вставьте в консоль браузера (консоль открывается-закрывается по F12 или еще как-нибудь), нажмите "Enter".

Если вы ранее никогда не копипастели в консоль, то вполне возможно, консоль выдаст вам такое сообщение.

Warning: Don't paste code into the DevTools Console that you don't understand or haven't reviewed yourself. This could allow attackers to steal your identity or take control of your computer. Please type "allow pasting" below and hit Enter to allow pasting.

Предупреждение. Не вставляйте в консоль DevTools код, который вы не понимаете или который не проверяли самостоятельно. Это может позволить злоумышленникам украсть вашу личность или получить контроль над вашим компьютером. Введите ниже "разрешить вставку" и нажмите Enter, чтобы разрешить вставку.

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

Текст программы "дважды два четыре"

let x=2
let y=2
console.log("x*y=", x*y);

Обратите внимание на интересную особенность языка Javascript: конец строки можно заканчивать символом ;, но можно и опускать.

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

Первые программы на Javascript: "Hello, World!" и "дважды два четыре".


Теперь можно перейти к чуть более сложным задачам.




Факториал натурального числа.



Факториал, - это число, умноженное на "себя минус один", затем на "себя минус два", и так далее до 1. Факториал n обозначается как n!

Текст программы "Факториал натурального числа"

function fact_fun(n) {
  // делаем рекурсию только если n больше 1
  if (n > 1) {
    return n * fact_fun(n - 1);
  }
  else {
    return 1;
  };
//
}; // function fact_fun(n) {
//

В этой функции fact_fun интересно то, что она вызывает саму себя. Такой прием, когда функция вызывает сама себя, называется Рекурсия.

Чтобы стало совсем все понятно, попробуем визуализировать эту абстракцию с помощью картинки.

Рекурсия
Рекурсия



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

Теперь переход к чуть более сложной программе.




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



Описание работы алгоритма

*** 1 ***
Вводим несколько чисел из формы HTML, в нашем примере: 49, 64, 77, 25, 99.
Формируем массив:
temp_ar = [49,64,77,25,99];


*** 2 ***
Проходим циклом по этому массиву от нулевого элемента до последнего:
for (let x = 0; x < temp_ar.length; x++)
При проходе выполняем пункт 3.

*** 3 ***
Определяем, является ли текущий элемент полным квадратом с помощью специальной функции: is_int_cur_kv_fun(temp_ar[x])
Если текущий элемент является полным квадратом, выполняем пункт 4.

*** 4 ***
Проверяем, является ли текущий элемент большим по значению, чем max_int (изначально let max_int = null;)
if (temp_ar[x]>max_int)
Если больше, то фиксируем:
max_int = temp_ar[x];

*** 5 ***
Для данного набора чисел получаем результат 64, с такой расшифровкой:
1) 49 КВАДРАТ
2) 64 КВАДРАТ * Максимальный *
3) 77 НЕ квадрат
4) 25 КВАДРАТ
5) 99 НЕ квадрат



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

А здесь ограничимся скриншотом с этой страницы.

Скриншот с результатом
Скриншот с результатом





Для заданного числа N найти количество способов его записи в виде суммы положительных чисел.



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

Эта задача популярна среди математиков. Например, герой рассказа Константина Оборотова "Осторожно, женщина!" использует эту задачу для объяснения, что такое математика.

Описание работы алгоритма

*** 1 ***
Получаем число над которым будем работать из формы HTML:
let task1_1 = jQuery('#task1_1').val();

*** 2 ***
Допустим, ввели число 4.
Разбиваем это число на массив temp_ar(4)[1,1,1,1]
Размерность массива temp_ar соответствует числу task1_1, все варианты разложения которого мы ищем.

*** 3 ***
Делаем цикл с условием while(temp_ar[0] < task1_1)
Т.е. проходим по циклу до тех пор, пока нулевой элемент массива temp_ar[0] не станет равным числу над которым работаем.
При этом значение числа task1_1 остается неизменным, а над массивом temp_ar проводим манипуляции, описанные далее

*** 4 ***
Проходим по массиву temp_ar от нулевого элемента до предпоследнего. При этом к минимальному элементу в текущем состоянии массива прибавляем 1
temp_ar[min1index] += 1;

*** 5 ***
При этом мы удаляем следующий элемент:
temp_ar.splice(min1index+1);

*** 6 ***
Дополняем массив необходимым количеством единиц на конце:
temp_ar.push(1);
Делаем это так, чтобы в любом текущем варианте состояния массива temp_ar, сумма его элементов всегда должна быть равна task1_1 (т.е. 4 в нашем примере)

*** 7 ***
После завершения основного цикла, временный массив temp_ar будет содержать единственный элемент, равный по значению числу task1_1
temp_ar: [4]

Всего для данного тестового примера получаем 5 вариантов:
1) 1+1+1+1=4
2) 2+1+1=4
3) 2+2=4
4) 3+1=4
5) 4=4




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

А здесь ограничимся скриншотом с этой страницы.

Скриншот с результатом
Скриншот с результатом


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

Спасибо за внимание! Успехов в программировании, разработке и кодировании!




Ссылки



https://wpvi.ru/pages/pics/008/ - Что такое дефицит IT кадров.

https://wpvi.ru/pages/soft/js/ - Маленькие локальные программы на JS, серия 1.

https://wpvi.ru/pages/story/00054/ - Рассказ Константина Оборотова "Осторожно, женщина!" Своими жизненными историями математик Василий Иванович делится с Жанной, водителем такси. Все истории сделаны по одному лекалу. Василий Иванович доверчиво относится к женщинам разного возраста, а женщины в ответ обманывают его тем или иным способом.

https://wpvi.ru/pages/story/ - Список историй.

#############
### Конец ###
#############



PS Можно ли использовать отрывки текстов с этой страницы?



Отрывки текстов с этой страницы можно использовать с указанием ссылки на первоисточник:

Запомните урл этой страницы:






PPS Что делать дальше?



Можно, например:

Почитать другие истории