Мои университеты :)
25/4/06 17:15Этот пост задумывался как список книг, которые формировали моё представление о профессии и учили думать.
Сегодня вынимаю его из черновиков и вывешиваю. Но он всё ещё дописывается.
Началось всё в 4-м классе, когда отец пообещал спаять компьютер. Я взялся за книжку "Бейсик - это просто!", автора не помню.
Долго практиковался на бумажках, давал маме проверить решения задачек.
Года полтора собирали детали на "Орель БК-08", который "Спектрум".
Наконец в 8-м классе отец просто купил ещё один этот самый "Орель БК-08".
Я пишу программу на Бейсике. Программа 20 раз пишет на экран какую-то про племянницу. Племянница обижается.
Потом ещё программу, рисующую поросёнка через line и circle.
Язык С для Спектрума у мена как-то не пошёл.
Ассемблер не изучил. Начинал несколько раз, всё время застревал в самом начале. Командой LDIR не владею, но уважаю.
В 8-м классе начал читать "Язык C", какого-то старого издательства. Долго читал, всё было непривычно, привык, на практике не применял, забыл.
Жак Арсак, "Программирование игр и головоломок". Архаика, но очень разивает мозги. Перечитывал года два.
Была ещё книжечка Брудно А.Л., Каплан Л.И. Московские олимпиады по программированию (скачать). Много интересных задачек, но на тот момент они были либо слишком простыми, либо не по тому профилю.
9й класс, ЛИТ,
Зуев Е.А., "Программирование на языке Турбо Паскаль".
10й класс
Мы тусуемся с Лёней Дубинским, по утрам приходим на занятия за 40 минут до начала и сидим на лавочке у входа, обсуждаем олимпиадные задачи — в основном на дискретную математику.
Журнал "Монитор". Многоразовым прочтением освоил статьи об объектных потоках в TurboVision (потом было легче понять эту концепцию и идею функции-фабрики на лентах системного программирования), синтаксическом анализе, собственно TurboVision и чём-то ещё.
11й класс.
Тогда прочёл Липского, "Комбинаторика для программистов". Вернее, дошёл до главы "Матроид трансверсалей" и на нём — матроиде — спёкся.
Тогда же читал книгу: Э. Рейнгольд, Ю. Нивергельт, Н. Део - "Комбинаторные алгоритмы", эта попроще.
Эти книги мне сильно помогли на школьных олимпиадах по программированию.
Хотя главный скил, который надо было отточить для олимпиад - это эвристический поиск в глубину с эффективными отсечениями. Я чуть ли не единственный выполнил на предолимпиадной подготовке все домашние задания и с тех пор пишу переборы за 20 минут максимум.
1994, спецкурс у Юрия Николаевича Иванова. Это Учитель с большой буквы. Жаль, мне об этом спецкурсе не сказали с самого начала. Помню обсуждение синтаксического анализа, LISP-а, больше ничего не помню.
1997, 2й курс
Братко, "Программирование на языке Пролог для искусственного интеллекта". (кстати, в 2005 вышло 2е издание)
На 4м курсе написал-таки интерпретатор Пролога. В нём не было: вывода для численных операций (вообще без численных операций), настраиваемого синтаксиса (вообще, потрясшая меня возможность), но зато работающий. Как лабу по искусственному интеллекту его у меня не приняли :) В основном потому, что обидел преподавательницу. Я как-то ляпнул, что "экспертная система" вида "набор правил "если-то" примитивна.
В Балансе посчастливилось прослушать курс лекций по технологии SSADM. Это перевернуло мои представления о разработке и заставило немеряно зауважать технологичность и критерии качества.
Там же раскрутили то ли три, то ли пять проектов по этой технологии. Понравилось.
Перед поступлением в ISD три недели штудировал, разумеется, Страуструпа, "Язык программирования C++", 3-е издание.
STL так до конца и не осилил. До сих пор не владею итерированием потоков и т.д.
Тогда же изучил UML по "Самоучителю UML". Книга неплохая, но немного поверхностная. А до UML Distilled Фаулера ещё не дошёл.
CORBA учил по статьям.corbarus, ... ISD-шники, кто подскажет ссылку на эту статью? Или даст текст?
2001, GoF, "Design patterns".
Прошёлся по Бентли, "Жемчужины творчества программистов".
2003, мне предложили перейти в проект на Java.
Эккель, "Thinking in Java". Знаменитый Эккель показался излишне поверхностным.
Ещё больше разочаровался в нём, прочтя его мнение о checked exceptions в Java. Как же так можно, checked exceptions - это же чудесный способ (частично) проверить отказоустойчивость системы в compile-time.
До сих пор испытываю острое чувство неполноценности из-за того, что не знаю J2EE.
Научился пользоваться юнит тестами.
Осень 2004, в ISD сотрудники подарили мне на ДР Фаулера, "Корпоративные информсистемы"
Примерно тогда же читал у товарища книгу по CORBA, забыл какую. Мощнейший стандарт, оказывается. Жаль, что не нашёл своей рыночной ниши, да и не был полностью реализован... Куда тому COM-у.
Весной по необходимости прочёл Дональна Бокса, Сущность технологии COM. Бокс - это хорошо. COM - это плохо. Если в твоём адресном пространстве нагадит чужой код... или даже нагадит в своём, и не отпустит твой объект... или вызовет не в том режиме... ой.
А ещё COM-классы принято писать на ATL. Млин, какая это дрянная бибилиотека. Пытался отлаживать её - куда там. После преобразования от темплейтного класса с множеством параметров к void* и обратно концов не найдёшь.
Лето 2005
Фаулер, "Рефакторинг" - отличная систематизация не только приёмов рефакторинга, но и проблем кода, приёмов работы, немножко накачки мозгов по правильному дизайну, и т.д. Теперь Фаулер (
martinfowler) у меня во френдах ;))
Прочёл поздновато, стоило года на четыре раньше.
Шилдт, "C# дл начинающих" разочаровал. Очень, очень поверхностно, ничерта о мультитрединге. У него был в своё время хороший справочник по стандартной библиотеке C++ - так вот, это лучшее, что ему удалось.
Брукс, "Мифический человеко-месяц".
Декабрь 2005, Йордан, "Путь камикадзе". Очень, очень жизненно.
Сейчас всё ещё читаю Дага Ли, "Concurrent Java". Мегакнига, открывает глаза на многое.
Теперь прочесть бы к ней, как это делается на более низком уровне, какой-нибудь pthreads API для C.
Сегодня вынимаю его из черновиков и вывешиваю. Но он всё ещё дописывается.
Началось всё в 4-м классе, когда отец пообещал спаять компьютер. Я взялся за книжку "Бейсик - это просто!", автора не помню.
Долго практиковался на бумажках, давал маме проверить решения задачек.
Года полтора собирали детали на "Орель БК-08", который "Спектрум".
Наконец в 8-м классе отец просто купил ещё один этот самый "Орель БК-08".
Я пишу программу на Бейсике. Программа 20 раз пишет на экран какую-то про племянницу. Племянница обижается.
Потом ещё программу, рисующую поросёнка через line и circle.
Язык С для Спектрума у мена как-то не пошёл.
Ассемблер не изучил. Начинал несколько раз, всё время застревал в самом начале. Командой LDIR не владею, но уважаю.
В 8-м классе начал читать "Язык C", какого-то старого издательства. Долго читал, всё было непривычно, привык, на практике не применял, забыл.
Жак Арсак, "Программирование игр и головоломок". Архаика, но очень разивает мозги. Перечитывал года два.
Была ещё книжечка Брудно А.Л., Каплан Л.И. Московские олимпиады по программированию (скачать). Много интересных задачек, но на тот момент они были либо слишком простыми, либо не по тому профилю.
9й класс, ЛИТ,
Зуев Е.А., "Программирование на языке Турбо Паскаль".
10й класс
Мы тусуемся с Лёней Дубинским, по утрам приходим на занятия за 40 минут до начала и сидим на лавочке у входа, обсуждаем олимпиадные задачи — в основном на дискретную математику.
Журнал "Монитор". Многоразовым прочтением освоил статьи об объектных потоках в TurboVision (потом было легче понять эту концепцию и идею функции-фабрики на лентах системного программирования), синтаксическом анализе, собственно TurboVision и чём-то ещё.
11й класс.
Тогда прочёл Липского, "Комбинаторика для программистов". Вернее, дошёл до главы "Матроид трансверсалей" и на нём — матроиде — спёкся.
Тогда же читал книгу: Э. Рейнгольд, Ю. Нивергельт, Н. Део - "Комбинаторные алгоритмы", эта попроще.
Эти книги мне сильно помогли на школьных олимпиадах по программированию.
Хотя главный скил, который надо было отточить для олимпиад - это эвристический поиск в глубину с эффективными отсечениями. Я чуть ли не единственный выполнил на предолимпиадной подготовке все домашние задания и с тех пор пишу переборы за 20 минут максимум.
1994, спецкурс у Юрия Николаевича Иванова. Это Учитель с большой буквы. Жаль, мне об этом спецкурсе не сказали с самого начала. Помню обсуждение синтаксического анализа, LISP-а, больше ничего не помню.
1997, 2й курс
Братко, "Программирование на языке Пролог для искусственного интеллекта". (кстати, в 2005 вышло 2е издание)
На 4м курсе написал-таки интерпретатор Пролога. В нём не было: вывода для численных операций (вообще без численных операций), настраиваемого синтаксиса (вообще, потрясшая меня возможность), но зато работающий. Как лабу по искусственному интеллекту его у меня не приняли :) В основном потому, что обидел преподавательницу. Я как-то ляпнул, что "экспертная система" вида "набор правил "если-то" примитивна.
В Балансе посчастливилось прослушать курс лекций по технологии SSADM. Это перевернуло мои представления о разработке и заставило немеряно зауважать технологичность и критерии качества.
Там же раскрутили то ли три, то ли пять проектов по этой технологии. Понравилось.
Перед поступлением в ISD три недели штудировал, разумеется, Страуструпа, "Язык программирования C++", 3-е издание.
STL так до конца и не осилил. До сих пор не владею итерированием потоков и т.д.
Тогда же изучил UML по "Самоучителю UML". Книга неплохая, но немного поверхностная. А до UML Distilled Фаулера ещё не дошёл.
CORBA учил по статьям.corbarus, ... ISD-шники, кто подскажет ссылку на эту статью? Или даст текст?
2001, GoF, "Design patterns".
Прошёлся по Бентли, "Жемчужины творчества программистов".
2003, мне предложили перейти в проект на Java.
Эккель, "Thinking in Java". Знаменитый Эккель показался излишне поверхностным.
Ещё больше разочаровался в нём, прочтя его мнение о checked exceptions в Java. Как же так можно, checked exceptions - это же чудесный способ (частично) проверить отказоустойчивость системы в compile-time.
До сих пор испытываю острое чувство неполноценности из-за того, что не знаю J2EE.
Научился пользоваться юнит тестами.
Осень 2004, в ISD сотрудники подарили мне на ДР Фаулера, "Корпоративные информсистемы"
Примерно тогда же читал у товарища книгу по CORBA, забыл какую. Мощнейший стандарт, оказывается. Жаль, что не нашёл своей рыночной ниши, да и не был полностью реализован... Куда тому COM-у.
Весной по необходимости прочёл Дональна Бокса, Сущность технологии COM. Бокс - это хорошо. COM - это плохо. Если в твоём адресном пространстве нагадит чужой код... или даже нагадит в своём, и не отпустит твой объект... или вызовет не в том режиме... ой.
А ещё COM-классы принято писать на ATL. Млин, какая это дрянная бибилиотека. Пытался отлаживать её - куда там. После преобразования от темплейтного класса с множеством параметров к void* и обратно концов не найдёшь.
Лето 2005
Фаулер, "Рефакторинг" - отличная систематизация не только приёмов рефакторинга, но и проблем кода, приёмов работы, немножко накачки мозгов по правильному дизайну, и т.д. Теперь Фаулер (
Прочёл поздновато, стоило года на четыре раньше.
Шилдт, "C# дл начинающих" разочаровал. Очень, очень поверхностно, ничерта о мультитрединге. У него был в своё время хороший справочник по стандартной библиотеке C++ - так вот, это лучшее, что ему удалось.
Брукс, "Мифический человеко-месяц".
Декабрь 2005, Йордан, "Путь камикадзе". Очень, очень жизненно.
Сейчас всё ещё читаю Дага Ли, "Concurrent Java". Мегакнига, открывает глаза на многое.
Теперь прочесть бы к ней, как это делается на более низком уровне, какой-нибудь pthreads API для C.
Tags:
Re: pthreads
11/6/06 15:01 (UTC)