Несколько слов о сабже. Я не знаю, чему и как надо учить детей (или не детей). Но я думаю что знаю, что они в итоге должны знать и уметь.
Итак, компьюьтерно грамотный:
- на бытовом уровне понимает MVC. То есть различает хранилище данных, представление данных и обработку данных. А не называет всё вместе (+ Windows) "программой".
- после чтение документации способен написать простой скрипт на bash, на cmd или на чём-либо ещё, простом и тупом. Нет, писать cat "test... test... test..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see' совершенно необязательно, но задача "с помощью ImageMagick отресайзить новые фотографии и закинуть их по ssh на вторую машину" не должна представлять принципиальной сложности. Желательно - уметь писать какие-то простые скрипты с использованием шаблонов. Цель - понимать основные принципы автоматизации (MVC, повторное использование кода, шаблоны как шаблон проектирования, простите за каламбур)
- умеет пользоваться машинным поиском. Умеет задавать вопросы поисковым системам, понимает их отличие от вопросов людям.
- разбирается в терминологии. Не называет модальное окошко с информационным сообщением и кнопкой "ссылкой". Знает основные принципы построения интерфейсов программных продуктов - кнопки, статусные строки, панели, меню, модальные и немодальные окна, поля ввода, read-only поля ввода
- на бытовом уровне понимает технологию клиент-сервер
- на бытовом уровне знает что такое "протокол взаимодействия", "интерфейс". После изучения документации способен писать VBA-подобные скрипты.
- отличает синхронное взаимодействие от асинхронного
- понимает, чёрт возьми, различие между данными и их представлением
- на бытовом уровне знает, что такое ОС, что такое драйвер, что такое прикладная программа, что _означает_ установка и настройка ОС и чем они отличаются
- разумеется знает из каких частей состоит современный компьютер, не путает компьютер с дисплеем, принтером, системным блоком, знает о различии оперативной и долговременной памяти. Ориентируется в устройствах и технологиях хранения данных (как минимум должен отличать НЖМД, НГМД, флеш-память и лазерные диски).
- общие принципы устройства файловых систем (файлы, каталоги, ссылки, права)
- понимать принципы разделения прав доступа к информации
- знать понятие "конфигурация ПО", понимать что эта конфигурация отличается от ПО и от механизма его работы, но используется механизмом.
На первый взгляд всё.
Что не обязан знать - особенности настройки драйверов, строение TCP и Ethernet-протоколов и их различие. Двадцать пять языков программирования со всеми их особенностями. Различать функциональное, объектное и процедурное программирование. Последовательность накатывания фикс-паков на Oracle или WebSphere. Повторюсь, совершенно не обязан уметь писать однострочник на Perl или форк-бомбу на bash. Если однажды увидит форк-бомбу и додумается как её запустить - молодец, наука будет.
Итак, компьюьтерно грамотный:
- на бытовом уровне понимает MVC. То есть различает хранилище данных, представление данных и обработку данных. А не называет всё вместе (+ Windows) "программой".
- после чтение документации способен написать простой скрипт на bash, на cmd или на чём-либо ещё, простом и тупом. Нет, писать cat "test... test... test..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see' совершенно необязательно, но задача "с помощью ImageMagick отресайзить новые фотографии и закинуть их по ssh на вторую машину" не должна представлять принципиальной сложности. Желательно - уметь писать какие-то простые скрипты с использованием шаблонов. Цель - понимать основные принципы автоматизации (MVC, повторное использование кода, шаблоны как шаблон проектирования, простите за каламбур)
- умеет пользоваться машинным поиском. Умеет задавать вопросы поисковым системам, понимает их отличие от вопросов людям.
- разбирается в терминологии. Не называет модальное окошко с информационным сообщением и кнопкой "ссылкой". Знает основные принципы построения интерфейсов программных продуктов - кнопки, статусные строки, панели, меню, модальные и немодальные окна, поля ввода, read-only поля ввода
- на бытовом уровне понимает технологию клиент-сервер
- на бытовом уровне знает что такое "протокол взаимодействия", "интерфейс". После изучения документации способен писать VBA-подобные скрипты.
- отличает синхронное взаимодействие от асинхронного
- понимает, чёрт возьми, различие между данными и их представлением
- на бытовом уровне знает, что такое ОС, что такое драйвер, что такое прикладная программа, что _означает_ установка и настройка ОС и чем они отличаются
- разумеется знает из каких частей состоит современный компьютер, не путает компьютер с дисплеем, принтером, системным блоком, знает о различии оперативной и долговременной памяти. Ориентируется в устройствах и технологиях хранения данных (как минимум должен отличать НЖМД, НГМД, флеш-память и лазерные диски).
- общие принципы устройства файловых систем (файлы, каталоги, ссылки, права)
- понимать принципы разделения прав доступа к информации
- знать понятие "конфигурация ПО", понимать что эта конфигурация отличается от ПО и от механизма его работы, но используется механизмом.
На первый взгляд всё.
Что не обязан знать - особенности настройки драйверов, строение TCP и Ethernet-протоколов и их различие. Двадцать пять языков программирования со всеми их особенностями. Различать функциональное, объектное и процедурное программирование. Последовательность накатывания фикс-паков на Oracle или WebSphere. Повторюсь, совершенно не обязан уметь писать однострочник на Perl или форк-бомбу на bash. Если однажды увидит форк-бомбу и додумается как её запустить - молодец, наука будет.
no subject
Date: 29 Dec 2010 20:50 (UTC)Видимо наболело :)
no subject
Date: 30 Dec 2010 05:27 (UTC)no subject
Date: 30 Dec 2010 11:57 (UTC)no subject
Date: 30 Dec 2010 13:01 (UTC)no subject
Date: 30 Dec 2010 13:02 (UTC)no subject
Date: 30 Dec 2010 20:41 (UTC)no subject
Date: 31 Dec 2010 06:47 (UTC)