bash.im ithappens.me zadolba.li

Образование

12522

Я человек, измученный ридоном

Представьте, что вы молодой преподаватель.

Это было на рубеже веков. Я, молодой, но уже желтеющий с одного боку, админил сеть в одном из коммерческих вузов. Так как практически всё было создано мной с нуля, я представлял, что можно сделать, что показать комиссиям и чему можно поучить студентов в рамках имеющегося. Преподаватели были в основном приезжие; после посиделок можно было выяснить, что им потребуется в следующий приезд, помимо стандартного офисного набора, и вовремя подготовиться. Попутно на местном «имитаторе интернета» показывали, как пользоваться браузером, почтовым и новостным клиентом. Тогда ещё не были распространены сотовые телефоны, но переписываться сообщениями в рамках одного кабинета или с соседним можно было запросто. Всё было хорошо ровно до тех пор, пока меня не попросили посмотреть ещё один компьютерный класс, которым заведовала ещё одна преподавательница, но этот класс был «закреплён» за нею. Такого количества диких расцветок рабочего стола Windows for Workgroups (да, Windows 98 работала не везде) я не видел до сих пор. Мол, студенты изгаляются, а потом не всегда можно успеть вернуть всё обратно.

— А что, если установить атрибут read-only на файл win.ini?

В ответ — лёгкое непонимание.

— Ну, в Нортон-коммандере выставьте атрибут read-only.

Непонимание переросло в панику. В результате ректору полетела докладная: «Такой-то мучает преподавателей ридоном». Уже потом, позже, старшие товарищи меня спросили: как считаешь, мол, должен ли преподаватель досконально знать свой предмет? Нет, не должен. Тогда я задумался в первый раз.

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

Сравнил свою зарплату «за это» с зарплатой вахтового доктора наук, которого я знал — задумался в третий и последний раз и зарёкся что-либо читать «по программе обучения». Только факультативы, только проспорив или проиграв в карты старшим товарищам… Так и случилось. Это был хороший такой факультатив, с собственной программой, с разъяснением, что такое TCP/IP, DNS, SMTP и POP3, как настроить операционную систему для работы в интернете, используя тогда имеющиеся в городе провайдеров. В результате из всего потока реально в сетевых технологиях стали разбираться трое, но за них мне до сих пор не стыдно. Мудрые старики утешали потом: мол, это у тебя очень хороший процент выживших получился.

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

12517

Возлюби компилятор свой, как самого себя

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

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

А мой очень хороший друг-программист когда-то сказал мне: «Ни в одном университете мира тебя не научат программировать. Только самообразование, только хардкор».

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

12513

Представьте, что вы программисты

Мне обидно за то, как учат в некоторых заведениях, именуются которые колледжами. Ну, и обидно за контингент.

Вроде бы всё по программе: будущие «программисты» учатся первый курс, как в 10–11 классе, сдают нужные экзамены и поступают с радостью на второй, где начинаются спецпредметы. Знаете, какой у нас был предмет? Разработка на Паскале привычных лёгких задачек, а потом уже в Дельфи. Правда, ни про ООП ни слова не сказали, ни про объекты, ни про что. Старая бабушка-преподаватель на автомате объяснила, где ивенты, обджекты и где форма. «Сюда кидаете, пишете код, и всё работает». Как-то так. Никого такой вариант обучения не порадовал, всем было плевать. Я сдавал лабы, пытался сам разбираться, а меня поголовно все просили решить, ибо не знали ничего: «Никто не учил». Программисты будущие, блин. Потом бросил это дело — не хватило силы воли на самообучение.

Третий курс — главный спецпредмет: системное программирование. «Мы с вами будем учить С++, открывайте тетради и конспектируйте». Весь год писали подробно в тетрадке про for, while и массивы в тетрадке. Тупое переписывание. Ни одной практической задачи не решали.

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

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

12496

Померяемся буквами?

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

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

Один ученик узнал, как загружать в ОЗУ EGA-карты разные шрифты для текстового режима. Напомню: если просто загрузить, шрифт сменился обратно на хранящийся в ПЗУ по умолчанию, стоит переключить режим с одного на другой. Чтобы после переключения в ОЗУ адаптера снова оказался пользовательский шрифт, надо держать запущенной резидентную программу-драйвер.

Ученика интересовало, как вывести на экран несколько шрифтов одновременно. Этой возможности текстовые режимы на PC не предоставляли. А вот на Спектруме графический, включённый по умолчанию и единственный — ещё как! И другой школьник, сидевший за такой машиной, показал, как это делается с использованием системных переменных 23606 и 23607, чем вызвал у первого ученика фейспалм: зря старался без трояков учиться!

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

12483

Вебдев руками юных дев

Мне 12. Серьёзно.

Я создаю сайты. Статейники, по большей части. Они работают на самописных CMS (автор — я). Проекты собирают от 500 уников в сутки. HTML, CSS и PHP изучала самостоятельно, сейчас вот Ruby учу. В общем, в вопросах современных технологий я более продвинута, чем мои сверстники, которые «хакеры».

Я уже привыкла, что меня никто и нигде не воспринимает всерьёз, поэтому везде прикрываюсь выдуманной личностью.

Наш преподаватель по информатике — хороший человек. Он помогает мне в изучении Ruby, даёт дополнительные задания. Чаще всего шлю их ему по почте, но иногда тащу в школу флешку.

Захожу в кабинет. За столом сидит парень (на вид — класс девятый), который взглядом обезьяны уставился на экран монитора. Отдаю учителю флешку, смотрю на экран. Оказывается, парень проходит вёрстку, и ему дали простейшее (как мне кажется) задание — написать сайт-галерею на HTML + CSS. Картинки, само собой, нужно расположить в строчку. У него ничего не получается.

Подхожу. Объясняю, как это реализовать. Девятиклассник ошарашенно на меня глядит, а затем выдаёт:

— Что ты там понимать можешь, ты же ребёнок! Вот подрастёшь, тогда и будешь со своими советами лезть.

Я пожимаю плечами и отхожу. Учитель проверяет задание, я жду. Парень яростно тыкает в клавиши одним пальцем. Когда он отходит, я тихонько правлю код. Парень возвращается и сдаёт задание, гордо выпятив грудь.

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

12476

Пора готовить лыжи

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

Сразу предупредили, что язык сложный (Caché ObjectScript), и до меня было много претендентов, но никто не справился. Наставником определили бывшего препода по информатике, 50+.

Первое задание: морской бой. Консольный вариант: 80×25, мыши нет, псевдографика. Написал, показываю. Наставник негодует:

— А почему у тебя координаты надо вводить? Давай позиционирование по полю противника сделаем курсором и расстановку кораблей тоже.

Переделал, показываю.

— У тебя всплывающие сообщения игры слишком большие, давай окошки сделаем поменьше. И у меня всегда должно быть право выбора!

Уделал этот морской бой до неузнаваемости: фон псевдографикой, меню настроек фона, цвета окон, способы стрельбы, подсказки и т. д. Было бы в 90-е — продал бы его. Показываю.

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

— Тут оценки ставят?

— Нет, это чтоб ты ощущал.

Потом открывает код, и начинается самое интересное:

— Нет, так не пойдёт, стиль я такой не приемлю, он нечитаемый. Эти твои скобочки только в глазах рябят.

И начинает учить ходить заново:

1. Каждый оператор с новой строки!

То есть запись на C++ вида int a, b, c, d; должна быть:

int a;
int b;
int c; …

2. Если количество операторов внутри цикла или условия больше трёх — нужно выносить код в отдельную процедуру.

Запись вида:

if (k == 1) {
    f = "Фамилия";
    n = "Имя"; 
    o = "Отчество";
    t = "123-45-67";
} 

должна выглядеть так:

if (k == 1) { pr () }

void pr (void) {
    f = "Фамилия";
    n = "Имя"; 
    o = "Отчество";
    t = "123-45-67";
} 

3. Имена процедур называем большим буквами, и не более восьми символов. В то же время имя процедуры должно явно отражать её действие. Переменные и функции называем маленькими буквами, названия тоже должны быть недлинными, но информативными.

И тут мой наставник сразил меня наповал:

— Ты же знаешь, чем отличаются функции от процедур?

— Да. Функция возвращает значение, процедура — нет.

— Не только! — торжественно произносит он и вопрошает, тыкая курсором в код. — Это что?

— Процедура.

— Нет! Это функция, ты ж ей параметры передаёшь!

Я не нашёлся, что ответить.

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

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

12453

Наука не бояться

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

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

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

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

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

12438

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

А я провёл некоторую аналогию реального мира и мира компьютерного. Развитие в этих двух мирах происходит зеркально. Сами вот посмотрите.

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

Через многие сотни лет пришли учёные, которые начали всё объяснять. Оказывается, дождь посылают не боги, а всего лишь простейшая экосистема. Молнии оказались обычным статическим электричеством. И вот у шаманов уже нету работы, они никому не нужны.

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


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

Но со временем техника усложнялась и становилась популярнее. Сейчас уже сложно представить то количество электронов, что бегают по полупроводникам с десятизначным числом тиков в секунду. Платы даже самых простых устройств уже имеют столько слоёв, что человеческий глаз и не заметит. Такие мощности уже держать в голове достаточно трудно, и бывшие учёные превращаются в шаманов. Ну, а что поделать, если после удара рядом с роутером в бубен пакеты перестают теряться, кинув плеер в стену, вы чините его, а для работы программы не хватало строчки _a = 1; if(_a == null) return;?

Магии не бывает. Всё можно объяснить, как говорят некоторые авторы историй на этом сайте, да. Но, в отличие от реального мира, объяснений со временем всё меньше.

А выводы делайте сами.

12421

Не всё то золото, что запускается

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

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

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

Потом мне, конечно, всё восстановили, но я понял: не всё то золото, что имеет расширение exe.