Меня часто просят посоветовать какую-то книгу по программированию. Если спрашивают по языку, то тут отвечать еще более менее просто, ведь нужно просто назвать книгу, которую читал сам и которая понравилась. Чаще всего я просто даю ссылки на книги в разделе ИТ книга блога, потому что наиболее интересные книги (из того, что прочитал) я уже описал. При этом, я всегда советую не ограничиваться только этими книгами и читать больше и разной литературы. От этого хуже не будет.
Сложнее, когда спрашивают типа: «какую книгу стать, чтобы стать программистом». Таких книг очень мало, потому что в основном пишут книги по языку. Я тоже пишу по языку, потому что издательству легче продать эти книги. Книги именно по программированию не так востребованы, а зря. Из-за этого очень много "программистов", которые пишут ужасные вещи и проектируют линейно в объектном программированию. Их программы состоят из одного объекта, который и на дудке играет и песни поет.
Помню как один умник для показания своей крутости (видимо) создавал компоненты программно в Delphi. Он просто писал все в коде. В этом в принципе нет ничего плохого, но все это хранилось в одном модуле формы. Из-за того, что все сваливолось в один файл кода, он вырос до таких размеров, что работать с ним стало просто нереально. Ну разбей ты одну задачу на несколько объектов и у тебя код будет чище и файлы будут меньше. С ними проще работать.
Так вот, чтобы стать программистом, нужно читать не Библию C# (хотя я и пытаюсь в своих книгах затрагивать подобные вещи), нужно читать книги по проектированию кода. Нужно читать такие работы как:
Существует множество подходов к проектированию кода и каждый автор опишет свой подход и будет считать его лучшим. Я могу посоветовать прочитать разные книги и пробовать, пробовать, пробовать. Помимо этого нужно прочитать хотя бы пару книг по алгоритмам, но это уже отдельная тема.
Кто и какие книги может посоватовать по проектированию кода? Ссылки на PDF файлы или другие электронные варианты книг не давать. Где скачать книгу здесь мы тоже не обсуждаем. Обсуждаем названия книг и о чем они.
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
По моєму принципи ООП гарно викладені в книгах Страуструпа. Хоча книги по С++, кращого викладу ідеї я не бачив.
2DOStup Нифига себе "гарно викладені в книгах Страуструпа". После 1й же главы "Язык программирования C++", этот самый Cpp отпадает охота учить.
я в Одессе практически задарма на книжном рынке возле вокзала купил книжку Страуструпа по С++)
Рихтер Дж. - Программирование на платформе Microsoft .NET Framework 2.0 на языке C#.
Книга специализирована, но все таки она выходит за рамки C# и тем кто хочет досконально разобраться в dotNet необходимо с ней ознакомиться. Ничего лучше я не читал.
Совершенный код от Макконнелла - эта книга продаётся и часто, встречаю её в каждом магазине в Москве
Не правда! Си++ Страуструпа одна из лучших книг по этому языку. Немного сложный язык, для новичка в программирование может будет и тяжело, но зато почти все есть.
Вообще по программированию достаточно много книг("Искусство программирования" Кнута, "Паттерны проектирования" GoF, Рихтер "Программирование в Windows" (это как правильно программировать под данную ОС), Голуб "Веревка достаточной длинны, чтобы выстрелить себе в ногу", книги Александреску, Маейрса и еще очень много других). Только их очень тяжело найти, и стоят они прилично.
Собственно немного некорректный вопрос. Чтобы стать программистом необходимо и достаточно выучить один язык программирования. Вот по нему и надо искать книги, а не "по программированию". А чтобы стать профессиональным программистом, необходимо выучить 2 и более языков программирования. Какие - решать самому. Все ранее изложенное ИМХО, желательно не критиковать ибо лень спорить :)
Объектное программирование оно и в Африке ООП. Книга по проектированию должна описывать, как должен строиться класс, как спроектировать фреймворк, может лучше где-то использовать интерфейсы и так далее. Этому учат книги по проектированию. А как ты это уже потом реализуешь, это учат книги по конкретному языку.
Для становления программиста ВАЖНЫ 3 составляющие:
1 - математика
2 - алгоритмика
3 - кодирование, знание ЯП(множественное число, желательно >= 7(4 прикладного уровня и 3 веб ориентированных)
если нет хотя бы одного из пунктов, ваша цена на рынке стремиться к НУЛЮ со скоростью звука!
Речь о рынке профессиональной разработки ПО!
Полностью согласен. Программирование включает в себя не только изучение конкретного языка. Перед тем, как начать писать программу, необходимо уметь хоть немного составлять алгоритмы (это один большой раздел). Потом выучить язык программирования, на котором ты будешь описывать алгоритм. При этом выбрать язык и технологию (в зависимости от задачи, будь то маленькая прикладная программка, драйвер или web страничка). Ты должен знать, ту платформу, под которую программируешь. При этом уметь проектировать интерфейсы (а это еще один большой раздел). Уметь работать в команде.
Кстати. Опечатка небольшая «какую книгу стать, чтобы стать программистом».
ps 2DOStup а ты по русски не пробовал писать ?
Сейчас читаю Роберт К. Мартин - Быстрая разработка программ. Принципы, примеры, практика
Наверное языки программирования можно сравнить с обычными языками: слова - это синтаксис, а правила - это то как ты будешь составлять предложения в слов. Учить только слова недостаточно для того чтобы нормально говорить на языке.
2DOStup
Я звичайно поважаю свою мову, але якщо кожен буде говорити своєю рідною, ми просто один одного не зрозуміємо.
Отличное сравнение. Книги по языкам как и предмет в школе "русский язык" учат как правильно писать слова и могут немного научить, как ставить предложения, чтобы они работали. Но чтобы предложения были красивыми, нужен другой предмет - "литература" а в случае программирование - проектирование.
DOStup, ты читаешь посты на русском языке. а отвечаешь на украинском. А если бы ты был узбек, ты бы нам на узбекском писал? Я тоже украинец, но на русскоговорящих форумах пишу по русски. Это просто неуважение к собеседникам!
Я считаю, следует отличать кодирование от программирования. Кодирование - когда ты просто кодируешь алгоритм работы задачи не важно на каком языке, а программирование - это придумать этот самый алгоритм.
Согласен, что нужно постоянно читать книги по языкам и технологиям,о также важен и опыт создания реальных проектов, где ты применяешь эти знания на практике.
Мое мнение таково: для программиста важны следующие знания и качества.
1) Математика;
2) Логика;
3) Алгоритмическое мышление;
4) Быстрая ориентировка в различных ситуациях и принятия соответствующего решения.
Из качеств я бы отметил следующие: Писать код в соответствии с определенной конвенцией (стиль). Не люблю таких вещей как например: да я вот уже месяц изучаю pascal и я крутой чел, или да я все знаю и умею (а сам за углом помогите мне). Важную роль играет умение проигрывать и признавать свои ошибки.
Что касается математики: не обязательно ее силой зубрить да и не вызубришь силой такую науку, надо желание.
Моя предыстория: в школе я по матану у мя была 7 в аттестате (по 10 бальной). В политехе тоже 7, но мне повезло. Сейчас я в унивире на 2 курсе. Когда к нам на первый курс пришел солидный дядя лет 55 с лицом супер-гения и сказал, что он у нас будет вести высшую математику несколько лет, я офигел и был в шоке. Я сразу заказал комплект книг из 5 штук и начал их листать. Я сначала не мог представить как я ее выучу (поверьте это было страшновато). Но свершилось чудо я сделал свою первую контрольную, но завалил экзамен по невнимательности (потом пересдал). Вторая сессия контрошка еще тяжелее (значительно) – пришлось помучаться, в итоге на экзамене опять завал, как пересдать? Хм – все никакой работы, три недели подготовки с 8.00 – 23.00 (это только второй раздел вышки). Да думал чокнусь (но надо – если хочешь учиться), в итоге пересдача на 8 уррррря. Третий экзамен с 1 раза.
Для чего я все это пишу? А для того, что я понял не очень давно, что матан ой как нужен, просто возможно время его не пришло и вы пока обходитесь без него, именно благодаря математике открываются новые возможности.
Но по иронии судьбы, именно сегодня когда я это все пишу я решаю контрошку на 4 сессию.
А кого собственно можно назвать "программистом"?
Того кто отучился на программиста спустя рукава?
того кто работает программистом но с программированием мало связан?
Того кому просто интересно программирование и он самостоятельно изучает языки?
2elza
На твой выбор
http://lurkmore.ru/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82
http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82
Когда я изучал БД и надо было писать курсач, я подошел к преподше и говорю, вот я хлчу чтобы поле у мя сортировалось по числовому значению(моно было сделать поле текстовым и заливать в енго цифры, но я хотел, так как надо), а он я незнаю спроси у кого нить так. Я млин офигел (ни чего се думаю препод). Вот такие преподы.
Меня тоже рубит иногда такое: самоучка, да вы на заочке ни фига не делаете. Знаю я прогеров с дневного, из 54 мот 4 – 5 челов по праву могут называться прогерами, а у остальных прогулы и все такое. Они думают, что от пива и водки знания и опыт сами придут.
Здаравствуй конечно не в тему но, что вы дуиайте по поводу бесплатного Visual express edition 2008 для начинаюших? И желатьльно чтобы оставили эту ссылку на вашем блге http://www.microsoft.com/rus/express/download/ а то люди покупают ваши кники а потом задают вопросы где взять.
Что я могу о ней думать? Хорошая среда разработки для халявности. Сам когда-то пользовался. Только вот возможности Express версии для C++ слишком слабы
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.