# Forum Practice and Perfect your Russian Говорим по-русски  Программирование

## Valda

Мне нужно совет.  
Я хочу изучать конкретный компьютерный язык, а именно HeroScript,  чтоб создать мою игру (Или мой MMORPG). Это просто заместительное пакетное соглашение которые я всегда хотела стараться ( http://www.heroengine.com/ ) чтоб создать свои игры, даже если это звучит идиотский и пустая трата времени. Но все еще я хочу проверять мою идею. 
Думаю учить ли самостоятельно.. что мне советовали? Поступить на курсе программирования? Но не забывайте что я ТОЛЬКО хочу знать язык Heroscriptа, и мне все равно о С++, Phython, SQL и такие языки.  
С другой стороны боюсь что без никакого знания программирования, я отчаюсь этого. Что делать?

----------


## Paul G.

"заместительное пакетное соглашение"??? What the hell is that? It doesn't make sense at all.  ::  
Do you mean "substituted agreement" or something? Kinda "my personal innovation"? 
Я думаю, ты можешь изучить HeroScript самостоятельно. Это несложно. Просто тебе надо начать с очень простых вещей и двигаться шаг за шагом (= step by step).
======================== 
Some corrections: 
Мне нуж*ен* (совет is masculine) совет.  
Я хочу изучать конкретный компьютерный язык, а именно HeroScript, чтоб создать *свою* игру (Или мо*ю* MMORPG). Это просто _заместительное пакетное соглашение_ (?), которое я всегда хотела *претворить в жизнь* (good pattern), даже если это звучит *по*-идиотски и *как* пустая трата времени. Но я все еще хочу *проверить* (perfective sounds better here) мою идею. 
 Думаю, учить ли самостоятельно.. *как* мне советовали? Поступить на курс*ы* программирования? Но не забывайте, что я хочу знать *ТОЛЬКО* язык HeroScript, и *для меня неважны* С++, Phython, SQL и *подобные* языки. 
 С другой стороны, боюсь, что без какого-либо знания программирования я отчаюсь (= потеряю надежду). Что делать? 
1. я ТОЛЬКО хочу знать язык... When you put "only" before a verb, definitely, it interacts with the verb. So it sounds like you want "only to know" the language and nothing more. If you put "only" before a noun, the same thing happens between the noun and "only". Like "I want to know ONLY this (specific) language". 
2. ...без никакого... This construction sounds weird (in spite of the fact that Russians like double negatives), because "никакой" implies an absent object, so it sounds like "without an empty place". You should use either "с никаким [знанием]" or "без какого-либо [знания]". The second one is much better.

----------


## Valda

> "заместительное пакетное соглашение"??? What the hell is that? It doesn't make sense at all.  
> Do you mean "substituted agreement" or something? Kinda "my personal innovation"?

 Нет нет... Я имела в виду что это "great package deal"  (99$ в год чтоб получить лицензию)   

> Я думаю, ты можешь изучить HeroScript самостоятельно. Это несложно. Просто тебе надо начать с очень простых вещей и двигаться шаг за шагом (= step by step).

 А Вы программист?    

> которое я всегда хотела притворить в жизнь (good pattern

 притворить в жизнь =стараться? really?   

> 2. ...без никакого... This construction sounds weird (in spite of the fact that Russians like double negatives), because "никакой" implies an absent object, so it sounds like "without an empty place". You should use either "с никаким [знанием]" or "без какого-либо [знания]". The second one is much better.

 Спасибо за эту сведению  ::   
"Шаг за шагом" кстати, выражение что я всегда употребляю  ::

----------


## Paul G.

> Нет нет... Я имела в виду что это "great package deal"  (99$ в год чтоб получить лицензию)

 Ok, then it would be "великолепное комплексное предложение", or "замечательное". "Заместительный" means kinda "substitutive".   

> А Вы программист?

 A little bit. (By the way, why did you start using "Вы"?)   

> притворить в жизнь =стараться? really?

 "Хотеть притворить в жизнь" implies some efforts, yes. But now I see that I could get you wrong. Because it looks like you used "стараться" in a strange way or I just missed something.

----------


## it-ogo

Способности к программированию очень индивидуальны. Кому-то легче всего разобраться просто сев и начав делать сразу то, что надо. А кто-то не сможет практически программировать, даже потратив годы стараний. Большинство находится где-то между этими полюсами. 
Существуют языки программирования, такие как BASIC и PASCAL, созданные специально для обучения алгоритмизации (проектированию последовательности действий компьютера). В них нет ничего лишнего - только программирование. Попробуйте  просто почитать учебники с примерами и порешать простые задачи "на бумаге". Когда начнет получаться, если вам станет интересно - можете двигаться дальше. Скачайте (download) простую учебную среду разработки (IDE) для выбранного языка, запрограммируйте эти задачи и заставьте работать. Потом возьмите задачи посложнее.  
Дальше вам нужно будет разобраться с теорией по объектно-ориентированному программированию, усвоить значение терминов и механизмы работы. (Оценить его преимущества вы сможете не сразу - только после длительной работы со сложными программами.) Тренироваться будете уже на практических задачах в скрипте. 
После этого, думаю, уже можете начинать осваивать модель данных HeroEngine и HeroScript. 
П.С. Я работаю преподавателем информационных технологий в вузе. 
П.П.С. "Пр*е*творить в жизнь"

----------


## Crocodile

> П.С. Я работаю преподавателем информационных технологий в вузе.

 Ууу.. а я думал ты физику преподаёшь...

----------


## Юрка

> Существуют языки программирования, такие как BASIC и PASCAL, созданные специально для обучения алгоритмизации

 Я помню какой кайф испытал, изучая Pascal уже зная Fortran и PL/1. А изучая Prolog шарики заехали за ролики. Плевался, изучая С и С++. В общем, я за Паскаль.

----------


## it-ogo

> Ууу.. а я думал ты физику преподаёшь...

 По физике я защищался.  ::  Так что практически раскусил. На то и крокодил.

----------


## Crocodile

> По физике я защищался.

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

----------


## it-ogo

> Ну, ладно, считай, что почти реабилитировался. IT - штука демократичная: выучил и знаешь. Это я и сам могу. А вот физика..

 Физика - штука элитарная. Выучил - и все равно не знаешь. Это тоже все могут, но не всем дано иметь с этого кайф.

----------


## Crocodile

> Я помню какой кайф испытал, изучая Pascal уже зная Fortran и PL/1. А изучая Prolog шарики заехали за ролики. Плевался, изучая С и С++. В общем, я за Паскаль.

 Что, собственно, означает только одно - тебе понятно структурное программирование. А объектно-ориентированное, функциональное, логическое и системное программирование ты не понял. Возможно, просто необходимости не было.

----------


## Crocodile

> Физика - штука элитарная. Выучил - и все равно не знаешь.

 Дык, а я про что. Хорошо, что я это вовремя понял. Но пиетет остался.  ::  ::    

> Это тоже все могут [...]

 Ох, не все..  ::

----------


## Crocodile

> Мне нужно совет.  
> Я хочу изучать конкретный компьютерный язык, а именно HeroScript 
> С другой стороны боюсь что без никакого знания программирования, я отчаюсь этого. Что делать?

 Я глянул на HeroScript HeroScript - HEWIKI    

> A script is a named set of functions and/or methods, referenced either by the field mainScript on nodes,  or via a class on the node which calls a similarly named class methods  script. When something happens to a node, the appropriate function or  method is called in the script on that node.

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

----------


## it-ogo

> Я глянул на HeroScript HeroScript - HEWIKI    
> Думаю, что для написания несложных игр нет необходимости в формальном изучении фундаментальных языков программирования, структур данных и ООП (не Организация Освобождения Палестины , а Объектно-Ориентированное Программирование).

 Проблема с людьми, научившимися плавать - в том, что они уже не могут себе представить, как это можно не уметь плавать. Для них упражнения с задержкой дыхания и лежанием на воде вниз лицом в "лягушатнике" могут показаться нелепостью. И действительно, можно же бросить человека в воду и он научится плавать. Или же утонет, а после спасения не захочет больше пробовать. По моему опыту, в программировании второй вариант статистически более вероятен. 
А что касается ООП... я заглянул в официальные гиды по HeroScript и увидел тексты, чуть менее, чем полностью состоящие из слов типа "инстанцирование". Надо полагать, в менюшках ихней IDE творится то же самое.

----------


## Hotdog

Я профессиональный программист игр, и я самостоятельно учился. Полно возможно учиться сами, если вам нравится программирование. Но я думаю, что это важно - вам надо увлекаться программированием, а не только играми.  
Я ничего не знаю о HeroEngine, поэтому не могу я советовать если это хороший язык с которым начать или нет. Я считаю, что какой именно язык это не так важно - если вы умеете программировать, то легко и быстро сможете учить новый язык. Поэтому, не бойтесь начать с чем-то другое, если HeroScript появится слишком сложным. Это очень хорошее время изучать игровое программирование, столько сейчас хороших и легких инструментов особенно для создания игр  ::  
В любом случае, я согласен с it-ogo - я советую начать с чем-то просто, а не сразу же начать с полной игрой, а то будет слишком много учить. И если вы решите начать с другом инструментом и языком, я советую Unity... я считаю, что он хорош (и бесплатен).

----------


## Valda

> Ok, then it would be "великолепное комплексное предложение", or "замечательное". "Заместительный" means kinda "substitutive".

 I used the auto-correction software after it told me I misspelled замечательное, and I just clicked at their suggestion without looking twice. Got me the wrong word!     

> A little bit. (By the way, why did you start using "Вы"?)

 Только для Вас.  ::  Мы никогда не соглашались на ты... можно на ты?     

> "Хотеть притворить в жизнь" implies some efforts, yes. But now I see that I could get you wrong. Because it looks like you used "стараться" in a strange way or I just missed something.

 "I always wanted to try out HeroEngine"  (try out as in "put to the test, as for its quality, or give experimental use to)   

> Способности к программированию очень индивидуальны. Кому-то легче всего разобраться просто сев и начав делать сразу то, что надо. А кто-то не сможет практически программировать, даже потратив годы стараний. Большинство находится где-то между этими полюсами. 
> Существуют языки программирования, такие как BASIC и PASCAL, созданные специально для обучения алгоритмизации (проектированию последовательности действий компьютера). В них нет ничего лишнего - только программирование. Попробуйте просто почитать учебники с примерами и порешать простые задачи "на бумаге". Когда начнет получаться, если вам станет интересно - можете двигаться дальше. Скачайте (download) простую учебную среду разработки (IDE) для выбранного языка, запрограммируйте эти задачи и заставьте работать. Потом возьмите задачи посложнее.  
> Дальше вам нужно будет разобраться с теорией по объектно-ориентированному программированию, усвоить значение терминов и механизмы работы. (Оценить его преимущества вы сможете не сразу - только после длительной работы со сложными программами.) Тренироваться будете уже на практических задачах в скрипте. 
> После этого, думаю, уже можете начинать осваивать модель данных HeroEngine и HeroScript. 
> П.С. Я работаю преподавателем информационных технологий в вузе. 
> П.П.С. "Претворить в жизнь

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

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

 Просто боюсь что отсутствие знаний элементарных вещих мне погибнет.  Никогда в жизни ничего не программировала. Ты уверен?

----------


## it-ogo

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

 Чтобы программировать, нужно уметь программировать.  ::   
Если же достаточно просто взять что-то готовое и поменять имена героев и описания, можно обойтись и без этого. 
Зависит от того, что именно вы хотите от своей игры.  *Hotdog*, Google translate is mostly understandable, but very far from perfection. I don't think you will be banned for using English in this thread.

----------


## Hotdog

Я написал сам. Помогите, пожалуйста?

----------


## Crocodile

> Просто боюсь что отсутствие знаний элементарных вещих мне погибнет.  Никогда в жизни ничего не программировала. Ты уверен?

 Замечание it-ogo верно. Вопрос лишь в том, что именно является плаванием в лягушатнике. Если ты хочешь иметь дело с скриптовым языком, то на практике "изучение языка" обычно ограничивается надёргиванием кусочков кода из разных мест в интернете. Программирование такого рода - это не вопрос о том, как научившись делать избушку из спичек, самому построить спичечный замок с пятью башнями и стеной с бойницами, а вопрос о том, как научиться готовить суп по рецептам из поваренной книги. Это совершенно разные способы мышления. И, возможно, изучение тонкостей преобразования атипичных указателей и открывающиеся в связи с этим возможности элегантного конструирования напрямую никак не связаны с командами типа "перемести объект 'игрок#1' на Х клеток вперёд". Главное, чтобы сам процесс доставлял удовольствие ("Ура! После трёх часов тыкания мой эльф всё-таки научился заходить в гору!")

----------


## it-ogo

Hotdog, в таком случае прошу прощения. Мне показалось, что ошибки - машинные. Для полностью самостоятельного текста это хороший уровень.   

> Я* -* профессиональный программист игр, и я самостоятельно учился. Полн*остью* возможно учиться сам*ому*, если вам нравится программирование. Но я думаю, что важно  увлекаться программированием, а не только играми.  
> Я ничего не знаю о HeroEngine, поэтому не могу *сказать*, хороший *ли это* язык *чтобы* начать, или нет. Я считаю, что _не так важно,_ какой именно язык  - если вы умеете программировать, то легко и быстро сможете *из*учить новый язык. Поэтому, не бойтесь начать с че*го*-то друг*ого*, если HeroScript по*кажется* слишком сложным. Сейчас очень хорошее время изучать игровое программирование, столько сейчас хороших и легких инструментов, особенно для создания игр  
> В любом случае, я согласен с it-ogo - я советую начать с че*го*-то просто*го*, а не сразу с полной игрой, а то *придется* слишком много учить. И если вы решите начать с друг*и*м инструментом и языком, я советую Unity... я считаю, что он хорош (и бесплатен).

----------


## it-ogo

> И, возможно, изучение тонкостей преобразования атипичных указателей и открывающиеся в связи с этим возможности элегантного конструирования...

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

----------


## Hotdog

Спасибо большое it-ogo  ::    

> Главное, чтобы сам процесс доставлял удовольствие ("Ура! После трёх часов тыкания мой эльф всё-таки научился заходить в гору!")

 Да, это точно. В начале, я тоже только хотел создать игру. А потом стал любить этот процесс.

----------


## Crocodile

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

 А.. думаю, что ничего из этого не будет. Будет многочасовое тыкание какому именно событию надо приписать вот эту хрень из вот того форума и почему всё время возникает ошибка компиляции. (А!! Так вот почему, блин, моего игрока же зовут игрок#1 а в примере игрок#01! А, блин.. опять какая-то ошибка.. но уже другая..)  ::

----------


## Valda

А мои ошибки, не похожие как машинные? Просто из любопытство...    

> Но я думаю, что важно увлекаться программированием, а не только играми.

 Важно  - да. Обязательно? Не так и думаю.    

> Поэтому, не бойтесь начать с чем-то другим, если HeroScript покажется слишком сложным.

 Хотя я же не сказала что HeroScript кажется слишком сложным. Сказала что боюсь потерять надежду из-за усложнении (если это слово), если мой отсутствие знаний элементарных вещих расстроит меня. Но, я понимаю вашу точку зрения.  
Кстати, недавно изучала язык релейной (лестничной) логики. Так, я знаю как программировать в этом.  ::   Очень легко. Тем не менее, в нём ничего похожего к текстовому программированию. К сожалению...

----------


## it-ogo

> А мои ошибки, не похожие как машинные? Просто из любопытство...

 Большей частью нет. Может быть просто я с вами чаще общаюсь.   

> ...и почему всё время возникает ошибка компиляции...

 Я всегда полагал, что ошибки компиляции - не очень типичное явление для скриптовых языков.  ::  
Ладно, посмотрим, чем дело кончится. Вообще, игры - двигатель прогресса. Спасибо Planescape:Torment за мой английский.

----------


## it-ogo

> Кстати, недавно изучала язык релейной (лестничной) логики. Так, я знаю как программировать в этом.   Очень легко. Тем не менее, в нём ничего похожего к текстовому программированию. К сожалению...

 Ага. Тогда можно попробовать зайти с другой стороны. Аппаратная логика -> микропроцессорная архитектура -> языки ассемблера -> С -> C++ -> Java -> скрипты... (шучу)

----------


## Crocodile

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

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

> The *HeroScript Compiler Server* is a separate process in HeroEngine, where scripts are submitted by the client, via the Dude Server,  to be compiled. After a successful compile, the Compiler Server informs  all other servers to load the new script code.  Compiling a script  creates byte-code, which is interpreted by a HeroMachine running in a server when the script is executed. 
> When a GameMaster writes a script, it will be either a client-side script or a server-side script. This Server only handles server-side scripts. If the GM wishes to compile a client-side script, the GM will submit it to the Client HeroScript Compiler Server, a different process.

----------


## it-ogo

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

 Отстал я от жизни. Когда-то понятие "скриптовый" считалось синонимом "интерпретируемого". А сейчас уже вон и компилирующие интерпретаторы туда же... Ну да, если MMO и выполняется на сервере, то тут и JIT скоро прикрутят, не только байт-код.

----------


## Юрка

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

 Ничего себе, подготовочка в вашей "зе скул"...  :: 
Кстати, в ТурбоПаскале есть объекты, и я их с удовольствием использовал. Объекты делают программы изящнее. Но всё это была давно. Программистом я был с 1988 по 1994. Сейчас наверное наколбасили новых языков.

----------


## Valda

Кстати, изучение программирования похоже на изучение языков? Потому, что у меня уже неплохие навыки в этой области  ::

----------


## cartoonsmaker

я в свое время очень долго втыкал в язык программирования actionscript (Flash) но после долгих мучений стал понимать. Я не программист но мне очень помогает в разработке анимаций. Люблю юзать условия )))

----------


## Юрка

> Кстати, изучение программирования похоже на изучение языков?

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

----------


## it-ogo

Программирование - это власть.

----------


## pushvv

Объекты в паскакале - это та еще жесть. Вообще его стоит учить только для разнообразия, поскольку сейчас вообще не актуально (вообще делфи очень похожи на паскаль, но все программы, виденные мной на делфи, отличаются невероятной убогостью и кучей багов). С в этом плане существенно более гибкий (я говорю о с, с++, с#) Если бы я сейчас выбирал, с какого языка начать, я бы выбрал .NET с#, либо java (можно RoR). Потому что быстро, удобно, понятно. Если хочется именно скрипты - можно попробовать  autoit (отличный хелп, куча примеров, большое сообщество). Можно попробовать поиграться с javaScript, php, python. А дальше уже можно будет посмотреть на ассемблер, вникнуть в тонкости устройства пк, представления данных. распределение памяти, многозадачность...  
Что касается heroengine, мне показалось, что это довольно интересная, и при этом сложная система. Я не думаю, что это лучший выбор для новичка.

----------


## Crocodile

> Ничего себе, подготовочка в вашей "зе скул"...

 А то ж.  ::    

> Кстати, в ТурбоПаскале есть объекты, и я их с удовольствием использовал. Объекты делают программы изящнее.

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

> Сейчас наверное наколбасили новых языков.

 Дело не в новых языках. Все фундаментальные языки высокого уровня - это побочный продукт разработок в области искусственного интеллекта (как, собственно, и всё остальное в IT). Например, первый объектно-ориентированный язык был создан уже к концу 60-х годов. Штука в том, что все языки в итоге выполняются на том же железе, т.е. они все загнаны в рамки жёсткой реализации автоматов - все они реализуют детерминированный конечный автомат. И из этого нет выхода (пока). Поэтому, все попытки спопугаить человеческое мышление, которое работает по ассоциативно-эвристическому принципу, уткнулись в одну стену: можно попробовать представить лишь ОДИН СРЕЗ человеческого мышления, и попробовать автоматизировать связанные с этим стандартные операции. Та же пресловутая операция присваивания - лишь один из элементов мышления и она представлена оператором присваивания в абсолютно любом процедурном языке. Если ты напишешь х := у или х = у или LET X = Y или SET X = Y это ничего не меняет. В декларативном языке, например, операции присваивания вообще нет, а есть операция привязывания.  А в фунциональном программировании, например, язык пытается автоматизировать процесс ОБОСНОВАНИЯ как часть принятия решения. И там это реализовано на уровне операторов. Поэтому, изучение языков программирования - это процесс анализа узкого среза своего собственного мышления.

----------


## Юрка

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

----------


## Valda

> Нет. Изучение программирования похоже на изучение математики. Программирование часто использует математические символы, но иногда придаёт им другой смысл. Например, символ "=" в программировании может означать результат сравнения (равно), но может означать и присвоение переменной какого-то значения.
> Программирование - это написание инструкции для машины на понятном ей языке. Поэтому нужно быть занудой, чтобы предусмотреть все варианты заранее. Вообще мне программирование нравилось именно с эстетической точки зрения. Мне нравилось делать инструкции минимальной длины и максимально понятные человеку.

 Звучит интересно.  Я вынуждена спроектировать что-то с языкой лестничной логикой скоро. Большой проект. Мне жал что не сделаю что-то с текстовом языком...  
Но честно говоря, я бы не говорила так решительно как и вы, что изучение программирования не похоже на изучение языка. Может быть, лучше сказать, что это какой-то сочетание между языками и математикой?...ну, по крайней мере, это так и выглядит для меня.  ::

----------


## Inego

Математика — это математика. Алгоритмы — это алгоритмы. А языки — это языки!
На всё есть свои таланты!
Кто-то силен в одном, кто-то — в другом, кто-то — во всём, а кто-то — ни в чём  ::

----------


## Юрка

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

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

----------


## pushvv

И над чем размышляет программист? XD Программист, обычно реализует алгоритм, используя при этом один из языков (sic!) программирования. Иногда, конечно, приходится придумывать алгоритмы, но это можно сравнить, например, с написанием стихов =) По большому счету что корейский, что паскаль, что галиматья в 1с - тоже набор слов, конструкций, правил. Всякие хитрые приемы, которые позволяют изъясняться эффективнее. Ну и так далее. В принципе можно и анатомию свести к конечным автоматам, внутренние управляющие сигналы, внешние датчики, триггеры, память, механизмы доступа и так далее... 
>>Может быть, лучше сказать, что это какой-то сочетание между языками и математикой 
Все одно - любая наука описывает окружающий мир будь то математика, физика, что угодно. И каждая из этих наук использует свой язык для этого. Чтобы понимать физику, к примеру, нужно хорошо ориентироваться в понятиях, которыми она оперирует. Тогда все встает на свои места и становится понятна даже квантовая теория и прочая муть. То же с математикой, статистикой, социологией, экономикой, ... 
При этом язык, в общем, тоже нужен для описания окружающего мира.

----------


## Юрка

> И над чем размышляет программист?

 Хороший программист должен размышлять надо всем. Над выбором переменных и констант, над их именами и комментариями к ним, над названиями функций и подпрограмм, над набором параметров этих функций, над размером подпрограммы (в идеале это страница), над структурой программы, над количеством комментариев в программе, над составом библиотеки вспомогательных программ, над интерфейсом программы, над понятностью кода другому программисту и т.д.
Об этом написаны книги. Например, Ван Тассел: "Стиль, разработка, эффективность, отладка и испытание программ". В моё время это был бестселлер. 
Это было про стиль. А ещё есть содержание. Там вообще голову можно сломать. Я занимался имитационным моделированием морских процессов. Приходилось моделировать распространение звуковой волны в воде и т.д. И надо было в одной модели с заданной точностью моделировать процессы, которые идут на очень разных скоростях. Пришлось придумать метод пересчёта шага по времени (метод дельта T). Там кандидатские и докторские светили. Вообще, я не знаю более интересной работы, чем инженер-программист. Это захватывало так, что думал об этом и в транспорте, и несколько дней в отпуске, пока не отпускало.
Но есть одно но. Интересно делать только свои программы. Чужие причёсывать не интересно.
Вообще, сделать программу объёмом 100 листов и чтобы она была без ошибок - это уже не тривиальная задача. Это может только человек со стилем.

----------


## pushvv

Ну так сартра переводить тоже не всем дано.

----------


## it-ogo

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

 Хороший программист в процессе работы над этим размышлять ни в коем случае не должен. Он должен все это обеспечивать очень быстро - на интуиции и шаблонах. Хороший программист - быстрый программист.  ::  Это если говорить о собственно программистах, а не об исследователях и проектировщиках языков и компиляторов/трансляторов.   

> Я занимался имитационным моделированием морских процессов. Приходилось моделировать распространение звуковой волны в воде и т.д. И надо было в одной модели с заданной точностью моделировать процессы, которые идут на очень разных скоростях. Пришлось придумать метод пересчёта шага по времени (метод дельта T). Там кандидатские и докторские светили.

 Это опять-таки нетипичная задача для программиста. Задача для профессионального программиста в даном случае - быстро отыскать наиболее адекватную для данной задачи библиотеку и корректно ее использовать, а не изобретать велосипед. Собственно, динамическая коррекция шага, завязанная на оценку погрешности - стандартная черта большинства профессиональных реализаций, например, численного интегрирования, МКЭ, сеток и т.п.. И там столько тонкостей, в которых можно напахать неочевидным образом, что лучше оставить это математикам-специалистам по конкретному типу численных методов, а не писать с нуля для своей предметной области.  
Эта истина выстрадана мной на собственном горьком опыте.  ::

----------


## maxmixiv

> что лучше оставить это математикам-специалистам

 Неужели они ещё существуют? Нет, не видел

----------


## CoffeeCup

> Хороший программист ... размышлять ни в коем случае не должен. Хороший программист - быстрый программист.

 if( bool.toString().length() == 4 )  ::

----------


## Юрка

> Хороший программист - быстрый программист.

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

> Задача для профессионального программиста в даном случае - быстро отыскать наиболее адекватную для данной задачи библиотеку и корректно ее использовать, а не изобретать велосипед. Собственно, динамическая коррекция шага, завязанная на оценку погрешности - стандартная черта большинства профессиональных реализаций, например, численного интегрирования, МКЭ, сеток и т.п.

 Я работал тогда, когда мы слыхом не слыхивали о всяких матлабах. В то время мы работали на машинах серии ЕС 1060 (если не забыл) с коллективным доступом. Потом увидели первые персональные. Потом получили первые IBM. У нас в лаборатории были профессор, доцент, научные сотрудники, но никто не знал, что такое переменный шаг моделирования. Мы это с нуля осмысливали и разрабатывали.

----------


## it-ogo

> if( bool.toString().length() == 4 )

 Вот именно. Таков обычно результат излишних размышлений. Надо знать, как это делается обычно, а не выдумывать.   

> Так может рассуждать или начальник, у которого в подчинении программисты (мыслитель здесь я, а вы исполнители), или программист стиля тяп-ляп.

 Таковы современные принципы профессиональной разработки программного обеспечения. (Я же препод - быть в курсе таких вещей - моя обязанность.) Впрочем, что я говорю "современные"? RAD стал мейнстримом в начале девяностых. С тех пор все хужее и хужее. Скорость обновления рынка ПО только растет.   

> Но я не встречал работ, в которых приветствуется суета и отсутствие мысли.

 Суету порождает излишек мысли, а не ее отсутствие.  ::    

> Я работал тогда, когда мы слыхом не слыхивали о всяких матлабах. В то время мы работали на машинах серии ЕС 1060 (если не забыл) с коллективным доступом. Потом увидели первые персональные. Потом получили первые IBM. У нас в лаборатории были профессор, доцент, научные сотрудники, но никто не знал, что такое переменный шаг моделирования. Мы это с нуля осмысливали и разрабатывали.

 Эх, романтика... Я сам немного такой, но мы с вами как программеры устарели с распространением интернета.   

> Любой русский программист, после пары минут чтения кода, обязательно вскочит и произнесет, обращаясь к себе: «Переписать это все нафиг!» Потом в нем шевельнется сомнение в том, сколько времени это займет, и остаток дня русский программист потратит на то, что будет доказывать самому себе, что это только кажется, что переписать — это много работы. А если взяться и посидеть немного, то все получится. Зато код будет красивый и правильный. Hа следующее утро русский программист свеж, доволен собой и без единой запинки докладывает начальству, что переписать этот кусок займет один день, не больше. Да, не больше. Hу, в крайнем случае, два, если учесть все риски. В итоге начальство даст ему неделю и через полгода процесс будет успешно завершен. До той поры, пока этот код не увидит другой русский программист.

----------


## it-ogo

> Неужели они ещё существуют? Нет, не видел

 Их мало и больше практически не надо. Работают они в фирмах, разрабатывающих специализированное математическое ПО и библиотеки. И в университетах. Западных, по большей части.

----------


## Юрка

> мы с вами как программеры устарели с распространением интернета.

 Думаю, что мастерство не пропьёшь. Ведь кататься на велосипеде два раза учиться не нужно, даже если это новый велосипед.  

> Любой русский программист, после пары минут чтения кода, обязательно вскочит и произнесет, обращаясь к себе: «Переписать это все нафиг!» Потом в нем шевельнется сомнение в том, сколько времени это займет, и остаток дня русский программист потратит на то, что будет доказывать самому себе, что это только кажется, что переписать — это много работы. А если взяться и посидеть немного, то все получится. Зато код будет красивый и правильный. Hа следующее утро русский программист свеж, доволен собой и без единой запинки докладывает начальству, что переписать этот кусок займет один день, не больше. Да, не больше. Hу, в крайнем случае, два, если учесть все риски. В итоге начальство даст ему неделю и через полгода процесс будет успешно завершен. До той поры, пока этот код не увидит другой русский программист.

 История прям про меня. Изначально я был в группе из трёх человек и мы ваяли верхний уровень большой модели. Придумывали как считать шаг по времени и т.д. Через несколько лет один ушёл в бизнес, другой тоже (потом свалил в Канаду). И вот оставшись в лаборатории последним могиканином (который что-то соображал в верхнем уровне), я за год самостоятельной работы перелопатил то, что мы сделали втроём, переделав 90%. И получилось то, что не получилось сделать втроём. Нам тогда руководитель лаборатории запретил делать переменный шаг по времени, сказав, что мы сами не понимаем, что это такое (и он не понимает). А в одиночку работать оказалось продуктивнее. Ни с кем не надо согласовывать, доказывать, спорить. Ввёл модуль "среды", рекомендации по шагу давали модели нижнего уровня. В итоге упростились до неприличия модули движения. Добавил интерфейс (графика, меню, редактор) и "продал" это в соседнюю тему. У них тогда программа считала, но ничего не изображала. А у меня там виды с любой точки, плавное масштабирование, процесс в динамике и т.д. Но потом понял, что это тупик и ушёл из лаборатирии. Уж очень тупые руководы были, хоть и кандидаты. А профессор был озабочен тем, как продаться на Запад. У него была книжка, но немцы ему объяснили, что голую теорию они не покупают. И вот он засадил аспиранта воплотить его бредовую теорию в ПО. Он и мне предлагал, но я честно признался, что бред не понимаю. Жалею только о том, что не захватил с собой распечатку своих шедевральных программ. Сейчас бы за чашечкой кофе любовался, вспоминал молодость, тыкал в них мордочкой молодёжь (типа, вот как надо программировать).  ::

----------


## kvs

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

----------


## Crocodile

> Впрочем, что я говорю "современные"? RAD стал мейнстримом в начале девяностых. С тех пор все хужее и хужее.

 Не так страшен чёрт, как его малютки.  ::  
Прогресс есть. Для особо криворуких уже есть нехилый рынок CRM и иже с ними, где криворукие вполне достойно могут себя применить, невзирая на свою криворукость.. Так сказать, access diversity for hands-challenged persons.  ::

----------


## pushvv

Юрий, руководы тупые, методики групповой разработки нет, mvc нет - начинается куча проблем типа одному эффективнее, все выдумывать с нуля и т.д. Применяя современный подход к разработке ПО 75% проблем удалось бы избежать. Кроме того, сейчас вряд ли кто-то будет заботится об оптимизации кода, экономии памяти и так далее (если не брать в расчет реверс, всякие контролеры и так далее), . Стало быть остается не думать, а изучать объектную область (кстати этим тоже иногда занимаются специально обученные люди, задачей которых является составление подробного алгоритма, который потом надо тупо реализовать, фактически декомпозиция, описание интерфейсов и все). Есть люди, которые GUI рисуют. Есть люди, которые математику делают. Конечно думать надо, но иногда вообще не критично. А спор начинался с того, что программистам надо думать существенно больше, чем, например, переводчикам.

----------


## Crocodile

> Применяя современный подход к разработке ПО 75% проблем удалось бы избежать.

 Так ведь и требования к ПО сейчас другие, однако. Те, кто программировали в 70-х смотрели на программистов 80-х как на законченных дебилов. И таки причины были..  ::    

> А спор начинался с того, что программистам надо думать существенно больше, чем, например, переводчикам.

 Это было неизбежно. И потом, что мы знаем о переводчиках? Может, они искренне верят в то, что для перевода художественной литературы им нужно думать намного больше, чем программистам?  :: 
Помнишь известное высказывание Гильберта:   

> Об одном бывшем питомце Гильберт отозвался так: "Да, он стал поэтом — и правильно сделал. Для математики ему не хватало фантазии!"

----------


## Doomer

> Думаю, что мастерство не пропьёшь. Ведь кататься на велосипеде два раза учиться не нужно, даже если это новый велосипед.
> История прям про меня. Изначально я был в группе из трёх человек и мы ваяли верхний уровень большой модели. Придумывали как считать шаг по времени и т.д. Через несколько лет один ушёл в бизнес, другой тоже (потом свалил в Канаду). И вот оставшись в лаборатории последним могиканином (который что-то соображал в верхнем уровне), я за год самостоятельной работы перелопатил то, что мы сделали втроём, переделав 90%. И получилось то, что не получилось сделать втроём. Нам тогда руководитель лаборатории запретил делать переменный шаг по времени, сказав, что мы сами не понимаем, что это такое (и он не понимает). А в одиночку работать оказалось продуктивнее. Ни с кем не надо согласовывать, доказывать, спорить.

 только к программированию этот подвиг танкиста не имеет отношения

----------


## Doomer

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

 хороший программист категорически не должен делать ничего вышенаписанного, за исключением последнего (понятность кода)
имена переменных, констант и методов должны быть стандартизированы. Чтобы любой программист незнакомый с кодом, взглянув на ваш код мог сразу понять что о чем
стандартов не так много, но следует придерживаться одного из них на протяжении всего кода
над интерфейсом программы и функционалом методов программист также не должен думать, для этого есть архитектор 
и вообще хороший программист, это программист который может работать над одним кодом в команде из нескольких человек, поэтому Д'Артаняны в программировании не нужны. Учитывая что у большинства людей технического склада присутствует OCD в той или иной степени тяжести, то работа в команде это наверное пункт номер 3 по значимости в карьере программиста (после знания среды разработки и умения обучаться)

----------


## it-ogo

Дети, уважайте старцев, на чьих ошибках и чьей кровью написаны ваши учебники и методики! Я вот совершенно самостоятельно додумался до необходимости ООП, например, еще до того, как первый раз увидел Turbo Vision. Ну разве я не Дартаньян?  

> Не так страшен чёрт, как его малютки.  
> Прогресс есть. Для особо криворуких уже есть нехилый рынок CRM и иже с ними, где криворукие вполне достойно могут себя применить, невзирая на свою криворукость.. Так сказать, access diversity for hands-challenged persons.

 CRM? Может ты имеешь в виду CMS? Я как-то попробовал Moodle и Джумлу. Нет уж, для этого я слишком тупой. Ну его в баню!

----------


## Crocodile

> CRM? Может ты имеешь в виду CMS? Я как-то попробовал Moodle и Джумлу. Нет уж, для этого я слишком тупой. Ну его в баню!

 Да всю эту хрень: CRM, CMS, ERP и т.д., всё то, что я назвал "иже с ними".

----------


## pushvv

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

----------


## maxmixiv

> над интерфейсом программы и функционалом методов программист также не должен думать, для этого есть архитектор

 Для этого нет архитектора. На этот раз не только не видел оных, а даже не слышал ни про одного персонажа этого класса. Так что думать приходится...  ::  А главное, всё без толку, ибо, если неизвестно, что надо программировать, то как узнать, насколько хорошим получился результат?

----------


## Юрка

> Те, кто программировали в 70-х смотрели на программистов 80-х как на законченных дебилов.

 А мы (вернее я) на начальника лаборатории смотрели как на дебила. Я видел его программу. Тысячи строк одним куском. Куча операторов GOTO. Нихрена не работает. А он суёт этот свой шедевр всем своим студентам-дипломникам, чтобы они что-то на ней посчитали и использовали при защите. Это мы, его подчинённые, стали нормально структурировать программы и отказались от операторов безусловного перехода. Но тем не менее именно он руководил нами, так как он старше, он кандидат наук, у него папа Герой Социалистического Труда и директор завода. Без его связей в отрасли нашей лаборатории не дали бы заказов.  

> Я вот совершенно самостоятельно додумался до необходимости ООП, например, еще до того, как первый раз увидел Turbo Vision. Ну разве я не Дартаньян?

 Ты реально крут, мен!  ::  Я вот не могу таким похвастаться. Хотя идею объектов нам двигал в конце 70-ых на уроках философии директор средней школы. Объяснял нам, чем общее понятие "кошка" отличается от конкретной кошки Мурки. Я тогда нифига не понял.  

> Для особо криворуких уже есть нехилый рынок CRM и иже с ними, где криворукие вполне достойно могут себя применить, невзирая на свою криворукость...

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

> хороший программист категорически не должен делать ничего вышенаписанного

 Теперь понятно, почему мы мучаемся с программами. Вот примеры из собственного опыта.
1) "Магазин партнёра", разработанный индийскими программистами, неправильно показывает складские остатки.
2) Система документооборота содержит пункты меню, непонятные пользователям. Лексикон пользователей и разработчиков не совпал на 100%, хотя и те и другие работают в одной компании. Причём, разработчики и не стремились к совпадению. Главное, что им самим всё понятно.

----------


## Crocodile

> А мы (вернее я) на начальника лаборатории смотрели как на дебила. [...] Но тем не менее именно он руководил нами, так как он старше, он кандидат наук, у него папа Герой Социалистического Труда и директор завода. Без его связей в отрасли нашей лаборатории не дали бы заказов.

 Если бы ему джумлу (шара-поинт, пипл-хаво-софт, мс-динамо-срам и т.п.) в руки - цены бы ему не было. Но такого рынка и таких инструментов тогда ещё не было. Ну, а для всяких расчётчиков, чтобы сильно не выпендривались своей исключительностью, уже давно есть среды/пакеты типа матлаба.. Сейчас совсем другой мир программирования. Лично у меня отношение к программированию уже давно стало чисто профессиональным - за что платят, то и ваяем. Штука лишь в том, что это нужно сделать правильно, т.е. с применением правильных инструментов и правильного способа мышления. Иногда ты сам себе архитектор, а иногда допиливаешь прогу, написанную индусами какой-то командой программистов.  ::

----------


## Doomer

> Для этого нет архитектора. На этот раз не только не видел оных, а даже не слышал ни про одного персонажа этого класса. Так что думать приходится...  А главное, всё без толку, ибо, если неизвестно, что надо программировать, то как узнать, насколько хорошим получился результат?

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

> Теперь понятно, почему мы мучаемся с программами. Вот примеры из собственного опыта.
> 1) "Магазин партнёра", разработанный индийскими программистами, неправильно показывает складские остатки.
> 2) Система документооборота содержит пункты меню, непонятные пользователям. Лексикон пользователей и разработчиков не совпал на 100%, хотя и те и другие работают в одной компании. Причём, разработчики и не стремились к совпадению. Главное, что им самим всё понятно.

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

----------


## maxmixiv

Да нормальная у нас логика. Поймите: Архитекторы и менеджеры проектов не присутствовали при создании ПО не со зла, а потому что их нет. То есть я не утверждаю, что их нет совсем (иначе откуда взялся термин), но может быть они в Австралии? 
Я таких людей не встречал. Чтобы было совсем понятно -- поясняю как создавались программы, к которым я имел/имею отношение:
1) Понятия клиент(заказчик) - нет.
2) Есть начальник IT и начальник отдела X.
3) Есть программист Петя и сотрудница отдела X Юля.
4) В один далеко не прекрасный день начальник X обращается к начальнику IT:
 Нач.X  - Слушай, нам надо кое-чё автоматизировать!
 Нач.IT - Да легко, для этого мы здесь. Обращайтесь просто к Пете.
 Нач.X  - Ну решено, моя Юля покажет завтра Пете, какая программа нужна.
5) Дальше идёт многомесячная битва Юли с Петей на тему, как можно воплотить в жизнь поток сознания. По ходу борьбы подключаются начальники, отношения между ними портятся.
6) После многочисленных переписываний рождается кривая программа, которую трудно или почти невозможно сопровождать.
7) Вывод - Петя дурак. 
Ну или как вариант, где-то ближе к концу шага 5 объявляется, что необходимость в данном ПО отпала, и всё равно, последний пункт актуален:
7) Вывод - Петя дурак. 
Я рад за Вас, если у Вас, как в Австралии, ПО создаётся иначе.
Ну а мы пока так.

----------


## Юрка

> Дальше идёт многомесячная битва Юли с Петей на тему, как можно воплотить в жизнь поток сознания.

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

> Лично у меня отношение к программированию уже давно стало чисто профессиональным - за что платят, то и ваяем.

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

----------


## it-ogo

> 1) Понятия клиент(заказчик) - нет.
> 2) Есть начальник IT и начальник отдела X.
> 3) Есть программист Петя и сотрудница отдела X Юля.
> 4) В один далеко не прекрасный день начальник X обращается к начальнику IT:
>  Нач.X  - Слушай, нам надо кое-чё автоматизировать!
>  Нач.IT - Да легко, для этого мы здесь. Обращайтесь просто к Пете.
>  Нач.X  - Ну решено, моя Юля покажет завтра Пете, какая программа нужна.
> 5) Дальше идёт многомесячная битва Юли с Петей на тему, как можно воплотить в жизнь поток сознания. По ходу борьбы подключаются начальники, отношения между ними портятся.
> 6) После многочисленных переписываний рождается кривая программа, которую трудно или почти невозможно сопровождать.
> 7) Вывод - Петя дурак.

 Это в рамках отношений разных отделов одной конторы. Изначально коммерческие отношения между разработчиком и заказчиком выглядят обычно существенно иначе, хотя и там может быть много веселого. Например, когда начальство конторы заказывает автоматизацию отдела, а конечные потребители в отделе (которые только и разбираются в предмете) саботируют процесс, чтобы половину из них не поувольняли - достаточно типичная ситуация, даже в рамках дипломных проектов встречается.  
Фрилансеров-одиночек не рассматриваем, а среднеразмерные чисто девелоперские компании, которые обычно работают на заграницу на web или мобильные платформы, иногда таки дорастают до архитекторов, а менеджеры и дизайнеры там есть практически всегда, как и командная работа с системами контроля версий.

----------


## it-ogo

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

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

> Ваша фраза навела меня на мысль, что программирование - это тоже не совсем профессия. Ведь сам программист ничего не наваяет. Он ждёт постановку задачи. Другое дело когда это инженер с навыками программирования. Сам себе поставил задачу, сам наваял. С душой и качественно.

 Дело в том, что пока мы с вами спали, в IT произошла промышленная революция. Появились технологии конвейерной обработки, где каждый тупо делает свою детальку, а все вместе представляет собой дешевое серийное производство. Кустари-ремесленники, делающие свою "ручную работу" от начала до конца самостоятельно, стали нерентабельны. На смену деревенским умельцам-кузнецам пришел чернорабочий пролетариат. Такой вот Маркс получается.

----------


## Юрка

> Дело в том, что пока мы с вами спали, в IT произошла промышленная революция.

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

----------


## maxmixiv

> работают на заграницу

 Вооот, где собака порылась. Каким-то непостижимым образом в заграницах развелись люди, которые
1) знают, где можно и нужно применить информационные технологии;
2) знают, как поставить задачу.
Из другого теста что ли там людей делают? 
Ещё вопрос меня мучает: где и чему учились эти самые, которые дорастают. Неужели в Отчизне где-то можно этому научиться? В институтах, по-моему, дальше основ BASIC не ходят...

----------


## Crocodile

> И сейчас средний класс ищет мастеров, чтобы получить качество. Есть элитные сантехники, электрики, кузнецы и т.д. Программер тоже может быть, по идее.

 Ты прав. Оно не только может быть, но даже и есть. Только мастера, в основном, не занимаются ни ваянием вебсайтов, ни даже больших SOA-систем с Enterprise Service Bus. Мастерам программирования это, как правило, не интересно. Мастера ваяют абсолютно новые вещи. Или в лабах больших компаний, или на коленке в стартапах (чтобы затем продать свой стартап вместе с патентом большой компании за мегабаксы). Обычные программисты сидят на корточках в пыли у ног великих мастеров и пьют с жадностью слова их мудрости.   ::

----------


## it-ogo

> Вооот, где собака порылась. Каким-то непостижимым образом в заграницах развелись люди, которые
> 1) знают, где можно и нужно применить информационные технологии;
> 2) знают, как поставить задачу.
> Из другого теста что ли там людей делают?

 Это должен знать менеджер, который сперва добивается от клиентов нормальной формулировки задания и (возможно) отсеивает бесперспективные заказы, а потом заставляет девелоперов это сделать в срок.   

> Ещё вопрос меня мучает: где и чему учились эти самые, которые дорастают. Неужели в Отчизне где-то можно этому научиться? В институтах, по-моему, дальше основ BASIC не ходят...

 В последних украинских министерских программах (по соответствию которым вузы и кафедры регулярно аккредитуются) есть большая часть того, что нужно. (Хотя и маргинальных вещей полно.)  
Другой вопрос - что современным студентам интересно изучать только то, за что им уже прямо сейчас платят деньги, прочее они игнорируют, а двоечников фиг отчислишь по причине убыли населения и драки вузов за абитуриентов. Т.е. отсутствие мотивации на этапе вузовской подготовки. В результате, все то, что было в программах, потом приходится учить самостоятельно из интернетов, причем почти с нуля. Кстати, про архитекторов. У нас UML напихан, кажется, в 4 дисциплины, не считая курсовых, практик и дипломов. Народ только матерится и спихивает фигню. А учит уже потом - на фирмах. 
Третий вопрос - то, что быдлокодерам для их деятельности высшее образование нафик не упало, на самом деле им нужно ПТУ или проф. курсы, где натаскивают на конкретный набор инструментов. Тем не менее, все почему-то прут в вузы, где таковое натаскивание наоборот не предусмотрено (точнее, оставляется на самостоятельную работу). После чего долго и громко жалуются на бесцельно потраченные годы.

----------


## pushvv

>>И понял, что люди в любые времена жили примерно одинаково: всегда были раздолбаи и они как правило выживали кучкой. И всегда были мастера, которые как правило любили трудиться в одиночку. 
Невозможно более или менее серьезный проект реализовать в одиночку в приемлемые сроки, да еще и качественно. Если раньше у инженеров-программистов было время поковырять в носу, размышляя над названием переменной, то сейчас такое просто не прокатит 
>>В институтах, по-моему, дальше основ BASIC не ходят... 
Вы, случайно, не менеджмент и маркетинг оканчивали, что только бэйсик изучали? Вузы готовят отличных программистов на соответствующих специальностях.

----------


## Crocodile

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

 Это, как раз, понятно. Для быдлокодеров не нужен даже ПТУ, достаточно годовых курсов по конкретному набору инструментов. Но вот беда - консервативное общество менеджеров "почему-то" не любит нанимать таких людей. Все хотят, как минимум, бакалавра по computer science или смежной специальности. Типа, чувак обязан соображать. Поэтому, для получения заветной бумажки, будущие быдлокодеры обязаны пройти через горнило ВУЗа. It-ogo, я тебе искренне сочувствую.

----------


## maxmixiv

it-ogo, crocodile 
То есть, быдлокодер - это диагноз?

----------


## maxmixiv

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

 Да нет, не менеджмент. "Автоматика и управление в технических системах" в 1993.
Был BASIC и кажется чуть-чуть FORTRAN. Оба - теоретически (то есть, в тетрадках писали программы). Вообще, я там мало что помню...
Но точно помню, что просто подобраться к компьютеру было непросто (одна IBM PC AT была на весь ВУЗ и несколько ДВК).

----------


## it-ogo

> it-ogo, crocodile 
> То есть, быдлокодер - это диагноз?

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

> Да нет, не менеджмент. "Автоматика и управление в технических системах" в 1993.
> Был BASIC и кажется чуть-чуть FORTRAN. Оба - теоретически (то есть, в тетрадках писали программы). Вообще, я там мало что помню...
> Но точно помню, что просто подобраться к компьютеру было непросто (одна IBM PC AT была на весь ВУЗ и несколько ДВК).

 1993 - это еще до упомянутой мной революции, к тому же разгар разрухи. О современном положении по тем воспоминаниям судить смысла нет.

----------


## maxmixiv

> Быдлокодер - это низшее звание информационных войск. Рядовой без маршальского жезла в ранце. Т.е. человек, не претендующий на большее, чем выполнение самой черной и низкооплачиваемой работой с минимальным качеством.

 Всё правда, всё про нас  ::

----------


## it-ogo

> Вообще, сделать программу объёмом 100 листов и чтобы она была без ошибок - это уже не тривиальная задача. Это может только человек со стилем.

 Цитата в тему.

----------


## Valda

Мне тяжело угнаться за дискуссию.  
Но продолжу где я остановилась, и расскажу мои причины. У меня есть мечта. Хочу создать образовательную ролевую игру, что в неё можно изучать языки, математика и наука. 
Конечно, я не должна начать с HeroEngine, можно начинать с Flash. Кстати, у кого-нибудь есть рекомендация какая multimedia and software platform использовать для этого? Flash самая лучшая?

----------


## it-ogo

> Мне тяжело угнаться за дискуссию.  
> Но продолжу где я остановилась, и расскажу мои причины. У меня есть мечта. Хочу создать образовательную ролевую игру, что в неё можно изучать языки, математика и наука. 
> Конечно, я не должна начать с HeroEngine, можно начинать с Flash. Кстати, у кого-нибудь есть рекомендация какая multimedia and software platform использовать для этого? Flash самая лучшая?

 To select proper tool you should understand well what exactly do you want to do. The best is to find an analog. 
If you don't know what exactly do you want, you have to formulate and find some analogs. If you know, but plan something that have no analogs... then you definitely need vast IT education.  ::

----------


## pushvv

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

----------


## pushvv

Как вариант можно реализовать сортировку пузырьком на C# или алгоритм рисования прямой между двумя точками

----------


## it-ogo

Вот еще вариант.

----------


## Valda

Что-то ОЧЕНЬ НЕЖДАННО случилось.  
Произошло следующим образом
Я сидела с моем профессором и он объяснил меня что он бы хотел что вместо Ladder Logic, я буду использовать компьютерный язык "С", потому, что Ladder Logic очень ограничен (также проблема в том что у нас нет хороших наличных hardware с ladder logic). Тем не менее, у нас есть хороший hardware с компьютерным языком "С"!  
Он оставил  выбор в моих руках . Я подумала и решила что я хочу принимать вызов для себя, и взять язык "С" для моего проекта! Так, я сейчас изучаю компьютерный язык С (*For Hardware*) самостоятельно. 
Вот это случайное начало.

----------


## Doomer

Поздравляю, I guess  :: 
BTW
Hardware=железо (computer slang)

----------


## Valda

> Поздравляю, I guess

 Thanks  ::    

> BTW
> Hardware=железо (computer slang)

 А вот я думала это твердый-изделия :P

----------


## Erkail

> Что-то ОЧЕНЬ НЕЖДАННО случилось.  
> Произошло следующим образом
> Я сидела с моем профессором и он объяснил меня что он бы хотел что вместо Ladder Logic, я буду использовать компьютерный язык "С", потому, что Ladder Logic очень ограничен (также проблема в том что у нас нет хороших наличных hardware с ladder logic). Тем не менее, у нас есть хороший hardware с компьютерным языком "С"!  
> Он оставил  выбор в моих руках . Я подумала и решила что я хочу принимать вызов для себя, и взять язык "С" для моего проекта! Так, я сейчас изучаю компьютерный язык С (*For Hardware*) самостоятельно. 
> Вот это случайное начало.

 И? Это ты написал что-то в C?

----------


## Valda

Извините что задерживала с моем ответом.    

> И? Это ты написал что-то в C?

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

----------


## Medved

Да, написала, но ничего сложного пока. Я каждый день его учу. Вообще в  принципе мне не нужн*о* так много программировать чтоб выполн*и*ть *свой*  проект. Но если *я* *за*хочу добав*и*ть хитроумные функции , это уже *будет* *серьёзный*  вызов (серьёзным вызовом is also possible).

----------


## Medved

> или алгоритм рисования прямой между двумя точками

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

----------


## Valda

Во первых - спасибо 
Во вторых,   

> это уже будет серьёзный вызов (серьёзным вызовом is also possible).

 Как можно просто выбирать падеж? Я думала, что у падежей всегда, в любой момент, есть ТОЛЬКО ОДИН который правильный. Вообще этот вопрос-- когда делать фразу творительный падеж или именительный падеж с словом "быть", стал источником моего постоянного смущения. Может быть, хороший этот момент чтоб объяснить?

----------


## Medved

Yes this time is quite good to explain (хороший этот момент, чтобы объяснить)  ::  
Technically the only possible option is the instrumental-one (это будет серьёзным вызовом).
But the word "быть" can be used in this sentence adjective-like, e.g. "это будет хорошо", so you may say "это будет серьёзный вызов".
More similar phrases:
What are you building there? What will it be? It'll be a house.
Что ты там конструируешь? Что это будет? - Это будет дом. 
What will be your gift for my birthday? It'll be a bicycle.
Что будет твоим подарком на мой день рождения? Это будет велосипед. 
What was this load of junk supposed to be in the past? It was a motorcycle. (After a car accident)
Чем раньше была эта гора хлама? Это был мотоцикл.
(Это было мотоциклом is also possible, especially if you emphasize the word *Это* ironically or sarcastically; the ending of был*о*, agreeing with "это" here works for the same, like you can't classify the initial gender of what these fragments belonged to, so you use the neutral gender and the Это).
It's like "What the hell is THIS?" -- THIS was your car, daddy  ::

----------


## Medved

On the second thought, I think the keyword is "become" or "стать" in Russian, which is used similarly and sometimes interchangeably to "быть" but needs the instrumental case, so the стать-behaviour has projected to the "быть"-verb. 
This is what your car has become. - Вот, чем стала твоя машина.
This is what it's supposed to become in the future - Вот, чем это станет в будущем. 
So both incarnations and excarnations  ::  are handled using the instrumental case.
(Твой подарок на мой день рождения был велосипедом means that it was a bicycle but now it is already not, it has excarnated  ::  and turned into something else).
Твой подарок мне на день рождения был велосипедом, пока я не дал его брату покататься...

----------


## Hoax

> Во первых - спасибо
> Во вторых,
> Как можно просто выбирать падеж? Я думала, что у падежей всегда, в любой момент, есть ТОЛЬКО ОДИН который правильный. Вообще этот вопрос-- когда делать фразу творительный падеж или именительный падеж с словом "быть", стал источником моего постоянного смущения. Может быть, хороший этот момент чтоб объяснить?

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

----------


## Valda

Как я поняла, предпочитаю только употреблять это слово с творительным падежом и надеюсь на лучшее.  ::

----------


## Medved

...предпочтительнее употреблять это слово только...и надеяться...

----------


## Erkail

> Извините что задерживала с моем ответом.    
> Да, написала, но ничего сложного пока. Я каждый день его учу. Вообще в принципе мне не нужна так много программировать чтоб выполнять мой проект. Но если хочу добавлять хитроумные функции , это уже замысловатый вызов.

 Ага! Это было некоторое время. Так же вы теперь полноценный программист C?
Что такое ваш проект в?

----------


## Eledhwen

Valda, Может быть “Unity 3D” попробуешь? Очень хороший игровой движок, поддержка самых распространенных языков программирования. Возможность экспорта в браузер. Unity - Game Engine

----------

