А также о тех, кто хочет научиться этому искусству. Очень субьективно.
Я горжусь своей профессией, но очень не люблю говорить людям мало сведущим в программировании и в ИТ в частности, кем я работаю.
Люди сходятся во мнении, что программист — это тот, кто связан с компьютерами. На этом сходства заканчиваются. Один думает, что я печатаю бумажки в Ворде, другой то, что ремонтирую компьютеры и прочую периферию. Я это не придумываю. Вот случай произошедший как-то в нашем замечательном военкомате. Узнав род деятельности, прапорщик обрадовался:
— О, а у нас принтер не печатает!
— Какой принтер?
— Ну такой, с лентой.
— Головка ездит?
— Ага.
— Чернила на ленте есть?
— Ты нас военных совсем за дураков не держи. Чернила есть.
— Не знаю, я вообще-то не специалист по ремонту матричных принтеров!
— У-у, а еще говоришь программист!
Вы наверно поймете, что мне было легче согласиться с его версий о том, что я никудышный программист, чем начать спорить, задержавшись, таким образом, в этом «гостеприимном» заведении.
Конечно, мне не нужно чтобы было вот так:
«Побывал как-то в нашем замечательном военкомате. Узнав род деятельности, прапорщик обрадовался:
— О, а у меня проблемы с поздним связыванием: я хочу, чтобы вызывался метод того класса, на экземпляр которого ссылается переменная, а вызывается только метод родительского класса.
— Метод в родителе объявлен как виртуальный?
— Да, я пробовал и как виртуальный и как динамический!
— Ну, это большой роли не играет. А в потомках метод перекрыт?
— А-а-а! Нет! Спасибо!»
Но просто бывает немного досадно, что к профессии относятся несерьезно и путают с секретаршей. Тогда интересно, откуда, по мнению таких людей, берутся программы? У меня есть 3 версии:
1) Думают, что программы пишутся в 3 клика мыши.
2) Думают, что нужно сказать в микрофон: «Компьютер, мне нужна вот такая вот программа».
3) Вообще ничего не думают.
Некоторые люди все-таки начинают догадываться, что «не боги программы пишут». Только плохо когда эти люди при этом являются вашим начальством. Вот слова моего друга, который работает единственным программистом в фирме: «Дали мне задание, написать приложение, работающее с базой данных. Ладно, пишу. Проходит 3 дня, спрашивают, готово ли? Через месяц написал, но все думали, что я только и делаю, что сижу в интернете и раскладываю косынку и вообще зря получаю зарплату».
Некоторые, особенно молодежь, узнав, что в принципе программу можно написать самому, загораются «желанием» научится программированию, но хотят побыстрее проскочить сам процесс изучения, и получить готовый результат. Поэтому форумы перегружены сообщениями типа:
«Хочу сделать игру типа Doom 3. Я слышал, что игры пишут на С++. У меня есть учебник по C++, я правда его не читал, там аж 150 страниц, и про игры там вроде ничего нет. Короче, HELP!!!»
Может быть, этот пример слишком утрирован, но недалек от истины (я знаю таких людей). Таким товарищам хочется сказать:
«Да легко! Только сначала нужно убедиться в твердости хотя бы школьных математических знаний, потом изучить аналитическую геометрию, линейную алгебру, дискретную математику, мат. логику и мат. анализ. Компьютерная грамотность на уровне продвинутого пользователя подразумевается как само собой разумеющееся. Нужно прочитать не одну и не две книги по языку программирования, а также изучить еще немного различных технологий. И, разумеется, необходимо практиковаться до тех пор, пока теория не осядет в голове поглубже, лучше сразу в ДНК :)»
Но мне кажется, программисты идут по другому пути, примерно как вышло у меня (хотя тут я утверждать не могу, мало статистического материала):
Я учился в 5 классе и у нас стоял 386-й. Ничем кроме играния я не занимался, и мысль о написании программ не приходила мне в голову, хотя мой отец был программистом. Еще у меня была книга по программированию на бейсике для школьников. Я стал ее читать, потому что она была написана в форме рассказа, а рассказы я любил. Страниц через 30 наткнулся на пример программы, которая спрашивала температуру в Фаренгейтах и переводила в Цельсии, примерно такая:
Она так потрясла меня тем, что такая маленькая, понятная и при этом еще здоровается, вычисляет, и выводит на экран, так как если сравнить с калькулятором, то для вычисления нужно помнить формулу перевода и нажать кучу кнопок, а тут… Я сразу побежал к отцу, уточнил, будет ли она работать у нас на компьютере. Получив утвердительный ответ, врубил QBasic, набрал, и понеслось… Это оказалось интереснее игр! Кстати, пожалуй, ни одна моя впоследствии написанная программа не принесла мне таких впечатлений как эта, первая!
Некоторые (в основном школьники) спрашивают меня: а сколько нужно времени чтобы научится писать хорошие программы. Я отвечаю, что реально понабиться несколько лет с постоянной практикой. Вот так пропадает их желание учиться. Они не радуются первой написанной программой выводящей «Hello, World!», им нужно много и сразу. Но очень радует, что я могу так сказать не про всех! :)
Программирование можно назвать наукой, искусством, творчеством, ремеслом, но в любом случае невозможно добиться успехов, если думать только о конечном результате. Сам процесс должен приносить удовлетворение, даже если совершен маленький шаг в изучении. Если вы думаете: «Ох, ну еще лет 5 мучений и буду профессиональным программистом», то, наверное, оно не для вас. А если же для вас нет лучше отдыха, чем изучить парочку новых функций, реализовать какой-нибудь алгоритм или почитать соответствующую книгу, то вам хочется сказать: «Эй, остановись, и так программистов развелось, я же без работы останусь!». Шутка :)
Я горжусь своей профессией, но очень не люблю говорить людям мало сведущим в программировании и в ИТ в частности, кем я работаю.
Люди сходятся во мнении, что программист — это тот, кто связан с компьютерами. На этом сходства заканчиваются. Один думает, что я печатаю бумажки в Ворде, другой то, что ремонтирую компьютеры и прочую периферию. Я это не придумываю. Вот случай произошедший как-то в нашем замечательном военкомате. Узнав род деятельности, прапорщик обрадовался:
— О, а у нас принтер не печатает!
— Какой принтер?
— Ну такой, с лентой.
— Головка ездит?
— Ага.
— Чернила на ленте есть?
— Ты нас военных совсем за дураков не держи. Чернила есть.
— Не знаю, я вообще-то не специалист по ремонту матричных принтеров!
— У-у, а еще говоришь программист!
Вы наверно поймете, что мне было легче согласиться с его версий о том, что я никудышный программист, чем начать спорить, задержавшись, таким образом, в этом «гостеприимном» заведении.
Конечно, мне не нужно чтобы было вот так:
«Побывал как-то в нашем замечательном военкомате. Узнав род деятельности, прапорщик обрадовался:
— О, а у меня проблемы с поздним связыванием: я хочу, чтобы вызывался метод того класса, на экземпляр которого ссылается переменная, а вызывается только метод родительского класса.
— Метод в родителе объявлен как виртуальный?
— Да, я пробовал и как виртуальный и как динамический!
— Ну, это большой роли не играет. А в потомках метод перекрыт?
— А-а-а! Нет! Спасибо!»
Но просто бывает немного досадно, что к профессии относятся несерьезно и путают с секретаршей. Тогда интересно, откуда, по мнению таких людей, берутся программы? У меня есть 3 версии:
1) Думают, что программы пишутся в 3 клика мыши.
2) Думают, что нужно сказать в микрофон: «Компьютер, мне нужна вот такая вот программа».
3) Вообще ничего не думают.
Некоторые люди все-таки начинают догадываться, что «не боги программы пишут». Только плохо когда эти люди при этом являются вашим начальством. Вот слова моего друга, который работает единственным программистом в фирме: «Дали мне задание, написать приложение, работающее с базой данных. Ладно, пишу. Проходит 3 дня, спрашивают, готово ли? Через месяц написал, но все думали, что я только и делаю, что сижу в интернете и раскладываю косынку и вообще зря получаю зарплату».
Некоторые, особенно молодежь, узнав, что в принципе программу можно написать самому, загораются «желанием» научится программированию, но хотят побыстрее проскочить сам процесс изучения, и получить готовый результат. Поэтому форумы перегружены сообщениями типа:
«Хочу сделать игру типа Doom 3. Я слышал, что игры пишут на С++. У меня есть учебник по C++, я правда его не читал, там аж 150 страниц, и про игры там вроде ничего нет. Короче, HELP!!!»
Может быть, этот пример слишком утрирован, но недалек от истины (я знаю таких людей). Таким товарищам хочется сказать:
«Да легко! Только сначала нужно убедиться в твердости хотя бы школьных математических знаний, потом изучить аналитическую геометрию, линейную алгебру, дискретную математику, мат. логику и мат. анализ. Компьютерная грамотность на уровне продвинутого пользователя подразумевается как само собой разумеющееся. Нужно прочитать не одну и не две книги по языку программирования, а также изучить еще немного различных технологий. И, разумеется, необходимо практиковаться до тех пор, пока теория не осядет в голове поглубже, лучше сразу в ДНК :)»
Но мне кажется, программисты идут по другому пути, примерно как вышло у меня (хотя тут я утверждать не могу, мало статистического материала):
Я учился в 5 классе и у нас стоял 386-й. Ничем кроме играния я не занимался, и мысль о написании программ не приходила мне в голову, хотя мой отец был программистом. Еще у меня была книга по программированию на бейсике для школьников. Я стал ее читать, потому что она была написана в форме рассказа, а рассказы я любил. Страниц через 30 наткнулся на пример программы, которая спрашивала температуру в Фаренгейтах и переводила в Цельсии, примерно такая:
INPUT "Привет! Введи температуру в Фаренгейтах: ", F
C = 5/9 * (F-32)
PRINT "А в Цельсиях она равна: ", C
Она так потрясла меня тем, что такая маленькая, понятная и при этом еще здоровается, вычисляет, и выводит на экран, так как если сравнить с калькулятором, то для вычисления нужно помнить формулу перевода и нажать кучу кнопок, а тут… Я сразу побежал к отцу, уточнил, будет ли она работать у нас на компьютере. Получив утвердительный ответ, врубил QBasic, набрал, и понеслось… Это оказалось интереснее игр! Кстати, пожалуй, ни одна моя впоследствии написанная программа не принесла мне таких впечатлений как эта, первая!
Некоторые (в основном школьники) спрашивают меня: а сколько нужно времени чтобы научится писать хорошие программы. Я отвечаю, что реально понабиться несколько лет с постоянной практикой. Вот так пропадает их желание учиться. Они не радуются первой написанной программой выводящей «Hello, World!», им нужно много и сразу. Но очень радует, что я могу так сказать не про всех! :)
Программирование можно назвать наукой, искусством, творчеством, ремеслом, но в любом случае невозможно добиться успехов, если думать только о конечном результате. Сам процесс должен приносить удовлетворение, даже если совершен маленький шаг в изучении. Если вы думаете: «Ох, ну еще лет 5 мучений и буду профессиональным программистом», то, наверное, оно не для вас. А если же для вас нет лучше отдыха, чем изучить парочку новых функций, реализовать какой-нибудь алгоритм или почитать соответствующую книгу, то вам хочется сказать: «Эй, остановись, и так программистов развелось, я же без работы останусь!». Шутка :)