134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
|
|
1 | |
Простое начинание11.10.2013, 20:50. Показов 3693. Ответов 53
Сразу прошу - не бросайтесь кирпичами.
Предисловие (можно пропустить). С Си++ знаком очень давно, по сути - это первый язык программирования, с которым я стал более менее серьёзно программировать. От консольных утилит и курсовых с GUI, до игр и серьзных проектов с ассемблером. И за это время я узнал не мало о языке, о его возможностей. Что-то мне в нём нравиться, что-то нет. Но есть очень много новичков, которые хотели бы овладеть этим безусловно очень мощным инструментом (в умелых руках). Поэтому мне вдруг (на самом деле - очень давно) захотелось бы написать небольшое... руководство. С опорой на опыт, а не на рефернсы. Конечно, я не джедай и мне далеко до него. Но так уж получилось, что часто приходилось разных людей учить программированию, а точнее - Си++. Очень разных. Есть небогатый опыт. Просьба (можно начать отсюда). Таким образом мне хотелось бы составить список тем, которые требовалось бы осветить. Зачем? Последний сезон Breaking Bad вышел не так уж давно (да, я слоупок) и есть 15 минут, пока Собственно. Темы должны быть полными. При этом хотелось бы, чтобы последовательность изложения была удобной для чтения. Приятной и удобной. Не скучно и эффективно. Прошу здешних форумчан помочь составить базовый список тем Си++, владея которым на уровне, можно было бы считать себя отличным Си++ программистом. К тому же, в свете Си++11 и Си++14, появились определённые новшества, которые, возможно, сильно преобразуют обычный Си++ код. В добавок, хотелось бы сделать уклон в сторону ООП и описать техники, которые позволят избежать очередной пули в ногу. У Вас наверняка есть пара тузов в рукаве. Что хотелось бы (это так же можно пропустить). Собственно, в идеале талмуд должен быть интересен как новичкам в Си++, так и новичкам в программировании вообще. Было бы замечательно, если бы описанное было интересно и старичкам. Текст будет (если что получиться) полностью свободным. Приветствуется кооперативное авторство. Что есть сейчас (это будет обновляться). Предисловие) Начать хотелось бы с небольшого предисловия о роли языка Си++ в совремнном мире, небольшая справка о историческом значении и субъективный прогноз на будущее. 0) Введение в программирование. Наверное, важная часть, освещающая программирование в целом. Как строятся алгоритмы, что есть структорное программирование (и какие есть альтернативы). Немного о том, как связана математика, схемотехника и информатика. Вообще, какие науки (понятно, что все) изучают программирование и с какой стороны. 1) Базовый синтаксис. Проекция информации из введения в уловные обозначения Си++. То есть, каким образом реализуется структурное программирование в Си++, какова его объектная модель. Никаких сравнений с другими языками программирования. 2) Стандартные алгоритмы. Немного про стандартные алогритмы. В основном - практика. 3) Расширенные возможности. Дополнительные возможности. Всё, что не укладывается в базовый синтаксис по теореме Бома-Якопини. 4) Нетривиальные возможности. Возможности, выходящие за те возможности, которые предоставляет синтаксис с компилятором. Другими словами - какие крутые базовые блоки можно слепить из других базовых блоков. 5) Практика. Вот здесь я уже обессилил. Не представляю, что можно изучить в рамках практики с применением всех возможностей языка. В идеале требуется показать этакий best practice. Боюсь, это будет без всех возможностей. inf) Приложения. Здесь все дополнения, которые выбиваются из общей канвы повествования. Заранее благодарю. P.S. Вполне возможно, из этого ничего и не выйдет. Я просто подумал, что было бы не плохо попробовать. К тому же, вполне вероятно я сам научусь чему-то новому. А если у меня получиться научить кого-то, то это будет просто прекрасно.
0
|
11.10.2013, 20:50 | |
Ответы с готовыми решениями:
53
Помощь в начинание Объектно ориентированного програмирования Дано простое число. Составить функцию, которая будет находить следующее за ним простое число Дано простое число. Составить функцию,которая будет находить следующее за ним простое число. Дано простое число. Составить функцию, которая будет находить следующее за ним простое число. |
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
|
|
12.10.2013, 00:10 [ТС] | 42 |
А что не так. Если бы я знал, что могу сам, этого топика не было бы. Я не просто прошу помочь. А оффтоп не плохо хотя бы выделять в тег [OFF]
0
|
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
|
|
12.10.2013, 00:33 | 43 |
Не по теме: оффтоп я только собираюсь писать сейчас, придумал название для вашей книги: Ну а если по теме, то ваша репутация вырастет если напишите учебник(да даже статью). Только надо определиться с аудиторией, это либо люди далекие от программирования, типа студентов, которых вы бы хотели привести в программирование. Либо люди, которые стремятся к программированию и активно изучают соответсвующую литературу. Мне бы хотелось видеть учебник в формате "некое математическое понятие, затем конкретный пример его применения" ни как у Кнута тяжелые для восприятия формулы и алгоритмы, а относительно простые понятия, и реальная польза от них в жизни. Интегралы, дифференциальные уравнения, статистика. То есть как базовые математические навыки, могут например сократить время в пути, делать оценки по прогнозированию простых ситуаций, следить за собственным здоровьем(в этом смысле у Дейтела(издание 2011 года) понравились задачи типа как "написать программу для расчета Body Mass Index" и т п)
0
|
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
|
|
12.10.2013, 00:36 [ТС] | 44 |
Ещё один плюс в сторону математики.
Правда, начать следует, наверное, с дискретной математики. А подробней по тема? Что именно осветить. Чтобы люди не сильно знакомые осилили, а те кто в темы быстро поняли, что им требуется пропустить. К слову, я надеюсь, что не сильно заразился Корменами и Кнутами. Одно время очень тяжело их воспринимал, сейчас же с лёгкостью ориентируюсь в книгах.
0
|
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
|
|
12.10.2013, 00:42 | 45 |
студенты не понимают для чего им дают понятия, которые они нигде не могут применить. Помню в универе нам говорили - "просто выучите, а понимание придёт потом". Тока зачем учить если не понимаешь зачем оно надо?
0
|
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
|
|
12.10.2013, 01:18 [ТС] | 46 |
К слову, лично со мной сработало. Некоторые дисциплины я совершенно не понял. Но потом, когда внезапно возникла потребность в знаниях, мне потребовалось совсем немного времени на поиски информации и я в ней обитал свободно. И понимал. Понимал, зачем мне это сейчас требуется.
Я к тому, что теория нередко бывает сильно оторвана от практики. Понимание приходит именно с ней. За 6 лет сложно получить и теорию (всестороннюю более менее) и практику. Да и вообще в РФ очень неплохое теоретическое образование, с практикой не очень. Хотя... понимание - это вопрос даже ближе к философии. Что это такое? Когда мы понимаем? А когда нет? А что, если нам кажется, что мы не понимаем? И наоборот - кажется, что понимания нет, а на самом деле оно есть. Это проблема жизни. Понятийный аппарат человека слабо изучен, и хотя есть такое слово - понимание, не совсем понятно, как понять, понимаешь ты или нет. Закрутил... С знанием проще. Ты либо знаешь что-то, либо нет. Знание оперирует фактами. А их можно проверить банальным тестом.
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
12.10.2013, 01:53 | 47 |
Да к какой там философии. Понимание - это когда ты можешь знания применить на практике, например ты знаешь как строиться бомба но на практике ее сделать не можешь потому что ты не понимаешь. А от если понимаешь, то и на практике ее сможешь построить. Понимаешь - это означает что ты знаешь полностью тему досконально как что работает.
Себя ж ты не обманиш, если не понимаешь, то сам прекрасно знаешь, что не понимаешь, а если понимаешь, то ясно что понимаешь еще лучше. Ты и правда чуток закрутил.
0
|
Форумчанин
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
12.10.2013, 02:07 | 48 |
AnyOne697, возможно вы это уже знаете, но попробую дать совет: если все-таки надумаете публиковать свои труды, то этот раздел для вас.
Вполне возможно, что вы сможете объяснить базовые вещи понятным языком. Главное почаще сверяйте свое мнение со стандартом и мнением сообщества (не только форума), чтобы не оказалось например так, что люди будут отвергать паттерны, свято веря, что это ересь. Можете указывать, например, рядом со своим мнением, мнение сообщества. Труд вы взялись брать колоссальный, подходов тут масса, всем возможным пользователям не угодишь и про все не расскажешь. Надеюсь, пользу это волонтерство принесет, желаю удачи.
1
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
12.10.2013, 02:11 | 49 |
Сообщение было отмечено как решение
Решение
Господа ninja и AnyOne, вам обоим не хватит опыта и знаний на более-менее приличную книгу.
4
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
12.10.2013, 02:15 | 50 |
Ну я суржик знаю, русский не сильно, я и так пытаюсь хоть без ошибок писать, щас уже меньше ошибок делаю, чем раньше.
0
|
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
|
|
12.10.2013, 09:38 | 51 |
помоему, если человек не применяет паттерны и не знает стандарта, но у него включен мозг, то он вполне может написать интересную вещь. Правда вероятность ниже. Не понимаю почему нет. Тока не называть тогда статью (книгу) "как выучить C++", а "Мои подходы к разработке ПО"
0
|
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
|
|
12.10.2013, 13:50 [ТС] | 52 |
Стараюсь. И начал писать уже. Не просто так этот топик есть. Он есть именно для того, что составить "список вопросов", требующих освещения. Понятно, что все темы просто невозможно охватить. Что-то будет пропущено. Но стараться к оптимальному решению по моему должен каждый программист.
Вообще, замечаю непонимание. Это не совсем книга. Это именно сборник разных подходов начиная с азов программирования как такого, заканчивая сложными техниками программирования на Си++. И было бы не плохо, если бы сообщество мне помогло. От ссылок и списков тем, до вычитки, правки и статей. Было бы отлично систематизировать разбросанный по Интернетам материал. Поэтому это не мой труд. Это труд сообщества. Окей. Собственно, я начал писать введение. Пытался ввести в понятие алгоритм как на интуитивном уровне, так и со строгим определением. Получается не густо. Что стоит рассмотреть в этой части. Какие вопросы, может быть есть теоремы. Мне кажется, было бы не плохо ввести понятия алогоритма, структурного программирования (с теоремой), продемонстрировать универсальную машину Тьюринга. Что ещё? Также, встал вопрос о форматировании. Так как текст многогранный, часто придётся переходить от темы к теме. Резкий переход - не есть быть удобным для чтения. Может быть использовать врезки и сноски. Часть переносить в приложения. Но может придумаем ещё что-нибудь интересное?.. К тому же, встаёт вопрос о самопроверке и практических заданиях. Это очень важная часть, но тогда это больше учебник, чем талмуд. Но с другой стороны, можно давать практические задания прямо в ходе повествования. И каким-то образом их выделять, чтобы читатель мог их решать сначала сам, а потом сверять с ходом решения в тексте.
0
|
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
|
|
12.10.2013, 15:05 [ТС] | 54 |
Зачем ссылки? Я и сам прекрасно помню определение алогоритма, программирования. Википедия - это конечно хорошо. Но не всегда определения там качественные. Впрочем, это не значит что я не пользуюсь ей.
Да и дело не в определениях. Дело в понятиях. Понятийный уровень - это не только строгое определение, но и интуитивное представление с логическим объяснением. Вообще, было бы не плохо научить (и научиться) программировать на интуитивном уровне.
0
|
12.10.2013, 15:05 | |
12.10.2013, 15:05 | |
Помогаю со студенческими работами здесь
54
Дано простое число. Составить функцию, которая будет находить следующее за ним простое число Дано простое число N. Найти следующие простое число используя do while легко(начинание) Начинание проекта по snort Задание по делфи. Начинание. Найти ошибки в коде Дано n чисел. Для каждого из них определяется, простое ли оно. Если простое, выводится 1, иначе 0. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |