Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Вопрос к профессиональным программистам. Почему так сложно изучать программирование?

ОбразованиеПрограммирование+2
  · 45,0 K
Веб-разработчик, геймер, специалист по этике  · 6 нояб 2022
Моё личное мнение коротко: всё слишком абстрактно.
Попробую объяснить поподробнее, но учтите, что мне как профессиональному разработчику ПО уже довольно сложно ответить на этот вопрос, я-то уже давно его изучил, для меня всё очевидно. 😏
Вспоминая свои университетские годы, где мне фактически "с нуля" читали синтаксис и семантику Object Pascal и, в следующем семестре, C++, я могу сказать, что очень сложно было понять в принципе, о чём идёт речь. Потому что подавляющее большинство вещей, с которыми мы работаем в программировании компьютера — не существуют, не существовали и принципиально нематериальны, невозможно их сравнить с чем-то из жизненного опыта.
Давайте я приведу вам пример. Возьмём одно из самых базовых фундаментальных понятий в программировании, которое существует просто везде, в любой языковой среде и в любой области разработки: понятие переменной. Какое у нас есть определение "переменной", что это такое? Нам читали вот это:
Переменная — это определённого размера область в памяти, расположенная по некоему адресу и обладающая именем.
Для профессионального разработчика ПО это определение самоочевидно, потому что оно вытекает из того, как мы переменными пользуемся каждый день. Я для того чтобы его написать, не открывал никакой учебник, я просто сконструировал его заново по опыту и смутным воспоминаниям о лексиконе, который в универе использовался.
Теперь задайте себе вопрос: вы вообще хоть слово из этого определения понимаете?
Для того, чтобы хотя бы представить, что это такое, "переменная", вам нужно уже заранее понимать, что такое "память" в компьютере, что эта память условно подразумевается разделённой на ячейки определённого размера, что эти ячейки пронумерованы числами, которые мы называем "адресами", что в языках программирования высокого уровня есть такое понятие — "имя", причём в каждом языке программирования это понятие определяется по-своему — и ничто из этого не объяснит вам, а собственно зачем мы вообще эти "переменные" в программировании используем, а тем более — как эти вещи, "память", "адрес" и "имя" выглядят в свою очередь.
И так я могу до посинения приводить примеры вещей, которые в разработке ПО становятся понятны только в процессе их использования. Для того, чтобы понять, что вы вообще делаете, подразумевается, что вы сформируете в своей голове какую-то систему абстракций, свою собственную уникальную систему, которую никто кроме вас вам не сможет объяснить. Любой опытный разработчик ПО вам скажет, что у него однозначно был в жизни момент, когда он бился головой об стену несколько дней, а потом в голове у него "щёлкнуло" и он вдруг понял, как "это" выглядит, и всё сразу стало понятно с этого момента.
Вот эта особенность программирования компьютера, её исключительная абстрактность, причём абстрактность на нескольких уровнях одновременно и необходимость постоянно переключаться в голове между этими уровнями абстракции, декомпозировать и обратно абстрагировать процессы и понятия, и делает его таким сложным для изучения, на мой взгляд.
4 эксперта согласны
Все эти понятия совсем не абстрактны, если начать с электроники и ассемблера.
)
Научные заметки о жизни: zen.yandex.ru/id/5c43498395753900ac66852d  · 4 нояб 2022
Вообще говоря в любом теоретическом обучении есть одна основная трудность. У ученика не хватает каких-то базовых понятий, чтобы отразить в них новые знания и понятия. Новым знаниям не к чему "прицепиться". Они как бы изложены на незнакомом языке.
Чтобы понять трудности конкретного человека, нужно  разбираться в том, какие именно знания и навыки ему не даются.
2 эксперта согласны
Диванный философ, по совместительству инженер  · 7 нояб 2022
Пожалуй есть три причины общие для всех видов деятельности где нужно много знать и еще больше уметь: - вы учитесь не тому и не по тем материалам. Возможно они некачественные, а возможно рассчитаны на уже профессионала осваивающего ну этак 10-20-й по счету свой язык программирования или фреймворк. Также возможно вы пытаетесь "нахвататься" по разрозненным видео или темам... Читать далее
2 эксперта согласны
Специалист в области разработки систем управления. Трансгуманист. Интересуюсь...  · 4 нояб 2022
Я бы сказал, что сложно изучать программирование не вообще, а некоторым людям в определённых ситуациях. Для начала, по своим врождённым способностям и воспитанию, полученному в дошкольном и младшем школьном возрасте, у разных людей формируются разные способы мышления. Некоторые люди склонны по жизни чётко ставить цели и формулировать последовательность шагов для их... Читать далее
Образовательная платформа Хекслет  · 18 мая 2023  · ru.hexlet.io
Изучать программирование может быть сложно по разным причинам, например: - Программирование требует логического мышления, внимания к деталям и способности решать проблемы. Так как вы должны понимать и использовать логику в своих программах, избегать и исправлять ошибки, баги и неточности в своем коде, находить и реализовывать оптимальные решения для разных задач и... Читать далее
Помогаем новичкам освоить профессию веб-разработчикаПерейти на ru.hexlet.io/webinars
Разработчик текстовых квестов  · 23 февр 2023
Что ж, вопрос не по адресу. Профессиональные программисты уже давно и прочно NIL это вот всё.  В лучшем случае услышишь: "Ну, лямбда-функции могут иметь любое количество аргумехрррр, пшшшшшшш, блам-блам-блам, бзззз бзззз, хрррррр пшшшшшшшш… Вот поэтому так сложно изучать программирование". На самом деле программирование сложно изучать ровно по одной причине - это... Читать далее
программист  · 7 нояб 2022
> почему так сложно изучить программирование. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf Это стандарт языка С в редакции 1999 года. Один из самых маленьких языков программирования - 540 страниц. Для полноценной работы вам надо знать ещё штуки 4 похожих стандартов. У вас есть два варианта, чтобы понять этот язык (с остальными 4 стандартами которые вам... Читать далее
Разработчик встроенных систем, немного радиолюбитель.   · 7 нояб 2022  · vladimir-coslow.narod.ru/index.html
По моему скромному мнению, программирование изучить совсем не сложно. Сложно на работу программистом устроиться. Например, когда был студентом, пообещали оставить при ВУЗе на летнюю практику программистом. Дали для проверки задачу написать на любом языке алгоритм, проходящий квадратный массив размером 10х10 таким образом: 1    2    6    7    15 3    5    8    14 4    9... Читать далее
Чтобы ни дня в жизни не работать, на практике совмещаю работу с хобби.Перейти на vladimir-coslow.narod.ru/index.html
3 эксперта согласны
Помощь пользователям ПК и ноутбуков - спрашивайте   · 11 апр 2023  · itmen.help
Изучение программирования может показаться сложным по нескольким причинам: 1. Большое количество языков и технологий: Существует множество языков программирования, каждый из которых имеет свои особенности, синтаксис и области применения. Также важно разбираться в различных технологиях, инструментах и библиотеках, которые постоянно обновляются и развиваются. 2... Читать далее
Компьютерная помощь в вашем городеПерейти на itmen.help/uslugi
В дополнение я бы добавил ещё, что математика приучает к строгости и упорядоченности...  · 16 нояб 2022
Ситуация у меня была подобно вашей. При обучении в вузе не понимал и просто ненавидел программирование. Тогда программирование было ещё то занятие, при помощи перфокарт. Но возникла задача расчёта крышки одного изделия. Задача свелась к системе линейных алгебраических уравнений. Не вручную же  решать, а кто мне писать программу будет? Пришлось самому писать программу... Читать далее