Истории с тегом: образование

Всего историй: 725

6547

Проверено Раздолбаем: индуизма нет

Жили были лет этак -надцать назад два студента. Учились они в одном вузе, на одном факультете и даже в одной группе.

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

Как-то раз случился между означенными студентами холивар: во сколько строчек кода можно реализовать сортировку пузырьком в самом простом варианте? Физматик утверждал, что меньше чем в полсотни не уложиться; Раздолбай общеобразовательный стоял на том, что 20 — это максимум.

Спор разрешил преподаватель (мировая тётушка, дай ей Бог здоровья), предложив противоборствующим сторонам реализовать свои планы на ближайшем семинаре, благо он и так будет посвящён сортировкам и их последствиям. Стороны согласились.

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

Итак, программы набиты, указательные пальцы замерли над клавишами F9… Старт! «Раздолбайская» программа молча скомпилировалась, скушала поданный массив, отсортировала его и ждала, когда милостивый хозяин нажмёт что-нибудь, дабы она могла удалиться на покой. «Физматская» никак не желала компилироваться: ошибки пёрли из всех щелей. Даже после того, как они были побеждены, борьба за результат продолжалась почти до конца пары.

В дальнейшем пути студентов разошлись: Физматик перевёлся в самый крутой вуз страны, Раздолбай отчислился из-за академической неуспеваемости (любите физкультуру — и будет вам счастье) и более никогда не пытался получить заветную корочку диплома (вру, нагло вру: на третьем курсе я).

К чему я всё это вам рассказываю? Да к тому, что пишу я эту грустную повесть, а в углу экрана тихонько булькает отладчик, прогоняя через себя очередной кусок оптимизированного кода, который был передан мне на фрилансерских основаниях из фирмочки, где Физматик командует шайкой кодеров. Грустно мне не из-за плохой погоды и не из-за времени, потраченного на выкидывание всего ненужного из кода, а из-за того, что этот самый код должен стать частью большой программы, очень нужной пользователям. Мне их заранее жаль: нет у меня уверенности, что весь код будет проверен и оптимизирован Раздолбаями.

6505

Истина на дне стакана энтропии

Экзамен по программированию. Студентка пытается объяснить принцип работы пузырьковой сортировки.

— Когда можно останавливать цикл и прекращать работу алгоритма?

На полном серьёзе девушка отвечает:

— Когда мы достигнем Истины.

6499

Учение в бою

Заказали мы как-то услугу IP-телефонии. Пришёл паренёк устанавливать оборудование. Громко сказано «устанавливать», но тем не менее. С самого начала мне показалось, что юноша, мягко выражаясь, не очень хорошо разбирается в своём деле.

— Почему телефон проводной? Мы ведь просили вайфай-трубку.

— Вы заказывали IP-телефонию, поэтому я и принёс IP-телефон.

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

Это сняло мои претензии к квалификации. Парень успешно прописал все конфиги и установил телефон с модемом. Раз пареньку без образования и опыта хватило ума сделать всё правильно, то не так уж всё и плохо со школьным образованием, не находите?

6497

Пули нет

Сошлись быдлокодеры и строители велосипедов! Одни не могут отойти от клепания по шаблонам, другие постоянно озабочены фатальным недостатком. Когда же вы запомните, что в программировании нет серебряной пули?!

Да, начиная любой проект, следует поискать аналоги. Но не стоит пытаться свести свою задачу к уже существующей, если они существенно различны или решение по какой-то причине не подходит. Возьмите только то, что нужно вам и хорошо у вас работает. Не стоит и городить всё с нуля: это просто глупо. Однако надо знать, как решение работает внутри. Можно написать простейший велосипедик для себя, чтобы понять, как действует метод.

Как стать программистом? Сперва научитесь работать в команде. Программист-одиночка — это утопия.

Учите технической английский. Без него всё равно никуда. Переведите ман, описание пакета, любую другую документацию. Заодно научитесь сперва читать, а потом кодить.

Учитесь пользоваться системами управления версиями, отдавая свои переводы сообществу. Git вполне подойдёт для старта.

Научитесь чётко описывать, что хотите и что этому мешает. Для этого пишите багрепорты. Бессловесное создание никому не интересно, как и программа без документации.

Сидите на форумах в разделах типа «ищу программу» или «помощь новичкам». Это расширит ваш кругозор и прокачает скилл поиска готовых решений.

Только теперь имеет смысл выучить какой-либо язык программирования. Классическая тройка: С, Perl, Lisp. Впрочем, сейчас можно два последних заменить на Python и Haskell соотвественно. Каждый язык хорош только для своей области, поэтому знать надо всю тройку. Заодно прочувствуете на своей шкуре истину про серебряные пули.

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

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

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

6494

Мышка не добежала, хвостиком махнула…

Идёт мастер-класс по бухгалтерской программе, в которой широко используются всплывающие подсказки. Подводишь курсор к любому полю на экране — появляется описание, зачем, почему и куда эта цифра идёт. Программа буржуйская, и мастер-класс проходит на английском. Лектор почему-то вместо традиционного tooltip называет всплывающие подсказки mouse drop out, слушатели его несколько раз поправляют, но молодой и амбициозный лектор упорно использует собственную терминологию.

Лекцию останавливает фраза: «As we saw in the mouse droppings for field A...»

6486

Word Vintage

Третий курс Высшего военно-морского училища имени изобретателя радио. Стажировка на корабле Балтийского флота. Приходим знакомиться с командиром боевой части.

— Курсанты?

— Так точно!

— Программисты?

— Так точно!

— Программы набиваете?

— Да…

— На машинке, значит, печатать умеете?

— Ну да…

— Идите.

Через 15 минут в каюту стучится матрос с пишущей машинкой в руках: «Командир сказал починить». Починили, что уж тут…

6475

Самое время думать

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

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

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

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

Говорите, математический аппарат вам не пригодился? Тут два варианта: либо предметная область и впрямь настолько примитивна, что программист тут просто не нужен, либо, нагородив стандартных решений, вы создали очередной шедевр быдлокодинга. Видал я такие программы, тормозящие на простейших операциях на топовом железе.

Создавайте, творите, думайте! Только так вы станете программистом. Бездумно собирать кубики типовых решений — удел кодеров.

6471

А если несколько раз?

На защите дипломной работы:

— В целом работа выполнена неплохо, но что вы хотели сказать фразой «цикл if»?

Половина аудитории прикрывает лицо ладонью.

6458

Билет № 9. Приём!

Учусь в одном из питерских айтишных вузов. Полным ходом идёт сессия, на носу экзамен по вышмату. Я не претендую на выдающиеся способности в этом предмете, но разбираюсь достаточно неплохо. Готовлюсь к сдаче. За день до дня «Ч» думаю, как бы согласовать усилия. А если…

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

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

6396

Методом исключения

Девятиклассник пересдаёт экзамен по информатике. Тяну из последних сил на тройку и думаю: зачем он только выбрал этот предмет? Задаю дополнительные вопросы:

— Основные компоненты компьютера, их функциональное назначение и принципы работы.

— Монитор, клавиатура, мышка… (Начинает тупить.) Видеокарта… Звуковая карта…

— А где установлены звуковая и видеокарта?

— Ну, в этом… В ящике под столом.

— А как называется этот «ящик»?

Поразмыслив:

— Ну уж точно не принтер!