OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 16 Апрель, 2024 08:23

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Что нужно знать программисту
СообщениеДобавлено: Вторник, 22 Июль, 2008 10:33 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Забавный текст попался. Для заключения про важность физики и матана есть глубокое основание: в сих дисциплинах сколлекционированы ровно те паттерны-схемы, по которым работает мир.

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

So You Want To Be A Programmer?
Written by Walter Bright 07/01/08

.. what courses a person should take in college if they want to become a professional programmer.
I took a fairly broad range of classes in college (Caltech), and have been programming for 30 years now, so I have some perspective on what has worked for me and what hasn't.
I've ordered them from most important to least.

Calculus - No, you won't use calculus in programming. But it turns out that the training of your mind that happens when learning calculus is very beneficial to programming.
This training seems to happen in math courses and doesn't happen in programming courses.
If you find yourself selecting college courses based on which ones don't require calculus, you should seriously consider changing professions, because you won't make it as a programmer.
Take at least 3 years of calculus.

Physics - For unknown reasons, the best programmers tend to be physicists by training. <По неизвестным причинам лучшие программисты часто оказываются физиками по образованию.>
The way physics is taught seems to teach the brain how to go about solving problems in an organized way.
Besides, understanding newtonian and quantum mechanics is just freaking cool. You'll be able to proudly wear your Maxwell's Equations t-shirt.
Fair warning: once you understand physics, Star Trek, Star Wars, and other hollywood sci-fi craptastic films won't seem so cool anymore.

Compiler Construction - You'll be using a compiler probably more than any other tool, and understanding them will help a lot in getting the most out of them and bending them to your will.
Furthermore, the skills learned in writing a compiler pretty much cover the gamut of computer science concepts.

Assembler Programming - You'll never learn how a computer really works by learning high level languages. I know too many programmers who have a fear of assembler. They will go to great lengths to avoid even glancing at the assembler output of their compiler, as if it would strike them blind. But they'll never be in the top tier of programmers. You can learn an awful lot about the compiler you're using, and how to get the most out of it by looking at the asm output. You'll also find that sometimes that's the only way to figure out what is going wrong.

Business Accounting - Eventually in your career, you'll want to move into management or spin off and start your own company. At that point, knowing the fundamentals and language of business accounting is indispensible.

.. without knowledge of accounting you'll be crippled talking to investors, your bank, or the tax man.

Digital Electronics - Understanding how the hardware actually functions will help you approach a computer as a machine that can be mastered rather than a magic black box. You're going to be working with it a lot, might as well understand it.

Jet Engine Analysis - I'm fascinated by engines of all types. Jet engines are especially cool. I'll never forget going to the test bunker while the engineers lit off an F-100 engine. If I could figure out what this has to do with programming, I'd tell you. So sue me.

FORTRAN - It was a waste of time, because FORTRAN shortly thereafter went out of fashion.
Generally, any programming course that focusses on learning a particular language is a waste of time. Instead, courses that teach a thought process that is applicable in general to programming is far more valuable. Learning particular languages is just a detail you can do later.

Chemistry - I never properly understood chemistry. This deficit doesn't seem to have mattered in my career. Chemistry seemed to be more oriented towards memorization, and trial and error. I don't think that applies much to programming.

Economics - Ok, this has nothing to do with programming. But economics is one of those dismal fields where everyone thinks they are an expert, from 16 years old on. Few would dream of pontificating about physics or calculus without learning something about it first, but nobody seems to have any qualms about doing it for economics.
I see this all the time on reddit, digg, etc.
So please, please, take a course in economics and at least understand the basic concepts!

Foreign Language - I'm going to get flamed for this, but I see little point to it for a programming career. I took German, and aside from the personal pleasure in learning it, it's been professionally useless to me. It's a global economy, but knowing German won't help you in dealing with the Chinese or the French, and vice versa. English is the global language of business, and if you know that, you'll be fine.

Interestingly, there's not a lot of actual programming courses in this list.
If you're training to be a programmer, shouldn't programming courses be the bulk of them?
Not necessarily.
College should not be viewed as learning particular knowledge, but as learning how to think.
Math will teach you how to think abstractly and logically, and
physics will teach you how to approach solving problems.
Once that is working in your head,
you'll find you can pick up programming rather easily,
and those thought processes will serve you well for anything you want to tackle, for the rest of your life.

http://dobbscodetalk.com/index.php?opti ... d=1#pc_538


Последний раз редактировалось Info21 Воскресенье, 05 Октябрь, 2008 11:34, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Вторник, 22 Июль, 2008 10:34 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Сказанное про чистых математиков и программистов относится и, например, к Непейводе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Вторник, 22 Июль, 2008 22:44 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Вот тут недавно в одной книжке математика видел "алгоритмический анализ" с разложением на параллельно действующие процессы и рисованием циклограммы АННЫ КАРЕНИНОЙ! :-)

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

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

ЗвездецЪ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Воскресенье, 05 Октябрь, 2008 11:25 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
[quote=Илья Ермаков]Мысль, к которой и подводил выше: не пора ли вливать в программирование некую "естественную" струю мысли, что ли?[/quote]

См. первый пост где про физическое образование.
Программерам и математикам, что называется, закон не писан. Они думают, что раз компьютерные гении, значит, всё можно (С++ и ФЯ, соответственно). А хрен.

Физики и инженеры (не ИТ) четко понимают, что есть законы, через которые хоть лопни не перепрыгнешь, только шею сломаешь.
Дейкстра -- физик-теоретик. (Кто еще мог додуматься до "инварианта"?)
Вирт -- инженер-электронщик.

Что касается биологии: основы теории эволюции (задевая экологию, т.к. эволюционируют не особи, а популяции, виды и биоценозы) надо бы четко понимать тоже.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Воскресенье, 05 Октябрь, 2008 14:40 

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
Info21 писал(а):
См. первый пост где про физическое образование.
Программерам и математикам, что называется, закон не писан. Они думают, что раз компьютерные гении, значит, всё можно (С++ и ФЯ, соответственно). А хрен.


Кстати, да. Еще в 90-е годы обратил внимание на одну характерную особенность программистов - их увлечение "фентези", Кастанедой и прочей эзотерикой. Это было как бы профессиональной болезнью (и, по-моему, осталось). Причем ребята были очень неглупые - в своей специальности и на бытовом уровне. Но во всем остальном им явно казалось, что "в принципе возможно все".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Воскресенье, 05 Октябрь, 2008 16:38 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Sergo писал(а):
"в принципе возможно все".

"Если что-то нельзя, но очень хочется, то -- можно!" :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Воскресенье, 05 Октябрь, 2008 17:19 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Geniepro писал(а):
Sergo писал(а):
"в принципе возможно все".

"Если что-то нельзя, но очень хочется, то -- можно!" :-)


Так мы давно тут выяснили, что Geniepro -- компьютерный geniй.
И proфессионал притом.

Разве неправда? :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Понедельник, 06 Октябрь, 2008 00:28 
Аватара пользователя

Зарегистрирован: Суббота, 19 Ноябрь, 2005 15:59
Сообщения: 803
Откуда: Зеленоград
Info21 писал(а):
Дейкстра -- физик-теоретик. (Кто еще мог додуматься до "инварианта"?)


Выходит, только физик мог додуматься применить математическую индукцию?
Пошто ужиков (математиков) забижаете?! :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Понедельник, 06 Октябрь, 2008 07:20 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Info21 писал(а):
Geniepro писал(а):
Sergo писал(а):
"в принципе возможно все".

"Если что-то нельзя, но очень хочется, то -- можно!" :-)


Так мы давно тут выяснили, что Geniepro -- компьютерный geniй.
И proфессионал притом.

Разве неправда? :-)

Вот хоть мой IQ колеблется от 116 до 165 на разных тестах, никак не могу понять, чем Вам не нравятся мои имя и фамилия, которые я урезал до geniepro? :mrgreen:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Понедельник, 06 Октябрь, 2008 07:53 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Видели бы вы, что творят наши(всмысле там, где я обучаюсь) физики в исходных кодах... Ужас, ужас...
Geniepro писал(а):
Вот хоть мой IQ колеблется от 116 до 165 на разных тестах, никак не могу понять...

Ммммм.
К слову о замерах IQ и прочих параметров:
http://offline.computerra.ru/2008/737/360883/
http://offline.computerra.ru/2008/737/360885/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Понедельник, 06 Октябрь, 2008 08:36 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Geniepro писал(а):
... мой IQ колеблется от 116 до 165 ...

Четто сильно он у вас колеблется 8)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Понедельник, 06 Октябрь, 2008 08:46 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Info21 писал(а):
Geniepro писал(а):
... мой IQ колеблется от 116 до 165 ...

Четто сильно он у вас колеблется 8)

Тесты кривые, нет им доверья... :?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Понедельник, 06 Октябрь, 2008 15:55 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
AVC писал(а):
Info21 писал(а):
Дейкстра -- физик-теоретик. (Кто еще мог додуматься до "инварианта"?)


Выходит, только физик мог додуматься применить математическую индукцию?
Пошто ужиков (математиков) забижаете?! :)


Вот посмотрите, как http://khpi-iip.mipk.kharkiv.edu/librar ... 316_2.html он вводит основные понятия алгоритмики. Чисто физический подход - алгоритм как шаблон поведения. (Я вот где-то тут на форуме говорил, что после долгого бития ап стену мне привиделась такая же формулировка, недавно с приятным удивлением обнаружил это у Дейкстры.)

Математики всё в трёх соснах блуждают - не разберутся, что там сначала: алгоритм или вычислимость; последовательноть операций или рекурсивные функции; - и не разберутся, пока за пределы замкнутой аксиоматики не выйдут и не осознают, что алгоритм, процесс, поведение - сие есть понятия из окружающего мира, а функция - это мат. абстракция, которая может ставиться им в соответствие.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Понедельник, 06 Октябрь, 2008 16:39 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
AVC писал(а):
Info21 писал(а):
Дейкстра -- физик-теоретик. (Кто еще мог додуматься до "инварианта"?)

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

Речь не об индукции, а об инварианте.
Сразу видно, что у ужиков законы сохранения где-то ... вместе с ежиками ... в тумане :-)
Вот как раз индукция там играет довольно неспецифическую роль. Мало ли где ее можно применить.

А вот роль инварианта -- центральная.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Понедельник, 06 Октябрь, 2008 18:42 
Аватара пользователя

Зарегистрирован: Суббота, 19 Ноябрь, 2005 15:59
Сообщения: 803
Откуда: Зеленоград
Info21 писал(а):
Речь не об индукции, а об инварианте.
Сразу видно, что у ужиков законы сохранения где-то ... вместе с ежиками ... в тумане :-)
Вот как раз индукция там играет довольно неспецифическую роль. Мало ли где ее можно применить.
Я имел в виду средства понимания программ:
Цитата:
"Среди интеллектуальных средств, которые применяются для понимания программы (или для доказательства ее правильности), я хотел бы четко выделить следующие три:
(1) перечисление;
(2) математическая индукция;
(3) абстракция." (Дейкстра. Заметки по структурному программированию)


Info21 писал(а):
А вот роль инварианта -- центральная.
Кто же против? :)
Разве что, попробую уточнить: центральная роль принадлежит утверждениям (инвариант - частный случай), а идея использовать утверждения для анализа программ предложена еще Тьюрингом.

Info21 писал(а):
Плюс физики знают, что надо математику гнуть под явления, а не наоборот.
А математики любют из головы.
Такое чувство, что математиков нельзя из лечебницы выпускать. :oops:
А с чего вообще у нас тут разгорелась такая междисциплинарная битва? :o


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Понедельник, 06 Октябрь, 2008 19:51 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
AVC писал(а):
Цитата:
"Среди интеллектуальных средств, которые применяются для понимания ...

Да зачем вообще, когда с самого начала речь конкретно о цикле.
Тьюринг -- Тьюрингом, а инвариант цикла -- вещь нетривиальная. И открыл ее не Тьюринг.
Цикл -- единственная реально нетривиальная императивная конструкция, для которой нужно было матем. осмысление.

С математиками действительно надо ухо востро держать :-)
Но с чистыми. Вроде Чёрча.

С прикладными (какие выходят с ВМК, основанного великим А.Н.Тихоновым) -- всё в порядке. Это же практически физики :-) Некорректные задачи то да сё... красота! Не зря ВМК вырос из кафедры математики физфака :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Вторник, 07 Октябрь, 2008 11:12 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Sergo писал(а):
Причем ребята были очень неглупые - в своей специальности и на бытовом уровне. Но во всем остальном им явно казалось, что "в принципе возможно все".

Угу... После нескольких лет работы программистом, стал ловить себя на мысли, что меня всё сильнее беспокоит ("нарастает диссонанс") пропасть в возможностях между тем, что я могу наворотить в виртуальном мире (имеется ввиду программирование), и тем на что я способен в реальном (ну, там ремонт в квартире).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Вторник, 07 Октябрь, 2008 11:46 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Сергей Губанов писал(а):
... и тем на что я способен в реальном (ну, там ремонт в квартире).

Проблема актуальная :-)
Применяю принцип "всё лишнее -- на ...".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Вторник, 07 Октябрь, 2008 12:15 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Сергей Губанов писал(а):
и тем на что я способен в реальном (ну, там ремонт в квартире).
Используйте принцип "разделяй и властвуй", также известный как принцип разделения труда: не можешь сам - заплати другому. : )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что нужно знать программисту
СообщениеДобавлено: Вторник, 07 Октябрь, 2008 12:47 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 372
Сергей Губанов писал(а):
Sergo писал(а):
Причем ребята были очень неглупые - в своей специальности и на бытовом уровне. Но во всем остальном им явно казалось, что "в принципе возможно все".

Угу... После нескольких лет работы программистом, стал ловить себя на мысли, что меня всё сильнее беспокоит ("нарастает диссонанс") пропасть в возможностях между тем, что я могу наворотить в виртуальном мире (имеется ввиду программирование), и тем на что я способен в реальном (ну, там ремонт в квартире).

"Сопротивляемость материала" разная.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB