Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.016 c
4-1129707209
kolos_rus
2005-10-19 11:33
2005.12.18
Блокировка клавиатуры и мыши


1-1132816343
Mishenka
2005-11-24 10:12
2005.12.18
Как инвертировать двоичное число?


4-1129281662
Vir
2005-10-14 13:21
2005.12.18
Nt Sevice + GUI


8-1114806809
Profi
2005-04-30 00:33
2005.12.18
Изменение размера TImage


3-1130924059
Id
2005-11-02 12:34
2005.12.18
Получение пароля





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский