День добрый! Проблема проста: раньше я думал, что можно научиться программировать по одним лишь книгам по языкам. Все эти "для начинающих", "базовый курс" и "для программистов" почти не дают знаний о написании программ, кроме небольших примеров. Но даже владея языком, я понимаю, что совсем не могу написать что-либо, где требуется продумать архитектуру, паттерны, классы и т.д. Часто понимаю, что одну задачу можно решить многими путями, но в процессе работы начинаю "тонуть" в плохо продуманном коде.
Придумать себе проект и реализовать его, как сумеешь.
Почитать про шаблоны проектирования.
Переписать, опираясь на шаблоны.
Понять, что вышло не очень.
Переписать ещё раз.
Вы путаете понятие "научиться программировать" и "стать хорошим специалистом, уровня сеньор архитектор".
Неужели вы действительно считаете, что для того, чтобы стать крутым специалистом достаточно почитать 5-10 книжек?
Нужны годы практики, ошибок, и стремления понять и эти ошибки исправить.
Я и не думал стать профессионалом от прочтения нескольких книг) Дело в том, что свои программы не могу часто довести до ума. Непродуманная архитектура быстро тянет проект на дно. А ведь я пишу не великие вещи, просто программки, которые могли бы быть полезны не только мне.
Юрий: Высокий порог входа в программирование - не пустые слова. Отсюда и идут вечные разговоры о говнокоде, поскольку выпустить рабочий продукт и написать красивый код - никак не связанные вещи )
Просто нужно больше усилий...
40-70-е программист это ученый-исследователь
70-90-е программист это инженер
90-10-е программист это бухгалтер, экономист
наше время - программист это тупой 20 летний пацан.
На самом деле программисты ученые, инженеры, бухгалтера ни куда не делись, просто их не много и их работа не так заметна. В то же время из-за низкого порога входа в современное программирование программистами себя называют весьма слабо интеллектуальные личности, большинство так называемых "программистов" даже читать не умеют
Чтобы стать хорошим программистом нужно понять одну простую вещь - компьютер это не более чем продвинутый калькулятор. Компьютер может только выполнять арифметические операции и больше ни чего он делать не может. Из этого следует, что основная функция программиста описать поставленную задачу в виде числовых значений и арифметический действий над этими числами. В программировании это называется "создание математической модели задачи" и занимает 50-60% времени работы программиста, в то время как непосредственное написание кода это 3-5%
берите реальный проект и разбирайте код. затем пишите аналогичный с нуля. затем выкладывайте для критики. затем переписывайте. так несколько итераций. параллельно подпитывая все это теорией из умных книг. это если нет возможности в команду попасть. в целом, не более 20 процентов могут преодолеть этот барьер самостоятельно (данные из книги Шаталова).
Просто начать сложно, нужна идея(толчок). Начинать с простого. Если это веб то с html+css+js(Для понимания) Начните после этого bootstrap. Порог вхождение минимален и самое главное результат на глазах, что важно для начинающего программиста. Далее переходить на бэкенд, если кончено это интересно. Тут советую начать изучать python для понимания вообще что такое программирование(Прям по книге сядьте). Никакие видео не дадут вам полного объема данных. Конечно видео для начала это хорошо. Но "супер программистом" вы станете благодаря хорошо написанному мэнюалу. Далее можно связать навыки html+css+js(фронтенд разработак) и навыки программирования(python). Настоятельно рекомендую Фреймуорки для python, такие как Django, Flask или pyramid. Но если не хочется на python то можно на ruby lang(Ruby on reals framework), .NET, на крайняк PHP.
Не забывай все программисты не рождались программистами. Все мы были зелеными я и сейчас себя таким считаю. Но самый главный экспириенс это ГРАБЛИ. Чем больше ошибаешься и решаешь больше проблем то будут плодороднейшие результаты. И надо реально сидеть и кодить. Опыт самое важное. Удачи в начинаниях))
Разработай то, что должно работать у людей - т.е приложение которым будут пользоваться люди. Тебе прийдется часами пилить исправления/обновления и тем самым ты много раз по переписываешь свой код, добавляя что то новое, исправляя что то на более разумное.