Хочу стать хорошим программистом,как быть?
============================================

*Всем привет, я ученик 9 класса. Я бы хотел удовольствием прочесть ваши ответы, а желательно развернутые=)*   

 Интересуюсь программированием с класса 6-7, и IT - сферой, хорошо понимаю математику да и вроде как мне сказали у меня логических склад ума, но с программирование как то туго.  

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

Летом в лет 12-13, я часами смотрел курсы по вебу и как люди пишут сайты, как то решился научиться верстать, но забросил через 2 дня. Потом в классе 7 я сел читать книжку по языку программирования С++, после прочтение 70 страниц, перестал понимать как работает то или иное действие(вроде как из-за циклов и массивов), и забросил с мыслями что я тупой и у меня нет с рождения дара программировать (слышал что не всем дано программировать). Но я все равно засыпал с мыслями найти работу программиста и продолжал читать статьи. В 8 классе обратно сел учит уже PHP, начал все понимать (те же массивы и циклы которые не понимал в 7 классе), но как то я понимал что меня больше интересует инф. безопасность и программирование на десктопе и обратно забросил учить. Читал много статей по реверс-инженирингу, разборы вирусов и работы ddos'a т.д, но все равно когда садился заниматься этим делом, то делал это не с охотой,не хватало усидчивости, понимания некоторых аспектов, концентрации и опять же мысль что не моё это(хотя в душе энтузиазм горит что ли) Съедали мысли что я тупой :c.  

Сейчас мне 16 лет, и у меня уже появилась усидчивость изучать С#, дисциплина тоже повысилась, но ненавижу теорию которую дают видеокурсы, мне нравится больше практиковаться. Решил уделять 5-6 часов программированию, решил посвятить себя этому, забросил бокс из-за этого. Учу уже месяц, стал понимать то что не понимал когда было 13-15 лет.  

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

Вот что мне делать?  

Может я не понимаю из-за возраста? Может я не достаточно умен (в школе не очень учусь)?Может мне природой не дано?  

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

Буду благодарен всем за ответы 

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

Поймите, что, во-первых, программист учится всегда, потому что постоянно что-то меняется в его работе. Во-вторых, он постоянно ищет решения новых проблем самостоятельно, а не применяет решения, которые ему показали во время учёбы. И, в-третьих, программирование на 90% состоит из рутины, которая никак не тянет на развлечение.  
  

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

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

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

 9 класс блин) я в 9м классе не знал ни о существовании Хабра, ни о программировании - тем не менее жив, здоров, программирую) Наслаждайся детством парень, программирование с тебя и так все шкуры сдерет, так что не торопи события, позажимай одноклассниц там еще что-нибудь, но точно не Хабр читай)) 

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

  
  

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

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

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

 0) Программировать.  

1) Программирование = практика. Нужно писать код, решать задачи. Желательно, какие-то реальные.  

2) Не столько читать, сколько программировать.  

3) Определиться с языком, вернее, с отраслью. На C# не пишут сайты, на PHP не делают десктопные приложения, на objective-c не пишут демонов. На Pascal вообще не надо ничего писать.  

4) Программировать.  

5) Возраст сложный. Внимание концентрируется плохо. Порог вхождения в первый язык может быть и небольшим (что вряд ли), но проблема в диссонансе между ожиданиями и реальностью. Начать хорошо программить или программить вообще сразу не получится. Придётся себя заставлять. Придётся ощущать себя дураком, который ничего не может понять. Это больно, не все могут сразу въехать. Это — нормально. Терпение и труд. Не всё сразу. Главное — не бросать и что-то обязательно получится. Или наоборот, вы поймёте, что ну совсем не ваше. Это тоже нормально.  

6) Желателен наставник. Желателен постановщик задач для решения. Для учащихся неплохой вариант с курсами. Там хоть какая-то программа есть, которую надо выполнять. Так проще учиться, когда тебя пинают, чем когда ты половину энергии тратишь не на учёбу, а на самопинание.  

6) У Вас сейчас задача не стать хорошим программистом, а стать программистом вообще. Это труд. Трудиться тяжело.  

7) Программировать.  

8) Лучше сразу уходить на linux и начинать изучать всю современную it-экосистему. Это тоже важно и нужно. На практике. Больше практики.  

9) По возможности, максимально скоро идти работать программистом — получать опыт.  

10 ) Программировать.  
  

И лично от себя. Не надо PHP для сайтов, если будет такая возможность, возьмите сразу Python.  
  

UPD: Не могу не прокомментировать зложелателей. Какие же вы моральные уроды. Конченные мрази. Не надо обращать внимание на это мудачьё. 

 Дать себе пинка и начать учить. Давать двойной пинок когда что-то делаешь. Я в свои 13 умею около того, что описано в тексте. Но на других языках. Просто даёшь себе пинка или идёшь куда подальше, ведь нужно уметь не унести все в условных /dev/null. Также нужно с ходу понимать простейшие действия. Как xor, неявные преобразования из числа в bool. Тот же !!x, или !0. Ну и дальше, если останется интерес, просто пытаться делать, что нравится. Даже простой мессенджер, форум и т.д... И дальше всё само пойдет, если дано. Иначе хоть в окно прыгни (не надо так), ничего не сможешь. 

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

Вы сами говорите — легче даётся практика, но не получается в неё. То есть если в неё не получается, нужно читать ~~всякое говно~~ всё подряд? Нет, бейтесь дальше и пробьете, не стремитесь сразу делать что-то сложное. Сделайте программу для себя — какую-то, полезную, которая вам в чём-то поможет, или кому-то из ваших знакомых/родственников. 

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

Просто не надо торопиться. К чему 5-6 часов в день? Надо ставить реальные задачи, чтобы не было лишней фрустрации. Час в день или по 3 часа на выходных. 

 Хнык-хнык, плак-плак. Пожалейте меня, я не знаю, что делать. Излишняя эмоциональность и гиперактивность - твои проблемы. Держу пари, ты за свою жизнь и десятка обычных книг не прочитал. В программировании, а особенно в изучении, нужно спокойствие. Умение не отвлекаться на пустяки и максимальное сосредоточение на основной задачи. Научись во время обучения не отвлекаться на ютуб, вк, инстаграм. Выкинь их из свой жизни и все пойдет намного лучше.  

Я в свое время просто аддблоком скрыл все рекомендации на ютубе, оставив только уроки, удалил вк из закладок, а у телефона отключал звук.