Математика и секс
Декабрь 27th, 2011

Литература по Computer Science

Читатель measure_0 порекомендовал мне в прошлой заметке пройти тесты GRE subject tests. Какие именно он не уточнил, но я так решил, что видимо по моему направлению это должны быть mathematics и computer science. Скачал примеры тестов по обоим дисциплинам. Тест по математике оказался вроде простым (если не брать в расчет, что там на каждую задачу по 2 минуты, а задачи бывают и не только элементарные). А вот тест по Computer Science оказался для меня каким-то запредельно сложным и у 50% вопросов я даже толком не понимаю о чем там спрашивают. Проблемы у меня вызывают в основном вопросы, связанные с компьютерным железом и архитектурой операционных систем, хотя и в теоретических вопросах бывают какие-то загвоздки.

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

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

В этой записи я предлагаю коллективными усилиями набросать список литературы по темам Computer Science с прицелом на GRE. Не потому что это какой-то супер-важный экзамен, а просто судя по всему он покрывает на мой взгляд довольно широкий и довольно правильный спектр тем, которыми хорошо бы овладеть быдлокодеру, который ожидает какого-то профессионального роста. Поэтому ниже я привожу темы, заявленные как необходимые для сдачи GRE, а комментаторам я предлагаю предлагать источники, по которым это можно изучать (книги, видеолекции, и подобное — главное чтобы это было возможно достать рядовому пользователю сети Интернет). В комментариях предлагаю указывать собственно источник, темы, которые он покрывает, и уровень — вводный/GRE/продвинутый. Заметку я буду обновлять по мере поступления новых ссылок на материалы.

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

Собственно темы (извиняюсь за дебильную верстку — это почти копипаста, видимо позже поправлю):

SOFTWARE SYSTEMS AND METHODOLOGY
A. Data organization
• Data types
• Data structures and implementation techniques

B. Program control and structure
• Iteration and recursion
• Procedures, functions, methods and exception handlers
• Concurrency, communication and
synchronization

C. Programming languages and notation
• Constructs for data organization and program control
• Scope, binding and parameter passing
• Expression evaluation

D. Software engineering
• Formal specifications and assertions
• Verification techniques
• Software development models, patterns and tools

E. Systems
• Compilers, interpreters and run-time systems
• Operating systems, including resource management and protection/security
• Networking, Internet and distributed systems
• Databases
• System analysis and development tools

II. COMPUTER ORGANIZATION AND ARCHITECTURE
A. Digital logic design
• Implementation of combinational and sequential circuits
• Optimization and analysis

B. Processors and control units
• Instruction sets
• Computer arithmetic and number representation
• Register and ALU organization
• Data paths and control sequencing

C. Memories and their hierarchies
• Performance, implementation and management
• Cache, main and secondary storage
• Virtual memory, paging and segmentation

D. Networking and communications
• Interconnect structures (e.g., buses, switches, routers)
• I/O systems and protocols
• Synchronization

E. High-performance architectures
• Pipelining superscalar and out-of-order execution processors
• Parallel and distributed architectures

III. THEORY AND MATHEMATICAL BACKGROUND
A. Algorithms and complexity
• Exact and asymptotic analysis of specific algorithms
• Algorithmic design techniques (e.g., greedy, dynamic programming, divide and conquer)
• Upper and lower bounds on the complexity of specific problems
• Computational complexity, including NPcompleteness

B. Automata and language theory
• Models of computation (finite automata, Turing machines)
• Formal languages and grammars (regular and context-free)
• Decidability

C. Discrete structures
• Mathematical logic
• Elementary combinatorics and graph theory
• Discrete probability, recurrence relations and number theory

IV. OTHER TOPICS

• Numerical analysis
• Artificial Intelligence
• Computer graphics
• Cryptography
• Security
• Social issues

 

UPD: Эту заметку я все-таки не буду корректировать видимо. Лучше когда сам примерно буду иметь представление как правильно готовиться, сделаю отдельный удобный и адекватный обзор. Но пока все равно есть смысл дискутировать в комментариях.

Июль 4th, 2011

Программисты vs. финансисты

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

Здесь примечателен такой момент: компания в силу своей ориентированности на финансы, практически бабская. То есть единственный этаж, где сидят потные мужики — это наше айти-гетто, а по остальным этажам главным образом щеголяют гламурные фифы, от которых меня глубоко тошнит по правде говоря, но дело и не в этом тоже. Мужики там тоже есть, но настолько в ничтожных пропорциях, что их на других этажах как-то сильно затруднительно встретить.

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

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

При всей загруженности сортира на нашем этаже, он всегда чист и опрятен, кто-то даже приносит освежитель воздуха, так что там действительно приятно сидеть и играть в телефон (играю обычно в «Бриллианты Пэрис Хилтон» — она очень простая и думать не надо, как раз для меня). Однако когда спускаешься на любой другой этаж, где туалеты практически не используются, то всегда наблюдаешь одну и ту же картину — на стульчак, а то и просто на пол, часто нассано, корзина для обосраной туалетной бумаги разломана и часто перевернута вверх дном, ободок унитаза нередко измазан дерьмом.

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

Май 27th, 2011

Биржевая байка

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

Итак:

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

И имел девелопер Петров полный доступ к сорсам торговой площадки, и решил он внести такую строчку кода:

if (trader == «Иванов») {
сначалаМне(trade);
потомИванову(trade);
}

На следующий день после релиза новой торговой системы понес девелопер колоссальные убытки, уйдя в минус и оставшись в должниках, а Иванов по-прежнему заработал много бабла, даже не заметив изменения в новой версии. Потому что девелопер и трейдер платили разные комисионные за счет разных объемов и разной должности, и делая слелку на разницу в 0.1% Иванов получал доход, имея мизерную комиссию, а для Петрова такая сделка оказывалась убыточной, так как он по 0.05% платил как от объема продажи, так и от объема покупки.

2008 г.

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

Февраль 24th, 2011

Вирусы

В очередной раз получил письмо с «фотками без трусиков». С расширением «exe» конечно же. Я думал, что моя жопа прикрыта антивирусом, но я ошибался: Авиру я какое-то время назад снес, потому что она конфликтовала с какими-то функциями сетевыми в отладчике Вижуал Студии. Ну и о том, что антивируса у меня нет, я просто забыл.

Я запустил файл, компьютер вдруг перезагрузился, а потом  перестал пускать меня в Интернет. Выводил сообщение о том, что «Надо срочно обновить браузер, а то у вас вирус, который крадет пароли от ВКонтакта и Одноклассников». Предлагал отправить SMS, так как обновление типа платное.

Для лечения поставил вначале Касперского, который не мог обновить базы целый день из-за недоступности сервера, и обновил их только на следующий день. Нашел с десяток вирусов, но проблемы не полечил, а лишь кидал понты о том, что «Ваш компьютер защищен, все угрозы устранены». Потом я поставил Авиру, и она нашла еще вирусов пятнадцать (в том числе и то письмо «без трусиков»). Но проблемы это не решило. По прежнему Интернет не работал и я получал сообщение.

Перепробовал всякие Virus Removal Tool Касперского и CureIt Доктора Веба, но нифига не сработало. Антивирусы убеждали меня в том, что у меня все хорошо.

Спасла в результате только утилита HiJackThis, в которой я снес все подозрительное.

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

Декабрь 1st, 2010

Использование мышки

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

Лично я мышь держу мизинцем, безымянным и большими пальцами по бокам. Средний и указательный всегда на кнопках, по нужде могу переносить любой из них на скроллинг (кстати, уже где-то после пары месяцев пользования колесиком никак не мог работать в системах, где его нет; штука потрясающе удобная). Запястье при этом лежит на столе рядом с мышью, а место чуть ниже локтя упирается в край стола. Появляются иногда от этого следы на руке, но никаких мозолей или синяков нет.

Зато у меня с мышкой есть другая особенность работы: я использую ее левой рукой. А сам правша. Мышка — единственное устройство, с которым я работаю левой рукой. Почему так получилось — не знаю. Возможно, это связано с тем, что порнографию я начал смотреть раньше, чем использовать мышки.

Октябрь 5th, 2010

Нужен хостинг

Петерхост, на котором сейчас висит мой бложик и Нигелист.ком, скатился таки видимо в говно.

Сегодня пол-дня сервер просто лежал, такая же фигня была две недели назад. Хрен с ним как бы с бложиком, но у меня тут же и почта: я теряю огромное количество писем, в том числе и по работе. Плюс к этому хостер постоянно предупреждает меня о том, что я создаю критическую нагрузку на базу данных, что грозит мне чуть ли не отключением (как-то раз даже отключали, но после звонка включили обратно). У меня где-то стабильно 800-900 читателей в день, и Петерхост под движком Вордпресса этого потянуть оказывается не в состоянии. Вордпресс конечно нагружает БД довольно серьезно — известный факт, но не настолько, чтобы за 800 посещений отрубать сервак. Есть знакомые, которые работают на виртуальных хостах с Вордпрессом и при гораздо большей нагрузке.

Ну и плюс можно заметить, что суппорт у них стал дерьмовым, во всяком случае на почте сидит какой-то явный мудак, который неделю трахает мозги не сообщая информации по настройкам сервера, а потом назидательно сообщает, что «надо читать документацию Apache» (хотя речь шла именно о нестандартных настройках). Впрочем, к текущему суппорту это отношения не имеет — я туда не писал уже года два, так как почти всегда справляюсь сам. (Документацию все же читал). Но все равно отношение к ним сохраняется негавтивное.

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

В связи с этим вопрос читателям:  а вы что-нибудь можете посоветовать из личного опыта? Требования — поддержка нескольких доменов, нормальная работа Вордпресса на посещаемости где-то 1500-2000 тыс. человек (чтоб с запасом), безлимитный трафик, наличие офиса в Москве, где можно было бы официально заключить договор и подписать все документы, а не просто перевести деньги неизвестно кому.

Current music: Prodigy — No Good

Август 30th, 2010

Поставил Джаббера

Снес аську, выкинул из дома всю порнуху, поставил джаббера. Вот: heller@jabber.org

В целом доволен. Использую клиента Psi+.

Причин для установки было две: во-первых, боюсь ментов; во-вторых, асечные клиенты затрахали. Перепробовал в свое время Пиджина, Миранду, официального клиента ICQ и QIP. Один хуже другого.

Psi+ в общем-то тоже не без нареканий — после того, как я ушел с работы в пятницу, каким-то образом он остался залогиненым в аську, и все выходные я был в состоянии онлайн. Люди слали мне сообщения, и все они пропали. Кстати, это вообще беда Джаббера — если стоит запрет на сохранение истории, то сообщения, отправленные в оффлайн, не доходят.

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

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

Август 2nd, 2010

О книгах Дональда Кнута

Хватит о политике, пока меня не посадили. Лучше о книгах.

Давно хотел предостеречь читателей от прочтения «Искусства программирования», которое ошибочно считается хорошей книгой, которую надо прочесть каждому. На мой взгляд — книга отвратительная.  Сам я прочел два первых тома, и должен сказать, что это был совершенно пустой труд.

О контенте. Первый том вообще не нужен. Значительная его часть посвящена ассемблеру MIX. Он конечно язык сравнительно простой, но объяснять алгоритмы на примере ассемблерного, а не псевдокода, как-то не правильно на мой взгляд (тем более что современные настоящие ассемблеры даже проще, чем кнутовский). Я лично прочитал про сам MIX, но дальше все, где этот язык фигурировал, пропускал, потому что дикая дурь. Может быть конечно во времена, когда Кнут писал книгу, это и было оправданно, но сегодня это выглядит как крайне неудачный ход.

Еще в первом томе есть немного математики и немного про деревья. Математическая составляющая тоже не особо радует — на 90% это «синтаксическая математика», где все сводится к механическим операциям. Действительно интересных задач почти нет. Да и в общем-то математика там очень детская и какая-то несерьезная. Книга излагает лишь несколько простейших результатов о сочетаниях и сравнениях по модулю на школьном уровне. Из-за этого поверхностного знакомства с математикой многие доказательства оказываются на порядок сложнее, чем они могли бы быть. Даже базовые вещи вроде O-нотации описываются в главах со звездочкой и практически не используются. (Как я понимаю, книга писалась для первого курса и продвинутых школьников).

Про деревья (да и про алгоритмы вообще) тоже в общем ничего хорошего сказать не могу. Очень много внимания уделяется экономии какого-нибудь одного бита в какой-нибудь структуре. Наверное где-то это все существенно — может быть в каких-то специальных контроллерах, например. Или возможно это было существенно раньше. В целом же  сегодня о памяти на таком микроуровне никто не будет думать, и поэтому для среднестатистического человека в индустрии все это шаманство совершенно не интересно (особенно учитывая, что оно всегда влияет на быстродействие).

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

Более-менее интересно было во втором томе читать о генераторах случайных чисел. У меня была детская мечта понять как компьютер генерит случайные числа и доказать аналитически, что этот алгоритм обладает какими-нибудь хорошими свойствами и вообще выдает равномерное распределение. К сожалению, тут мои надежды рухнули — за исключением пары нехитрых результатов о том как ГСЧ не надо делать, ничего аналитически не доказывается, а хорошие генераторы получаются методом научного тыка. Не совсем то что хотелось, но по крайней мере я теперь это знаю.

Вторая половина второго тома посвящена работе с полиномами. Ну, наверное кому-то оно надо, но не мне.

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

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

В общем, не советую.

Зато очень рекомендую книгу Кнута, Грэхэма и Поташника «Конкретная математика». Книга для детей, подойдет даже для гуманитариев (правда иногда надо брать простые интегралы), но написана чертовски хорошо. Местами нудновата, когда разжевывают совсем примитивные вещи, но вообще книга совершенно прекрасна в качестве легкой зарядки для ума гуманитария, либо для приятного отдыха технаря. И кстати именно такие задачи как там любят спрашивать на собеседованиях во всякие Майкрософты, Яндексы и прочие Гуглы — так что если кто туда хочет, то книга как раз для него.

Май 11th, 2010

Испытал stackoverflow.com

Возник технический вопрос, в котором не удалось разобраться самостоятельно, и решил испробовать хваленый Stackoverflow.com, распиаренный вначале Джоэлом, а вслед за ним уже и на всяких техноблогах. Ощущение от сервиса: говно. За несколько дней мой вопрос был просмотрен лишь пять раз, что очень мало даже по меркам очень небольшого форума. Секрет конечно в том, что вопрос очень узкоспециализирован, но тем не менее: сервис со всей своей раскруткой и цветными рюшечками и рейтингами, для узкопрофильных вещей совершенно не пригоден.

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

Еще ощутил, что у меня заметно падает уровень владения  английским языком. В грамотности вопроса уже совершенно не уверен (чего не бывало год назад), и набирался он в сомнениях относительно используемых предлогов, времен и артиклей. Грустно. Надо срочно опять куда-то идти заниматься (кстати, рассмотрю предложения: писать если что на почту heller@heller.ru).

Current music: Chuck Berry — Johny B. Good

Январь 15th, 2010

Почти успех

Вчера первый раз пытались предложить мне на коммерческой основе написать индикатор на мной же разработанном языке ATF. Довольно приятно, хотя человек вроде не совсем понимал что он хотел, но тем не менее. То есть теперь могу зарабатывать уже деньги, программируя не на каком-нибудь там Perl или C++, а на своем собственном детище. Почти как Билл Гейтс, только денег сука мало.

This work is licensed under GPL - 2009 | Powered by Wordpress using the theme aav1
SEO Powered by Platinum SEO from Techblissonline