Форум: "Потрепаться";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];
Вниз7-я или 8-я? Найти похожие ветки
← →
AlexShm © (2005-11-20 15:34) [0]Добрый вечер! Вот сижу и думаю: что начать изучать:7-й или 8-й Delphi! В 8-й .Net какой-то, что он мне даст не знаю, но хочется сразу новое изучить чтоб потом не переучиваться? Что Вы мне посоветуете? Вообще нужно разрабатывать приложения для работы с базами данных..
← →
Ruslan D (2005-11-20 19:21) [1]Изучай 2005, а еще лучше 2006. 7 - только для Вин32. 8 - только для .НЕТ,
а 2005,2006 для того и другого. Хотя изучать нужно язык программирования, а не среду - каковой является Delphi. Я думаю тебе FreePascal + Lazarus с головой хватит.
← →
Sergey Masloff (2005-11-20 19:44) [2]Ruslan D (20.11.05 19:21) [1]
Лазарус - ф топку. По крайней мере на стадии обучения.
А так Free Pascal отличная среда для обучения
← →
Eraser © (2005-11-20 19:58) [3]
> AlexShm © (20.11.05 15:34)
Всё зависит от того, какие задачи надо решать.
Я бы вообще посоветовал глянуть в сторону Visual Studio 2005, чтобы потом не мучиться.
← →
Lamer@fools.ua © (2005-11-20 21:46) [4]>Вот сижу и думаю: что начать изучать:7-й или 8-й Delphi!
Ни то, ни то. Начать с Си (без плюсов) и Паскаля.
← →
Piter © (2005-11-20 21:51) [5]Lamer@fools.ua © (20.11.05 21:46) [4]
Начать с Си (без плюсов)
почему это? Объекты - оно рулез.
А если уж с основ - тогда рекомендуй начинать с asm.
← →
Lamer@fools.ua © (2005-11-20 21:54) [6]>>Piter © (20.11.05 21:51) [5]
>почему это? Объекты - оно рулез.
Объекты - оно рулез, когда понимаешь, что такое присваивание, циклы, функции и т. п.
>А если уж с основ - тогда рекомендуй начинать с asm.
Начинать лучше с ЯВУ, а не с машинных.
Всё — IMHO.
← →
Piter © (2005-11-20 22:23) [7]Lamer@fools.ua © (20.11.05 21:54) [6]
Объекты - оно рулез, когда понимаешь, что такое присваивание, циклы, функции и т. п.
Присваивание, циклы, функции - оно рулез, когда понимаешь что такое стек, куча, регистры, передача параметров?
← →
wicked © (2005-11-20 22:39) [8]> Lamer@fools.ua © (20.11.05 21:46) [4]
> Lamer@fools.ua © (20.11.05 21:54) [6]
полностью поддерживаю.....
> Piter © (20.11.05 22:23) [7]
> Присваивание, циклы, функции - оно рулез, когда понимаешь
> что такое стек, куча, регистры, передача параметров?
аналогия полностью некорректна.... садись....
← →
Lamer@fools.ua © (2005-11-20 22:46) [9]>>Piter © (20.11.05 22:23) [7]
>Присваивание, циклы, функции - оно рулез, когда понимаешь что такое стек, куча, регистры, передача параметров?
Не помешает. Но начинать можно и не с этого. А можно и с этого — польза всяко будет.
З.Ы.
Мне тут недавно один программист (причём неплохой) пытался доказать (он видите ли вычитал в какой-то статье или шо-то такое), что преинкремент работает быстрее постинкремента (или наоборот, не помню), причём в простом операторе, а не в выражении.
То есть типа++a;
работает быстрее, чемa++;
(ну, или наоборот).
Я ему сначала аргументами пытался доказать, что разницы быть не может, но он не понимал. Тогда я ему в дизассемблере показал, что разницы нет. Но он, по-моему, так и не осознал, что её действительно нет и не могло быть (разве что, если компилятор очень кривыми руками был бы написан), ибо не знает, что "ASM есмь бог" :-)
Так что, по большому счёту: да, начинать стОит с ассемблера и устройства компьютера и базовой периферии.
← →
wicked © (2005-11-20 22:48) [10]добавлю еще такое имхо - ассемблер(ы) нужно основательно изучать уже под конкретную платформу, под конкретную, аппаратную, задачу....
для "научиться программировать" он сначала не нужен (подразумевается x86), а возможно, в чем то и вреден - x86 - не самая удачная архитектура....
потом, с ростом опыта, знать его можно, но совсем не обязательно....
← →
Gero © (2005-11-20 22:52) [11]
> аналогия полностью некорректна.... садись....
Это точно.
← →
Piter © (2005-11-21 11:42) [12]Lamer@fools.ua © (20.11.05 22:46) [9]
То есть типа
++a;
работает быстрее, чем
a++;
честно говоря, не в курсе чем отличается ++a от a++ :)
Но вот возьмем, например, Delphi:
1) i := i + 1;
2) inc(i);
два выражения делают одинаковые вещи. И в дизасме будет одно и тоже. НО только при включенной оптимизации. НАсколько помню, при выключенной оптимизации второе выражение будет "эффективнее".
Может, и в C такое есть? Может, там если что отключить - то ++a и a++ тоже будут разными операторами?
wicked © (20.11.05 22:39) [8]
аналогия полностью некорректна.... садись....
Gero © (20.11.05 22:52) [11]
Это точно.
ну не знаю. Зачем предлагается учить без объектов? Чтобы с азов начинать. Чтобы сначала алгоритмическое программирование постичь, функции там, процедуры, не отвлекаясь на не везде простую идеологию ООП.
А потом уже и за объекты пересесть. Так?
Но если уж начинать с азов - то это ведь asm? В конце концов - человек же должен представлять, что такое MyFunc(TestValue, ht_desct, ...) - что происходит то?
Что, в частности, параметры могут быть запиханы в стек, потом передано управление по определенному адресу, там они извлечены из стека - на асме все это наглядно и понятно.
И не возникает вопросов - а что такое stdcall; pascal; и т.д.
Да и кучи вопросов не возникнет после изучения.
Опять же - человек иногда пишет "помогите, у меня вот здесь и тут не то значение выходит, вот такая ошибка всплывает".
Что ему отвечают? Зачастую отвечают - а посмотри в CPU Window - а что у нас там Правильно, asm. Так что несмотря на неиспользуемость asm в чистом виде, необходимость его знать присутствует даже при программировании на ЯВУ.
Так что аналогию считаю вполне корректной.
← →
Lamer@fools.ua © (2005-11-21 12:10) [13]>>Piter © (21.11.05 11:42) [12]
Знать ASM — это, конечно, кульно и рульно. Только встаёт вопрос: который из них?
Хотя для понимания основ работы процессора, по большому счёту, подойдёт почти любой из десктопных, IMHO.
← →
jack128 © (2005-11-21 12:32) [14]Piter © (21.11.05 11:42) [12]
Но вот возьмем, например, Delphi:
1) i := i + 1;
2) inc(i);
два выражения делают одинаковые вещи. И в дизасме будет одно и тоже. НО только при включенной оптимизации. НАсколько помню, при выключенной оптимизации второе выражение будет "эффективнее".
Не-а
{$o-}
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
i := 0;
// Inc(i);
i := i + 1;
ShowMessage(IntToStr(i));
end;
{$o+}
По крайней мере в семерке. Но потенциально - да, (возможно в ранних версиях D так и было) могут выполняться позному, если i := i + 1 выполнять через асмовский add, а не inc. Причем причина подобного различия была бы более менее понятна.
← →
begin...end © (2005-11-21 13:11) [15]> Piter © (21.11.05 11:42) [12]
> два выражения делают одинаковые вещи
Вопрос с заковыкой: а ЧТО они делают? :-)
> Может, там если что отключить - то ++a и a++ тоже будут
> разными операторами?
Не надо ничего отключать. Они и так разные.
> Чтобы сначала алгоритмическое программирование постичь,
> функции там, процедуры, не отвлекаясь на не везде простую
> идеологию ООП...
> Но если уж начинать с азов - то это ведь asm?
Не-а. Asm -- это уже технические детали. И начинать надо, как ты и сказал вначале, с алгоритмов. Не отвлекаясь ни на объекты, ни на технические детали.
← →
AlexShm © (2005-11-21 14:02) [16]Спасибо, но я так ничего для себя и не понял. Дело в том, что у меня имеются только эти ДВЕ среды разработки, ну и VB. Вопрос такой: стоит ли изучать сразу .NET?
← →
Sandman29 © (2005-11-21 15:45) [17]AlexShm © (21.11.05 14:02) [16]
Вопрос такой: стоит ли изучать сразу .NET?
ИМХО ответ заключен в самом вопросе :)
← →
DiamondShark © (2005-11-21 15:51) [18]
> Начать с Си (без плюсов)
Зачем начинать с плохого?
← →
DiamondShark © (2005-11-21 15:57) [19]
> Piter © (20.11.05 22:23) [7]
Передёргиваешь.
← →
DiamondShark © (2005-11-21 16:02) [20]
> Может, там если что отключить - то ++a и a++ тоже будут
> разными операторами?
Эхе-хех...
Пред- и постинкремент -- это операции с побочным эффектом, и вообще, с довольно навороченной семантикой.
Во что превращается та или другая сильно зависит от сложности выражения, в которое они входят, от места в выражении и хз ещё от чего.
Долой скрытую сложность!
← →
Piter © (2005-11-21 18:55) [21]DiamondShark © (21.11.05 15:57) [19]
Передёргиваешь.
возможно. Я просто хотел понять логику.
Если логика - начинать с азов, то это то, что раньше ЮРИЙ ЗОТОВ писал. То есть, начинать надо с битовых операций, с калькулятора, с общей информатики.
Потом ASM.
Потом некое алгоритмическое процедурное программирование - паскаль или си, например.
Потом уже концепции ООП.
Если же начинать не с азов - так почему не начать с ООП? Не вижу логики.
← →
ANB © (2005-11-21 19:13) [22]Вот учил я ассемблер. Благо, что не первый язык был - первым я PL/1 учил. И доволен, так как один хрен бы ничего сразу не понял. И толку с того ассемблера, если он под IBM370 ? А после PL/1 влегкую паскаль пошел и Си. Когда мне x86 ассемблер понадобился - тогда и выучил. Все имхо.
← →
Algol (2005-11-21 19:55) [23]Если же говорить об подготовке профессиональных програмистов, то изучать нужно безусловно и ООП и ASM - но только как разные предметы вообще )). Программировние уже давно является развитой индустрией, с множеством отдельных и независимых направлений. И сводить изучение программирования к изучению какого-либо языка - нельзя.
← →
Gero © (2005-11-21 20:27) [24]
> И сводить изучение программирования к изучению какого-либо
> языка - нельзя.
Не только языка, но и архитектуры.
← →
ANB © (2005-11-21 20:49) [25]
> Gero © (21.11.05 20:27) [24]
Архитектуры чего ?
← →
Gero © (2005-11-21 20:54) [26]
> ANB © (21.11.05 20:49)
Аппаратного обеспечения.
← →
begin...end © (2005-11-21 21:11) [27]> Piter © (21.11.05 18:55) [21]
> Если логика - начинать с азов...
...то нужно вначале определиться, что такое азы программирования.
Ты и вправду считаешь, что азы программирования -- это знание ассемблера? Кстати, какого? И почему именно ассемблера, а не программирования в машинных кодах? Ведь современные трансляторы ассемблера позволяют использовать много средств, облегчающих написание кода -- вдруг это уже не азы?
И это... рассказал бы, с чего начинал ты. И, главное, почему.
← →
ANB © (2005-11-21 21:14) [28]
> Gero © (21.11.05 20:54) [26]
Нас учили архитектуре IBM 370 - много мне это помогло ?
Имхо - надо читать дедушку Вирта. А частные реализации оставить на потом.
← →
Gero © (2005-11-21 21:16) [29]
> ANB © (21.11.05 21:14)
А я о чем говорю? Внимательнее читай посты.
← →
ANB © (2005-11-21 21:17) [30]
> Gero © (21.11.05 21:16) [29]
Тьфу, извини. Мы одно и тоже талдычим.
← →
Аноним (2005-11-25 11:21) [31]Давно на этом форуме не был случайно заглянул. Интересно тут общение продвигается - появляется человек, который стпрашивает, что хочет он изучать. Большинство разговоров напоминает, вот начинай с машинных кодов, а потом... А когда это потом будет? Большинство людейздесь с опытом отягощены кучей знаний, знания они полезны, но скажите какой резон сейчас человеку садиться на чистый си или ассемблер. Чтоб он обладал только академическими знаниями в течении пары лет?
Вспоминается история про боевые искусства, есть ушу, но чтоб быть лучше тебе надо заниматься дольше, лет 10 долгих изучений, и потом можно прийти к конечной цели и быть лучше всех, а есть бокс 3 года и на улице ты можешь банально большинству дать в глаз.
Сейчас нужно изучать то, что будет потом, а потом уже по мере возможностей изучать то что было.
← →
Lamer@fools.ua © (2005-11-25 11:47) [32]>Сейчас нужно изучать то, что будет потом, а потом уже по мере возможностей изучать то что было.
Тогда в школе нужно сразу начинать учить матанализ. А арифметику и алгебру уж как-нибудь потом по мере возможностей.
← →
Piter © (2005-11-25 12:46) [33]Lamer@fools.ua © (25.11.05 11:47) [32]
ну Аноним частично прав. Невозможно знать всю технологическую линейку.
Не надо впадать в крайности, нужен некий баланс.
Как в приведенном примере - чтобы изучать бокс вовсе не нужно знать ушу.
А в твоем примере - нельзя сразу изучать матанализ, поэтому надо начинать с истоков.
← →
Аноним (2005-11-25 13:37) [34]>Lamer@fools.ua
Я имел ввиду, что если человек уже вырос и сформировался и ему скоро предстоит нормально работать, то нужны технологии, которые займут место в будущем, а не те, что часто нужны только при определенных случаях.
А вопрос первоначально был мне показалось, что человеку СЕЙЧАС надо написать базу данных и уже определн круг техсредств, которыми он может манипулировать. И на чем это делать и куда идти.
А всеобщее мнение ты не знаешь ассемблер - все ты лох позорный иди отсыда сначала ассемблер поизучай с си, а потом уже опыта понаберешься. А то что ты хочешь сделать может несколько лет подождать.
← →
Igorek © (2005-11-25 14:02) [35]
> wicked © (20.11.05 22:39) [8]
> Gero © (20.11.05 22:52) [11]
> аналогия полностью некорректна.... садись....
Аналогия полностью корректна. "2" обоим. :)
← →
AlexShm © (2005-11-25 14:08) [36]
> А вопрос первоначально был мне показалось, что человеку
> СЕЙЧАС надо написать базу данных и уже определн круг техсредств,
> которыми он может манипулировать. И на чем это делать и
> куда идти.
Да, спасибо за такое до мозга костей понимание! Дело в том, что в годы учебы в университете ( я инженер-технолог) я решал прикладные задачи на VB и мне этого более чем хватало...Сейчас я работаю в конторе, которая имеет дело с базами данных, работать с которыми не очень удобно. Вот я и хочу помочь себе и коллегам. Поэтому изучать ассемблер некогда. Поэтому, друзья, на ЧЕМ мне это лучше сделать?
← →
Igorek © (2005-11-25 14:29) [37]
> Поэтому, друзья, на ЧЕМ мне это лучше сделать?
См. ответ [3]. А VB смени на С#.
← →
Lamer@fools.ua © (2005-11-25 14:31) [38]>Я имел ввиду, что если человек уже вырос и сформировался и ему скоро предстоит нормально работать, то нужны технологии, которые займут место в будущем, а не те, что часто нужны только при определенных случаях.
Нужны не технологии, а фундаментальные знания. Технологии, как и языки программирования, изучаются по мере интереса и/или необходимости. Причём при наличии вышеуказанных фундаментальных знаний, это не занимает много времени. Всё — IMHO.
← →
wicked © (2005-11-25 15:51) [39]> AlexShm © (25.11.05 14:08) [36]
> Да, спасибо за такое до мозга костей понимание! Дело в том,
> что в годы учебы в университете ( я инженер-технолог) я
> решал прикладные задачи на VB и мне этого более чем хватало.
> ..Сейчас я работаю в конторе, которая имеет дело с базами
> данных, работать с которыми не очень удобно. Вот я и хочу
> помочь себе и коллегам. Поэтому изучать ассемблер некогда.
> Поэтому, друзья, на ЧЕМ мне это лучше сделать?
это надо было сказать в заглавном посте..... тогда и ответ был бы типа "берись за дельфи 5, 6, 7... "..... лично я бы посоветовал 5 или 6.......
на самом деле в большинстве разницы никакой, на какой из последних версий писать....
> Igorek © (25.11.05 14:02) [35]
> > wicked © (20.11.05 22:39) [8]
> > Gero © (20.11.05 22:52) [11]
>
>
> > аналогия полностью некорректна.... садись....
>
> Аналогия полностью корректна. "2" обоим. :)
убеди меня и я соглашусь....
это не функциональное программирование, которое "ни на что не похоже".... это ООП, базирующееся на структурном программировании..... и без знания основ структурного программирования знание ООП будет "зазубренным".......
а с использованием ООП можно и на си простеньком писать.... вот у меня типичный пример перед глазами - ming (http://sf.net/projects/ming)....
← →
Piter © (2005-11-25 19:33) [40]wicked © (25.11.05 15:51) [39]
убеди меня и я соглашусь....
ха! :)))
Презумпция своей правоты :)))
← →
wicked © (2005-11-25 20:18) [41]> Piter © (25.11.05 19:33) [40]
а весь постинг не судьба прочитать?....... там приведены мои доводы.....
← →
Igorek © (2005-11-26 15:36) [42]
> убеди меня и я соглашусь....
> это не функциональное программирование, которое "ни на что
> не похоже".... это ООП, базирующееся на структурном программировании.
> .... и без знания основ структурного программирования знание
> ООП будет "зазубренным".......
> а с использованием ООП можно и на си простеньком писать.
> ... вот у меня типичный пример перед глазами - ming (http:
> //sf.net/projects/ming)....
Не совсем понял доводы. Что в твоем понимании функциональное, а что - структурное программирование?
На мой взгляд Питер абсолютно правильно построил цепочку уровней:
- ООП
- присваивание, циклы, функции и т. п.
- стек, куча, регистры, передача параметров
И на этой цепочке построил аналогию по принципу "высший - низший уровень".
← →
Piter © (2005-11-26 15:52) [43]wicked © (25.11.05 20:18) [41]
да я знаю, я же смайликов наставил :)
← →
wicked © (2005-11-26 22:22) [44]> Igorek © (26.11.05 15:36) [42]
> Не совсем понял доводы. Что в твоем понимании функциональное,
> а что - структурное программирование?
это я пример привел...... неудачный.... типа - чтобы изучить пролог, требуется только логическое мышление, опыт программирования не требуется (а даже иногда и мешать будет, опыт этот)....
> На мой взгляд Питер абсолютно правильно построил цепочку
> уровней:
> - ООП
> - присваивание, циклы, функции и т. п.
> - стек, куча, регистры, передача параметров
>
> И на этой цепочке построил аналогию по принципу "высший
> - низший уровень".
ООП как вещь в себе - мало привязан к программированию, как таковому.... основные его принципы позволяют неким образом разобрать предметную область и выявить необходимые для моделирования сущности (абстракция), выявить родовые свойства этих сущностей (наследование), выявить функциональные зависимости между сущностями (инкапсуляция), а также то, как эти сущности должны реагировать на сообщения (полиморфизм)....
всё... мы получили красивую картинку, которую можно, например, в рамку на стену повесить.... так как здесь приходит пора реализовать эту схему, а этому ООП как раз и не учит..... учит либо структурное, либо какое иное программирование....
поэтому, детЯм лучше начинать именно со структурного программирования.... алгоритмы, структуры данных, проектирование "сверху-вниз" и т. д.... поскольку оно рассказывает "как это сделать".... а потом уже ООП - "что же именно делать"....
где-то на форуме хорошая аналогия проскакивала: сначала арифметика (структурное программирование), а потом уже - мат. анализ (ООП)....
ЗЫ я вполне допускаю, что где-то не прав в описании ООП, так как умные книжки читал очень давно.... поэтому, буде это так, не хихикайте, а укажите, что же тут неправильного...... ;)
> Piter © (26.11.05 15:52) [43]
:-P
← →
Piter © (2005-11-27 01:01) [45]wicked © (26.11.05 22:22) [44]
ООП как вещь в себе - мало привязан к программированию
ну НЕ СОГЛАСЕН.
ООП - в своей расшифровке содержит слово ПРОГРАММИРОВАНИЕ. Так что к ПРОГРАММИРОВАНИЮ привязано очень сильно. Не привязано к конкретному языку - это да.
← →
jack128 © (2005-11-27 01:24) [46]Piter © (27.11.05 1:01) [45]
ООП - в своей расшифровке содержит слово ПРОГРАММИРОВАНИЕ
Это ты так расшифровал. Таже классическая книжка Буча называется "Объектно-ориентированное проектирование(design) с примерами применения"
← →
Lamer@fools.ua © (2005-11-27 11:33) [47]>>jack128 © (27.11.05 01:24) [46]
Хорошо англо-буржуям. У них различные акронимы: OOP и OOD.
← →
jack128 © (2005-11-27 11:35) [48]Lamer@fools.ua © (27.11.05 11:33) [47]
Хорошо англо-буржуям.
а мы из-за них страдаем ;)
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];
Память: 0.6 MB
Время: 0.014 c