Путь изучения языка программирования
Модератор: Модераторы разделов
-
- Сообщения: 222
- Статус: полный привет
- ОС: Mac OS, Ubuntu 8.04
Путь изучения языка программирования
Всем, Привет
Решил более серьезно отнестись к изучению Си.
Опыта у меня нет, по професии архитектор, знааю только Липс (автокад) и МЭЛ (Майа).
Со скриптами особых проблем не было, вроде все понятно, но когда возникают идеи создания не большой (а иногда и большой) программы не заная счего начать!!! Чувство что не хватает базовых знаний!
Вот нашел программу курсов обучения Си : http://www.avalon.ru/PPS/CPP/
Первой там стоит "Основы алгоритмизации и программирования"!!! Может и мне с этого начать, что про этот график думаете?
Мне не хватает самого понимания как пишиться программа, как они устроены!
Сам синтаксис я думаю особогу труда выучить не составит!
Учу все сам (более ефективно) посоветуйте книги для основ програмирования, по устройству и логике программ?!!!
Изучаю Си потом перейду на Обжектив-Си или Си++
Большое спасибо
Решил более серьезно отнестись к изучению Си.
Опыта у меня нет, по професии архитектор, знааю только Липс (автокад) и МЭЛ (Майа).
Со скриптами особых проблем не было, вроде все понятно, но когда возникают идеи создания не большой (а иногда и большой) программы не заная счего начать!!! Чувство что не хватает базовых знаний!
Вот нашел программу курсов обучения Си : http://www.avalon.ru/PPS/CPP/
Первой там стоит "Основы алгоритмизации и программирования"!!! Может и мне с этого начать, что про этот график думаете?
Мне не хватает самого понимания как пишиться программа, как они устроены!
Сам синтаксис я думаю особогу труда выучить не составит!
Учу все сам (более ефективно) посоветуйте книги для основ програмирования, по устройству и логике программ?!!!
Изучаю Си потом перейду на Обжектив-Си или Си++
Большое спасибо
-
- Сообщения: 1685
- ОС: SuSe 10.2
Re: Путь изучения языка программирования
я замечу следующее:
что бы понять это - вам надо понять ООП. а это совершенно иная логика чем в простом процедурном С.
Что бы перестроиться с процедурно-ориентированного программирования (программа = набор функций и процедур) к ООП (программа = набор объектов взаимодействующих друг с сдругом) у меня ушло порядка года. я имею в виду не овладение синтаксисом и т.п а "перестройка мышления".
потому если планируете изучать С++ - сильно не заморачивайтесь на С - он вам конечно нужен будет но только как базовый инструмент что-ли... синтаксис и т.п.... но приемы программирования в ООП и принципы работы программ во многом различаются.
Кстати - зачем/почему вы решили изучать С\С++ ?
Обжектив-Си или Си++
что бы понять это - вам надо понять ООП. а это совершенно иная логика чем в простом процедурном С.
Что бы перестроиться с процедурно-ориентированного программирования (программа = набор функций и процедур) к ООП (программа = набор объектов взаимодействующих друг с сдругом) у меня ушло порядка года. я имею в виду не овладение синтаксисом и т.п а "перестройка мышления".
потому если планируете изучать С++ - сильно не заморачивайтесь на С - он вам конечно нужен будет но только как базовый инструмент что-ли... синтаксис и т.п.... но приемы программирования в ООП и принципы работы программ во многом различаются.
Кстати - зачем/почему вы решили изучать С\С++ ?
-
- Сообщения: 3339
- ОС: Slackware 12.2, ArchLinux 64
Re: Путь изучения языка программирования
График как график. А вот из Объектно-Ориентированного Программирования я бы не делал культа. Это всего лишь один из многих инструментов, у которого, помимо прочего, есть довольно узкая область применения. А вот "простое процедурное программирование" на "примитивном" C знать очень полезно, потому как основа.
В общем, я бы C изучал, а там видно будет. Хотя, освоить ООП для общего развития тоже не мешает. Потом. 


-
- Сообщения: 82
- ОС: FreeBSD
Re: Путь изучения языка программирования
После обычного программирования (функции) перейти к ООП довольно сложно (непривычно), по этому некоторые советуют зразу брать быка за рога и учить ООП. А вообще, это индивидуально, кто то осваивает программирование просто читая чужой код, кто то обкладывает себя горой книг. Вот одна из самых хороших книг(классика) по Си для начинающих http://tinyurl.com/yaxefw9 Книгу можно скачать на просторах интернета, здесь не буду давать прямую ссылку, сами найдете!
Все мы обмануты счастьем ...
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Путь изучения языка программирования
лучше сразу плюсы - они вывернутые на изнанку, очень тяжело перестроится с обычного С на С++.
читать ИМХО надо первоисточник, вот этого дядьку.
-
- Сообщения: 362
- Статус: Ad Astra per aspera
- ОС: openSUSE 11.4, Arch
Re: Путь изучения языка программирования
ну не скажите... без знания основ Си, С++ трудно понять. имхо

No problems - just solutions!
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Путь изучения языка программирования
да какие там основы? ИМХО это всё и BASIC'е есть, или в паскале, или скажем в javascript. Насколько я знаю, эти основы теперь в средней школе учат, т.ч. это любой школьник должен знать.
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: Путь изучения языка программирования
Звучит почти как путь ДАО 
Не считаю, что к ООП от процедурного программирования перейти тяжело. Впрочем и начать сразу ООП учить тоже нормально. Индивидуальные особенности ясно, что влияют, но обобщить нельзя. Это не с императивных на функциональные перейти. Вот здесь я понимаю может быть трудность.
И вообще, имхо, главное - это понимание алгоритмизации. Дальше, зная синтаксис, - писать можно на любом языке. А всякие "хитрости" - это уже потом.

Не считаю, что к ООП от процедурного программирования перейти тяжело. Впрочем и начать сразу ООП учить тоже нормально. Индивидуальные особенности ясно, что влияют, но обобщить нельзя. Это не с императивных на функциональные перейти. Вот здесь я понимаю может быть трудность.
И вообще, имхо, главное - это понимание алгоритмизации. Дальше, зная синтаксис, - писать можно на любом языке. А всякие "хитрости" - это уже потом.
-
- Сообщения: 144
- ОС: Ubuntu linux vs. WinXP
Re: Путь изучения языка программирования
Вы правы. Но для изучения основ рекомендую python, правда нормальные учебники найти небольшой проблемкой выйдет, но могу за вас поискать, ибо делать нечего =)
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
-
- Сообщения: 222
- Статус: полный привет
- ОС: Mac OS, Ubuntu 8.04
Re: Путь изучения языка программирования
Все сошлись во мнении что,кроме книги по СИ++ больше нечего не надо!
А практику где брать, понимание то что ты читаешь приходит только с практикой, а в книги представлены совершенно бесполезные примеры которые я не представляю как применить в написании даже простого просмоторщика файлов !!!
Где черпать практические занятия чтобы начать мыслить по другому ( вы же понимаете что архитектор думает не так как программист
)
А практику где брать, понимание то что ты читаешь приходит только с практикой, а в книги представлены совершенно бесполезные примеры которые я не представляю как применить в написании даже простого просмоторщика файлов !!!
Где черпать практические занятия чтобы начать мыслить по другому ( вы же понимаете что архитектор думает не так как программист

-
- Сообщения: 1095
- Статус: -
- ОС: GNU/Linux
Re: Путь изучения языка программирования
а что для вас полезный пример?совершенно бесполезные примеры
у страуструпа они подкрепляют теорию, вам то что еще нужно?
-
- Сообщения: 600
- ОС: Debian Stable
Re: Путь изучения языка программирования
А это так модно сейчас, начинать объяснение с последнего пункта?
У топикстартера первым стоит "основы алгоритмизации и программирования", а тут разгорается очередной холивар о ЯП и парадигмах программирования. Какой смысл обсуждать инструменты, если человек не знает что и как ими можно делать?
По сабжу:
Дональд Кнут - Искусство программирования
Никлаус Вирт - Алгоритмы и структуры данных
Может есть подобная литература, привязанная к C, но я такой не знаю, да и особого значения это не имеет.
У топикстартера первым стоит "основы алгоритмизации и программирования", а тут разгорается очередной холивар о ЯП и парадигмах программирования. Какой смысл обсуждать инструменты, если человек не знает что и как ими можно делать?
По сабжу:
Дональд Кнут - Искусство программирования
Никлаус Вирт - Алгоритмы и структуры данных
Может есть подобная литература, привязанная к C, но я такой не знаю, да и особого значения это не имеет.
-
- Сообщения: 222
- Статус: полный привет
- ОС: Mac OS, Ubuntu 8.04
Re: Путь изучения языка программирования
neol писал(а): ↑31.01.2010 13:18А это так модно сейчас, начинать объяснение с последнего пункта?
У топикстартера первым стоит "основы алгоритмизации и программирования", а тут разгорается очередной холивар о ЯП и парадигмах программирования. Какой смысл обсуждать инструменты, если человек не знает что и как ими можно делать?
По сабжу:
Дональд Кнут - Искусство программирования
Никлаус Вирт - Алгоритмы и структуры данных
Может есть подобная литература, привязанная к C, но я такой не знаю, да и особого значения это не имеет.
Спасибо, я про то и говорю что должна быть база, и понимание, язык уже потом можно выучить!!! Есть программисты которые на многих языках пишут программы!
У них есть понимание всего!! Вот я архитектор знаю как устроено здание, что и как надо сделать И В каком порядке что бы его построили, а Автокад и компьютер это только инструмент!!! И я как программист который знает несколько языков программирования знаю несколько программ для проектирования!
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Путь изучения языка программирования
тоже верно. лучше не привязываться к конкретному языку: вот Кнут вообще свой придумал (и язык и компьютер). и ничего - писать можно (есть даже эмуляторы для его компьютера).
-
- Сообщения: 39
- ОС: >_<
Re: Путь изучения языка программирования
SICP ?
(© '(define LISP (такой язык-программирования (состоящий-из смайликов (чуть более) (чем целиком)))) lurkmore)
-
- Сообщения: 1685
- ОС: SuSe 10.2
Re: Путь изучения языка программирования
После изучеия основ - подключайтесь к какому-либо проекту.
Я, например, могу вам предложить пару задачек по OTPD или QDroid, но вам помимо C++, для начала надо будет понять ещё и сигнал-слотовый механизм и основы библиотеки/фреймворка QT )
-
- Сообщения: 1205
- ОС: Debian Wheezy (amd64)
Re: Путь изучения языка программирования
Придумайте себе задачу (вы ж говорите, что возникают идеи). Продумайте все как должно выглядеть с точки зрения использования. Попутно читайте книжки (практически любые на эту тему -с миру по нитке). Кстати ООП достаточно доходчиво изложено (основы) в С++ для чайников. (Уже умея программить попалась мне эта книга, почитал в пути).
Когда фомируется задача. Раздробите на маленькие кусочки.... Если, что спрашивайте на форумах - дадут направление мысли.....
А задачи от балды и с потолка такие же бестолковые в плане учебы.
Совершенно верно. ИМХО после второго-третьего языка становится фиолетово на каком писать - вопрос лишь в наличии толкового справочника. Но и прыгать не стоит - можно глядя поверхостно, что то важное и полезное упустить
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
-
- Сообщения: 222
- Статус: полный привет
- ОС: Mac OS, Ubuntu 8.04
Re: Путь изучения языка программирования
Большое спасибо, буду стараться что-то сделать
-
- Сообщения: 3339
- ОС: Slackware 12.2, ArchLinux 64
Re: Путь изучения языка программирования
Кто сошелся? Я не сходился.


Напиши программу решения квадратного уравнения. Пользователь вводит коэффициенты ураснения, программа выдеет корни. А потом улучшай ее.

-
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: Путь изучения языка программирования
Uncle_Theodore писал(а): ↑31.01.2010 23:57Если уж так хочется ООП учить, лучше уж на Джабе. Или Питоне -- изящная безделушка.
....
Напиши программу решения квадратного уравнения. Пользователь вводит коэффициенты ураснения, программа выдеет корни. А потом улучшай ее.
/me представил себе:
Код: Выделить всё
eq = QuadroEquation.new();
eq.set_a(10)l
eq.set_b(4);
eq.set_c(-1);
cout << eq.get_x1() <<" " << eq.get_x2() << "\n"
-
- Сообщения: 39
- ОС: >_<
Re: Путь изучения языка программирования
Uncle_Theodore писал(а): ↑31.01.2010 23:57Напиши программу решения квадратного уравнения. Пользователь вводит коэффициенты ураснения, программа выдеет корни. А потом улучшай ее.
ну это уж Вы совсем примитивное советуете =)
(© '(define LISP (такой язык-программирования (состоящий-из смайликов (чуть более) (чем целиком)))) lurkmore)
-
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Путь изучения языка программирования
Ну сказано же - "А потом улучшай ее.". Например, до решения квадратных уравнений над произвольным полем :)
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
- Сообщения: 144
- ОС: Ubuntu linux vs. WinXP
Re: Путь изучения языка программирования
Я извиняюсь, забыл добавить слово "нормальных", уже добавил.
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Путь изучения языка программирования
разве там нет нормальных? а как народ изучает-то?
-
- Сообщения: 137
- ОС: Linux, Archlinux
Re: Путь изучения языка программирования
Для начала прочитать "Структура и интерпретация компьютерных программ" А потом уже можете что угодно читать.
-
- Сообщения: 362
- Статус: Ad Astra per aspera
- ОС: openSUSE 11.4, Arch
Re: Путь изучения языка программирования
объясните мне про пространства имен, если мои знания ограничиваются школьным VBA?
это правда немного преувеличено, я просто хочу сказать, что в С/С++ есть специфичные моменты

No problems - just solutions!
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Путь изучения языка программирования
легко!
если вас в школе научили пользоваться рожковым ключом, я думаю вы освоите и разводной, и торцовый. Даже без моей помощи

если не освоите - значит плохо учили(сь). Учить надо не "специфическим моментам", а общим принципам.
-
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: Путь изучения языка программирования
ну то есть о том что такое переменные, процедуры и функции вам объяснять не надо? потому как для объяснения на пальцах в принципе ничего особенного знать больше и не надо.
Спасибо сказали:
-
- Сообщения: 2041
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Re: Путь изучения языка программирования
Ink-85 писал(а): ↑31.01.2010 13:07Все сошлись во мнении что,кроме книги по СИ++ больше нечего не надо!
А практику где брать, понимание то что ты читаешь приходит только с практикой, а в книги представлены совершенно бесполезные примеры которые я не представляю как применить в написании даже простого просмоторщика файлов !!!
Практика:
* Брюс Моли "Теория и практика программирования"
* Марк Дж. Рочкинд "Программирование для UNIX"
Эти две книги дадут хорошее представление о системном программировании. Читать их следует сразу после "основ". Основы - это что-то типа учебника
* Стивен Прата "Язык программирования С++. Лекции и упражнения"
Или интересно GUI? Если понимаете что такое классы, то можно без чтения какой-нить специальной книги, просто обращаясь к справочнику по тому же Qt4, к примеру, начать писать небольшие проекты. Хотя желательно все же ознакомиться с книгой
* Макс Шлее "Qt4. Профессиональное программирование на С++"
Полезно бывает черпать идеи с различных форумов программистов. Там же можно найти код, статьи и очень много чего интересного по программированию. Когда начнете писать первые проекты, поймете лучше что именно Вам нужно.
Что бы начать думать "как они", надо начать с "ними" общаться. Где именно? Мест уйма. Вот например:
(Как у нас с английским?)
KDE Community forums
Russian KDE forum
Labor omnia vincit
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)