Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Методика изучения С++ 
:(
    Опции темы
Frog
Дата 28.11.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 11.3.2006
Где: The swamp

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



Доброго времени всем. Мне нужна рекомендация по книгам о сетевом программировании на С/С++ для Windows - желательно с полными листингами рабочих примерoв. Под VC 2005. Уровень - для начинающих и среднячков. На русском или английском языках. Спасибо smile
PM MAIL WWW   Вверх
Lazin
Дата 28.11.2008, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(Tobuk @  28.11.2008,  13:32 Найти цитируемый пост)
И как теория вероятности относится к программированию?

Рандомизироваными алгоритмами и вероятностным анализом.

Цитата(Tobuk @  28.11.2008,  13:32 Найти цитируемый пост)
Алгоритмы и структуры данных это хорошо, но современный программист может использовать STL и не знать как он работает.

Если ты кнопки на формах рисуешь, то да. Если ты пишешь программу, которая обрабатывает данные, то тебе как минимум нужно знать сложность выполнения того или иного алгоритма над контейнером того или иного типа. И в каком случае какой контейнер использовать. Например, тебе нужно проиндексировать кучу текстовых файлов, от того какой контейнер ты выберешь зависит, будет это работать в течении секунд, часов, или суток smile 
PM MAIL Skype GTalk   Вверх
J0ker
Дата 28.11.2008, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Lazin @  28.11.2008,  14:27 Найти цитируемый пост)
Если ты кнопки на формах рисуешь, то да. Если ты пишешь программу, которая обрабатывает данные, то тебе как минимум нужно знать сложность выполнения того или иного алгоритма над контейнером того или иного типа. И в каком случае какой контейнер использовать. Например, тебе нужно проиндексировать кучу текстовых файлов, от того какой контейнер ты выберешь зависит, будет это работать в течении секунд, часов, или суток smile 


самое смешное, что большинство таких умозаключений можно сделать исходя чисто из здравого смысла - и порой это бывает полезней тупого заучивания формулы для каждого вида контейнера. Понимание принципа работы - 90% успеха.
Но безусловно сложные алгоритмы требуют знания математики, хотя-бы исключительно прикладной


--------------------
user posted image
PM MAIL   Вверх
SABROG
Дата 28.11.2008, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


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

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



Цитата(Gal78rus @  27.11.2008,  19:49 Найти цитируемый пост)
Мне один товарищ посоветовал начать обучение С++ с идеи создания собственной программы

Это тот стимул, который подталкивает изучать язык. Естественно сама программа тебе должна быть интересна, должно "загореться" ее сделать. По мере возникновения трудностей и препятствий начнешь понимать, что эту программу уже писать не хочется. Но хоть какие-то знания ты уже получишь к этому времени.

Цитата(Gal78rus @  27.11.2008,  19:49 Найти цитируемый пост)
как лучше читать учебник по С++? От корки до корки? или по мере нужды?

Я переходил на C++ с ассемблера, года 2-3 читал книжку по C++, но задач, которые я бы не мог решить с помощью асма не возникало. У меня выработалось стойкое чувство отвращения к языку, из-за того, что программы получались большими и тащили за собой то, что мне совсем было не нужно. А еще эта омерзительная надпись внутри exeшника "Borland compiler". 

Тему классов я вообще не понимал, да и сейчас полно пробелов. Более менее начал понимать, когда стал использовать готовые чужие классы, приходилось их наследовать и попутно изучать свойствах.

Я не советую читать книжку от корки до корки как учебник в школе. Во-первых это скучно, во вторых не терпится уже начать писать что-то свое. А пробелы в знаниях можно восполнять открытием нужной главы. Как правило все тянется по цепочке и начав что-то изучать придется в любой случае возвращаться к истокам. Т.ч. только беглое ознакомление, а потом выборочно то, что интересно.

Цитата(Gal78rus @  27.11.2008,  19:49 Найти цитируемый пост)
надо ли перепечатовать все примеры из книги в Visual С++?(мне не лень, просто думаю что время зря трачу) 

Я задавался этим вопросом раньше. При чтении книжки все было понятно, понимал исходники, где что делается. Но когда начинал сам писать исходник с нуля, то банально не помнил как прописывать заголовок #include в кавычках или угловых скобках, какие параметры у main и как писать: using namespace std; или просто namespace std;. Забывал ставить точку с запятой, какие параметры у цикла for и как писать switch(){case:}.

Т.ч. лучше перепечатывать, чтобы пальцы запомнили расположение часто используемых клавиш. 

Цитата(Gal78rus @  27.11.2008,  20:51 Найти цитируемый пост)
Это нормально что от фраз "исключающее ИЛИ" становится страшно и ничего не понятно?

Мне до сих пор страшно от такой фразы, но я понимаю что это всего-лишь какая-то операция с битами и я знаю где найти ответ.

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

Цитата(Gal78rus @  27.11.2008,  20:51 Найти цитируемый пост)
По математике 3 с натягом smile может повесится легче?

Аналогично. В связи с этим у меня было 3 неловких момента, когда я почувствовал себя ущербным. Первый случай, когда я пытался заставить крутится вокруг своей оси карточку. Там надо было периодически уменьшать карточку по координате X до тех пор пока она не принимала отрицательной значение и не показывалась ее оборотная сторона. А потом также увеличивать. Человек из мирка мне тогда посоветовал использовать толи синус, толи косинус. До сих пор не помню что именно. Вроде синус... Все работало и до того, но теперь была одна единственная функция без своего цикла.
Второй случай был с определением номера строки в массиве. В памяти даже текстовый файл это всего-лишь длинная линия байтов. Не помню точно как все было, все уже работало. Но в какой-то момент я понял, что единственное что делает мой код это берет остаток от деления и несколько строк кода заменилось на "%".
Третий случай это работа с трехмерными объектами. Все что касается координат чего-либо. Я как-то писал бота для игры, у меня был массив координат с месторождением ископаемых. Я поставил себе задачу узнать количество шагов, которое необходимо мне сделать, чтобы достигнуть точки. По сути все сводилось к тому, чтобы найти длину гипотенузы прямоугольного треугольника. Честно, взял учебник по геометрии со шкафа, хотя школу закончил 10 лет назад, чтобы посмотреть формулу. Я ее забыл через месяц.

Цитата(Lazin @  28.11.2008,  09:02 Найти цитируемый пост)
начать нужно не с языка программирования с++ а с теории: математики, особенно дискретной, а так-же с теории вероятностей, потом изучить алгоритмы и структуры данных, а потом уже учить какой-нибудь язык программирования 

Я математику начал понимать только в 9ом классе, когда начал программировать. Уж много параллелей проводилось. Я просто тупо начал понимать, что функции типа логарифмов, синусов, суммы, интегралы и т.п. просто краткая запись математической программы, которая сокрыта за значками, но на самом деле внутри находятся все те же простые математические операции, которые не нужно проводить человеку самостоятельно, потому что великие математики уже сами вычислили возможные результаты и запихнули в таблицу, чтобы ученику не пришлось каждый раз проводить вычисления вновь и вновь. А для тех цифр, которых нет в таблице придумали калькулятор. А алгоритмы в учебник не включили. Я например не помню, чтобы в учебнике была формула вычисления числа Пи с точностью до любого знака. Хотя она и существует.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Lazin
Дата 28.11.2008, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Ну вообще, для новичка, с++ не лучий выбор. Для обучения лучше использовать простой язык программирования, который позволяет сосредоточится на проблеме, а не на тонкостях и ньюансах самого языка программирования. Это как велосипед, никто ведь не учится кататься сразу на дорогом навороченом велосипеде, все в детстве начинают с 3-х колесного smile  
PM MAIL Skype GTalk   Вверх
taiven
Дата 28.11.2008, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Gal78rus @  27.11.2008,  19:51 Найти цитируемый пост)
Это нормально что от фраз "исключающее ИЛИ" становится страшно и ничего не понятно?

Возьми любую книгу по ассемблеру почитай(того же Зубкова например скачай, в сети легко найти): что такое биты, байты.., и т.д. 
PM   Вверх
IKM2007
Дата 28.11.2008, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


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

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



Цитата(taiven @  28.11.2008,  22:47 Найти цитируемый пост)
Возьми любую книгу по ассемблеру почитай(того же Зубкова например скачай, в сети легко найти): что такое биты, байты.., и т.д. 

Лучше оставвить ассемблер, в инете полно инфы. Хотя бы в википедии.
Здесь про 2-ичную систему и про битовых операции


--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
taiven
Дата 29.11.2008, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(IKM2007 @  28.11.2008,  22:18 Найти цитируемый пост)
Лучше оставвить ассемблер, в инете полно инфы. 

так я за сам ассемблер ничего и не говорю, я говорю именно об основополагающих вещах, которые описанны, как мне кажется в любой книге по ассемблеру.


Это сообщение отредактировал(а) taiven - 29.11.2008, 00:50
PM   Вверх
Kallikanzarid
Дата 29.11.2008, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

Это нормально что от фраз "исключающее ИЛИ" становится страшно и ничего не понятно?

Изучи хотя бы булеву алгебру. А вообще лучше, в том числе и для мозга в общем, изучить также остальные начала дискретной математики, классический вещественный анализ (полезно для мозга + больше будешь знать про О-нотацию), линейную алгебру и аналитическую геометрию.

А пока ты все это учишь, начни с более простых языков - Ruby, например.

Это сообщение отредактировал(а) Kallikanzarid - 29.11.2008, 10:40
PM MAIL   Вверх
taiven
Дата 29.11.2008, 11:09 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Lazin @  28.11.2008,  21:39 Найти цитируемый пост)
Ну вообще, для новичка, с++ не лучий выбор. Для обучения лучше использовать простой язык программирования,

Цитата(Kallikanzarid @  29.11.2008,  09:40 Найти цитируемый пост)
А пока ты все это учишь, начни с более простых языков - Ruby, например.

ИМХО это для уже знающего какой-то язык программиста может показаться, что тот или иной язык проще для изучения, а для новичка всё одинаково сложно. 
PM   Вверх
ilyuha
Дата 29.11.2008, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



имхо, С++ для новичка в программировании будет очень сложен. как уже сказал Lazin, надо начинать с чего-то попроще(например, с того же паскаля), что позволит сосредоточится на основных структурах данных, и базовых алгоритмах, не забивая голову фичами самого языка. разве сможет новичек понять конструкцию вида while(*p++=*q++)? smile 
при должном рвении, можно попробовать начать с С. тогда дальнейший переход на С++ будет проще
PM MAIL   Вверх
Dmi3ev
Дата 29.11.2008, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



 smile 
Цитата

разве сможет новичек понять конструкцию вида while(*p++=*q++)?

 smile 
ты похоже понимаешь  smile  и у тебя надпись - Новичек  smile Значит, ответ - может  smile  


--------------------

PM MAIL   Вверх
taiven
Дата 29.11.2008, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(ilyuha @  29.11.2008,  13:44 Найти цитируемый пост)
имхо, С++ для новичка в программировании будет очень сложен. как уже сказал Lazin, надо начинать с чего-то попроще(например, с того же паскаля)

ты хочешь сказать, что после изучения паскаля конструкция вида while(*p++=*q++), станет более понятной..? Разве С++ обязывает использовать именно такие конструкции? Я кстати начинал именно с плюсов.

Это сообщение отредактировал(а) taiven - 29.11.2008, 15:24
PM   Вверх
ilyuha
Дата 29.11.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Dmi3ev,  smile
не иронизируй  smile да, я в С++ новичек и не могу пока похвастатся обширными знаниями этого языка. до  этого 2 года кодил на дельфи, но тем не менее, подобные конструкции мне было сложно понять(без Страуструпа бы вообще не понял  smile )

Добавлено через 4 минуты и 30 секунд
taiven, нет. не хочу я так сказать. но.... ммм... после "разворачивания" подобных конструкций, все будет более понятно smile
PM MAIL   Вверх
IKM2007
Дата 29.11.2008, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


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

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



Цитата(ilyuha @  29.11.2008,  14:44 Найти цитируемый пост)
имхо, С++ для новичка в программировании будет очень сложен. как уже сказал Lazin, надо начинать с чего-то попроще(например, с того же паскаля), ...

Я конкретно начинал с C++, до этого в школе "проходили" Pascal, так и не выучил smile (вообще ничего), а потом в универе начали C++. Я это к чему, что нет никакой разницы, с какого языка начать, я например не осилил паскаль, так как с самого начала мне в крайней степени не понравился этот язык, а C++ понравился. Да и еще, если начинаешь, начни сразу с языка высокого уровня(такой как C++). А сейчас изучаю PHP, и вроде после C++ легко. smile 
И вообще, так можно спорить вечность, каждый начал по-своему, у думает что так правильно. smile 


--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




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


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

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