Путь изучения языка программирования

Модератор: Модераторы разделов

Аватара пользователя
Ink-85
Сообщения: 222
Статус: полный привет
ОС: Mac OS, Ubuntu 8.04

Путь изучения языка программирования

Сообщение Ink-85 »

Всем, Привет

Решил более серьезно отнестись к изучению Си.
Опыта у меня нет, по професии архитектор, знааю только Липс (автокад) и МЭЛ (Майа).
Со скриптами особых проблем не было, вроде все понятно, но когда возникают идеи создания не большой (а иногда и большой) программы не заная счего начать!!! Чувство что не хватает базовых знаний!

Вот нашел программу курсов обучения Си : http://www.avalon.ru/PPS/CPP/
Первой там стоит "Основы алгоритмизации и программирования"!!! Может и мне с этого начать, что про этот график думаете?
Мне не хватает самого понимания как пишиться программа, как они устроены!
Сам синтаксис я думаю особогу труда выучить не составит!

Учу все сам (более ефективно) посоветуйте книги для основ програмирования, по устройству и логике программ?!!!
Изучаю Си потом перейду на Обжектив-Си или Си++

Большое спасибо
Спасибо сказали:
Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

Re: Путь изучения языка программирования

Сообщение Denjs »

я замечу следующее:
Обжектив-Си или Си++

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

потому если планируете изучать С++ - сильно не заморачивайтесь на С - он вам конечно нужен будет но только как базовый инструмент что-ли... синтаксис и т.п.... но приемы программирования в ООП и принципы работы программ во многом различаются.

Кстати - зачем/почему вы решили изучать С\С++ ?
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Путь изучения языка программирования

Сообщение Uncle_Theodore »

График как график. А вот из Объектно-Ориентированного Программирования я бы не делал культа. Это всего лишь один из многих инструментов, у которого, помимо прочего, есть довольно узкая область применения. А вот "простое процедурное программирование" на "примитивном" C знать очень полезно, потому как основа. :) В общем, я бы C изучал, а там видно будет. Хотя, освоить ООП для общего развития тоже не мешает. Потом. :)
Спасибо сказали:
Аватара пользователя
IgnesBSD
Сообщения: 82
ОС: FreeBSD

Re: Путь изучения языка программирования

Сообщение IgnesBSD »

После обычного программирования (функции) перейти к ООП довольно сложно (непривычно), по этому некоторые советуют зразу брать быка за рога и учить ООП. А вообще, это индивидуально, кто то осваивает программирование просто читая чужой код, кто то обкладывает себя горой книг. Вот одна из самых хороших книг(классика) по Си для начинающих http://tinyurl.com/yaxefw9 Книгу можно скачать на просторах интернета, здесь не буду давать прямую ссылку, сами найдете!
Все мы обмануты счастьем ...
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Путь изучения языка программирования

Сообщение drBatty »

Ink-85 писал(а):
31.01.2010 00:33
Учу все сам (более ефективно) посоветуйте книги для основ програмирования, по устройству и логике программ?!!!
Изучаю Си потом перейду на Обжектив-Си или Си++

лучше сразу плюсы - они вывернутые на изнанку, очень тяжело перестроится с обычного С на С++.
читать ИМХО надо первоисточник, вот этого дядьку.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
agentprog
Сообщения: 362
Статус: Ad Astra per aspera
ОС: openSUSE 11.4, Arch

Re: Путь изучения языка программирования

Сообщение agentprog »

drBatty писал(а):
31.01.2010 08:50
лучше сразу плюсы - они вывернутые на изнанку, очень тяжело перестроится с обычного С на С++.

ну не скажите... без знания основ Си, С++ трудно понять. имхо :)
No problems - just solutions!
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Путь изучения языка программирования

Сообщение drBatty »

agentprog писал(а):
31.01.2010 09:29
ну не скажите... без знания основ Си, С++ трудно понять. имхо

да какие там основы? ИМХО это всё и BASIC'е есть, или в паскале, или скажем в javascript. Насколько я знаю, эти основы теперь в средней школе учат, т.ч. это любой школьник должен знать.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Путь изучения языка программирования

Сообщение NickLion »

Звучит почти как путь ДАО :)

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

И вообще, имхо, главное - это понимание алгоритмизации. Дальше, зная синтаксис, - писать можно на любом языке. А всякие "хитрости" - это уже потом.
Спасибо сказали:
Аватара пользователя
moscwich
Сообщения: 144
ОС: Ubuntu linux vs. WinXP

Re: Путь изучения языка программирования

Сообщение moscwich »

drBatty писал(а):
31.01.2010 09:36
agentprog писал(а):
31.01.2010 09:29
ну не скажите... без знания основ Си, С++ трудно понять. имхо

да какие там основы? ИМХО это всё и BASIC'е есть, или в паскале, или скажем в javascript. Насколько я знаю, эти основы теперь в средней школе учат, т.ч. это любой школьник должен знать.

Вы правы. Но для изучения основ рекомендую python, правда нормальные учебники найти небольшой проблемкой выйдет, но могу за вас поискать, ибо делать нечего =)
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Путь изучения языка программирования

Сообщение drBatty »

moscwich писал(а):
31.01.2010 10:56
правда учебники найти небольшой проблемкой выйдет, но могу за вас поискать, ибо делать нечего =)

какая проблема?!
полно учебников на русском и бесплатно
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Ink-85
Сообщения: 222
Статус: полный привет
ОС: Mac OS, Ubuntu 8.04

Re: Путь изучения языка программирования

Сообщение Ink-85 »

Все сошлись во мнении что,кроме книги по СИ++ больше нечего не надо!
А практику где брать, понимание то что ты читаешь приходит только с практикой, а в книги представлены совершенно бесполезные примеры которые я не представляю как применить в написании даже простого просмоторщика файлов !!!

Где черпать практические занятия чтобы начать мыслить по другому ( вы же понимаете что архитектор думает не так как программист :))
Спасибо сказали:
Nymin
Сообщения: 1095
Статус: -
ОС: GNU/Linux

Re: Путь изучения языка программирования

Сообщение Nymin »

совершенно бесполезные примеры
а что для вас полезный пример?
у страуструпа они подкрепляют теорию, вам то что еще нужно?
Спасибо сказали:
neol
Сообщения: 600
ОС: Debian Stable

Re: Путь изучения языка программирования

Сообщение neol »

А это так модно сейчас, начинать объяснение с последнего пункта?
У топикстартера первым стоит "основы алгоритмизации и программирования", а тут разгорается очередной холивар о ЯП и парадигмах программирования. Какой смысл обсуждать инструменты, если человек не знает что и как ими можно делать?

По сабжу:
Дональд Кнут - Искусство программирования
Никлаус Вирт - Алгоритмы и структуры данных
Может есть подобная литература, привязанная к C, но я такой не знаю, да и особого значения это не имеет.
Спасибо сказали:
Аватара пользователя
Ink-85
Сообщения: 222
Статус: полный привет
ОС: Mac OS, Ubuntu 8.04

Re: Путь изучения языка программирования

Сообщение Ink-85 »

neol писал(а):
31.01.2010 13:18
А это так модно сейчас, начинать объяснение с последнего пункта?
У топикстартера первым стоит "основы алгоритмизации и программирования", а тут разгорается очередной холивар о ЯП и парадигмах программирования. Какой смысл обсуждать инструменты, если человек не знает что и как ими можно делать?

По сабжу:
Дональд Кнут - Искусство программирования
Никлаус Вирт - Алгоритмы и структуры данных
Может есть подобная литература, привязанная к C, но я такой не знаю, да и особого значения это не имеет.


Спасибо, я про то и говорю что должна быть база, и понимание, язык уже потом можно выучить!!! Есть программисты которые на многих языках пишут программы!
У них есть понимание всего!! Вот я архитектор знаю как устроено здание, что и как надо сделать И В каком порядке что бы его построили, а Автокад и компьютер это только инструмент!!! И я как программист который знает несколько языков программирования знаю несколько программ для проектирования!
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Путь изучения языка программирования

Сообщение drBatty »

Ink-85 писал(а):
31.01.2010 13:37
Спасибо, я про то и говорю что должна быть база, и понимание, язык уже потом можно выучить

тоже верно. лучше не привязываться к конкретному языку: вот Кнут вообще свой придумал (и язык и компьютер). и ничего - писать можно (есть даже эмуляторы для его компьютера).
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
korvin
Сообщения: 39
ОС: >_<

Re: Путь изучения языка программирования

Сообщение korvin »

SICP ?
(© '(define LISP (такой язык-программирования (состоящий-из смайликов (чуть более) (чем целиком)))) lurkmore)
Спасибо сказали:
Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

Re: Путь изучения языка программирования

Сообщение Denjs »

Ink-85 писал(а):
31.01.2010 13:07
Где черпать практические занятия чтобы начать мыслить по другому ( вы же понимаете что архитектор думает не так как программист :))

После изучеия основ - подключайтесь к какому-либо проекту.
Я, например, могу вам предложить пару задачек по OTPD или QDroid, но вам помимо C++, для начала надо будет понять ещё и сигнал-слотовый механизм и основы библиотеки/фреймворка QT )
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: Путь изучения языка программирования

Сообщение Voral »

Ink-85 писал(а):
31.01.2010 13:07
А практику где брать, понимание то что ты читаешь приходит только с практикой, а в книги представлены совершенно бесполезные примеры которые я


Придумайте себе задачу (вы ж говорите, что возникают идеи). Продумайте все как должно выглядеть с точки зрения использования. Попутно читайте книжки (практически любые на эту тему -с миру по нитке). Кстати ООП достаточно доходчиво изложено (основы) в С++ для чайников. (Уже умея программить попалась мне эта книга, почитал в пути).

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

А задачи от балды и с потолка такие же бестолковые в плане учебы.


Ink-85 писал(а):
31.01.2010 13:37
Есть программисты которые на многих языках пишут программы!

Совершенно верно. ИМХО после второго-третьего языка становится фиолетово на каком писать - вопрос лишь в наличии толкового справочника. Но и прыгать не стоит - можно глядя поверхостно, что то важное и полезное упустить
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
Аватара пользователя
Ink-85
Сообщения: 222
Статус: полный привет
ОС: Mac OS, Ubuntu 8.04

Re: Путь изучения языка программирования

Сообщение Ink-85 »

Большое спасибо, буду стараться что-то сделать
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Путь изучения языка программирования

Сообщение Uncle_Theodore »

Ink-85 писал(а):
31.01.2010 13:07
Все сошлись во мнении что,кроме книги по СИ++ больше нечего не надо!


Кто сошелся? Я не сходился. :) Вообще, плюсы -- дерьмовый язык по многим причинам. Во-первых, он такой большой, что ни один человек в мире не знает его полностью. Во-вторых, он громоздкий и неизящный. И сохранил все родимые пятна своего прародителя C. Если уж так хочется ООП учить, лучше уж на Джабе. Или Питоне -- изящная безделушка. :)

Ink-85 писал(а):
31.01.2010 23:12
Большое спасибо, буду стараться что-то сделать

Напиши программу решения квадратного уравнения. Пользователь вводит коэффициенты ураснения, программа выдеет корни. А потом улучшай ее. :)
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Путь изучения языка программирования

Сообщение diesel »

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"
Спасибо сказали:
Аватара пользователя
korvin
Сообщения: 39
ОС: >_<

Re: Путь изучения языка программирования

Сообщение korvin »

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

ну это уж Вы совсем примитивное советуете =)
(© '(define LISP (такой язык-программирования (состоящий-из смайликов (чуть более) (чем целиком)))) lurkmore)
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Путь изучения языка программирования

Сообщение Portnov »

Ну сказано же - "А потом улучшай ее.". Например, до решения квадратных уравнений над произвольным полем :)
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
moscwich
Сообщения: 144
ОС: Ubuntu linux vs. WinXP

Re: Путь изучения языка программирования

Сообщение moscwich »

drBatty писал(а):
31.01.2010 11:37
moscwich писал(а):
31.01.2010 10:56
правда учебники найти небольшой проблемкой выйдет, но могу за вас поискать, ибо делать нечего =)

какая проблема?!
полно учебников на русском и бесплатно
Я извиняюсь, забыл добавить слово "нормальных", уже добавил.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Путь изучения языка программирования

Сообщение drBatty »

moscwich писал(а):
02.02.2010 18:57
Я извиняюсь, забыл добавить слово "нормальных", уже добавил.

разве там нет нормальных? а как народ изучает-то?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
serg43
Сообщения: 137
ОС: Linux, Archlinux

Re: Путь изучения языка программирования

Сообщение serg43 »

Для начала прочитать "Структура и интерпретация компьютерных программ" А потом уже можете что угодно читать.
Спасибо сказали:
Аватара пользователя
agentprog
Сообщения: 362
Статус: Ad Astra per aspera
ОС: openSUSE 11.4, Arch

Re: Путь изучения языка программирования

Сообщение agentprog »

drBatty писал(а):
31.01.2010 09:36
agentprog писал(а):
31.01.2010 09:29
ну не скажите... без знания основ Си, С++ трудно понять. имхо

да какие там основы? ИМХО это всё и BASIC'е есть, или в паскале, или скажем в javascript. Насколько я знаю, эти основы теперь в средней школе учат, т.ч. это любой школьник должен знать.

объясните мне про пространства имен, если мои знания ограничиваются школьным VBA?
это правда немного преувеличено, я просто хочу сказать, что в С/С++ есть специфичные моменты :)
No problems - just solutions!
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Путь изучения языка программирования

Сообщение drBatty »

agentprog писал(а):
02.02.2010 21:41
объясните мне про пространства имен, если мои знания ограничиваются школьным VBA?

легко!
если вас в школе научили пользоваться рожковым ключом, я думаю вы освоите и разводной, и торцовый. Даже без моей помощи :)
если не освоите - значит плохо учили(сь). Учить надо не "специфическим моментам", а общим принципам.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Путь изучения языка программирования

Сообщение diesel »

agentprog писал(а):
02.02.2010 21:41
объясните мне про пространства имен, если мои знания ограничиваются школьным VBA?

ну то есть о том что такое переменные, процедуры и функции вам объяснять не надо? потому как для объяснения на пальцах в принципе ничего особенного знать больше и не надо.
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Путь изучения языка программирования

Сообщение Stauffenberg »

Ink-85 писал(а):
31.01.2010 13:07
Все сошлись во мнении что,кроме книги по СИ++ больше нечего не надо!
А практику где брать, понимание то что ты читаешь приходит только с практикой, а в книги представлены совершенно бесполезные примеры которые я не представляю как применить в написании даже простого просмоторщика файлов !!!

Практика:

* Брюс Моли "Теория и практика программирования"
* Марк Дж. Рочкинд "Программирование для UNIX"


Эти две книги дадут хорошее представление о системном программировании. Читать их следует сразу после "основ". Основы - это что-то типа учебника

* Стивен Прата "Язык программирования С++. Лекции и упражнения"

Или интересно GUI? Если понимаете что такое классы, то можно без чтения какой-нить специальной книги, просто обращаясь к справочнику по тому же Qt4, к примеру, начать писать небольшие проекты. Хотя желательно все же ознакомиться с книгой

* Макс Шлее "Qt4. Профессиональное программирование на С++"

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


Ink-85 писал(а):
31.01.2010 13:07
Где черпать практические занятия чтобы начать мыслить по другому ( вы же понимаете что архитектор думает не так как программист :))


Что бы начать думать "как они", надо начать с "ними" общаться. Где именно? Мест уйма. Вот например:
(Как у нас с английским?)
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)
Спасибо сказали: