Какие книги читать и изучать, чтобы стать настоящим программистом, а не кодером?

Здравствуйте!

Читал аналогичный вопрос, многие советуют просто что-то писать для себя, чтобы было интересно. Я так и делал, но получается что с таким подходом можно стать лишь кодером, причём с приставкой -"быдло".

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

Интересует подход чисто академический, абстрагированный от какого-либо ЯП.
Заранее всем спасибо!
  • Вопрос задан
  • 16265 просмотров
Пригласить эксперта
Ответы на вопрос 16
JSinga
@JSinga
основная проблема в том, что вы, скорее всего, особо и не кодили, а уже ищете книги которые сделают ваш код "батьковским".
Не на то отвлекаетесь.
Сколько вы набрали рейтинга в TopCoder, CodeForce?
В скольких проектах поучаствовали на GitHub?
Почему вы решили что вы достаточно покодили?

Хотите читать книги и мечтать что код станет шикарен сам собой?
http://пиши-код-блять.рф/
Ответ написан
@veitmen
Добрый день.

К сожалению нет "серебряной" книги. Нет четкого пути.

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

Стать хорошим программистом можно разными путями. Почитайте главу про личные качества программиста из книги "Совершенный код" Макконела. Сравните себя с описанием. Очень интересно. :)

Быдлокодер - перестает быть быдлокодером, лишь тогда, когда начинает понимать каждую строчку кода, знает что скрыто за каждым вызовом любой функции. После этого, человек начинает понимать что хорошо, что плохо. Это только опыт. Со временем Вы начнете отличать хороший код от плохого. Просто Вы будете знать что если писать так, то будет "бобо" потом. :) Конечно можно и нужно читать книги. Если Вы хотите писать красивый код, то читаете "Совершенный код" Макконела и "Рефакторинг" Фаулера. Этого достаточно для понимания того, какой код хороший, какой плохой. Но это ничего не даст, пока сами не увидите. :) Для проектирования систем тоже нужно читать книги, но в первую очередь смотреть на решения. Разбираться почему сделали так, а не иначе. Почему в этом приложении так, а другом иначе? Как лучше? Когда именно так лучше? И т.д. Изучайте и разбирайтесь. Пробуйте использовать эти решения в своих приложениях.

Советы в стиле делай то, что тебе нравится правильные. Т.к. именно делая то, что Вам нравится, Вы будете искать пути улучшения этого.

Ищите более опытных товарищей. Это самое-самое главное. Без наставников очень сложно. НО выбирайте с умом, а то потом будете академическим "быдлокодером". :)

Найдите работу.

Не заморачивайтесь. Если Вам нравится программировать, то просто читайте и пишите код. Вы и так станете хорошим проггером. Не бойтесь критики, особенно от самых злых и беспощадных критиков. Приветствуйте любые советы по улучшению. Но никогда не верьте на слово. :) Все перепроверяйте. "Быдлокодеры" есть и они хотят утянуть всех на свою сторону, что-бы не выделяться. :) :)
Ответ написан
@justaguest
Странно, отчего никто не упомянул искусство программирования Д.Кнута.
Ответ написан
@betasked
Кодить, кодить и кодить!!!
И периодически сравнивать свой код с гуру. Анализировать. Переписать код заново. Опять анализировать. Искать ответы на конкретные вопросы в книгах.
Ответ написан
qassarb
@qassarb
java-developer
Ребята, просто хочу поделиться историей от себя.
Я 4 года назад понял, что хочу стать разработчиком.
И чуть более 3 лет не мог выбрать язык.
То за ПХП взялся, бросил, не понравилось чего - то, так же пробовал повникать в что такое С, С++, и производные, скриптовые. И в этом году остановился на Java. I found it!!!!!!: )
Во всех случаях читал литературу, но тут я понял чем больше знаешь основы, тем лучшим будет твой код. Когда знаешь, как устроены алгоритмы того же, скажем, компилятора, легче понимать архитектуру и анализировать переходы состояний.
Если кого Java интересует, то очень рекомендую www.intuit.ru/studies/courses/16/16/info
Вязовика. Курс хоть и старенький, некоторые вещи устарели, но уже в ходе курса начинаешь понимать. Терпения!
BR
Ответ написан
anathem
@anathem
А по-моему, отвечающие упустили одну вещь. Зазубрив Кнута, получив практику "кодить, кодить, кодить" можно стать крутым кодером. Но надо не просто кодить, а надо решать проблемы, — потому, кроме литературы по программингу, читайте бизнес-литературу, что то по социологии, всякие GTD, психологию, изучайте финансы, юриспруденцию и т.д., и т.п.
Ответ написан
evnuh
@evnuh
Поиск Гугл помог мне, впусти и ты его в свой дом
Очевидно, как и всегда - набираться опыта у старцев. Нет возможности делать это вживую - вам на github. Выберите что-нибудь открытое, вникните и помогите исправить парочку багов.
Ответ написан
afiskon
@afiskon
Не то, чтобы я был типа гуру программирования, но можете посмотреть, какие книги я читаю, может поможет.
Ответ написан
@RokkerRuslan
Я уж всем кому не попадя посоветовал SICP :).
Книга лежит в открытом доступе.
Есть очень хороший перевод на русский от Георгия Бронникова
Ответ написан
aioon
@aioon
еще стоит покопатся здесь shelfari дапустим, что там прочитал наш Martin Fowler )))
Ответ написан
EvilsInterrupt
@EvilsInterrupt
System programming, Reversing Engineering, C++
На мой взгляд Ничего специально читать не надо! Программист характеризуется не знанием большого количества технологий и языков, а умением разобраться и решить за приемлемый срок. Очень часто бизнес ставит новые задачи и на скрам-митингах идут обсуждения как бы решить очередную задачу и кому лучше поручить. Так вот, как правило кто-то справляется быстрее, а кто-то медленнее. Все дело в том, что тот кто справляется быстрее зачастую знает не больше чем второй, просто он имеет своего рода универсальный подход к решению задач. Мой Вам совет: развивайте этот самый универсальный подход. Учитесь самому Важному навыку программиста "уметь решать задачи". Разные люди по разному подходят к этому! На страницах одной из классических книг "Искуство программирования под Unix" Роб Пайк сказал про своего коллегку Кернигана "Будучи хорошим программистом я с удивлением обнаружил что очень многому научился у него! Очень часто там где казалось что без отладчика не обойтись ему удавалось выяснить причину ошибки без отладки". Это один из примеров того каким должен программер, а их этих примеров массы!
Ответ написан
@Mintormo
Кто-нибудь может объяснить чем программист отличается от "кодера" и в связи с чем тут комплексы?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы