Опыт не пропьешь
Jul. 30th, 2008 11:47 pmИтак, про Software Engineering в Технионе. На русский я бы SE перевел, видимо как Программирование как производственный процесс, т.е. все это сплошной набор эмпирических правил - делай так и будет тебе счастье. Но так как надо же что-то учить, пришлось учить и это тоже. Как всегда в Технионе, основная польза от курса была не в лекциях, а в заданиях. Лекции вел глухонемой (в буквальном смысле) англоговорящий лектор. Он нам объяснил, что мог бы вести и на иврите, но тогда студенты будут задавать вопросы на иврите же, а он на иврите по губам не читает.
Слайды его вполне заменяли.
А вот задания были ого-го. Их было три, но на самом деле это было одно задание разбитое на три части, которые мы получали постепенно. Т.е. первое задание определило задачу, во втором и в третьем были дополнительные требования/функцональность. Нам это даже было известно заранее, да и вообше мы были на последнем курсе, (большая) часть уже где-нибудь, в смысле в разных программистских конторах, работала, так что первое задание мы пытались написать, имея в виду, что нам его менять, максимально модулярно. И нам это ну никак не помогло. Не скажу, что мы переписывали все два раза с нуля, но пожалуй не было ни одного класса, который бы нам не пришлось изменить во втором и третьем задании. Очень полезный experience, хотя и в несколько отрицательном ключе. Зато проникаешься мыслью, что если бы не начали писать модулярно, то было бы еще хуже.
Начал писать про само задание, но стерлось. Вкратце, в первом задании от нас требовалось трансформировать bidirectional текст из логического направления (как читается) в визуальное (как пишется), т.е. переворачивать ивритский текст справо налево, а английские слова внутри него наоборот, и с тех пор я знаю что курсор в двуязычном тексте не зря скачет как бешеный, во втором мы добавляли (для ивритского текста) древний еврейский способ выравнивания левого края, а именно растягивание последней буквы, в которой есть горизонтальная черта, а в третьем, если не ошибаюсь, от нас потребовалась поддержка японско-китайского письма, т.е. вертикального письма, где столбцы идут справа налево.
Слайды его вполне заменяли.
А вот задания были ого-го. Их было три, но на самом деле это было одно задание разбитое на три части, которые мы получали постепенно. Т.е. первое задание определило задачу, во втором и в третьем были дополнительные требования/функцональность. Нам это даже было известно заранее, да и вообше мы были на последнем курсе, (большая) часть уже где-нибудь, в смысле в разных программистских конторах, работала, так что первое задание мы пытались написать, имея в виду, что нам его менять, максимально модулярно. И нам это ну никак не помогло. Не скажу, что мы переписывали все два раза с нуля, но пожалуй не было ни одного класса, который бы нам не пришлось изменить во втором и третьем задании. Очень полезный experience, хотя и в несколько отрицательном ключе. Зато проникаешься мыслью, что если бы не начали писать модулярно, то было бы еще хуже.
Начал писать про само задание, но стерлось. Вкратце, в первом задании от нас требовалось трансформировать bidirectional текст из логического направления (как читается) в визуальное (как пишется), т.е. переворачивать ивритский текст справо налево, а английские слова внутри него наоборот, и с тех пор я знаю что курсор в двуязычном тексте не зря скачет как бешеный, во втором мы добавляли (для ивритского текста) древний еврейский способ выравнивания левого края, а именно растягивание последней буквы, в которой есть горизонтальная черта, а в третьем, если не ошибаюсь, от нас потребовалась поддержка японско-китайского письма, т.е. вертикального письма, где столбцы идут справа налево.