Почему высокоуровневое программирование это легко?

Программировать на языках высокого уровня очень легко, об этом вам может сказать любой программист который имел дело как с языка высокого уровня (Java, C++, C#), так и с низкоуровневыми языками программирования наподобие Assembler.

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

Все предельно просто, здесь за вас, можно сказать, что всю работу сделали другие программисты. Вам даётся базовый функционал, различные конструкции (циклы, выражения, условные операторы, массивы, etc) и уже при помощи их вы как бы выстраиваете своё приложения методами различных компоновок этих конструкций. Это в чем то можно сравнить с постройкой дома, когда вам даются различные строй материалы и вы при помощи их можете как бы сложить себе дом. Или же аналогию можно провести с тем же детским конструктором, где так же из уже готовых блоков можно сложить различные конструкции. Таким образом вам не надо задумываться о том как все это представлено в памяти и какие низкоуровневые команды подаются процессору для достижения нужных целей, вы просто берете готовую реализацию и применяете её на деле.

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

Тестовый редактор или IDE ?

Многие матерые программисты предпочитают писать код в обычных редакторах без какой либо помощи дабы патом самим вручную компилировать написанное. Другие же предпочитают использовать функционал IDE для быстрого достижения целей, т.к. там все нагляднее и быстрее за счет интерактивных подсказок и авто подстановок кода по ходу написания. Безусловно доводы у каждой стороны в этом вопросе свои и оспорить их трудно. Как мне кажется для начала лучше писать весь код вручную дабы понять всю суть и знать, что и откуда берется. Когда же вы все прекрасно понимаете можно переходить на автоматические методы формирования кода, например создание Windows Form приложений при помощи графического конструктора интегрированного в среду графической разработки приложения. Тут стоит понять то, что по сути разницы ведь нет никакой, ведь вы прекрасно понимаете, что происходит в коде и легко можете поправить руками все без исключений в редакторе исходного кода. При помощи подобных инструментов вы разве только, что значительно ускоряете процесс разработки приложения и только. Так же при помощи таких инструментов вы освобождаете в место в своей памяти, ведь вам совсем не обязательно досконально помнить все, что касается программирования того же графического интерфейса. Главное то, что вы всегда можете взглянув на код сразу определить, что там происходит. То же самое касается и к примеру создания html страниц. Ведь можно же использовать средства среды разработки например для быстрого создания html шаблона страницы. Зачем тупо заучивать такие вещи, ведь главное это понимание а не зубрежка.

Тут стоит понимать то, что все эти советы касаются вас тогда, когда вы уже знаете и понимаете всю специфику кода, а не тогда когда учитесь программированию. Стоит различать эти вещи. Если вы только обучаетесь программировать тот же графический интерфейс программ, то для начала, для полного понимания вещей, обязательно стоит абсолютно весь код писать своими руками т.к. только в этом случае вы поймете все тонкости и основные моменты этого дела.