Как пасти котов. Наставление для программистов, руководящих другими программистами [заметки]

Шрифт
Интервал

1

Мои шутки, по большей части размещаются в сносках, так что они не будут вас отрывать от основной мысли. Ну вот, например: что значит «обратная совместимость»? Это значит, что новая операционная система с тем же успехом, что и старая, может грохнуть все ваши программы.

2

Вы ведь знаете, что такое «ниндзя», правда? Это слово обозначает исключительность. Получается своего рода «черный пояс в программировании».

3

Большинство этих терминов разъясняются в издании The New Hacker's Dictionary, Third Edition, by Eric S. Raymond (The MIT Press, 1998).

4

Ellen Ullman, Close to the Machine (San Francisco: City Lights Books, 1997), p. 20.

5

Термином «архитектор» я в данном случае обозначаю один из личностных типов программистов и совершенно не имею в виду полноценного программного архитектора. О том, какую роль играет архитектура в общей схеме разработки, говорится в главе 6.

6

А ведь это очень важно – согласно авторитетным оценкам, по меньшей мере 70 % стоимости программного обеспечения приходится на сопровождение. См. William Н. Brownctal, AntiPatterns: Refactotoring Software, Architectures, and Projects in Crisis (New York: John Wiley & Sons, 1998), p. 121.

7

Некоторые предпочитают называть программиста этого типа «гуру» или «спецом». А мне больше нравится «волшебник».

8

Вы тоже ненавидите пользователей?! Представляете, как было бы здорово писать программы только для программистов?

9

Лично я предпочитаю термину «жучок» (bug) словосочетания «программная аномалия» (program anomaly) и «открытие недокументированной характеристики» (Undocumented Feature Offering, UFO).

10

Frederick P. Brooks, The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (New York: Addison-Wesley, 1995), p. 230. Это действительно непреходящая классика. В нашей области очень мало книг, которые переиздаются через 25 лет после появления, и это – одна из самых стоящих.

Русский перевод книги доступен на http://lib.rus.ec/b/110948 (прим. сост. FB2)

11

Я имею в виду тех, кому пора готовиться к основательной порке.

12

Ну вообще-то в Библии это высказывание приписывается глупцу. Контекст смотрите в Экклезиасте 9:14–19. Только постарайтесь не слишком падать духом, когда будете читать.

13

См. Новый Завет, 1-е послание к Тимофею 6:10 – любовь, деньги и зло он виртуозно сводит в один силлогизм.

14

Игра слов «шлюзовой уровень» – thunking layer, «уровень мышления» – thinking layer. Примеч. перев.

15

Jim McCarthy, Dynamics of Software Development (Redmond, WA: Microsoft Press, 1995), p. 5.

16

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

17

Событие инициализации в VB не принимает и не возвращает никаких параметров.

18

Это то же самое, что предпочесть синюю пилюлю красной в «Матрице», культовом фильме многих программистов.

19

Южанин бы сказал: «Я пойду за этим в пасть дьявола». Это значит, что вы ни перед чем не остановитесь ради того, чтобы достичь своих целей. Природа этой аллегории происходит от изображения ада в виде ужасной разинутой пасти, готовой поглотить вас, – очень напоминает срок сдачи проекта, к которому невозможно успеть. Вы проявляете твердость и с мечом в руках рубитесь у врат ада, преодолевая силу, стремящуюся вас уничтожить.

20

Помните «Звездные войны»? Что Оби-Ван, говоря об отце Люка, сказал о природе правды и точки зрения? (Когда умер Йода.)

21

Эту и многие другие прелестные вещи, в равной степени поучительные и гнетущие, можно найти в поэмах Блейка «Marriage of Heaven and Hell». Упомянутая выше цитата взята из «Proverbs of Hell» – William Blake, The Complete Poetry and Prose of William Blake, cd. David Erdman (Derkelcy, CA: University of California Press, 1982).

22

Уильям Батлер Йейтс (William Butler Yeats), избранные поэмы (New York: Collier Books, 1986). Перевод В. А. Савина (http://zhurnal.lib.ru/s/sawin_w_a/rtfrtf.shtml).

23

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

24

Tom DeMarco and Timothy Lister, Peopleware: Productive Projects and Teams, Second Edition (New York: Dorset House Publishing, 1999).

Русский перевод книги доступен на http://lib.rus.ec/b/72962 (прим. сост. FB2)

25

См. эссе Бэкона «Of Innovations» (1625). Еще одна занятная цитата: «Время – это огонь, в котором мы горим». Это, возможно, взято из произведения какого-нибудь великого классического писателя, но черт меня возьми, если я смогу выяснить, кого именно, так что нам пришлось ограничиться Бэконом.

26

Помните как в «Звездном пути» Спок напился с Валарисом после их беседы об изгнании людей из рая? Гм, возможно, рай – это просто работа программиста в сравнении с работой руководителя, – вам решать.

27

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

28

David Shеnk, The End of Patience: Cautionary Notes on the Information Revolution (Bloomington, IN: Indiana University Press).

29

Jack Welch, Straight from the Gut (New York: Warner Business Books, 2001), p. xv.

Русский перевод книги доступен на http://lib.rus.ec/b/99731  (прим. сост. FB2)

30

Скотти просто умножал оценочное время ремонта на 4.

31

Термин «информационная мгла» (data smog) я позаимствовал у Дэвида Шенка (David Shenk).

32

В главе 1 я уже ссылался на труд Стивена Кави (Stephen Covey) под названием «The 7 Habits of Highly Effective People». Если у вас нет этой книги, идите в магазин, купите и прочитайте. Обязательно обратите внимание на то, что Кави думает по поводу организации времени и расстановки приоритетов.

Перевод на русский язык: http://www.ozon.ru/context/detail/id/2446031/ (прим. сост. FB2)

33

Ряд предложений касательно программных продуктов, помогающих составлять для программистов перечни задач, содержится в главе 4. Но не торопитесь переходить к этому материалу – иначе пропустите все мои подготовительные пассажи о том, в какую путаницу вы рискуете попасть, если не призовете на помощь инструменты электронной организации рабочего процесса.

34

DeMarco and Lister, op. cit., p. 56.

35

Watts S. Humphrey, Managing the Software Process (New York: Addison-Wesley, 1989), p. 93.

36

Вспомните, что говорил Йода: «Сила Джедая есть результат его собственных усилий». У нас то же самое.

37

Robert L. Glass, Software Runaways (Upper Saddle River, NJ: Prentice Hall, 1998), p. 20.

38

См. также Robert L. Glass, ComputingFailure.com (Upper Saddle River, NJ: Prentice Hall, 2001).

39

Это лишь немногие грехи. Существует множество альтернативных перечней. Добротный пример см. в издании William Н. Brown ctal, AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis (New York: John Wiley & Sons, 1998).

40

Gerald М. Weinberg, The Psychology of Computer Programming: Silver Anniversary Edition (New York: Dorset House Publishing, 1998), p. 5.

41

Достойные тесты оценки личности есть на сайте http://www.advisortcam.com.

42

Это знаменитая фраза Черчилля – так он охарактеризовал Советский Союз перед началом Второй мировой войны. Если будущее вашего продукта зависит от результатов работы скрытного консультанта, будьте готовы к тому, что на его сопровождение уйдет много усилий.

43

Pete McBreen, Software Craftsmanship (New York: Addison-Wesley, 2001), p. 61.

44

Я просмотрел несколько изданий по бизнесу и кое-какие из них мне понравились. В частности, возьмите на заметку издание Ronni Eiscnberg. Organize Your Office (Hyperion, 1998).

45

Имеются в виду не логические, а физические звенья.

46

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

47

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

48

Richard Carlson, Don't Sweat the Small Stuff at Work (New York: Hyperion, 1998), p. 74.

49

Larry L. Constantino, Beyond Chaos: The Expert Edge in Managing Software Development (New York: Addison-Wesley, 2001), p. 4.

50

William Н. Brown et al, AntiPatterns in Project Management (New York: John Wiley & Sons, 2000), p. xxi.

51

Thomas Merton, No Man Is an Island (New York: Harcourt Brace Jovanovich, 1955), p. 117.

52

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

53

«Дурацкий принцип последовательности есть прерогатива ограниченных умов, побуждаемых не менее ограниченными политиками, философами и священниками. В оковах последовательности широкой душе негде развернуться…»

Ральф Уолдо Эмерсон (Self-Reliance, 1841).

54

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

55

Мне очень понравилась фраза, которую в фильме «Crimson Tide» Джин Хэкман сказал Дэнзелу Вашингтону: «Мы должны не заниматься демократией, а оберегать ее». Аналогичным образом, проводя проектное совещание, лучше воздерживаться от реверансов в пользу той или иной обсуждаемой идеи – как бы красноречиво ее ни защищали приверженцы. Ваша цель заключается в том, чтобы поощрять активный и плодотворный мыслительный процесс.

56

Larry L. Constantine, The Pcoplewarc Papers (Upper Saddle River, NJ: Yourdon Press, 2001), p. 10.

57

Norman L. Kerth, Project Retrospectives (New York: Dorset House Publishing, 2001), p. 7.

58

И строительство, и конструирование выражаются в английском языке одним словом – construction. Поэтому нам при переводе пришлось в меру сил лавировать между этими двумя значениями. Таким вот печальным образом гипертрофированная метафоричность автора разбивается об языковой барьер. – Примеч. перев.

59

Andrew Hunt and David Thomas, The Pragmatic Programmer (New York: Addison-Wesley, 2000), p. 184.

Перевод на русский язык: http://www.ozon.ru/context/detail/id/1657382/ (прим. сост. FB2)

60

Рекомендую в этом контексте ознакомиться с работами апологетов позитивных и негативных эталонов, например с трудами Брауна (Вroun) и других исследователей, чьи публикации перечислены в библиографии.

61

Marc Т. Sewell and Laura М. Sewell, The Software Architect's Profession (Upper Saddle River, NJ: Prentice Hall, 2002), p. 68.

62

Raphael С. Malvcau and Thomas Mowbray, Software Architect Bootcamp (Upper Saddle River, NJ: Prentice Hall, 2001).

63

Как просто, оказывается, вернуться к привычной терминологии! Если бы я сказал «…в выращивании применяются старые технологии…», смогли бы вы понять, о чем я говорю?

64

Ах, какой я молодец, что подобрал анатомическую метафору!

65

Лично я пользуюсь VB, начиная с версии 1.0, поэтому никаких предрассудков против этого языка не питаю. Всем интересующимся проблемами создания архитектуры и проектирования средствами VB рекомендую ознакомиться с работой Billy S. Hollis, Visual Basic 6 Design, Specification and Objects (Upper Saddle River, NJ: Prentice Hall, 1999).

66

Stuart Kauffman, At Home in the Universe (New York: Oxford University Press, 1995), p. 179.

67

James A. Highsmith III, Adaptive Software Development (New York: Dorset House Publishing, 2000), p. 40.

68

«Стандарты программирования» – выражение многозначное. Диапазон его значений простирается от инструкции по написанию качественной процедуры до утверждения единственной точки выхода из подпрограммы. Список этот можно продолжать бесконечно. Объединяющий принцип прост – заведите стандарт и придерживайтесь его.

69

Что такое кошмар для программиста? Это когда он вынужден не спать всю ночь, исправляя код, в котором, внеся одно исправление в одном объекте, получает изменение в трех местах другого объекта.

70

T.S. Elliot, Collected Poems 1909–1962 (New York: Harcourt Brace Jovanovich, 1971), p. 82.

71

См. Humphrey, op. cit., p. 5.

72

Capers Jones, Applied Software Measurement (New York: McGraw-Hill, 1991), p. 1.

73

Специалистам по VB я рекомендую труд James D. Foxall, Practical Standards for Microsoft Visual Basic (Redmond, WA: Microsoft Press, 2000). Что касается других языков, выбор литературы обширен; взять хотя бы классическое издание по С – Steve Maguire, Writing Solid Code (Redmond, WA: Microsoft Press, 1993). Дополнительную литературу см. в библиографии.

74

См. Hunt and Thomas, op. cit. – авторы обозначают хаотичность в разработке программных продуктов изысканной метафорой: «не надо жить с разбитыми окнами». Я более чем уверен, что эта книга обязательно должна занять достойное место в вашей библиотеке, – уж очень она хороша.

75

Хотите верьте, хотите нет, но я эту книгу прочел. Michael J. Gelb, How to Think Like Leonardo da Vinci (New York: Dell Publishing, 1998), p. 9.

76

Есть одна восхваляющая амбициозность книга, которая мне очень нравится. James Champy and Nitin Nohria, The Arc of Ambition (New York: Perseus Books, 2000).

77

Кстати, это неплохой маркетинговый прием – по крайней мере, я такие книги покупаю.

78

См. Brown et al, AntiPatterns in Project Management, op. cit.

79

Brown et al, AntiPatterns in Project Management, op. cit., p. 39, 40.

80

Именно так (в переводе с греческого: «нашел!») выразился Архимед, открыв основанный на принципе плавучести метод проверки чистоты золота.

81

В оригинале – «product evangelist». Если бы не параллель с евангелистской терминологией, которую приводит автор, мы, несомненно, предпочли бы перевести это словосочетание как «проповедник продукта». – Примеч. перев.

82

Среди изданий, перечисленных в библиографии, присутствует книга «Extreme Programming Explained» Кента Бека (Kent Beck).

83

Paul Strathern, Turing and the Computer (New York: Doubleday, 1997), pp. 75–78.

84

Daniel J. Levinson, The Seasons of a Man's Life (New York: Ballantine Books, 1978), p. 7.

85

ARPA – это сокращение от Advanced Research Projects Agency (Управление перспективных исследовательских программ) – ведомства, которое в 1970-х годах было переименовано в DARPA. Первая буквы D в этой новой аббревиатуре обозначала принадлежность к министерству обороны США (defense – оборона), заведовавшего ракетами, бомбами с лазерным наведением, технологией «Стелс» и всеми прочими прелестями времен холодной войны.

86

Andrew S. Grove, Only the Paranoid Survive (New York: Random House, 1996), p. 3.

Русский перевод книги доступен на http://lib.rus.ec/b/92541  (прим. сост. FB2)

87

See James Wallace and Jim Erickson, Hard Drive: Bill Gates and the Making of the Microsoft Empire (New York: John Wiley & Sons, 1992).

88

Ibid., p. 61.

89

Don S. Olson and Carol L. Stimmcl, The Manager Pool: Patterns for Radical Leadership (New York: Addison-Wesley, 2002), p. 9.

90

Я серьезно! Присылайте рассказы о своем пути на лидерском поприще по адресу [email protected].

91

Bruce A. Pasternack and Albert J. Viscio, The Centerless Corporation (New York: Simon & Shuster, 1998), p. 15.

92

Ну то есть поспорить можно, но какой в этом смысл? Я много лет пользуюсь продуктами Microsoft и не испытываю особых затруднений – полагаю, у вас та же ситуация.

93

Рекомендую в этом контексте ознакомиться с предложениями Йордона (Yourdon) по вытягиванию проектов, изложенными в книге «Death march» (см. библиографию).

94

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

95

«Введение в запаздывающий проект новых сотрудников увеличивает время разработки» – см. Brooks, op. cit, p. 25.

96

Если вы женщина, стали бы вы встречаться с типом, который, стараясь скрыть правду, обматывает голову последним оставшимся волосом, как тюрбаном? Не думаю. Хотя если вы знаете даму, которая на это пойдет, дайте телефончик.

97

Каюсь, в этой книге я слишком вольно обращался с терминами «мастерство» и «искусство» и недостаточно акцентировал ваше внимание на том, что разработка программных средств – это, как-никак, инженерная дисциплина. Но такой выбор был осознанным – посвятив долгие годы разработке аппаратных средств, я на короткой ноге с прикладными научными дисциплинами. Я все же предпочитаю рассматривать нашу отрасль как жанр искусства, хотя, конечно, признаю, что в определенных случаях без строгих научных изысканий не обойтись. Более подробно об этом я поговорю в следующей главе.

98

Gene Kranz, Failure is Not an Option (New York: Simon & Schuster, 2000), p. 393.

99

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

100

ChessMaster 5000. Не думаю, что производитель будет сильно против, если я позаимствую из его игры структуру меню – в конце концов, это устаревшая версия. Кстати, более свежую и, соответственно, более мощную версию мне одолеть пока что не удалось!

101

Grove, op. cit., p. 127.

102

См. статью Челлис Ходж (Challis Hodge) «Smoothingthe Path» по адресу http://www.webtcchniques.com/archives/2001/11/hodgc/. Ходж – основатель и генеральный директор HannaHodge, – чикагской компании, занимающейся изучением взаимодействия пользователей с системами. Кроме того, он разработал план преподавания дисциплины «проектирование интерфейсов» для Висконсинского университета и возглавил разработку пользовательских интерфейсов для корпоративных веб-решений компании IBM.

103

Это «переработка» известного высказывания Пастера (Pasteur): «шанс приходит только к тем, кто к нему готов». Авторство парафраза принадлежит не мне – впервые я его услышал в детстве из уст отца.

104

Помимо всего прочего, я опасался, что глава под названием «Разное» не вызовет должного читательского интереса.

105

О сотрудничестве и уединении мы говорили в главе 4.

106

См. http://www.erooni.com, http://www.fox.se/engiish/starteam/starteam_version_control.htm и другие предложения от IBM и Symantec.

107

Не говорите англичанину про богатый (rich) пользовательский интерфейс. Он обязательно подумает, что интерфейс слишком дорогостоящий.

108

Хотя она чем-то напоминает арахисовое масло, уверяю вас, совсем не так вкусна!

109

Из отчета наконференции Network World Fusion (http://vww.nwfusion.corn/careers/2001/0402mari.html).

110

Первый функционирующий микропроцессор появился в 1971 году.

111

См. Glass, Software Runaways, op. cit.

112

См. IEEE Standard Computer Dictionary (Institute of Electrical and Electronics Engineers, Институт инженеров по электротехнике и электропике, 1990).

113

Humphrey, op. cit., p. ix.

114

См. Glass, Software Runaways, op. cit., p. 56.

115

В том числе и моя, естественно.

116

Solutions Development Discipline Workbook (Redmond, WA: Microsoft Corporation, 1996), pp. 1-17.

117

В первую очередь, я имею в виду работу Jim McCarthy, Dynamics of Software Development (Microsoft Press, 1995). Вероятно, именно в ней впервые сформулированы некоторые основополагающие принципы MSF.

118

Термин «жучок» (bug), очевидно, появился еще в эпоху наиболее древних (до 1950-х годов) компьютеров, в которых реле выходили из строя вследствие попадания в них всякого рода насекомых.

119

Kent Beck, Extreme Programming Explained (Reading, MA: Addison-Wesley, 2000), p. xvi.

Русский перевод книги доступен на http://lib.rus.ec/b/101297 (прим. сост. FB2)

120

См. колонку «Feedback» в журнале Software Developments за ноябрь 2001 года.

121

См. http://www.AgileAlliance.org.

122

См. Alistair Cockburn, Agile Software Development (New York: Addison-Wesley, 2002), Appendix A.

123

Этот термин взят из одноименной книги Джима Хайсмита (Jim Highsmith). См. библиографию.

124

Cockburn, op. cit., p. 5.

125

Примеры приводятся в работе Cockburn, op. cit. Обзор имеющихся ресурсов имеется также на сайте http://www.adaptivesd.com.

126

Похоже на «Звездные войны» правда?

127

Как вы помните, тогда не было ни Windows, ни графических пользовательских интерфейсов.

128

Electronic Business, October 15,1990, p. 147.

129

МсВгeen, op. cit., p. xv

130

Такой подход рекомендовал сам Леонардо (см. главу 6).

131

Этот список я но большей части позаимствовал у Дэвида Корси (David Coursey) – редактора рубрики Anchor Desk на портале http://www.zdnet.com (конкретнее – из статьи, опубликованной им 12 октября 2001 года).

132

Цитирую по: Sun Tzu, The Art of War. Ed. James Clavell (New York: Dell Publishing, 1983), p. 37.

133

Как мне кажется, для начала подойдет сайт Tech Republic http://www.techrepublic.com). На нем публикуются вполне добротные тематические обзоры.

134

Интернет-компании славились (и славятся до сих пор) бездоходностью. Amazon.com вот уже несколько лет приносит прибыль, и, вероятно, эта компания – скорее исключение из общего правила; впрочем, время покажет. Лично мне будет жаль, если они обанкротятся. В конце концов, неужели многих сотен долларов, которые я перечислил им за годы нашего знакомства, недостаточно для выживания?!

135

Я уже высказывался на эту тему в главах 1 (см. подраздел «Мотивирование деньгами» в разделе «Слава, почет и деньги») и 3 (см. подраздел «Денежное поощрение и продвижение сотрудников по службе» в разделе «Как сформировать команду и как ее поддерживать»), но здесь имеет смысл повториться.

136

В некоторых случаях от такой помощи приходится отказываться по правовым причинам. По вопросам корпоративной политики в этой области вам стоит проконсультироваться у начальника.

137

См. главу 8 – в ней упоминается конструктивная трактовка слова «паранойя», приписываемая Энди Гроуву.

138

Я имею в виду программу ComCheck, которая распространяется Microsoft бесплатно и призвана помочь разобраться в создаваемом ADO библиотечном кошмаре.

139

В Crystal Reports 8.5 какое-то невероятное количество библиотек DLL. У меня установлена полная версия этого пакета для разработчиков, и для того чтобы с отчетами можно было хоть что-то делать, требуется великое множество файлов. При этом ни сам пакет, ни мастер развертывания (Deployment Wizard) в VB 6.0 не справляется с идентификацией этих файлов.

140

Этот элемент OCX вызывает у меня некоторые подозрения. Он вроде как не обнаруживает зависимостей от других файлов (помимо стандартных файлов Windows API), однако заставить его работать без Access 97 мне не удалось. Я соорудил собственную версию этой программки на основе элемента управления календарем из поставки VB 6.0, так что если при загрузке кода вы наткнетесь на неработающую ссылку, милости прошу!

141

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


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


MFC и OpenGL

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


Симуляция частичной специализации

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


Обработка событий в С++

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


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.


SQL: быстрое погружение

Что общего между самыми востребованными профессиями и стремительным увеличением количества информации в мире? Ответ: язык структурированных запросов (SQL). SQL — рабочая лошадка среди языков программирования, основа основ для современного анализа и управления данными. Книга «SQL: быстрое погружение» идеальна для всех, кто ищет новые перспективы карьерного роста; для разработчиков, которые хотят расширить свои навыки и знания в программировании; для любого человека, даже без опыта, кто хочет воспользоваться возможностями будущего, в котором будут править данные.


Чистый код. Создание, анализ и рефакторинг

Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение». Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей.


Изучаем Python

Книга "Изучаем Python" - это ускоренный курс, который позволит вам сэкономить время и сразу начать писать работоспособные программы (игры, визуализации данных, веб-приложения и многое другое). Хотите стать программистом? В первой части книги вам предстоит узнать о базовых принципах программирования, познакомиться со списками, словарями, классами и циклами, вы научитесь создавать программы и тестировать код. Во второй части книги вы начнете использовать знания на практике, работая над тремя крупными проектами: создадите собственную "стрелялку" с нарастающей сложностью уровней, займетесь работой с большими наборами данных и освоите их визуализацию, и, наконец, создадите полноценное веб-приложение на базе Django, гарантирующее конфиденциальность пользовательской информации. Если вы решились разобраться в том что такое программирование, не нужно ждать.


Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих

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