Предисловие
Об Авторе
Я специалист в области компьютерных технологий с 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
.
С Уважением, Дудочкин Виктор.