OberonCore
https://forum.oberoncore.ru/

Ответы на вопрос "чтобы стать хорошим программистом надо..."
https://forum.oberoncore.ru/viewtopic.php?f=76&t=3322
Страница 1 из 2

Автор:  ==== [ Суббота, 12 Март, 2011 11:48 ]
Заголовок сообщения:  Ответы на вопрос "чтобы стать хорошим программистом надо..."

Ответы на вопрос "чтобы стать хорошим программистом надо быть обладателем математического ума?"
http://otvety.google.ru/otvety/thread?tid=48ed3d362c8fdda6&hl=ru&table=%2Fotvety%2Fsearch%3Fprmd%3Divns%26q%3D%25D0%25B0%25D0%25BB%25D0%25B3%25D0%25BE%25D1%2580%25D0%25B8%25D1%2582%25D0%25BC%25D0%25B8%25D1%2587%25D0%25B5%25D1%2581%25D0%25BA%25D0%25B8%25D0%25B9%2B%25D1%258F%25D0%25B7%25D1%258B%25D0%25BA%2B%25D0%25B4%25D1%2580%25D0%25B0%25D0%25BA%25D0%25BE%25D0%25BD%2B%25D0%25BF%25D1%2580%25D0%25BE%25D0%25B3%25D1%2580%25D0%25B0%25D0%25BC%25D0%25BC%25D0%25B8%25D1%2580%25D0%25BE%25D0%25B2%25D0%25B0%25D0%25BD%25D0%25B8%25D0%25B5%26sa%3DN%26ie%3DUTF-8%26tab%3Ds2%26um%3D1%26biw%3D1024%26bih%3D611%26hl%3Dru
Цитата:
Начнем с того, что программирование само по себе никому не нужно. Оно обязательно направлено на решение каких-то конкретных задач. ...
Нужно умение быстро учиться новому. ...
Выучить язык - ерунда, а вот научиться думать - это уже другое. Кому нужен программист, который знает кучу языков, но не может решать задачи?

Автор:  Илья Ермаков [ Суббота, 12 Март, 2011 12:51 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

Начинать-то надо с определения "математического ума". Что это такое?

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

Культура точных наук привита должна быть обязательно.

Ещё такой момент: давно есть у меня подозрение, что очень важное умение, которое надо развивать - это умение видеть подобие, эквивалентность, взаимные соответствия между различными внешне непохожими формами, в которых проявляет себя часто одна и та же какая-нибудь штука. То, что называется, математическим термином "изоморфизм". Видеть этот изоморфизм. Это добавляет здоровую степень свободы при решении задач - когда мозг не цепляется за конкретную форму выражения, а легко переключается между ними.
В этом - ещё одна роль хорошо организованного курса дискретной математики для программистов, с упором на вот этот момент. На развитие этого же момента надо упирать в курсах "широко-эрудиционных", типа "Языки программирования".

Автор:  Валерий Лаптев [ Суббота, 12 Март, 2011 13:01 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

Абсолютно согласен с необходимостью наличия "изоморфизма".

Автор:  ==== [ Суббота, 12 Март, 2011 16:07 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

Цитата:
Абсолютно согласен с необходимостью наличия "изоморфизма".

Неправильно.

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

Автор:  Александр Ильин [ Суббота, 12 Март, 2011 17:07 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

Геннадий Тышов писал(а):
Наипервейшая необходимость - воспитание целеустремленной личности, организация последовательности работы - постановка задачи, разработка алгоритма, разработка теста и последние программирование.
Неправильно.

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

Автор:  ==== [ Суббота, 12 Март, 2011 17:33 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

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

Вы должна знать. В книге Д. Грисса "Наука программирования" в главе 14 "Программирование как целенаправленная деятельность" определены принципы:
(14.4) Принцип. Программирование - целенаправленная деятельность.
(14.5) Принцип. Прежде чем решать задачу, убедитесь что вы понимаете, в чем она состоит.
(14.6) Принцип. Прежде чем строить программу, уточните и разъясните себе пред- и постусловия.

Автор:  Валерий Лаптев [ Суббота, 12 Март, 2011 17:45 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

Геннадий Тышов писал(а):
Александр Ильин писал(а):
Вы ещё скажите, что перво-наперво необходимо освоить системы контроля версий и баг-трекеры, а заодно и системы учёта времени (тайм-менеджмент).
Илья, это ваши фантазии.

Вы должна знать. В книге Д. Грисса "Наука программирования" в главе 14 "Программирование как целенаправленная деятельность" определены принципы:
(14.4) Принцип. Программирование - целенаправленная деятельность.
(14.5) Принцип. Прежде чем решать задачу, убедитесь что вы понимаете, в чем она состоит.
(14.6) Принцип. Прежде чем строить программу, уточните и разъясните себе пред- и постусловия.

Тезисы Гриса относятся к любой инженерной деятельности. И к неинженерной почти всегда тоже...

Автор:  igor [ Суббота, 12 Март, 2011 18:22 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

Иметь математический склад ума - это необходимое (но недостаточное) условие для того, чтобы стать хорошим программистом. (IMHO!)

Убеждение, что из "физиков" якобы получаются хорошие программисты, а из "математиков" - плохие, считаю глубоко ошибочным.

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

Математика - это абстрактная наука. А умение абстрагироваться - это один из первейших необходимых навыков программиста.

PS: Ну, всё! Теперь ешьте меня :D

Автор:  ==== [ Суббота, 12 Март, 2011 18:32 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

igor писал(а):
А умение абстрагироваться - это один из первейших необходимых навыков программиста.

Программисту что же требуется, абстрагироваться или конкретизироваться в алгоритме и программе?
Все таки программа не является абстрактным произведением.

Автор:  igor [ Суббота, 12 Март, 2011 18:39 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

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

Программист никогда не работает с реальными физическими объектами, а только с их абстракциями.

Автор:  Илья Ермаков [ Суббота, 12 Март, 2011 18:42 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

Геннадий Тышов писал(а):
igor писал(а):
А умение абстрагироваться - это один из первейших необходимых навыков программиста.

Программисту что же требуется, абстрагироваться или конкретизироваться в алгоритме и программе?
Все таки программа не является абстрактным произведением.


На конкретном, близком к Вам примере:
- чтобы автоматизировать конкретную фирму на базе 1С, нужно конкретизироваться;
- чтобы создать систему, подобную 1С, нужно абстрагироваться.

Автор:  igor [ Суббота, 12 Март, 2011 18:53 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

Илья Ермаков писал(а):
- чтобы автоматизировать конкретную фирму на базе 1С, нужно конкретизироваться;
- чтобы создать систему, подобную 1С, нужно абстрагироваться.

А я и не говорил, что единственное что нужно уметь программисту - это абстрагироваться.

Можете привести пример, когда программист напрямую работает с физическим объектом, а не со структурами данных, которые его описывают?

Автор:  ==== [ Суббота, 12 Март, 2011 18:56 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

В обоих случаях работают принципы Грисс, а хороший программист должен быть целеустремленным и не сойти с дистанции до цели.

Автор:  igor [ Суббота, 12 Март, 2011 19:10 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

Продолжу пример Ильи. Допустим мы автоматизируем конкретную фирму, где абстрагирование как бы не нужно, а нужна только конкретизация.
Допустим, эта фирма - автосервис. Что такое автомобиль клиента с точки зрения программиста? Это запись в таблице, состоящая из таких полей как: марка, модель, год выпуска, пробег и цвет. Всё! Какого цвета сиденья? А бес его знает. Это несущественная деталь, и от такой конкретики мы здесь абстрагируемся. На самом деле этот приём применяется в программировании так часто, что его просто перестают замечать.

Автор:  igor [ Суббота, 12 Март, 2011 19:17 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

Геннадий Тышов писал(а):
хороший программист должен быть целеустремленным и не сойти с дистанции до цели.

Это понятно, что лучше быть здоровым и богатым, чем бедным и больным. :D
Общие слова, не несущие в себе никакой новой информации.

Автор:  ==== [ Суббота, 12 Март, 2011 19:21 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

igor писал(а):
А я и не говорил, что единственное что нужно уметь программисту - это абстрагироваться.

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

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

Автор:  Владислав Жаринов [ Суббота, 12 Март, 2011 19:28 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

igor писал(а):
Продолжу пример Ильи. Допустим мы автоматизируем конкретную фирму, где абстрагирование как бы не нужно, а нужна только конкретизация.
Допустим, эта фирма - автосервис. Что такое автомобиль клиента с точки зрения программиста? Это запись в таблице, состоящая из таких полей как: марка, модель, год выпуска, пробег и цвет. Всё! Какого цвета сиденья? ...
Притом абстрагирование начинается уже с того, что автомобиль представляется "записью в таблице" - т.е. структурой данных. Или вот то, что писал о "лице Чернова" в этом сообщении...

Автор:  igor [ Суббота, 12 Март, 2011 19:29 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

Геннадий Тышов писал(а):
igor писал(а):
А я и не говорил, что единственное что нужно уметь программисту - это абстрагироваться.

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

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

Автор:  igor [ Суббота, 12 Март, 2011 19:40 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

Драконограф писал(а):
Притом абстрагирование начинается уже с того, что автомобиль представляется "записью в таблице" - т.е. структурой данных.

Да, именно так.
Кстати, сидений в нашем автомобиле вообще нет :)

Автор:  Виктор О [ Понедельник, 14 Март, 2011 18:13 ]
Заголовок сообщения:  Re: Ответы на вопрос "чтобы стать хорошим программистом надо

Илья Ермаков писал(а):
...очень важное умение, которое надо развивать - это умение видеть подобие, эквивалентность, взаимные соответствия между различными внешне непохожими формами, в которых проявляет себя часто одна и та же какая-нибудь штука. То, что называется, математическим термином "изоморфизм". Видеть этот изоморфизм. Это добавляет здоровую степень свободы при решении задач - когда мозг не цепляется за конкретную форму выражения, а легко переключается между ними.


Особенно важно видеть изоморфизм между условиями задачи и тем, чему тебя учили.

В частности, это и есть "понять задачу", о чем тут говорят.

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

В частности, не быть "бразильским студентом", который выучил всю науку, но приложить ее не может.

А целеустремленность - это общечеловеческая ценность, не специфично, а потому достаточно базового уровня.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/