Как человек, имеющий диплом инженера-программиста и преподающий программирование в высшем учебном заведении, расскажу о том, с чего начинал я.
Первое и главное, с чего начался мой путь программиста - интерес к компьютерам, который появился еще в школе. Я не имею в виду интерес к компьютерным играм, хотя и их я тоже люблю. Я интересовался тем, как переустановить винду, что такое линукс, как сделать простенькую веб-страничку, изучил основы HTML. Тогда я о программировании ничего не знал и не ведал. Это может показаться странным, но на первом курсе я встретил множество студентов, которые совершенно не интересуясь компьютерами и не умея даже контр-страйк установить на домашний комп, пошли учиться программировать "потому что это престижно". Разумеется, больше половины из них вылетело после первой же сессии, но некоторые полюбили компьютеры и дошли до конца.
Мое знакомство с настоящим программированием произошло вовсе не в ВУЗе, а на работе. Примерно за месяц до начала первого курса, я устроился на пол-ставки помощником системного администратора в офис неподалеку. Первая задача, которая встала там передо мной - разобраться, как работает сайт компании, который хостился в собственной серверной, т.к. в работу помощника сисадмина входили и обязанности веб-мастера. Тогда-то мне и дали четыре книги. Одна была о PHP, вторая о JavaScript, третья о HTML, четвертая о CSS. Начал я с книги об HTML, но т.к. уже знал достаточно много со времен школы, мне это быстро наскучило и я переключился на PHP. Книга познакомила меня с основными типами данных, такими понятиями, как ветвление, циклы и функции. Чуть позже - с SQL. Разбор основ программирования занял всего пару недель и когда я начал учиться, я уже примерно понимал, что к чему. PHP - очень простой язык, он отлично подходит для начинающих. Для тех, кто не хочет связываться с сайтами, подойдет Delphi, которому нас начали обучать на первом курсе. Язык очень простой, конструкции его интуитивно понятны, возможности его широки, он подходит как для начинающих программистов, так и для профессионалов. Рекомендую всем, кто хочет научиться программированию под Windows. В дальнейшем меня научили так же основам C/C++, Prolog, LISP, Haskell. Теперь я сам преподаю программирование в ВУЗе, который окончил.
В заключение хочу предостеречь тех, кто пытается начать изучение программирования с повсеместно распространенного и широко известного С++. Не нужно так делать, этот язык предназначен для профессиональных программистов, вовсе не для новичков. Велика вероятность, что вы забросите обучение, так толком и не начав его, т.к. этот язык намного более сложен, чем Delphi или PHP, на примере которых вы можете научиться всем основам и в будущем с легкостью разобраться в любом языке, в котором пожелаете.
Стоит так же учитывать, что программирование - дисциплина комплексная, невозможно научиться программировать, не зацепив по пути математику, теорию вероятности, физику и многие другие дисциплины (возможно, даже гуманитарные). Программирование связано одновременно с абсолютно всеми науками, которые известны человечеству, хороший программист должен хотя бы понимать базовые принципы большинства из них. Впрочем, это приходит с практикой и с поставленными задачами.
И, ради бога, озаботьтесь изучением английского языка. Без него вам будет очень тяжело стать программистом.
Просто в точку! Всегда хотела, чтобы моя профессия была связана с IT.
Если нужен короткий ответ - Считаю, что программирование является искусством. И для его изучения нужно просто начать делать то, что пришло к вам в голову. Скопировать какую-либо известную программу или сайт И так далее. А опыт придёт со временем :)
Голос из древности говорит нам: "Не знаешь, с чего начать - начни с начала". Программирование начинается с матанализа - вот им и займитесь в первую очередь. :)
Рекомендую начать изучать программирование с основ, на сегодня лучшим из лучших является курс Гарвардского университета по основам программирования CS50. который стал своеобразным бестселлером во всем мире. Курс совершенно бесплатный и доступен на английской на сайте courseera.org. перевод CS на русский 2016 года доступен по адресу:
Гуманитарии бывают разные. Если вы плохо понимаете, чем монитор отличается от системного блока, то, пожалуй, программирование лучше не изучать. Но это частный случай. В общем случае особой разницы нет. Просто старайтесь избегать малопонятных "технарских" областей программирования, таких как программирование микроконтроллеров или станков с ЧПУ.
Я считаю данный ответ сомнительным.