Предисловие

Об Авторе

Я специалист в области компьютерных технологий с 25+ летним опытом. В основном я занимаюсь программированием на всех востребованных рынком языках.

Я начал программировать в 18. Увидев мой интерес к компьютерам, мои замечательные родители, купили мне ZX Spectrum. Вдоволь наигравшись в компьютерные игры, я понял что нужно что-то делать. И когда в одном из фильмов я увидел световое перо, у меня возникла идея собрать его самостоятельно. Ведь у меня начальное художественное образование.

Я попросил свою маму принести мне с работы фоторезистор.

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

Первым языком я изучил Бэйсик. И первую программу я написал на нем.

Но это была моя первая настоящая программа на Ассемблере. Код работал идеально, но кто-же знал что "черный экран Электронной Лучевой Трубки испускает чрезмерное излучение для оптопары".

Так я стал программистом и узнал что баги бывают не только в коде

Windows был очевидным выбором для хомячка в конце 90-х. Помните фильм "Хакеры" с Анджелиной Джоли. И если внимательно смотреть то можно увидеть консоль, SSH-сессию и всякое такое.

Вот вы в конце 90-х часто коннектились по SSH к удаленному серверу? Ну согласитесь же интересно?

Вообщем я поджал раздел файловой системы Windows и начал свой путь в Linux. Чего только я не перепробовал - RedHat, Fedora, Mandriva, Debian, FreeBSD, OpenBSD и другие, включая Solaris. Знакомство с UNIX кончилось инициативой - "не загружать Windows в течении месяца, и потом принять решение".

Хватит знакомится, пора использовать по максимуму

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

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

Когда появилась Nodejs - это было круто

Писать на одном языке и клиент и сервер, и при этом это серьезно превосходит по производительности все остальное. У меня были отличные проекты на Nodejs и Mysql, несколько сайтов, система морфологического анализа, я писал свои расширения для ноды (yandex-money...) и делал пулреквесты в существующие (libxmljs...).

И это всё - тоже про производительность. Тебе не надо изучать несколько языков, пиши только на JavaScript.

Что еще рассказать, историй хватит на небольшую книжку.

Мне нравится изучать все новое

  • Однажды пришлось освоить разработку под Android (SDK+NDK), потом был iOS (ObjC/Swift), MacOSX (ObjC/Swift).

  • Помню занимался Digital Signal Processing (DSP), нужно было речь человека превратить в мяукание.

  • Занимался Natural Language Processing (NLP), портировал свой модуль морфологии с Nodejs на Golang.

  • Хотел позаниматься SEO-оптимизацией контента. RAKE - хороший алгоритм, но перфекционизм взял свое и я посчитал TF/IDF всей Википедии на 6 языках.

    Когда считал TF/IDF, то возникли проблемы с памятью, Go не эффективно ее высвобождал.

Поэтому я изучил Rust

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

Rust дает уверенность в качестве кода, при этом позволет получить максимальную производительность и стабильность в боевых условиях. Я не могу сказать что написав код на C/C++ вы создадите что-то хуже чем на Rust. Но я также не могу сказать, что вы сделаете это лучше.

Сейчас в зону моих интересов также входит блокчейн, Deep Learning, OpenCL и Cuda.

Пожелания от автора

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

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

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

Однако я всетаки оставляю за собой право модерировать этот репозиторий на github и сообщество в Reddit.

Также вам нужно знать о принятой мной лицензии CC0 1.0 Universal на этот материал. Дополнительный код конечных продуктов находится под лицензией GNU General Public License v3.0 в ветке main.

С Уважением, Дудочкин Виктор.