Чех варит топор

Вернее, вываривает, в растворе лимонной кислоты с целью снять ржавчину. Восстанавливает немецкий строительный топор времён второй мировой.

Прикольно он его луком натирает. Пишут, что луковый сок создаёт на поверхности углеродистой стали защитное покрытие из оксидов/солей железа.

Может, я и не прав

Но возвращаюсь на старое место работы. Сисадминить.

Вдобавок к прибавке в зряплате выцыганил новые обязанности (иначе какой смысл возвращаться?), так что теперь учить:

Azure/AWS: IaaS и прочий PaaS

Получать CCNA Cloud и CISSP. Плотно заняться SIEM.

Вот это будет бомба. Так как будущее определённо за облачными сервисами, я обеспечу себе хороший задел на грядущее.

А инфобез… “Some things look better just passing through”, как пел Элтон Джон. Да, в инфобезе можно заработать больше денег. Без вопросов. Хотя лично я большой разницы не вижу, по крайней мере, с той степени, с которой мне пришлось начинать в этой области. И, как уже сто раз было говорено, показано и обосновано, связь между зарплатой и удовольствием от работы если и есть, то очень слабая.

Про изучение языков программирования

Да, именно так оно и работает.

Именно поэтому когда знакомые меня спрашивают, с какого языка начать знакомство с программированием, я никогда не советую Джаваскрипт, Перл, Питон и прочие языки с динамической типизацией. Совсем не потому, что они “хуже”, а потому что понять, что происходит, при отсутствии понимания типов переменных, невозможно.

Девочка пытается совершить арифметические действия с переменной типа char — действие, не вполне стандартное, так что компилятор действует “по наитию” — так что char в зависимости от контекста становится числом или строковой переменной.

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

Проблемы с интерпретацией никуда не исчезают, но если мы попробуем повторить девочкины действия на том же C# или на Джаве, в рыло прилетит привет от компилятора — “ты чо с чем складываешь, совсем охренел, что ли?” И предложит cast в другой тип данных. Поэтому подобных необъяснимых эффектов там просто не будет, а у программиста вырабатывается привычка руками кастовать переменные при любых неявных действиях с разными типами.

Сам я, кстати, пошёл сначала по неправильному пути, начав изучать программирование с одного из самых запутанных языков — с Перла. Ну, того самого, по которому даже проводилось соревнование “Кто непонятнее напишет” (https://en.wikipedia.org/wiki/Obfuscated_Perl_Contest). Не то, чтобы Перловый код обязательно получается кривой и непонятный, но там очень просто сделать именно так. Для начинающего — не то.