Второй язык программирования (про муки выбора)

Продолжая тему затронутой во вчерашнем видео мысли — «Как выбрать программирования», я хочу обратить внимание на мысль, которую не раскрыл полностью:

Почему мы вообще можем запрещать себе выбор второго языка

Я буду говорить от себя — у меня был (надеюсь что именно был) страх расфокусироваться в технологическом плане, это происходит когда тебе интересны несколько технологий, в моем случае на данный момент — Python и Go.

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

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

И забывал я одну простую истину:

Никто не запрещает стать специалистом в обеих технологиях

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

Но я выше вроде бы писал о том что проще получить бенефиты фокусируясь на чем-то одном…

Именно — проще, а мы в данный момент не говорим о простоте в принципе, так как дойти до экспертности в одном языке — это сама по себе не простая задача, и стать экспертом в двух языках это не n2 а скорее log2n в плане общей эмоциональной тяжести, ведь вы кайфуете от ДВУХ интересных технологий, и плюс сняли обременение от необходимости выбирать (но это не точно, чисто теория, скоро проверю и отпишусь).

Ну и, не стоит забывать что со временем вы, возможно, потеряете интерес к какой-то из технологий в которую угрохали кучу времени, это НОРМАЛЬНО, если воспринимать программирование на протяжении жизни, то переходы туда-сюда в плане языка или профиля в IT это часть этой самой жизни, а вот запрещать себе получать удовольствие от любимой работы — прямой путь к нелюбимой работе, прокрастинации, депрессии и так далее.

П.С. Данная статья не для новичков, сугубо для людей уже состоявшихся в какой-то технологии.

Монотонная регулярность успеха

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

Сейчас будут примеры, а потом важное резюме.

Программирование:

Каждый день я пишу код, делаю коммиты и заливаю их в репозиторий.

Плюс изучаю информацию о языке, которую до этого не знал.

Плюс изучаю теорию программирования, которую не знал.

Лишний вес:

Каждый день я соблюдаю расписанную тренером программу питания.

3 раза в неделю я хожу на тренировки.

Не позволяю себе делать меньше 3-х тренировок в неделю.

Не позволяю себе отклоняться от плана питания больше чем на 2 дня в месяц, если тренер сказал что это нужно.

Состояние психики:

Каждый день сплю минимум 7 часов в день.

Читаю книги по психологии минимум 3 раза в неделю.

Добавляю общение с интересными людьми.

Убираю общение с токсичными людьми.

Не позволяю себе жертвовать сном в обмен на дела, которые все равно будут сделаны.

Вот, вы прочитали примеры, и думаете «Какая то очевидная ерунда, это же и так известно».

ДА, а теперь «дьявол кроется в деталях»:

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

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

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

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

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

Первая книга по программированию которую я купил

Первые книга по программированию которую я начал читать была Страуступ по C++, но она была не моя, и давали мне ее почитать 1-2 раза в месяц каждый раз на пару-тройку дней.

А вот этак книга была моя… собственная, которую я купил, и это было критически важно.

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

К чему этот пост? Я сейчас активно погружаюсь в мир python и что-то накатило, решило найти эту книгу, тадааааам: 2001 год, Python за 24 часа:)

Чарлз Бэббидж. Механическая вычислительная машина

Читаю сейчас книгу Алана Тьюринга «Вычислительные машины и разум» и там он упомянул Бэббиджа…

А вы знали что «первую», хотя тут можно поспорить,вычислительну машину создал Бэббидж, и это была МЕХАНИЧЕСКАЯ чычислительная машина, прототип наших компьютеров.

Тоесть она уже опережала способность человека делать вычисления, хотя была основана на принципе шестеренок и карточек…

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

Если psycopg вываливается при сборке с ошибками на MacOS

Если ставите на MacOS в virtualenv psycopq, а он валится на сборке, показывая ошибки подобные вот этой:

psycopg/pqpath.c:1819:17: warning:
implicit conversion from enumeration type 'ConnStatusType' to 
different enumeration type 'ExecStatusType' [-Wenum-conversion]

То это, возможно, разрешится для вас вот такой командой установки openssl в системе и потом установкой флагов:

brew install openssl
export LDFLAGS="-L/usr/local/opt/openssl/lib"