Модераторы: Fixin, Alx

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите определиться 
:(
    Опции темы
i_SweP
Дата 18.5.2008, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 23.6.2007

Репутация: нет
Всего: нет



Цитата(iLoveJava @  2.4.2008,  18:01 Найти цитируемый пост)
 если учить сначала процедурные языки типа асемблера и тд... то формируется процедурное мышление, а потом надо переучиваться...

Если учить процедурные языки, а потом открыть для себя ООП, то от восторга переучивание пройдёт моментально

Цитата(DooM1k @  3.3.2008,  01:06 Найти цитируемый пост)
Многие рекомендовали сперва понять ассемблер,  потом c/c++, а далее, мол, все пути открыты. Но объяснить, почему именно так не могли

Хм.. и не объяснят, я думаю.
Главное - начать (да хоть что - хотя бы на курсы пойти, книжку купить и т.д.). Что важно, уже есть цель - кодить "под windows или вебпрограммирование". Вот и начинай, задумай что-нить такое написать, чтоб все ахнули. Заодно и поймёшь, что жизнь - жёсткая вещь smile

Цитата(DooM1k @  3.3.2008,  01:06 Найти цитируемый пост)
вроде меня для достижения pro уровня

Когда покажется, что ты - про, пожалуйста не кидай понты во все стороны smile С такой установкой так вполне  может случиться.

Цитата(maggot @  7.5.2008,  17:00 Найти цитируемый пост)
Но лучше начинать с С, ибо если начинать с Паскаля, потом перейдёшь на Делфи. Чаще всего, те кто выучил Делфи   считают себя мега проггерами и больше ничего не учат.

Ценнейшая мысль, бывает такое..

Цитата(maggot @  7.5.2008,  17:00 Найти цитируемый пост)
Нужно начинать с простых структурных языков типа Pascal и C 

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

По поводу ассемблера. Уверен, советы будут искать и здесь. На этом же форуме я нашёл ссылку на отличную книгу (правда, на английском)
http://www.drpaulcarter.com/pcasm/
Бесплатно, понятно, без лишних "небольших технических оступлений" (на 30 страниц  smile ). Сам сейчас читаю.

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



Это сообщение отредактировал(а) i_SweP - 18.5.2008, 20:06
PM MAIL   Вверх
source777
Дата 18.5.2008, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 1
Всего: 56



Цитата(i_SweP @  18.5.2008,  19:50 Найти цитируемый пост)
Правда есть небольшая проблема: у нас в стране почему-то считается, что С сложнее Паскаля.
А разве это не так? Чем короче синтаксис, тем сложнее восприятие листинга для неподготовленного человека. Можно по убыванию сложности восприятия выстроить некотрые ЯП, например, так: Ada, C#, Pascal/Delphi, C/С++, Perl, BrainFuck... 
Чем правее в этом ряду язык, тем легче на нём клепать критичные ошибки, которые проглотит компилятор... Соответственно тем хуже он подходит для программирования сложных программных систем критичных к надёжности...

Цитата(i_SweP @  18.5.2008,  19:50 Найти цитируемый пост)
Нужен ли новичку ассемблер ? При всём уважении к тем, кто с него начинал, я считаю, нет. Вы же не будете рассказывать человеку про аэродинамику левого заднего винта крыла самолёта, чтобы заинтересовать его авиацией. 
Ассемблер хорошо идёт под соусом реверсивного инженеринга... А в большей мере он уже особо и не нужен, достаточно знать его на уровне "Читаю и понимаю", можно даже со словарём smile 
  



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
i_SweP
Дата 19.5.2008, 09:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 23.6.2007

Репутация: нет
Всего: нет



Цитата(source777 @  18.5.2008,  21:54 Найти цитируемый пост)
А разве это не так? Чем короче синтаксис, тем сложнее восприятие листинга для неподготовленного человека

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

Цитата(source777 @  18.5.2008,  21:54 Найти цитируемый пост)
Соответственно тем хуже он подходит для программирования сложных программных систем критичных к надёжности...

Начинающий вряд ли станет писать сложные программные системы smile
А С/С++ нужно учить аналогично Паскалю и просто обходить все скользкие места (на которых в паскале не обращают внимания), например, строки для начала только как String, об указателях ни слова: просто говорить, что int a[] - это массив. Одним словом, давать то, что нужно здесь и сейчас.

Цитата(source777 @  18.5.2008,  21:54 Найти цитируемый пост)
 Ada, C#, Pascal/Delphi, C/С++, Perl, BrainFuck... 

Тут уж кто как оформляет код, можно и на С отступов не делать да писать int a, a1, b_, c;

В общем, я считаю, что начать можно с С: найти бы хорошего препода. Другая точка зрения - да и Паскаль (java, asm, etc) не плох. Решать, как говориться, вам.

Это сообщение отредактировал(а) i_SweP - 19.5.2008, 09:59
PM MAIL   Вверх
source777
Дата 19.5.2008, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 1
Всего: 56



Цитата(i_SweP @  19.5.2008,  09:55 Найти цитируемый пост)
Какая, например, разница между begin end и {} ? 
Абсолютно неудачный пример, т.к. это самая непринципиальная разница в синтаксисе, хотя begin end предпочтительнее для новичка, т.к. ослабляют желание писать весь блок в одну строчку, а также имеют интуитивно понятный смысл для тех, кто знает английский...

Цитата(i_SweP @  19.5.2008,  09:55 Найти цитируемый пост)
Начинающий вряд ли станет писать сложные программные системы smile
Это да, но проглатываемые компилятором ошибки его до добра не доведут...

Цитата(i_SweP @  19.5.2008,  09:55 Найти цитируемый пост)
А С/С++ нужно учить аналогично Паскалю и просто обходить все скользкие места 
Это что-то новенькое (во всяком случае я не видел ни одной книги по C/C++ в которой изложение велось бы аналогично книгам по Паскалю/Delphi, в конце концов С++ без указателей - это как яичница без яиц, причём не из-за того, что без указателей напрямую нельзя обойтись, а из-за того, что без их использования применение самого С++ необосновано), пиши свою методику авось разбогатеешь...

Цитата(i_SweP @  19.5.2008,  09:55 Найти цитируемый пост)
Тут уж кто как оформляет код, можно и на С отступов не делать да писать int a, a1, b_, c;
Оформление кода - это дело нужное, но не являющееся решающим фактором, а вот статистика - вещь суровая, а по ней в программах на C++ ошибок в 9 раз больше, чем в программах на Ada, при одинаковом уровне программистов...





--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
i_SweP
Дата 22.5.2008, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 23.6.2007

Репутация: нет
Всего: нет



Цитата(source777 @  19.5.2008,  11:27 Найти цитируемый пост)
вот статистика - вещь суровая, а по ней в программах на C++ ошибок в 9 раз больше, чем в программах на Ada, при одинаковом уровне программистов...

Так это ж Ada smile 

Цитата(source777 @  19.5.2008,  11:27 Найти цитируемый пост)
begin end предпочтительнее для новичка, т.к. ослабляют желание писать весь блок в одну строчку

Меня это не останавливало smile  

Цитата(source777 @  19.5.2008,  11:27 Найти цитируемый пост)
Абсолютно неудачный пример

smile 

Цитата(source777 @  19.5.2008,  11:27 Найти цитируемый пост)
а также имеют интуитивно понятный смысл для тех, кто знает английский...

Ну признайтесь, вы долго запоминали, что {} - это аналог begin end ? 

Цитата(source777 @  19.5.2008,  11:27 Найти цитируемый пост)
в конце концов С++ без указателей - это как яичница без яиц

Конечно, но мы же говорим о самых основах (с чего начать ?). Чему учат на Паскале? 
Если кратко: readln/writeln, if then else, for/while/repeat, procedure/function, uses graph (по желанию crt), array, file of, record  
Примерный стандарт учебной программы "стать программером с нуля smile". Так учат в школе, на курсах, etc.

Но ведь в С++ можно поступить также:
cin/cout, if then else, for/while/do while, int/void F(), uses graph (conio), int a[..], fstream, struct
Конечно, в чистом С это выглядит немного по-другому (сразу говорю, чтобы не придирались ) ).

Ещё до "record" меня тянуло изучить С++.
Теперь глянем мои конспекты, пример:
Цитата

модификаторы
static - создание статического метода/парамета - изменяется во всех экземплярах класса
const - константа - можно переопределить в наследственном классе
int print() const - константный метод - не модифицирует данный класс, не может вызывать неконстантный метод
наследование - ChildMyClass:MyClass1,MyClass2 <etc:)> {}
здесь можно переопределить старые методы, добавить новые методы/переменные etc переопределить в private 

int _tmain(int argc, _TCHAR* argv[])
{
    MyClass *a;
    a = new MyClass;
    a->width = 1;
    delete a;
    return 0;
}
... несколько страниц вперёд.... 
задача: написать дерево:...


Это, в общем-то, не то, что нужно начинающему, но то, что ему дают.

А вот после этого самого "record" прошло некоторое время, и я занялся С++ (читал книжки, пошёл на курсы, где учился с преподом один на один). И, о счастье, пришёл к тому, что С++ не так уж сложен, как казалось, когда я ещё толком не знал программирования.  


Цитата(source777 @  19.5.2008,  11:27 Найти цитируемый пост)
в конце концов С++ без указателей - это как яичница без яиц, причём не из-за того, что без указателей напрямую нельзя обойтись, а из-за того, что без их использования применение самого С++ необосновано)

Выше пример показывает, что я хотел сказать, говоря "А С/С++ нужно учить аналогично Паскалю". Да, С без указателей - не С, но почему бы сразу не учиться С/С++, всё-равно потом на него захочеться пересесть.

PM MAIL   Вверх
source777
Дата 22.5.2008, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 1
Всего: 56



Цитата(i_SweP @  22.5.2008,  19:19 Найти цитируемый пост)
но почему бы сразу не учиться С/С++, всё-равно потом на него захочеться пересесть.
Не факт, сейчас уже позиции С++ далеки от того, что было 10 лет назад, поэтому его подобно ассемблеру можно изучать просто для общего развития... И кстати не мешало бы разделять С и С++, чистый С вообще только для разработки драйверов имеет смысл применять в качестве кроссплатформенного ассемблера...



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Куда пойти учиться? | Следующая тема »


 




[ Время генерации скрипта: 0.1237 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.