Хочешь стать разработчиком?

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

Хочешь стать разработчиком? Разработка, Программирование, Технологии, Пример, Javascript, Факториал, Задача, Программа, Длиннопост

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

let x=2

let y=2

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

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

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

Хочешь стать разработчиком? Разработка, Программирование, Технологии, Пример, Javascript, Факториал, Задача, Программа, Длиннопост

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

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

Факториал, - это число, умноженное на "себя минус один", затем на "себя минус два", и так далее до 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 интересно то, что она вызывает саму себя. Такой прием, когда функция вызывает сама себя, называется Рекурсия.

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

Хочешь стать разработчиком? Разработка, Программирование, Технологии, Пример, Javascript, Факториал, Задача, Программа, Длиннопост

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

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

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

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

*** 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 НЕ квадрат

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

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

Хочешь стать разработчиком? Разработка, Программирование, Технологии, Пример, Javascript, Факториал, Задача, Программа, Длиннопост

***** Для заданного числа 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

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

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

Хочешь стать разработчиком? Разработка, Программирование, Технологии, Пример, Javascript, Факториал, Задача, Программа, Длиннопост

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

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

Первоисточник:

https://wpvi.ru/pages/story/00056/

#############

### Конец ###

#############

Лига программистов

2K постов11.8K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

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

Вы смотрите срез комментариев. Показать все
7
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (11)
Автор поста оценил этот комментарий

Хорошая картинка. Заставляет задуматься. К чему бы тут она? Что хотел сказать автор картинки (или укравший ее где-то) - ?

раскрыть ветку (10)
5
Автор поста оценил этот комментарий
Скорее попытка заставить задуматься автора поста "А что же я делаю не так и зачем?"
раскрыть ветку (9)
Автор поста оценил этот комментарий

Ну, об этом я всегда думаю. Кстати, а что я сделал не так?

раскрыть ветку (8)
4
Автор поста оценил этот комментарий

Подписываюсь под каждым словом @ChernyPlamen. Добавлю еще от себя.


Ходят устойчивые слухи, что сегодня (июнь 2024) ситуация для программистов на рынке труда в России выгодна для искателей работы. Это, действительно, так. Об этом мне поведала Начальник Управления по борьбе с персоналом Вера Ивановна.

Если пост пишется на серьёзных щах, то этот сарказм неуместен. Сайт по ссылке - вырвиглазное дерьмище.


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

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


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

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


Давайте, начнем с языка Javascript

Давайте не надо. Аргумент, что JS код можно писать прямо в браузере - мягко говоря сомнителен. В любом случае разработчику потребуется IDE либо удобный текстовый редактор. Мы же хотим научиться писать что-то сложнее программ уровня хеллоу-ворлд? Хотим же?

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


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

Факториал, - это число...

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

function fact_fun(n) {

// делаем рекурсию только если n больше 1

Серьёзно? Факториал, рекурсия, функции?
Абстрактный ученик не знает еще ни что такое переменные, ни что такое условные конструкции, циклы... А ты так с ходу решил подкинуть задачку на вычисление факториала. Который в общем-то нахер не нужен в большинстве случаев, как и рекурсивные алгоритмы в целом.

Дальше я уже устал разбирать этот бред. Особенно выпал с JQuery. Это прямо скажем пиздец.

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

раскрыть ветку (5)
Автор поста оценил этот комментарий

Жестковато. С чем-то согласен, но что-то меня удивило. Например:

*Дальше я уже устал разбирать этот бред. Особенно выпал с JQuery. Это прямо скажем пиздец.


Тут даже версии нет, что не так. Почему "бред", почему "выпал"?

Все работает ок.

раскрыть ветку (4)
2
Автор поста оценил этот комментарий

Согласен, можно было не так эмоционально выражаться. Прошу прощения.

Насчет JQuery - вы в начале поста пишите хэллоу ворлд. Вам не кажется что до JQuery, как и в целом до веб-разработки "немного" далековато?

раскрыть ветку (3)
Автор поста оценил этот комментарий

Так как раз "Привет, Мир" продемонстрирован без JQuery. А более сложные примеры, где требуется захватить информацию из формы и выплюнуть результаты на страницу HTML, тут уже JQuery используется.

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

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Просто прими как факт, что обучать людей программированию - это не твоё.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

3
Автор поста оценил этот комментарий
Во-первых, изображения, кривой коллаж с нейросетью вкупе выглядит по-наркомански.
Во-вторых, тема базового программирования мало кому интересна и заезжена донельзя.
+ наркоманская картинка, в итоге выглядит как очередная говяная реклама, которая, особенно здесь, никому не всралась.
В-третьих, как обучающий материал - дерьмище полное. Любое программирование начинается с алгоритмов, логики, математики, а не языка. Языки вообще вторичны и их пруд пруди. Первым делом - логика, образ мышления. Пост позиционируется для новичков, а баз по факту, ознакомления именно с программированием- ни-ху-я.
Я верю, что вы можете уметь программировать, а вот учить - нет.
Еще и в сообщество программистов такое скинули. Ожидаемо, что за такое знающие люди накидают полную панамку.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Спасибо за толковую критику. Задумался.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку