Архив метки: books

Книга Rogue Trader и интересные технические детали из нее

На днях прочитал книгу Ника Лисона о том, как он разорил банк Barings. По этой книге снят хороший фильм, который я всем очень советую посмотреть. Действие книги происходит в 1992-1995 годах, когда Ник Лисон поступил на работу в банк Barings и был направлен на работу в Сингапур, где Barings только что открыл свой офис для совершения сделок по деривативам на сингапурской бирже SIMEX.

В Сингапуре на тот момент существовало несколько бирж. Биржа торговли акциями и облигациями Stock Exchange of Singapore (SES) была создана в 1973 году. Биржа Singapore International Monetary Exchange (SIMEX) была создана в 1984 году в тесном сотрудничестве с Chicago Mercantile Exchange (CME).

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

Читать далее

Почувствовать машину

Термин «Mechanical Sympathy» ввел в обиход программистов разработчик Мартин Томпсон. Взял он его из мемуаров знаменитого шотландского гонщика Джеки Стюарта (Jackie Stewart) 60-ых годов, неизменного победителя всех гонок Formula-1 1965-1973 годов. Когда его спросили, как ему удается побеждать, он ответил:

You don’t have to be an engineer to be a racing driver, but you do have to
have mechanical sympathy.

Вам не надо быть инженером, чтобы быть хорошим гонщиком, достаточно просто чувствовать машину.

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

Какое отношение это все имеет к программированию?

Нет нужды пересказывать всё, что было уже сказано в многочисленных презентациях Мартина Томпсона, который даже свой блог назвал Mechanical Sympathy. Последние записи в блоге, увы, датированы 2013 годом, но статьи, опубликованные в нем, по-прежнему актуальны и интересны.

Mechanical sympathy упоминается и в книге Optimizing Java, что естественно. Невозможно оптимизировать Java-приложение, не понимая механику JVM, сборщика мусора, операционной системы и так далее.

Данная статья является лишь моим скромным пересказом идеи mechanical sympathy.

Читать далее

Об Ethernet-коммутаторах и сетях вообще

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

В данной заметке я перечислю несколько очень полезных книг, которые помогут восполнить пробелы и дадут важную информацию о сетях вообще, Ethernet-сетях в частности, TCP/UPD и IP протоколах и о том, как писать сетевые приложения в Java наиболее оптимальным способом.

Читать далее

О «железе»

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

Читать далее

6 книг о том, как стать хорошим программистом и им оставаться

Что отличает профессионала от халтурщика? Профессионал не останавливается в самосовершенствовании. Он понимает, что всегда есть чему поучиться новому, что он пишет пусть и хороший код, но не лучший. Лишь полный профан или посредственность считает себя Самым Лучшим Программистом на свете, Которому уже Не надо Учиться.

Вот цитата из книги Стива Макконнелла Совершенный код (Code Complete):

Ваш работодатель не может заставить вас стать хорошим программистом; в многих ситуациях он даже не может оценить, насколько хороши вы как программист. Если вы хотите стать отличным программистом, вы отвечаете за это сами. Это зависит от вашего характера.

Как стать хорошим, профессиональным программистом? Как выбрать карьеру в программировании? Как прокачивать скиллы? Как расти над собой, не отставать от поступи прогресса? Как стать ценным сотрудником, как сделать так, чтобы работа находила тебя, а не ты искал работу, как уметь подавать и продавать себя?

Читать далее