Что самое сложное в обучении разработке?
Вот есть человек. Ему, допустим, 30. Он решается войти в айти и начинает обучаться разработке. Сперва всё это овеяно романтикой новизны и мечтой о больших деньгах, но после Hello, world вываливаются 203 ошибки компиляции и как-то сразу становится не по себе. Впереди шаблоны, паттерны, принципы ООП, утечки памяти, эксепшены, решето Эратосфена на Питоне и прочие радости жизни начинающего программиста. А нет, начинающего изучать программирование - так точнее.
Так где сложности? В Java? В указателях? В работе с файлами? А, Ассемблер! Нет, нет, и нет, и ещё раз нет - всё это подъёмно для человека с желанием, интеллектом и высокой мотивацией.
Сложность в том, чтобы каждый день - несмотря на погоду, работу, дружеские вечеринки и семейные разборки - садиться и бить по клавишам. Изо дня в день разбирать самый простой код, писать руками функции, компилировать, разбирать каждую ошибку, снова писать код. Не копировать, не перенабирать, а писать, понимая каждую строчку, каждый символ. Не понять на первом уровне и победить на пятом невозможно: только рутинное, планомерное движение вперед и даже по спирали, наращивая на каждом витке что-то новое на старое.
Это сложно. Это не оплачивается. Это должно продолжаться даже когда вы станете миддлом. Сперва только так можно научиться, позже только так можно развиваться, а потом только так можно оставаться на переднем крае разработки.