О чем наиболее сожалею как программист

Немного более 20 лет назад, я стоял перед выбором. Моя вторая компания была истощена, когда наш пятилетний проект DeltaGraph для издателя закончился (они хотели переключится на рождающийся интернет). В то время, я уже имел 13 лет опыта как программист, а также около 9 лет опыта как управляющий компанией (в то же время).

Я больше не хотел занимать обе позиции одновременно. Моя первая компания 85-87 не только создала новый тип электронных таблиц, но и сама ее издавала.…

Общие сведения о языках программирования. Переменные и типы данных

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

Специальные термины, используемые в программировании

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

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

Трамплин в JavaScript

Трамплин - функция которая итеративно вызывает возвращенную функцию преобразователь (стиль продолжений). Одного трамплина достаточно чтоб выразить все управление программой, программа тем самым становиться трамплинной или выраженная в трамплинном стиле. Конвертирование программы в трамплинный стиль называется "трамплинирование". Трамплинные функции могут быть использованы программистами для реализации хвостовой оптимизации в стековых языках - Wikipedia

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

Программисты и потребители – фактор времени

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

11 причин оставить программирование своим хобби, но не делать его профессией

Какое прекрасное время было, когда большинство юношей хотели быть летчиками и моряками. Теперь большинство молодых людей, обдумывающих свои будущие занятия, стремятся быть IT-специалистами, то есть программистами. Чем они мотивируют свои желания? В первую очередь, естественно, востребованностью этой профессии на рынке труда, престижностью, модой.

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

Понятие функции в программировании

f (x)

Что такое функция

Программа представляет собой последовательность выражений языка. Нередко случается, что какая-то часть программы (блок кода) неоднократно повторяется. Чтобы устранить подобного рода избыточность программного кода, используют понятие функции. Функция — это именованный блок кода, который вызывается в нужных местах программы по имени. Другими словами, функция представляет собой подпрограмму, которую можно вызвать из основной программы, причем неоднократно. Повторяющийся (да и не только) блок программного кода обычно обозначают некоторым уникальным именем, чтобы потом при необходимости обратиться к нему по этому имени.…

Анти-паттерны в NodeJS

Синхронное выполнение

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

  • fs.renameSync
  • fs.truncateSync
  • fs.statSync
  • path.existsSync
  • ...

Всех операций блокирующих ввод/вывод необходимо избегать.

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

Функциональное программирование на JavaScript === Мусор

wall-e, мусор

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

Предпочтение персистентных данных

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

Путь к профессиональной свободе

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

Почему вообще стоит учиться создавать сайты?

Ответ прост: научившись создавать сайты можно открыть себе путь к профессиональной, а вместе с тем к личностной свободе.…