Объяснение программирования с помощью шуток для программистов полный перевод сайта Eat the World


Оглавление (нажмите, чтобы открыть):

Программисты шутят. Не пора ли запретить?

22 августа 2020

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

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

Список этот можно продолжать и он, конечно, продолжится, по мере того, как техника забирается всё глубже в нашу жизнь. Но сегодня хотелось бы остановиться лишь на одной из обозначившихся таким образом тем — вызвавшей нешуточный спор этой весной и летом. Речь как раз шутках.

Пару-тройку месяцев назад один из участников проекта glibc (это один из самых популярных программных продуктов: open source-реализация главной библиотеки языка C, используемая в том числе в Linux) обнаружил в исходных текстах фрагмент, показавшийся ему может быть неприличным, наверное неуместным, но главное — бесполезным! Фрагмент этот звучал следующим образом (вольный перевод с английского мой — Е.З.): «Поправки к федеральному законодательству могут в будущем помешать нам информировать вас о возможности вызова этой функции или потребуют уточнять, что данная функция не является социально-приемлемым способом остановки программ».

Вырванная из контекста фраза звучит непонятно, но достаточно сказать, что находится она в теле функции abort(), как всё встаёт на свои места. Очевидно кто-то из предыдущих авторов решил… ну, скажем, не посмеяться, но остро пошутить в адрес зарвавшихся законодателей, а заодно и религиозных фанатиков, действия которых могли привести если не к запрету, то к ограничению обсуждения искусственного прерывания беременности. Попросту говоря, некий программер пошутил насчёт цензуры.

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

Случившееся уже само по себе достойно вызвать улыбку: ведь «зацензурили» насмешку над цензурой! Но дискуссия, разгоревшаяся сперва среди разработчиков glibc, а после выплеснувшаяся и на популярные технофорумы, оказалась вовсе не смешной. А тон задал не кто иной, как Ричард Столлман собственной персоной.

«Благословляю твой компьютер, дитя моё!». Ричард Столлман, как всякий хакер, любит повалять дурака. Что никак не умаляет его заслуг: он пятнадцать раз почётный доктор наук и автор или соавтор множества фундаментальных программных инструментов и ИТ-концепций. Большую часть жизни посвятил популяризации идей open source.

Этот колоритный дядька — один из отцов-основателей всего движения свободных исходников. Не в последнюю очередь его усилиями заложен правовой и технический фундамент под желание некоторых людей распространить принцип свободы слова на софт (на случай, если вы никогда не слышали, см. «Имею право!»). И, как и другие классики, он многое сделал своими руками — сейчас его труды по большей части собраны под крышей проектов FSF и GNU.

Столлман не является автором собственно glibc, но напомнил, что для всех субпроектов в GNU (в том числе и glibc) он был и остаётся своего рода главным руководителем, оставляя за собой право корректировать действия разработчиков, чтобы они шли согласно с политикой GNU. А вот автором скандального комментария в glibc был именно он — это он вставил его собственноручно ещё двадцать лет назад. И теперь потребовал вернуть удалённый текст в программу — и его вернули конечно. Но в результате разгорелся спор между сторонниками двух диаметрально противоположных мнений.

Одна группа настроена резко против конкретно этой и всех подобных шуток. Кто знает, говорят они, кому попадут в руки исходники, кому и с каким настроением доведётся их изучать? В лучшем случае шутку просто не поймут — как среднестатистический гражданин России, например, где цензура пока ещё не забралась так глубоко. В худшем — не оценят или оценят неверно, истолковав её в контексте ущемления прав верующих, сочтя за оскорбление тех, для кого тема смерти священна или связана с травмирующими воспоминаниями, и т.п.

И перечень возможных последствий тогда чрезвычайно широк: от неприятного разговора с начальством до увольнения, потери клиентов, уголовного преследования. Тем более, что прецеденты известны — возьмите хоть рассказанную бывшим сотрудником HP историю, как случайная цитата из комикса («Так бы и сжёг вас всех красочным термоядерным зарядом!»), показанная скринсейвером, послужила причиной обвинения в экстремизме и потери работы.

К вопросу о профессионализме. «To fart» переводится с английского, как… гм… «пукнуть». Но отрывок этот уже не из glibc, а из исходников MS-DOS. И такого там много…

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

Столлман парирует, что сегодня шутка даже более актуальна, чем во времена, когда была придумана. Давление государства (напомню, речь о США) и противников абортов снова очень сильно: клиники, информирующие пациентов о праве на аборт, лишают государственных дотаций… Но Столлман исходит из предположения, что шутки в коде вообще имеют право на жизнь — что не очевидно для многих из его оппонентов в данном споре. К счастью, нашлись те, кто поддержал Ричарда, добавив аргументов.

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

Непрофессионально? Может быть. Но open source никогда и не был «профессиональным» в полном понимании этого слова: движение свободных исходников выросло из хакерского движения — хаотичного, неконтролируемого, щедрого. Хакеры возятся с кодом, ломая его там и здесь, сшивая на грубую нитку, чтобы посмотреть, что получится — и их труд не профессионален, потому что не может быть таковым в принципе! Может быть именно поэтому хакеры произвели на свет такие продукты, как Linux, Facebook, Bitcoin.

Динамика употребляемости бранных слов в коде ядра Linux. Графика: Vidar Holen.

Потом, шутки в коде часто всё-таки играют некоторую полезную роль. Помните «Ошибку 418: Я чайник!», придуманную в качестве первоапрельского розыгрыша? Сегодня она реализована во множестве серверов — и заставляет пользователей чесать затылки, когда (регулярно!) они на неё натыкаются. А натыкаются почему? Потому что на 418-ю ошибку принято вешать нераспознанные проблемы. Если что-то в программе пошло не так и она не знает, как классифицировать происходящее, то как раз и может выбросить «Error 418», а разработчики, получив такое, сразу понимают, что проблема заслуживает особого внимания.

Наконец, поиск спрятанных несерьёзных сюрпризов составляет особое удовольствие и для разработчиков, и для пользователей (которым такие сюрпризы известны как «пасхальные яйца»). Но одним нравится наблюдать, как перекашивает «Гугл» от запроса «askew», а другим — считать, сколько раз употреблены бранные словечки в исходниках ядра Linux (а там, простите, одного только «дерьма» больше полутора сотен!). Несерьёзности делают код живым, рутину программинга менее скучной, пользование весёлым. Гарантий, что очередная шутка будет понята правильна, конечно, никто дать не может — но так и вообще программное обеспечение гарантиями не комплектуется.

И не думайте, что авторы проприетарного софта что-то такое гарантируют или что, по причине якобы большего профессионализма, избегают шутить. Вот, вспомните, как это было в коде Microsoft в эпоху, когда она ещё была способной на великие дела: стихи, шуточки религиозного толка, непечатное в комментариях и названиях функций и прочее обычное. Профессионалы тоже люди!

В этом споре лично я на стороне тех, кто отстаивает право шутить без ограничений. Но противников должен обнадёжить. Пройдёт ещё какое-то время, программы станут писать сами машины — и тогда очень быстро машинный код станет нравственно чистым, политкорректным, математически правильным. Искусственному программисту юмор без надобности. Он исключит его именно по причине бесполезности — максимизируя функцию качества f, зависящую от длины кода l, риска неправильного понимания n и сложности алгоритма k…

Но пока за клавиатурой нас не сменила машина — руки прочь от святого!

Компьютерная грамотность с Надеждой

Заполняем пробелы – расширяем горизонты!

    CompGramotnost.ru » ИТ специалисты » Как программисты шутят

Как программисты шутят

Профессия программиста обязывает его быть постоянно собранным, быть внимательным к деталям.

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

Поэтому в перерывах программисты не прочь немного поразвлечься. Как?

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

Во времена старых ЭВМ (электронно-вычислительных машин) графических возможностей или вовсе не было, или они были ограничены. Поэтому программисты вынуждены были шутить текстами или в формате примитивной графики.

Например, введя в базу данных расписание обедов подразделений, можно было при регистрации пользователя сразу по окончании обеденного времени автоматически выдать ему не привычное сообщение о начале регистрации в системе, а наподобие: «Здравствуйте, как Вы пообедали?». В те времена всеобщей компьютерной безграмотности это производило эффект разорвавшейся бомбы: «Вы представляете, я только что вернулся с обеда, а меня компьютер спрашивает, как я пообедал! И откуда он знает?!»

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

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

Например, на старых компьютерах с очень слабой графикой программисты случайным образом генерировали на экране компьютера крестики (скажем, штук 10). Затем с помощью электронного пера (представляете себе, и такое раньше было, но только значительно больше по размерам, с проводами, разъемами и т.п.) несколько человек по очереди «тыкали» в эти крестики. Под одним из них находился виртуальный выигрыш. Кто первым попал в этот крестик с «кладом», тот и выиграл!

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

Теперь времена другие. Гаджеты намного мощнее и красочнее. Языки программирования более функциональные. Но программисты продолжают шутить. Особенно много «приколов» сделано для современных смартфонов в силу их распространенности и функциональных возможностей.

Например, для смартфонов есть приложение, которое называется «ThemostUselessAppEver» (что в переводе с английского означает «Самое бесполезное приложение, которое когда-либо существовало»). После запуска этого приложения на экране смартфона появляется большая красная кнопка, и больше ничего. При нажатии на эту кнопку приложение просто заканчивает свою работу. Не правда, весело?!

Платное приложение для смартфона “I am rich”

А есть и еще абсурднее. Например, приложение «IAmRich» (что в переводе с английского означает «Я богат»). Купить это приложение было возможно, ни много ни мало, за 999 долларов и 99 центов. В

се, что может делать это приложение – это выводить на экран смартфона изображение сияющего рубина с надписью под ним «Я богат».

Смысл этого приложения – продемонстрировать окружающим, что пользователь смартфона может позволить себе «выкинуть» 1000 долларов просто так.

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

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

Определение спелости арбуза

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

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

Любителям пива предлагается программа (приложение), которое изображает процесс наливания пенного напитка в стакан. Роль стакана выполняет экран смартфона, причем с соответствующими звуками, пеной и пр. Потом можно приложить смартфон ко рту и сделать вид, что пьешь пиво. И оно будет виртуально «вытекать» из этого виртуального «стакана».

Имитация лопанья пузырьков

Перечень подобных шуток можно продолжать:

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

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

Мир изменился, деньги в нем стали играть далеко не последнюю роль. И программисты научились зарабатывать не только на основной работе, но и отдыхая от основной работы. Так сказать, действуя по принципу «спорт учебе не помеха»! И не только ради денег, но и ради популярности, или просто «для прикола». Заметим и запомним, что программисты не только работают, но иногда и весело отдыхают!

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

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

[Request] Анекдоты про языки программирования

Поделитесь, кто какие анекдоты знает про ЯП? Лучше такие, в которых идет сравнение ЯП

https://forum.oszone.net/post-1538880.html — пойдёт? Не совсем анекдот, но зато сравнение есть

Да, именно такое нужно. Только к списку нужно еще Питон, Джава, Шарп, Скала.. т.е. историю переписать, а то ей уже лет 20-30..

>Теоретически, Java основана на C,

А вот %юзернейм% таки сионист -на C пишет

Lesser known languages

LITHP is said to useful in prothething lithtth.

Named after the famous French philosopher and mathematician Rene DesCartes, RENE is a language used for artificial intelligence. However, sources inside the organization say that each time the machine fails to think it ceases to exist.

The other languages in this list are SIMPLE, SLOBOL, VALGOL, LAIDBACK, SARTRE, FIFTH, C- and DOGO.

Pascal: Компилятор не позволит вам прострелить себе ногу.

Pascal как всегда круче всех :>

«Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.» — Martin Golding

Если поддерживать ВНЕЗАПНО придётся самому, то ты-то уж точно знаешь, где живёшь. А потом возникает психоз и жажда насилия 😀

Мне вспоминается только анекдот про стакан воды.

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

Анекдот №18485

Любой русский программист после пары минут чтения кода, обязательно
вскочит и произнесет обращаясь к себе: переписать это все нафиг. Потом в
нем шевельнется сомнение в том, сколько времени это займет, и остаток
дня русский программист потратит на то, что будет доказывать самому
себе, что это только кажется, что переписать это много работы. А если
взяться и посидеть немного, то все получится. Зато код будет красивый и
правильный.
На следующее утро русский программист свеж, доволен собой и без единой
запинки докладывает начальству, что переписать этот кусок займет один
день, не больше. Да, не больше. Ну, в крайнем случае, два, если учесть
все риски.
В итоге начальство даст ему неделю и через полгода процесс будет успешно
завершен. До той поры, пока этот код не увидит другой русский
программист.

А в это время, в соседних четырех кубиках, будет ни на секунду не
утихать работа китайских программистов, непостижимым образом
умудряющихся прийти раньше русского программиста, уйти позже, и при этом
сделать примерно втрое меньше.
Эта четверка, давно не пишет никакого кода, а только поддерживает код
написанный, в свое время индусом и дважды переписанный двумя разными
русскими. В этом коде не просто живут баги. Здесь их гнездо. Это гнездо
постоянно воспроизводит себя при помощи любимой китайской технологии
реиспользования кода — copy/paste. Отсюда баги расползаются в разные
стороны посредством статических переменных и переменных переданных по
ссылке (поскольку, китайский программист не может смириться с
неудобствами вызванными тем, что он не может изменить значение внешней
переменной переданной в его функцию модулями, которые переписывает
русский программист).
Вспоминая об этой функции русский программист, как правило на время
теряет дар нглийской речи, и переходит к какой-то помеси русского и
китайского. Он давно мечтает переписать весь кусок, над которым работают
китайцы, но у него нет времени. На китайцах висят серьезные баги, о
которых знает начальство и постоянно их торопит. Китайцы торопливо
перевешивают баги друг на друга, поскольку знают, что попытки их
починить приведут к появлению новых, еще худших. И в этом они правы.
Разобраться в том, в каком порядке меняются статические переменные, и
как приобретают свои значения, способен только один человек на фирме —
индус. Но он пребывает в медитации.
Поэтому, когда всю четверку уволят во время сокращения. А кого еще
увольнять? Русский — еще не переписал свой кусок, а индус — главная
ценность фирмы — он редко обращает внимание на проект, но когда
обращает, все понимают, что так как он, архитектуру никто не знает.
Так вот, когда китайцев увольняют, у их кода возможны две основные
судьбы. Первая — он попадет к русским и его перепишут. Вторая — он
попадет к местному, канадскому программисту.
О, канадский программист это особый тип. Он ни на минуту не задумываясь,
как рыцарь без страха и упрека, бросится фиксить самый свирепый баг
китайского кода. Этот Баг живет там уже три года, и китайцы уже
четырежды (каждый по разу) сообщали начальству, что он пофиксен. Но Баг
каждый раз возвращался, как Бетмен в свой Готхем.
Итак, канадский программист сделает то, чего китайцы не рисковали делать
в течении трех долгих лет. Он, при помощи дебагера, отследит место, где
статическая переменная приняла значение -1 вместо правильного 0, и
решительным движением заведет рядом вторую переменную с правильным
значением. Баг погибнет в неравной схватке с канадским программистом.
Но победа будет достигнута тяжелой ценой. Работать перестанет все,
включая только что переписанный русским программистом код. Это повергнет
русского программиста в задумчивость на целых два дня, после чего он
сделает, в общем-то, предсказуемый вывод о том, что дизайн с самого
начала был неправильным, и все надо переписать. На это нам нужна неделя.
Да, неделя, не больше.
Канадский программист смело бросится налаживать все, и станет еще хуже,
хотя казалось бы.
Эта суета выведет из медитации индуса, который придумает и вовсе
гениальное решение — отбранчить код. Согласно его плану, мы теперь будем
поддерживать две версии одного и того же кода — одну работающую но с
Багом, другую без Бага, но не работающую. Русский программист услышав об
этом плане, сломает линейку об стол и дома обзовет жену дурой, но на
митинге возразить не решится.
К счастью, все это не сильно влияет на дела фирмы, поскольку продукт
продается и так. Поэтому менеджмент ходит в целом довольный и не устает
напоминать всем, что они отобраны как лучшие среди лучших. И что мы
давно доказали свою способность выпускать продукт тем, что выпускаем его
иногда.

Мастер Йода рекомендует:  Регистрация сайта в каталогах. Кого выбрать Обзор сервисов.

Программисты шутят: код, скрытый от посторонних глаз

Сергей и Марина Бондаренко

04 мая 2011

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

⇡#Microsoft: от шуток к делу

К сожалению, работодатель не всегда способен оценить творческие изыскания программистов, которые выражаются в «пасхальных яйцах» и прочих любопытных недокументированных возможностях приложений. Так, например, в преддверии выхода Windows 7 было официально сообщено о том, что никаких скрытых тетрисов, скринмейтов и красочных заставок-тайников в новой операционной системе не будет. Руководство Microsoft запретило программистам проявлять подобную инициативу при написании кода, чтобы пользователи корпоративных версий Windows не отвлекались во время работы на поиски «пасхальных яиц». В результате многие шутки, обнаруженные в ранних версиях Windows, на «семерке» не работают.

Кстати, даже последние версии Microsoft Word стали серьезнее. Пользователи со стажем помнят, что в ранних версиях текстового редактора при наборе текста =rand() и последующего нажатия клавиши Enter на экране появлялось предложение «Съешь ещё этих мягких французских булок, да выпей чаю» (в английской версии — «The quick brown fox jumps over the lazy dog»). Однако если ввести те же символы в Word 2007 или 2010, программа вместо того, чтобы предлагать булочки к чаю, выведет сухой текст из справки. Что ж, очень хитрый способ заставить сотрудников прочитать о возможностях Word и тем самым помочь им повысить свой уровень владения текстовым редактором.

Впрочем, если в последних версиях стандартных приложений от Microsoft найти шутки от программистов весьма проблематично, то они еще остались на веб-проектах корпорации. Например, на ресурсе TechDays.ru, где публикуются семинары для технических специалистов, можно обнаружить забавные флеш-мультфильмы. Просто наберите в окне поиска на сайте linux, и на экране тут же появятся пингвин и чертенок. Ввод поискового запроса «винда» вызывает запуск другого мультфильма с теми же героями.

⇡#Проще простого — загляни в About

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

Чаще всего найти весточку от программистов можно в информационном окне «о программе». Например, популярный архиватор WinRAR показывает стопку книг, если по ней кликнуть, она «упадет», а достигнув края окна, начнет подпрыгивать как мячик.

Клиент для работы с сетью Bittorrent — это такое же незаменимое приложение для многих, как, скажем, браузер или офисный пакет. Одна из самых популярных программ, которую используют миллионы пользователей, чтобы загружать фильмы, музыку и игры, — это µTorrent. Если вы не знаете, чем себя занять все то время, пока файлы передаются от пользователя к пользователю, можете попробовать поупражняться в тетрисе. Для этого в окне «О программе» нажмите клавишу T.

Еще одну «открытку», спрятанную в окне с именами создателей, можно наблюдать в Adobe Photoshop. Попробуйте выбрать пункт меню «О программе», удерживая при этом нажатую клавишу CTRL — на экране возникнет совсем иной логотип, символизирующий рабочее название промежуточной бета-версии графического редактора. Если у вас последняя версия программы от Adobe, это будет белый кролик. Чтобы прокрутить список создателей, нужно удерживать нажатой клавишу ALT.

⇡#«Звездные войны» в консоли

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

Создать изображение из отдельных символов — уже подвиг для пользователя. А как насчет анимации? Если в командной строке набрать «telnet towel.blinkenlights.nl», на экране откроется консольное окно, в котором проиграется четвертая часть легендарной саги «Звездные войны» — с заглавной заставкой, титрами и вполне узнаваемыми персонажами.

Если у вас не установлен клиент Telnet, это легко сделать вручную, включив его в списке компонентов Windows.

⇡#Расстреливание веб-страниц в Opera

Разработчикам популярных браузеров также присуще чувство юмора. В этом нам довелось убедиться при личной встрече с Арнстейном Тигеном (Arnstein Teigene), главным менеджером Opera Software по расширениям для настольного браузера. Тиген по совместительству является и одним из архитекторов Экспресс-панели.

После долгих часов сидения за компьютером, когда приходится ломать голову над вопросом «как сделать лучше», просто жизненно необходима какая-то разрядка. Для этой цели Арнстейн держит в арсенале расширений браузера забавную игрушку Kick Ass — римейк классической «стрелялки» по астероидам. Правда, в отличие от привычного космического корабля, на экране летает треугольный курсор, а уничтожать приходится не астероиды, а. содержимое открытой веб-страницы. Под градом залпов (для выстрелов нажимать клавишу Space) текст, картинки и прочие элементы веб-страницы разлетаются в пух и прах, оставляя вместо себя пустое поле. Параллельно за уничтожение каждого «врага» (то есть, за каждый расстрелянный элемент веб-страницы) начисляются очки.

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

⇡#Самая короткая ссылка в Opera

Говорят, что лень — двигатель прогресса. Когда человеку стало трудно носить тяжести, он придумал колесо. Когда он захотел быстро перемещаться, он придумал повозку, когда стал испытывать неудобства от необходимости идти к телевизору, чтобы переключить каналы, он создал пульт дистанционного управления. Программисты, которые работали над Opera, тоже решили упростить себе жизнь. Попробуйте в адресной строке набрать «/.» (без кавычек) и перейти по этой странной ссылке. Вы попадете на один из самых популярных технических блогов Интернета — slashdot.org. Вероятно, создатели самого быстрого браузера − большие поклонники данного ресурса.

⇡#Открытки огненной лисы

Разработчики браузера Firefox тоже не прочь пошутить. Наберите в адресной строке about:robots, и вы увидите послание от роботов. Не забудьте нажать на кнопку «Попробовать снова», чтобы увидеть другую — с надписью «Пожалуйста, больше не нажимайте эту кнопку».

Одно из самых древних «пасхальных яиц» Firefox — это Книга Mozilla. Эта шутка впервые появилась еще в браузере Netscape, а затем перекочевала и в Firefox. Если в адресной строке ввести about:mozilla, тоже можно увидеть текст, который якобы является выдержкой из некой священной книги. Текст этот от версии к версии изменяется.

Ввод в адресной строке команды chrome://browser/content/browser.xul откроет еще одну копию браузера внутри текущей вкладки. В рамках этого окна можно открывать новые вкладки, «размножая» Firefox внутри самого себя до бесконечности.

⇡#Лаконичный поиск от Яндекса

Максимально лаконичный дизайн — это одна из ключевых особенностей интерфейса поисковой системы Google. Но у Яндекса тоже есть специальные версии максимально простого дизайна поисковой страницы. Например, по адресу yandex.ru/white.html доступна специальная версия поисковой системы для оптимистов. Ничего лишнего — только мигающий курсор на белом фоне. При вводе поискового запроса выполняется пересылка на обычную страницу результатов. Есть и версия для пессимистов. Откройте страницу yandex.ru/black.html, и вы увидите курсор на черном поле. Кстати, эти шуточные варианты интерфейса были созданы специально к первому апреля, но доступны и во все остальные дни года.

⇡#Страница счастья и секретный уровень Яндекса

Веб-программисты Яндекса знают, что такое чувство юмора, не понаслышке − об этом можно судить и по дизайну страницы 404, которая появляется, если попытаться получить доступ к несуществующей странице на сервере Яндекса. Кроме стандартной информации об ошибке 404, на ней также выводится сообщение «И помните: вы это не читали».

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

⇡#Google Logos — полное собрание дудлов

Один из самых известных «шутников» — поисковая система Google. Все хорошо знают визитную карточку заглавной страницы этого сервиса — знаменитый разноцветный логотип. Эту картинку команда разработчиков обыгрывает при каждом удобном случае, подменяя ее на дудл — изображение, оформленное согласно текущей дате. Все эти картинки и анимации могут делаться не только для общемировых событий, но и для каждой страны индивидуально. Так, например, 23 февраля российские пользователи увидели на логотипе георгиевскую ленточку, а когда все жители планеты отмечали Новый год, на картинке появлялись соответствующие цифры. Логотип иногда подменяется забавной Flash-анимацией, как это было на тридцатилетний юбилей компьютерной игры Pac-Man. Ну, а совсем недавно, 16 апреля, вместо логотипа Google можно было увидеть целый ролик, посвященный памяти легендарного комика немого кино Чарли Чаплина.

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

⇡#Заключение

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

Программисты шутят. Не пора ли запретить?

22 августа 2020

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

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

Список этот можно продолжать и он, конечно, продолжится, по мере того, как техника забирается всё глубже в нашу жизнь. Но сегодня хотелось бы остановиться лишь на одной из обозначившихся таким образом тем — вызвавшей нешуточный спор этой весной и летом. Речь как раз шутках.

Пару-тройку месяцев назад один из участников проекта glibc (это один из самых популярных программных продуктов: open source-реализация главной библиотеки языка C, используемая в том числе в Linux) обнаружил в исходных текстах фрагмент, показавшийся ему может быть неприличным, наверное неуместным, но главное — бесполезным! Фрагмент этот звучал следующим образом (вольный перевод с английского мой — Е.З.): «Поправки к федеральному законодательству могут в будущем помешать нам информировать вас о возможности вызова этой функции или потребуют уточнять, что данная функция не является социально-приемлемым способом остановки программ».

Вырванная из контекста фраза звучит непонятно, но достаточно сказать, что находится она в теле функции abort(), как всё встаёт на свои места. Очевидно кто-то из предыдущих авторов решил… ну, скажем, не посмеяться, но остро пошутить в адрес зарвавшихся законодателей, а заодно и религиозных фанатиков, действия которых могли привести если не к запрету, то к ограничению обсуждения искусственного прерывания беременности. Попросту говоря, некий программер пошутил насчёт цензуры.

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

Случившееся уже само по себе достойно вызвать улыбку: ведь «зацензурили» насмешку над цензурой! Но дискуссия, разгоревшаяся сперва среди разработчиков glibc, а после выплеснувшаяся и на популярные технофорумы, оказалась вовсе не смешной. А тон задал не кто иной, как Ричард Столлман собственной персоной.

«Благословляю твой компьютер, дитя моё!». Ричард Столлман, как всякий хакер, любит повалять дурака. Что никак не умаляет его заслуг: он пятнадцать раз почётный доктор наук и автор или соавтор множества фундаментальных программных инструментов и ИТ-концепций. Большую часть жизни посвятил популяризации идей open source.

Этот колоритный дядька — один из отцов-основателей всего движения свободных исходников. Не в последнюю очередь его усилиями заложен правовой и технический фундамент под желание некоторых людей распространить принцип свободы слова на софт (на случай, если вы никогда не слышали, см. «Имею право!»). И, как и другие классики, он многое сделал своими руками — сейчас его труды по большей части собраны под крышей проектов FSF и GNU.

Столлман не является автором собственно glibc, но напомнил, что для всех субпроектов в GNU (в том числе и glibc) он был и остаётся своего рода главным руководителем, оставляя за собой право корректировать действия разработчиков, чтобы они шли согласно с политикой GNU. А вот автором скандального комментария в glibc был именно он — это он вставил его собственноручно ещё двадцать лет назад. И теперь потребовал вернуть удалённый текст в программу — и его вернули конечно. Но в результате разгорелся спор между сторонниками двух диаметрально противоположных мнений.

Одна группа настроена резко против конкретно этой и всех подобных шуток. Кто знает, говорят они, кому попадут в руки исходники, кому и с каким настроением доведётся их изучать? В лучшем случае шутку просто не поймут — как среднестатистический гражданин России, например, где цензура пока ещё не забралась так глубоко. В худшем — не оценят или оценят неверно, истолковав её в контексте ущемления прав верующих, сочтя за оскорбление тех, для кого тема смерти священна или связана с травмирующими воспоминаниями, и т.п.

И перечень возможных последствий тогда чрезвычайно широк: от неприятного разговора с начальством до увольнения, потери клиентов, уголовного преследования. Тем более, что прецеденты известны — возьмите хоть рассказанную бывшим сотрудником HP историю, как случайная цитата из комикса («Так бы и сжёг вас всех красочным термоядерным зарядом!»), показанная скринсейвером, послужила причиной обвинения в экстремизме и потери работы.

К вопросу о профессионализме. «To fart» переводится с английского, как… гм… «пукнуть». Но отрывок этот уже не из glibc, а из исходников MS-DOS. И такого там много…

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

Столлман парирует, что сегодня шутка даже более актуальна, чем во времена, когда была придумана. Давление государства (напомню, речь о США) и противников абортов снова очень сильно: клиники, информирующие пациентов о праве на аборт, лишают государственных дотаций… Но Столлман исходит из предположения, что шутки в коде вообще имеют право на жизнь — что не очевидно для многих из его оппонентов в данном споре. К счастью, нашлись те, кто поддержал Ричарда, добавив аргументов.

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

Непрофессионально? Может быть. Но open source никогда и не был «профессиональным» в полном понимании этого слова: движение свободных исходников выросло из хакерского движения — хаотичного, неконтролируемого, щедрого. Хакеры возятся с кодом, ломая его там и здесь, сшивая на грубую нитку, чтобы посмотреть, что получится — и их труд не профессионален, потому что не может быть таковым в принципе! Может быть именно поэтому хакеры произвели на свет такие продукты, как Linux, Facebook, Bitcoin.

Динамика употребляемости бранных слов в коде ядра Linux. Графика: Vidar Holen.

Потом, шутки в коде часто всё-таки играют некоторую полезную роль. Помните «Ошибку 418: Я чайник!», придуманную в качестве первоапрельского розыгрыша? Сегодня она реализована во множестве серверов — и заставляет пользователей чесать затылки, когда (регулярно!) они на неё натыкаются. А натыкаются почему? Потому что на 418-ю ошибку принято вешать нераспознанные проблемы. Если что-то в программе пошло не так и она не знает, как классифицировать происходящее, то как раз и может выбросить «Error 418», а разработчики, получив такое, сразу понимают, что проблема заслуживает особого внимания.

Наконец, поиск спрятанных несерьёзных сюрпризов составляет особое удовольствие и для разработчиков, и для пользователей (которым такие сюрпризы известны как «пасхальные яйца»). Но одним нравится наблюдать, как перекашивает «Гугл» от запроса «askew», а другим — считать, сколько раз употреблены бранные словечки в исходниках ядра Linux (а там, простите, одного только «дерьма» больше полутора сотен!). Несерьёзности делают код живым, рутину программинга менее скучной, пользование весёлым. Гарантий, что очередная шутка будет понята правильна, конечно, никто дать не может — но так и вообще программное обеспечение гарантиями не комплектуется.

И не думайте, что авторы проприетарного софта что-то такое гарантируют или что, по причине якобы большего профессионализма, избегают шутить. Вот, вспомните, как это было в коде Microsoft в эпоху, когда она ещё была способной на великие дела: стихи, шуточки религиозного толка, непечатное в комментариях и названиях функций и прочее обычное. Профессионалы тоже люди!

В этом споре лично я на стороне тех, кто отстаивает право шутить без ограничений. Но противников должен обнадёжить. Пройдёт ещё какое-то время, программы станут писать сами машины — и тогда очень быстро машинный код станет нравственно чистым, политкорректным, математически правильным. Искусственному программисту юмор без надобности. Он исключит его именно по причине бесполезности — максимизируя функцию качества f, зависящую от длины кода l, риска неправильного понимания n и сложности алгоритма k…

Но пока за клавиатурой нас не сменила машина — руки прочь от святого!

/привет/мир/etc

Периодические заметки о программировании

понедельник, 28 апреля 2014 г.

Мыслить как программист. Учимся с Python

Представляю вашему вниманию книгу «Мыслить как программист. Учимся с Python», 2-е издание. Это книга для тех, кто хочет научиться программировать. Книга учит программированию, используя язык Python как средство обучения.

Это открытая книга, по аналогии с открытым кодом.

Написанная Джеффри Элкнером (Jeffrey Elkner), Алленом Б. Дауни (Allen B. Downey) и Крисом Мейерсом (Chris Meyers), книга несколько лет использовалась учениками старшей школы как учебное пособие для изучения программирования. За это время она вобрала в себя замечания и дополнения сотен ее читателей. В 2010 — 2012 годах я перевел книгу на русский язык и незначительно переработал ее.

Предисловие к русскому изданию

Эту книгу я встретил очень кстати. У меня давно зрело желание познакомиться с языком Python, и вот весной 2010 года вместе с моим 10-летним сыном Иваном мы решили его осуществить.

Мы читали вслух 2-ое издание книги «Мыслить как программист. Учимся с Python» на английском языке. В результате, Ваня познакомился с основами программирования и научился писать простые программы на Python. Энтузиазм, с которым он осваивал программирование, заглядывал вперед, делился сделанными открытиями стал для меня неожиданной и очень приятной наградой. Книга ориентирована на учеников старших классов школы, поэтому время от времени Ивану требовались дополнительные разъяснения. Но это сделало совместное изучение книги только интереснее.

Книга приятно удивила меня вот в каком отношении. Хотя она адресована людям, которые только начинают изучать программирование, книга рассказывает о приемах и лучших практиках разработки из арсенала профессиональных программистов. Это разработка дизайна программы, автоматическое модульное тестирование, приемы отладки, использующие вспомогательный код (“строительные леса”), и многое другое. Таким образом, книга не играет в программирование с новичками, а дает основные понятия и навыки, необходимые для профессиональной работы.

В книге нет обсуждения низкоуровневых деталей программирования, таких, как двоичный код или байтовая организация данных. Однако есть обсуждение типов данных, встроенных в Python, а также абстрактных структур данных: списков, словаря, стека, очередей, деревьев. Читатель, кроме конструкций языка Python, знакомится с понятиями алгоритма, рекурсии, чистых функций и функций с побочными эффектами, осваивает основы процедурного и объектно-ориентированного программирования. То есть, книга учит читателя как раз тому, что обещает ее название: мыслить (и работать) как программист.

Работая над русским вариантом книги, я сделал некоторые изменения и дополнения.

Авторы исходили из того, что читатель работает с Python в ОС семейства Linux, и в ряде мест в оригинале даже присутствует привязка к конкретным версиям ОС Ubuntu. Я отступил от этой практики. Ведь изучать программирование с помощью Python можно с равным успехом и в ОС Windows.

Англоязычные строки и комментарии в примерах программ оставлены без изменения. Дело в том, что использование русского языка в программах требует дополнительных знаний и усилий. А начинающим программистам дополнительные сложности ни к чему. Однако, в Приложении A подробно изложено, как подружить Python и русский язык, если вы работаете в ОС Windows. Руководствуясь приведенными инструкциями, все желающие смогут русифицировать примеры из книги.

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

Отмечу один случай нетрадиционного перевода термина. Исходные тексты программ на интерпретируемых языках программирования по-английски называют “script”. Это слово в литературе по программированию часто переводят на русский как “сценарий”. Слово “script” имеет много значений, связанных с письменностью. И “сценарий” — лишь одно из них. Ни я, ни кто-либо из моих знакомых коллег-программистов не использует слово “сценарий” в повседневном профессиональном общении, предпочитая ему короткое “скрипт”. Вот почему в книге используется слово “скрипт”.

В разных странах при записи чисел по-разному отделяют целую часть числа от дробной. В России пишут 3,14 через запятую. Во многих англоязычных странах, а также в языках программирования, пишут 3.14, через точку. Поскольку в книге много примеров программ и объяснений этих примеров, то для единообразия я повсюду использую точку в качестве такого разделителя. А тип данных для хранения действительных чисел называется “число с плавающей точкой” вместо “число с плавающей запятой”. Надеюсь, что последовательное применение точки в примерах и остальном тексте книги не затруднит, а облегчит чтение.

Я убрал из книги упоминание библиотеки GASP, примеры ее использования, а также главу, посвященную работе с этой библиотекой. Джеффри Элкнер, один из авторов книги, разработал эту библиотеку, чтобы оживить графикой процесс изучения языка Python в школе. Не сомневаюсь, что библиотека GASP выполняет свою функцию в курсе программирования Джеффри Элкнера. Однако считаю, что ее изучение и работа с ней необязательны для изучающих Python.

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

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

Читая эту книгу — не пренебрегайте упражнениями. И обязательно сами ставьте перед собой вопросы и находите ответы на них при помощи экспериментов с Python. Вкус к программированию приобретается активной работой с компьютером для решения задач и удовлетворения собственного любопытства.

Оригинальную версию книги на английском языке можно найти на сайте проекта Открытая Книга по адресу https://openbookproject.net. Размещенные там книги доступны для скачивания, чтения, изменения и распространения без каких-либо практических ограничений. Такой подход создает отличную возможность для улучшения текстов, их адаптации к конкретным нуждам и распространения среди всех заинтересованных лиц. Данный перевод книги на русский язык не является исключением, см. раздел О правах на эту книгу. Как и открытый код в программировании, открытые книги способствуют коллективному и личному творчеству, и свободному развитию тех, кто с ними соприкасается.

Андрей Трофимов,
инженер-программист,
Владивосток, Россия

Скачать книгу в zip-архиве

Читать в оригинале на сайте Open Book Project

9 интересных фактов, которые знают только программисты

Факт 1. Под капотом самых критичных программ, которые вы используете на ежедневной основе (Mac OS X или Facebook) содержится ужасное количество хаков и костылей, которые с трудом уживаются друг с другом. Это как если бы вы разобрали Боинг 747 и увидели, что топливопровод держится вешалкой для одежды, а шасси смотаны изолентой.

Код программ таков, что даже если сайт или программа прекрасно работают и отлично выглядят, то за кулисами всё, что заставляет его работать, состоит из ошибок, ляпов и костылей. Он работает едва-едва и иногда вообще непонятно, почему.
Факт 2. 25% времени в программировании уходит на размышления о том, что пользователь может сделать не так.
Занимает это на деле больше или меньше процентов времени, но каждый раз нам действительно необходимо подумать – а что пользователь может тут сломать. Куда нажмёт, что введёт, и как можно понять то, что мы пытаемся сделать, неправильно. Если бы мы рассчитывали только на себя, у программ было бы слишком много проблем –
ведь мы знаем, как программа работает, а пользователь не знает.
Факт 3. Программист – это не специалист по ремонту компьютеров
Программист работает с алгоритмами и принципами разработки, а не чинит компьютеры. Мы можем понимать, как компьютер работает и как исполняется код. Но это не значит, что мы умеем чинить железо. Мы не знаем, какая проблема в Chrome роняет его на вашем компьютере, или почему ваш компьютер перегревается. Программисты программируют компьютеры, а не чинят их.
Факт 4. Программирование – это размышление, а не печатание
По большей части мы программируем, когда спим, гуляем, смотрим в окно, или делаем что-то ещё, что позволяет нам расслабиться и думать. Расслабление – один из важных аспектов программирования. Нельзя просто сесть и написать тысячу строк кода и вставить их в программу. Нам необходимо посидеть, походить, подумать. Придумать концепцию, исправить её недостатки, решить, как она будет работать… Расслабление – единственный способ, которым мы можем пользоваться для исправления проблем.
Факт 5. Отсчёт начинается с нуля
Это важно. Подсчёт идёт с нуля – ваш 1 это мой 0, ваш 10 это мой 9. Всё из-за необходимости делать вещи эффективно, когда даже небольшая прибавка к эффективности может в масштабе увеличить производительность.
Факт 6. Программировать лучше всего в потоке – в таком состоянии сознания, когда вы сфокусированы на задаче и всё кажется простым. Это состояние знакомо также атлетам и музыкантам.
Программисты любят работать по ночам потому, что это позволяет нам входить поток, сфокусироваться на чём-то одном и не волноваться о том, что нас могут отвлечь. Все остальные просто спят. Это такое время дня, когда никого нет рядом, никто не звонит и не пытается с нами поговорить. Прекрасное время, чтобы думать и программировать.
Факт 7. Иногда полезно отложить проблему до утра
Иногда программистам действительно полезно, встретив сложную задачу, поспать «с ней». Множество раз я встречался с тем, что мне часами не удавалось решить что-то, но после всего лишь 20-минутного сна (или любого другого сна) по пробуждению решение приходило само.
Факт 8. «Родитель» может убить своих «детей», если их задача выполнена
Не та фраза, которую бы хотелось услышать от кого-либо. Но для программистов она звучит не так страшно. Программы часто имеют иерархическую структуру, где родительский процесс контролирует его дочерние процессы, запущенные на уровне ниже.
Когда родительскому процессу больше не нужен дочерний, он его убивает – когда программе больше ничего не надо делать, её выполнение заканчивают.
Факт 9. Вы не впечатляетесь тем, как много мы знаем о компьютерах. Мы не впечатляемся тем, как мало вы знаете о них.
Серьёзно. Хватит уже. Нам неважно, как вы горды тем, что не желаете обучаться новым вещам. Понятно, если вы говорите «я мало знаю о компьютерах» или «мне не интересно программировать» — но когда вы хвалитесь тем, как много вы об этом не знаете, это просто раздражает.
загрузка.

Английский для программистов и других компьютерных специальностей: полезные слова и фразы из мира IT

PHP, Python, Java… Какой язык учить? Учите английский!

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

Компьютерные профессии на английском

Разработчик программного обеспечения, программист (Software Developer, Computer Programmer) — разрабатывает приложения для выполнения различных задач на компьютерах и других устройствах.

Исследователь в области вычислительной техники и информатики (Computer and Information Research Scientist) — придумывает новые технологии для решения сложных проблем в различных областях, таких как медицина, образование или бизнес.

Системный аналитик (Computer System Analyst) — анализирует бизнес-требования к создаваемому программному продукту и предлагает наилучшие пути их воплощения.

Сетевой архитектор (Computer Network Architect) — специализируется на создании корпоративных сетей для предприятий и организаций.

Веб-разработчик (Web Developer) — разрабатывает веб-сайты для предприятий и организаций.

Администратор баз данных (Database Administrator) — занимается организацией и хранением данных, а также их защитой от несанкционированного доступа.

Системный администратор (Network and Computer System Administrator) — занимается установкой и поддержкой компьютерных систем для различных организаций и учреждений (школы, больницы, банки).

Графический дизайнер (Graphic Designer) — создает компьютерную графику.

Тестировщик ПО (Software Tester, Quality Assurance Person или QA) — тестирует программное обеспечение.

Технический писатель (Technical Writer) — создает документацию к программному продукту.

Специалист техподдержки (Computer Support Specialist) — помогает пользователям решать проблемы с компьютером.

О чем говорят айтишники: полезные фразы для ежедневного общения

Даем описание продукции

Простое настоящее время (Present Simple)

— It costs fifty dollars. (How much does it cost?) — Оно стоит 50 долларов. (Сколько оно стоит?)
— It monitors employee activity. (What does it monitor?) — Оно отслеживает действия сотрудников. (Что оно отслеживает?)
— It is easy to use. (Is it easy to use?) — Им несложно пользоваться. (Сложно ли им пользоваться?)
— It is available in three colours. (Is it available in other colours?) — Оно есть в трех цветах. (Оно есть в других цветах?)
— It comes with a two-year guarantee. (Does it come with a guarantee?) — Оно идет с двухгодичной гарантией. (Оно идет с гарантией?)

Пассивный залог (Passive Voice)

— This device is manufactured in India. (Where is this device manufactured?) — Это устройство произведено в Индии. (Где произведено это устройство?)
— It is designed for competent users. (Who is it designed for?) — Оно разработано для опытных пользователей. (Для кого оно разработано?)
— It can be used for internal communication. (What can it be used for?) — Оно может использоваться для внутренней связи. (Для чего оно может использоваться?)
— It is equipped with a signature recognition software. (What is it equipped with?) — Оно оборудовано программным обеспечением для распознавания подписи. (Чем оно оборудовано?)
— The cover is made of leather. (What is the cover made of?) — Обложка сделана из кожи. (Из чего сделана обложка?)

Сравнительная и превосходная степень (Comparatives and Superlatives)

— The new version is more reliable than the old one. (Is the new version more reliable than the old one?) — Новая версия надежнее, чем старая. (Новая версия надежнее старой?)
— It’s smaller than a laptop. (Is it smaller than a laptop?) — Оно меньше, чем ноутбук. (Оно меньше, чем ноутбук?)
— It’s not as expensive as a PC. (Is it cheaper than a PC?) — Оно не такое дорогое, как персональный компьютер. (Оно дешевле персонального компьютера?)
— It’s the cheapest product on the market. — Это самый дешевый продукт на рынке.

Устраняем неполадки

Настоящее совершенное время (Present Perfect)

— Have you tried removing the program? — Вы пытались удалить программу?
— Have you checked your network settings? — Вы проверили настройки сети?
— Have you disabled the extensions? — Вы отключили расширения?

Прошедшее время (Past Tense)

— What were you doing when the error occurred? — Что вы делали в тот момент, когда произошла ошибка?
— Did you initialize the drive? — Вы подготовили диск к работе (инициализировали диск)?
— Did you verify software compatibility? — Вы проверили совместимость программного обеспечения?

“should” — «(Вам) Нужно…»

— You should download a data recovery software. — Вам нужно скачать утилиту для восстановления данных.
— You should back up all the restored data. — Вам нужно создать копию всех восстановленных данных.

“Why don’t you…” — «Попробуйте…»

— Why don’t you try using the default password? — Попробуйте использовать пароль по умолчанию.
— Why don’t you run some tests to make sure everything is stable? — Попробуйте провести несколько тестов, чтобы убедиться, что все в порядке.

Повелительное наклонение (Imperative)

— Burn the ISO to a blank DVD. — Запишите образ ISO на чистый DVD-диск.
— Disable the internal GPU. — Отключите встроенный процессор.
— Don’t attempt to write anything on the hard drive. — Не пытайтесь записать что-либо на жесткий диск.
— Don’t click Yes to format the drive. — Не нажимайте «Да» на предложение отформатировать диск.​

Общаемся с клиентами и коллегами

Разговариваем по телефону

— This is Ivan Popov speaking. — Говорит Иван Попов.
— I would like to speak to Mr Brown. / Can I speak to Mr Brown? — Я бы хотел поговорить с господином Брауном. / Могу я поговорить с господином Брауном?
— I would like to leave a message for Ms Jones. Can you ask her to call me back as soon as possible? — Я бы хотел оставить сообщение для госпожи Джонс. Вы бы не могли попросить ее перезвонить мне как можно скорее?
— I’ll make sure she gets the message. — Я прослежу, чтобы ей передали ваше сообщение.
— I’m sorry, I don’t understand / I can’t hear you very well. — Простите, я вас не понял / я вас не расслышал.
— Could you say that again? Can you speak up a little? — Вы бы не могли повторить? Вы бы не могли говорить чуть громче?
— I’m calling to make an appointment with Mr Brown. — Я бы хотел назначить встречу господину Брауну.
— I’m calling about the problem you reported this morning. — Я звоню по поводу проблемы, о которой вы сообщили утром.
— I’m calling about the computer you have ordered. — Я звоню по поводу компьютера, который вы заказали.
— I’m sorry, I’m in a meeting / I’m very busy at the moment. — Простите, я на совещании / я занят в настоящий момент.
— I’ll get back to you as soon as possible. — Я перезвоню вам, как только смогу.
— Can I call you back this afternoon? — Могу я перезвонить вам днем?

О том, как разговаривать по телефону на английском, читайте в нашей статье Все еще боитесь говорить по телефону на английском?

Пишем электронное письмо

— Dear Mr/Ms Jones, — Дорогой(ая) мистер/миз Джонс,
— Dear Dr Smith, — Дорогой доктор Смит,
— Dear Sir/Madam, — Уважаемый господин/госпожа,
— I am writing to let you know that your payment is overdue. — Сообщаю Вам, что Ваш платеж просрочен.
— Thank you for your e-mail of 29 February regarding the sale of… — Благодарю Вас за Ваше электронное письмо от 29 февраля касательно продажи…
— I am sending you the brochure as an attachment. — Посылаю Вам брошюру в прикрепленном файле.
— Please see the statement attached. — Пожалуйста, рассмотрите прикрепленный акт.
— I am afraid I cannot open the file you have sent me. — Боюсь, у меня не получилось открыть файл, который Вы мне послали.
— Could you send it again in … format? — Вы не могли бы отправить его заново в формате …?
— I look forward to hearing from you. — С нетерпением жду Вашего ответа.
— Yours faithfully, (when you start with Dear Sir/Madam,) — С уважением, (если вы начали письмо с “Dear Sir/Madam”)
— Yours sincerely, (when you start with the name e.g. Dear Ms Collins) — Искренне ваш, (если вы начали письмо с имени или фамилии, например“Dear Ms Collins”)

Болтаем о том, о сем…

Small talk — «светская беседа», неформальный разговор о чем угодно, только не о делах. Бывает, что важных тем для обсуждения нет, а молчать неудобно. Такое может случиться, например, перед совещанием, пока ждут участников, или во время кофе-брейка — а также у лифта, на остановке или в столовой в обеденный перерыв.

— How are you? Did you have a good weekend? — Как ваши дела? Как провели выходные?
— How is your wife/husband? How are the children? — Как ваш(а) супруг(а)? Как дети?

— It’s so hot today, isn’t it? / It’s so cold today, isn’t it? — Сегодня так жарко, не правда ли? / Сегодня так холодно, не правда ли?
— Yes, very hot/cold for this time of the year. What are you doing at the weekend? — Да, очень жарко/холодно для этого времени года. Чем займетесь на выходных?

— Have you been working here long? — Вы давно здесь работаете?
— Have you met the new accountant? — Вы видели нового бухгалтера?
— Do you know any good restaurants near here? — Вы не знаете какой-нибудь хороший ресторан неподалеку?
— I just love the chocolate eclair they make in the canteen. Have you tried it? — Обожаю шоколадные эклеры, которые подают в буфете. Вы пробовали?

— My dog just didn’t want me to come to work this morning. Do you have a dog? — Моя собака просто не хотела отпускать меня на работу сегодня утром. А у вас есть собака?
— Did you watch the match last night? — Вы смотрели матч вчера вечером?
— Have you seen any good films lately? I’d like to take my wife to the cinema this weekend. — Вы смотрели какие-нибудь хорошие фильмы в последнее время? Я бы хотел сводить супругу в кинотеатр на выходных.

Вы еще не устали? А ведь вы дошли только до половины нашей статьи! Сделаем музыкальную паузу:

Топ-75 слов, которые должен знать каждый айтишник

  1. abbreviation — аббревиатура
    Сокращенная форма слова или словосочетания из первых (нескольких первых) букв.
    The abbreviation ’RAM’ stands for Random Access Memory. — Аббревиатура ОЗУ обозначает «оперативное запоминающее устройство».
  2. analysis — анализ
    Критическое изучение, разбор чего-л.
    A financial analysis was carried out in order to improve cost efficiency. — С целью повышения экономической эффективности был проведен финансовый анализ.
  3. appliance — устройство
    Приспособление или инструмент для выполнения определенной задачи.
    They sell a wide range of virtual appliances. — Они продают целый ряд виртуальных устройств.
  4. application (также software application) — программное приложение
    Компьютерная программа, разработанная для выполнения определенных задач.
    This database application lets you manage your contacts and organise your projects. — Это приложение для работы с базами данных позволяет управлять контактами и заниматься организацией проектов.
  5. arise — возникнуть
    Случиться, появиться (офиц.) — обычно о проблемах или непредвиденных обстоятельствах.
    Problems may arise when trying to request data from a remote web service. — При запросе данных от удаленного веб-сервиса могут возникнуть проблемы.
  6. available — доступный, имеющийся
    Такой, который можно найти/купить/арендовать/использовать и т. д.
    Available memory refers to how much RAM is not being used by the computer. — Доступная память показывает, какой объем оперативной памяти не используется компьютером.
  7. background — предыстория
    События в прошлом человека или компании. Часто используется, когда говорят о профессиональном опыте человека (What is your professional background?).
    It’s always a good idea to research a company’s background before doing business with them. — Всегда полезно изучить предысторию компании, прежде чем вести с ней дела.
  8. carpal tunnel syndrome — «туннельный синдром»
    Неврологическое заболевание, проявляющееся болью между локтем и ладонью или в пальцах. Если вы компьютерщик — увы, это выражение может вам когда-нибудь пригодиться…
    The development of Carpal Tunnel Syndrome might be linked to computer use. — Развитие туннельного синдрома может быть связно с работой за компьютером.
  9. certification — сертификат
    Официальный документ, присуждаемый стандартизующей организацией, который подтверждает компетентность в конкретной профессиональной области.
    Earning the latest Microsoft certifications may help you further your career. — Получение последнего сертификата Microsoft может поспособствовать вашей карьере.
  10. chief — главный; начальник, руководитель.
    Chief Information Officer (CIO) is responsible for the computer systems of a company. — Начальник информационного управления отвечает за компьютерные системы в компании.
  11. common — распространенный
    One of the most common Internet crimes is drug trafficking. — Одно из самых распространенных киберпреступлений — незаконный оборот наркотиков.
  12. compatible — совместимый
    Допускающий совместное использование с другим оборудованием.
    ​The parts I ordered weren’t compatible with my PC. — Заказанные комплектующие оказались несовместимыми с моим ПК.
  13. consultant — консультант
    Сотрудник, который предоставляет компании информацию и дает профессиональную консультацию.
    Do you think we should contact an IT consultant? — Думаете, стоит обратиться к ИТ-консультанту?
  14. convenience — удобство
    We provide outstanding products and 24/7 phone support for the convenience of our customers. — Мы предлагаем высококачественную продукцию и предоставляем круглосуточную телефонную поддержку для удобства наших клиентов.
  15. customer — потребитель
    Человек, приобретающий продукт или услугу.
    Good customer care can improve customer loyalty. — Забота о потребителе повышает его лояльность.
  16. database — база данных
    Способ организации больших объемов информации.
    This software creates a customer database to eliminate paperwork. — В этой программе формируется база данных клиентов, что позволяет избавиться от бумажной работы.
  17. deal — сделка
    Коммерческая операция; «продукт при полном непротивлении сторон».
    To find out more about our deals, please visit our website. — За более подробной информацией о сделках, пожалуйста, обратитесь на наш веб-сайт.
  18. demand — спрос
    Потребность в продукте.
    Online keyword selector tools may help you find out whether certain products are in high demand. — Инструменты поиска по ключевым словам могут помочь выяснить, пользуется ли определенный продукт высоким спросом.
  19. detailed — детальный, подробный
    A more detailed description is available on our website. — Более детальное описание доступно на нашем веб-сайте.
  20. develop — разрабатывать
    To develop software — разрабатывать программное обеспечение.
    We have decided to develop a new database app. — Мы решили разработать новое приложение для работы с базами данных.
  21. drawback — недостаток
    Изъян, отрицательная черта.
    The main drawback of this product is the high cost. — Главный недостаток этого товара — высокая цена.
  22. effective — эффективный (действенный)
    Способный обеспечить планируемый результат.
    Anti-virus software is not always effective against viruses. — Антивирусные программы не всегда эффективны против вирусов.
  23. efficient — эффективный (с высоким КПД)
    Продуктивный при минимальных затратах.
    Energy efficient home appliances can save you a lot of money. — Энергоэффективные бытовые приборы могут помочь вам значительно сэкономить.
  24. employ — нанимать
    Брать кого-л. на работу. Employer — работодатель, employee — сотрудник.
    The police often employ hackers. — Полиция часто нанимает хакеров.
  25. enterprise — предприятие
    Коммерческая организация.
    He’s the founder of an enterprise software company. — Он основатель компании по производству программного обеспечения для предприятий.
  26. environment — среда
    Обстановка, окружающие условия.
    Our aim is to design effective computer-based learning environments. — Наша цель — создать эффективную среду обучения, основанную на компьютерных технологиях.
  27. equipment — оборудование
    Устройства и инструменты для определенной цели.
    No recording equipment is allowed in the conference room. — В зале для совещаний запрещено пользоваться записывающим оборудованием.
  28. expertise — компетентность
    Углубленные знания в какой-л. области. Обратите внимание: ударение в этом слове падает на последний слог — [ˌɛkspəːˈtiːz].
    We need someone with expertise in virtualized IT environments. — Нам нужен кто-то компетентный в области виртуализированных сред ИТ.
  29. eyestrain — зрительное перенапряжение
    Боль и усталость глаз.
    Eyestrain has become a major health complaint among IT workers. — Зрительное перенапряжение стало главной жалобой на здоровье среди работников ИТ-сферы.
  30. ​goal — цель
    We can help you accomplish your goals. — Мы поможем вам добиться ваших целей.
  31. gadget — гаджет
    Небольшое цифровое устройство.
    You can choose from the most popular high-tech gadgets in our shop. — В нашем магазине на ваш выбор представлены самые популярные высокотехнологичные гаджеты.
  32. implement — реализовывать
    I need to implement two interfaces. — Мне нужно реализовать два интерфейса.
  33. increase — увеличивать(ся)
    Сделать(ся) больше в размерах/числе.
    You should try using more photographs to increase the conversion rate of your website. — Попытайтесь использовать больше фотографий, чтобы увеличить посещаемость вашего веб-сайта.
  34. install — устанавливать
    to install software — устанавливать программное обеспечение
    You’ll have to install the latest version of Adobe Flash Player. — Вам придется установить последнюю версию Adobe Flash Player.
  35. instruction — инструкция
    Указания, которым нужно следовать.
    Just follow the step-by-step instructions, which will guide you through the setup process. — В процессе установки просто следуйте пошаговой инструкции.
  36. insurance — страхование
    Финансовая защита собственности, жизни, здоровья и проч.
    Nowadays, insurers offer insurance for cyber losses. — В наши дни страховщики предлагают страхование на случай виртуальных потерь.
  37. integrate — интегрировать
    Объединить два или более в одно целое.
    The new features are tightly integrated with the existing service. — Новые функции тесно интегрированы с существующей платформой.
  38. intranet — интранет
    Локальная компьютерная сеть.
    Our online library can be accessed on the college intranet. — Доступ к онлайн-библиотеке нашего колледжа можно осуществить через интранет.
  39. latest — последний
    Новейший, современный.
    Download the latest updates on our company’s website. — Загружайте последние обновления с веб-сайта нашей компании.
  40. leadership — лидерство
    Способность вести за собой группу людей (или соответствующая позиция в группе).
    In a job interview, it’s best to give concrete examples to demonstrate your leadership skills. — Во время интервью при приеме на работу лучше привести конкретные примеры, демонстрирующие ваши способности к лидерству.
  41. level with someone — быть откровенным с кем-л.
    Быть честным, говорить правду кому-л.
    Do you think we can level with them and ask for more time? — Как думаете, мы можем быть с ними откровенны и попросить дополнительное время?
  42. low — низкий
    Low price may indicate low quality. — Низкая цена может свидетельствовать о низком качестве.
  43. maintain — поддерживать
    Содержать в рабочем состоянии.
    A poorly maintained website may kill your business. — Веб-сайт, который практически не поддерживается, может нанести непоправимый ущерб вашему бизнесу.
  44. matrix — матрица
    Группа элементов, организованных в строки и столбцы.
    Data Matrix Codes should appear on the outside packaging of medicinal products. —На упаковке медицинских препаратов должен присутствовать матричный штрих-код.
  45. monitor — осуществлять мониторинг
    Наблюдать, следить за чем(кем)-л.
    Your website will be monitored 24/7. — Мониторинг вашего веб-сайта будет осуществляться круглосуточно.
  46. negotiate — вести переговоры
    Торговаться или обсуждать условия, пока не будет достигнуто соглашение.
    Web designers often come across clients who want to negotiate prices. — Веб-дизайнеры часто сталкиваются с клиентами, которые начинают вести переговоры о цене.
  47. occur — случаться, происходить
    Why do errors occur? — Почему случаются ошибки?
  48. order — заказывать
    To order products, please fill out this form. — Чтобы заказать товар, пожалуйста, заполните эту форму.
  49. outsource — осуществлять аутсорсинг
    Пользоваться услугами сторонних компаний для реализации собственных проектов.
    Packaging is often outsourced to Asia. — Сборка часто осуществляется путем аутсорсинга в Азию.
  50. oversee — курировать
    Осуществлять наблюдение и руководство.
    Our Project Manager oversees the development of this new product. — Наш менеджер по проектам курирует разработку нового продукта.
  51. plan — план
    Последовательность шагов на пути к цели.
    We need a plan for increasing our market share in the US. — Нам нужен план, чтобы увеличить нашу долю на рынке США.
  52. prevail — превалировать, преобладать
    Google prevails in book digitalization. — Гугл превалирует в сфере перевода книг в цифровой формат.
  53. process — процесс
    Ход создания чего-л.
    All our employees will take part in the decision-making process. — Все наши сотрудники примут участие в процессе принятия решений.
  54. promote — продвигать
    Способствовать росту популярности чего-л.
    I think you should start promoting your products online right now. — Думаю, вам стоит начать продвигать вашу продукцию онлайн уже сейчас.
  55. prospect — перспектива
    We are excited by the prospect of working with you. — Мы воодушевлены перспективой работы с вами.
  56. provide — предоставлять
    We provide excellent service. — Мы предоставляем превосходный сервис.
  57. rapid — стремительный
    The last decade saw rapid expansion of the service sector. — В последнюю декаду мы наблюдали стремительное разрастание сферы услуг.
  58. reduce — снижать
    The price of this product needs to be reduced. — Цену на этот товар нужно понизить.
  59. remote — удаленный
    This software provides secure remote access of computers from any location. — Эта программа обеспечивает безопасный удаленный доступ к компьютерам из любой точки.
  60. replace — заменить
    Занять место чего(кого)-л.
    How can I replace my laptop fan? — Как мне заменить кулер в моем ноутбуке?
  61. research — исследование
    Изучение, поиск информации.
    Market research was carried out to identify customer needs. — Для изучения нужд потребителей было проведено маркетинговое исследование.
  62. resource — ресурс
    This site provides useful links to resources on English language e-learning. — Этот сайт предоставляет полезные ссылки на ресурсы по дистанционному обучению английскому языку.
  63. respond — отвечать, реагировать
    You must respond within ten days. — Вы должны дать ответ в течение десяти дней.
  64. simultaneous — одновременный
    The charger has a built-in USB power port and includes both a mini and a micro USB cable for simultaneous charging of your mobile devices. — Зарядное устройство имеет встроенный USB-порт и мини- и микрокабель USB для одновременной зарядки ваших мобильных устройств.
  65. solve — решать
    How do I solve a sound quality problem when uploading to Youtube? — Как мне решить проблему с качеством звука при загрузке на Youtube?
  66. sophisticated — сложный, «продвинутый»
    Our software makes the setup of sophisticated devices easy. — Наше программное обеспечение упрощает процесс установки продвинутых устройств.
  67. specifications — спецификация
    Детальное описание (продукта).
    We reserve the right to change the specifications of our products without notice. — За нами остается право менять спецификацию наших продуктов без предупреждения.
  68. substantial — существенный
    Весомый, ощутимый.
    There has been a substantial increase in buying power in our country. — В нашей стране наблюдается существенное увеличение покупательной способности.
  69. sufficient — достаточный
    The warehouse always has sufficient stock. — На складе всегда достаточный запас.
  70. suitable — подходящий
    Уместный, отвечающий потребностям.
    The keyboard should be suitable to the user. — Клавиатура должна быть подходящей для пользователя.
  71. task — задача
    Have a look at our task manager. — Обратите внимание на наш диспетчер задач.
  72. tool — инструмент
    This is our most downloaded network tools software. — Это программное обеспечение для работы с сетевыми инструментами скачивают у нас чаще всего.
  73. transfer — переводить, перемещать, пересылать
    You can transfer money online with PayPal services. — PayPal позволяет переводить деньги онлайн.
  74. vendor — поставщик
    You can buy items from multiple vendors in one order. — Вы можете включить в один заказ товары от нескольких поставщиков.
  75. webinar — вебинар
    Интернет-семинар.
    Join us next week for a free webinar on computer-based learning. — Приглашаем вас поучаствовать в бесплатном вебинаре по компьютерному обучению на следующей неделе.

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

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

Где попрактиковаться в программировании: 30 ресурсов

Быть настоящим программистом — это не только смотреть тысячи часов видео, но и писать десятки тысяч строк кода. Подобрали для вас полезные ресурсы, на которых можно размяться в программировании. Расскажем о них в алфавитном порядке.

C Puzzles

Сайт с головоломками на языке С. Может быть полезен и тем, кто не знает C, но изучает С-подобные языки.

Code Abbey

Множество задач по программированию, рейтинг участников и форум.

CodeChef

Ресурс для регулярных соревнований по программированию. Есть раздел для практики с заданиями разных уровней сложности. Можно потренироваться или выиграть денежный приз.

CodeCombat

Ресурс для начинающих, где обучение построено как игра с возрастающей сложностью. Подойдет изучающим Python, JavaScript или HTML&CSS с нуля.

Codeforces

Русскоязычная платформа для марафонов по программированию. Пользователи делятся на два дивизиона — начинающие соревнуются отдельно от опытных. Можно участвовать в состязаниях или просто тренироваться на задачах в режиме дорешивания.

Codewars

Платформа с разными заданиями — от алгоритмов до шаблонов проектирования — ждет разработчиков, программирующих на Java, JavaScript, PHP, Go, Ruby и других языках. Предварительно надо пройти тестирование.

Coding Bat

Ресурс, посвященный Java и Python. Опытным и начинающим программистам доступны упражнения и справочные материалы по языкам.

CodinGame

Увлекательная практика в формате видеоигр. Поддерживаются 25 языков: Java, JavaScript, PHP, Python, Swift, C#, C++, Ruby и другие.

Empire of Code

Русскоязычный ресурс с задачами по Python и JavaScript в формате игры. Участники пишут код для стратегии и тактики персонажей.

Exercism

Сайт предлагает задачи на 48 языках программирования. Пользователь скачивает упражнения, решает их на собственном компьютере, а затем проверяет с наставником. Например, в разделе Python 111 упражнений и 70 менторов, его изучают 29 тысяч пользователей, а в разделе PHP — 64 упражнения, 14 наставников и 4 тысячи студентов.

HackerRank

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

InterviewBit

Сайт помогает подготовиться к интервью в Google, Facebook, Microsoft и других корпорациях и получить оффер.

LeetCode

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

MAXimal

Русскоязычный ресурс для освоения алгоритмов. Есть подробные описания и упражнения. Бонус — большая библиотека по программированию. Сайт не обновляется.

MindCipher

Ресурс позиционируется как социальный репозиторий с самыми занимательными головоломками.

Programming Praxis

Блог, в котором еженедельно размещают новые интересные задачи, чтобы программисты тренировали навыки и мозги.

Programming Skills

Сайт с онлайн-тестами и вопросами для технического интервью. Подойдет тем, кто работает с HTML, JavaScript, C#, Java, PHP, C# и другими ЯП.

Programmr

Платформа, на которой собраны задачки по Java, PHP, Python, C# и Ruby. Ресурс давно не обновляется, но потренироваться еще можно.

Project Euler

Сайт с непростыми заданиями для математиков и программистов. Задачи ранжируются по сложности.

Prolog Problems

На сайте программиста Вернера Хетта вы найдете краткий курс по языку Prolog и сборник упражнений для тренировки. Ресурс не обновляется.

PythonChallange

Сайт для тех, кто хочет освоить Python. Чтобы пройти многоуровневую игру Challenge, надо создавать небольшие программы. Сейчас в ней 33 уровня сложности.

Rosalind

Ресурс по изучению биоинформатики. Есть обучающий курс по Python.

Ruby Quiz

Еженедельная викторина по Ruby, которая приходит в рассылке. Автор ресурса отошел от дел, но инициативу продолжают энтузиасты. Можно подписаться на письма или порешать задачки из архивных выпусков.

На платформе Sphere Online Judge зарегистрированы 650 тысяч пользователей и размещено более шести тысяч заданий. Ресурс поддерживает 45 языков программирования, в том числе C, C++, Pascal, Perl, Haskell, Ocaml и другие.

SQL-EX.RU

Кладезь знаний для тех, кто изучает SQL. Множество упражнений для отработки навыков и рейтинг участников.

Timus Online Judge

Ресурс Уральского федерального университета, на котором собран архив задач по программированию с автоматической проверкой.

Topcoder

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

W3Resource

Портал предлагает огромное количество обучающих материалов по веб-разработке, базам данных, Linux и даже программам Excel или шаблонам Google Forms. Есть упражнения и квизы по базам данных, PHP, JavaScript, Java, Swift и другим языкам.

Питонтьютор

Русскоязычный ресурс для новичков в Python. Это интерактивный учебник с задачками, которые решаются без установки среды, прямо в браузере.

Школа программиста

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

А вы где практикуетесь? Поделитесь в комментариях.

Быть настоящим программистом — это не только смотреть тысячи часов видео, но и писать десятки тысяч строк кода. Подобрали для вас полезные ресурсы, на которых можно размяться в программировании. Расскажем о них в алфавитном порядке.

C Puzzles

Сайт с головоломками на языке С. Может быть полезен и тем, кто не знает C, но изучает С-подобные языки.

Code Abbey

Множество задач по программированию, рейтинг участников и форум.

CodeChef

Ресурс для регулярных соревнований по программированию. Есть раздел для практики с заданиями разных уровней сложности. Можно потренироваться или выиграть денежный приз.

CodeCombat

Ресурс для начинающих, где обучение построено как игра с возрастающей сложностью. Подойдет изучающим Python, JavaScript или HTML&CSS с нуля.

Codeforces

Русскоязычная платформа для марафонов по программированию. Пользователи делятся на два дивизиона — начинающие соревнуются отдельно от опытных. Можно участвовать в состязаниях или просто тренироваться на задачах в режиме дорешивания.

Codewars

Платформа с разными заданиями — от алгоритмов до шаблонов проектирования — ждет разработчиков, программирующих на Java, JavaScript, PHP, Go, Ruby и других языках. Предварительно надо пройти тестирование.

Coding Bat

Ресурс, посвященный Java и Python. Опытным и начинающим программистам доступны упражнения и справочные материалы по языкам.

CodinGame

Увлекательная практика в формате видеоигр. Поддерживаются 25 языков: Java, JavaScript, PHP, Python, Swift, C#, C++, Ruby и другие.

Empire of Code

Русскоязычный ресурс с задачами по Python и JavaScript в формате игры. Участники пишут код для стратегии и тактики персонажей.

Exercism

Сайт предлагает задачи на 48 языках программирования. Пользователь скачивает упражнения, решает их на собственном компьютере, а затем проверяет с наставником. Например, в разделе Python 111 упражнений и 70 менторов, его изучают 29 тысяч пользователей, а в разделе PHP — 64 упражнения, 14 наставников и 4 тысячи студентов.

HackerRank

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

InterviewBit

Сайт помогает подготовиться к интервью в Google, Facebook, Microsoft и других корпорациях и получить оффер.

LeetCode

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

MAXimal

Русскоязычный ресурс для освоения алгоритмов. Есть подробные описания и упражнения. Бонус — большая библиотека по программированию. Сайт не обновляется.

MindCipher

Ресурс позиционируется как социальный репозиторий с самыми занимательными головоломками.

Programming Praxis

Блог, в котором еженедельно размещают новые интересные задачи, чтобы программисты тренировали навыки и мозги.

Programming Skills

Сайт с онлайн-тестами и вопросами для технического интервью. Подойдет тем, кто работает с HTML, JavaScript, C#, Java, PHP, C# и другими ЯП.

Programmr

Платформа, на которой собраны задачки по Java, PHP, Python, C# и Ruby. Ресурс давно не обновляется, но потренироваться еще можно.

Project Euler

Сайт с непростыми заданиями для математиков и программистов. Задачи ранжируются по сложности.

Prolog Problems

На сайте программиста Вернера Хетта вы найдете краткий курс по языку Prolog и сборник упражнений для тренировки. Ресурс не обновляется.

PythonChallange

Сайт для тех, кто хочет освоить Python. Чтобы пройти многоуровневую игру Challenge, надо создавать небольшие программы. Сейчас в ней 33 уровня сложности.

Rosalind

Ресурс по изучению биоинформатики. Есть обучающий курс по Python.

Ruby Quiz

Еженедельная викторина по Ruby, которая приходит в рассылке. Автор ресурса отошел от дел, но инициативу продолжают энтузиасты. Можно подписаться на письма или порешать задачки из архивных выпусков.

На платформе Sphere Online Judge зарегистрированы 650 тысяч пользователей и размещено более шести тысяч заданий. Ресурс поддерживает 45 языков программирования, в том числе C, C++, Pascal, Perl, Haskell, Ocaml и другие.

SQL-EX.RU

Кладезь знаний для тех, кто изучает SQL. Множество упражнений для отработки навыков и рейтинг участников.

Timus Online Judge

Ресурс Уральского федерального университета, на котором собран архив задач по программированию с автоматической проверкой.

Topcoder

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

W3Resource

Портал предлагает огромное количество обучающих материалов по веб-разработке, базам данных, Linux и даже программам Excel или шаблонам Google Forms. Есть упражнения и квизы по базам данных, PHP, JavaScript, Java, Swift и другим языкам.

Питонтьютор

Русскоязычный ресурс для новичков в Python. Это интерактивный учебник с задачками, которые решаются без установки среды, прямо в браузере.

Школа программиста

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

А вы где практикуетесь? Поделитесь в комментариях.

Мастер Йода рекомендует:  Самые популярные расширения для Visual Studio Code
Добавить комментарий