Как выучить с за 21 день
Перейти к содержимому

Как выучить с за 21 день

Выучить С++ за 21 день

Часто на форуме возникают вопросы вида «Как изучить?», «С чего начать?» и подобные. Кажется, я нашел готовый алгоритм действий на все случаи жизни .

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Выучить .NET за 21 день
Мне тут ВНЕЗАПНО понадобилось сделать курсовую в универе с использованием .NET. Суть в том чтобы.

Выучить C++: как и где можно более эффективнее выучить данный язык?
Хочу выучить C++, может кто подсказать, как и где можно более эффективнее выучить данный язык? Учу.

Определить день недели, на который приходится день с датой d (день), m (месяц)
Считая, что год не високосный и его 1 января приходится на день недели wd1, определиь wd -день.

3310 / 1372 / 110
Регистрация: 28.04.2009
Сообщений: 4,822
mik-a-el, в раздел Си и в важное)))))
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
МедведЪ сойдет с ума
Регистрация: 26.02.2010
Сообщений: 96
смешной боян
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
да, долго смеялся както
Регистрация: 16.12.2009
Сообщений: 253
Гениально! Так и сделаю
Cyber-Tracing
346 / 71 / 3
Регистрация: 27.04.2009
Сообщений: 554
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Выучить за год
Сегодня я заметил в себе, что я не дотягиваю до элементарного начального уровня программирования.

выучить язык с++
Друзья подскажите какие лутче читать книги что бы выучить с++ как вы учили ?? подскажите .

Хочу выучить С++
скачал книжку но там надо программу GNU C++ в интернете нормального ничего не нашел еще надо бы.

Хочу выучить C++
Мне 15 лет. Немного знаю Pascal ABC.NET, программирую на PHP и JavaScript. Хочу с нуля выучить.

Стать программистом за десять лет

Примечание: В сети уже имеется перевод данной статьи. Этот вариант отличается полнотой и максимальной приближенностью к оригиналу.

Почему все так спешат?

Зайдите в любой книжный магазин, и вы обнаружите там самоучитель ”Как выучить в Java за 7 дней” и другие бесконечные вариации, предлагающие выучить Visual Basic, Windows, интернет и так далее в течение нескольких дней или часов. Я сделал следующий поисковый запрос на Amazon.com:

pubdate: after 1992 and title: days and (title: learn or title: teach yourself) дата публикации: после 1992 года и название: дни и (название: выучить или название: научиться)

и получил 248 результатов. Первыми 78 были компьютерные книги (под номером 79 был самоучитель бенгальского языка за 30 дней). Я заменил «дни» на «часы» и получил удивительно похожие результаты: более 253 книг, сначала 77 компьютерных книг, затем под номером 78 следовал ”Самоучитель грамматики и стиля за 24 часа”. В общей сложности из топ-200 результатов компьютерные книги составляли 96%.

На этом основании можно сделать выводы: либо люди очень сильно спешат узнать все о компьютерах либо сами компьютеры являются той областью, которую неправдоподобно легко изучить, легче, чем что-либо другое. Нет книг о том, как научиться Бетховену, квантовой физики или даже стричь собак в течение нескольких дней. Felleisen, один соавторов книги “How to Design Programs”, так отмечает эту тенденцию, когда говорит о том, что «Плохо программировать легко”. Идиоты могут изучить программирование за 21 день, даже если они ”чайники”.

Давайте проанализируем, что может означать “Выучите язык C за три дня”:

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

Язык C: За 3 дня вы сможете познакомиться с синтаксисом языка C (если вы уже знаете другой язык), но вы не можете многое узнать о том, как использовать язык. Короче говоря, если бы вы были, скажем, программистом Basic, то вы могли бы научиться писать программы в стиле Basic, используя синтаксис языка С, но вы бы не могли узнать для чего C действительно хорош (или плох). Так в чем же дело? Алан Перлис однажды сказал: «язык, который не влияет на то, что вы думаете о программировании, не стоит знать». Возможно, вам действительно нужно выучить немного C (или, скорее, что-то вроде JavaScript или Flash-Flex), потому что вам нужно взаимодействовать с существующими инструментами для выполнения конкретной задачи. Но тогда вы не научитесь программировать, вы просто выполните эту задачу.

За три дня: К сожалению, этого не достаточно, как показывает следующая глава.

Научитесь программированию за десять лет

Исследователи (Bloom (1985), Bryan & Harter (1899), Hayes (1989), Simmon & Chase (1973)) показали: для того чтобы стать экспертом в некоторой области, будь то игра в шахматы, написание музыки, телеграфия, живопись, игра на фортепиано, плавание, теннис или исследования в области нейропсихологии и топологии, требуется около десяти лет. Ключом к успеху является совещательная практика: не только делать что-то снова и снова, но и пытаться решать сложные для себя задачи, которые соответствуют уровню ваших текущих способностей или выше; при этом нужно стараться анализировать вашу работу, как во время решения задачи, так и после и исправлять ошибки. Затем повторять. И снова повторять. Кажется, более короткого пути нет: даже Моцарту, который был музыкально одаренным в возрасте 4 лет, потребовалось более 13 лет, прежде чем он начал создавать музыку мирового класса. Казалось бы, в другом жанре, Beatles ворвался на сцену, заняв первые строчки хит-парадов, появившись на шоу Эда Салливана в 1964 году. Однако они играли в маленьких клубах Ливерпуля и Гамбурга с 1957 года, и хотя они стали популярны у широкой публики очень рано, их первый большой успех среди критиков связан с появлением альбома Sgt. Peppers в 1967 году. Малкольм Гладуэлл (Malcolm Gladwell) приводит данные его исследований среди студентов Берлинской академии музыки. Для этого он опросил лучших, средних и худших студентов о том, сколько они практиковали:

Любой студент из любой группы начал играть примерно в одно и то же время — около пяти лет. Первые годы все практиковали примерно одно и тоже время — около 2-3 часов в неделю. Но около восьми лет начали проявляться реальные различия. Студенты, которые оказались лучшими в своем классе, начали заниматься больше, чем все остальные: 6 часов в неделю в возрасте 9 лет, 8 — в возрасте 12, 16 – в возрасте 14 лет и все больше и больше, пока в возрасте 20 лет они не стали практиковаться более 30 часов в неделю. В возрасте 20 лет элитные исполнители имели за плечами в общей сложности более 10 000 часов практики за всю свою жизнь. Просто хорошие студенты имели в общей сложности 8000 часов, а будущие учителя музыки — чуть более 4000 часов.

Поэтому, может быть, 10000 часов, а не 10 лет является магическим числом. (Анри Картье-Брессон (1908-2004) сказал: «Ваши первые 10000 фотографий являются вашими худшими фотографиями», он фотографировал более часа в день). Сэмюэль Джонсон (1709-1784) считал: «Превосходство в любой деятельности достигается трудом всей своей жизни, его нельзя приобрести по меньшей цене». А Чосер (1340-1400) жаловался: «Жизнь так коротка, а ремесло так долго изучать». Гиппократ (ок. 400 до н.э.) известен отрывком «ars longa, vita brevis», который является частью более длинной цитаты » Ars longa, vita brevis, occasio praeceps, experimentum periculosum, iudicium difficile» и переводится так «Искусство вечно, жизнь коротка, возможность мимолетна, опыт обманчив, решение трудно». Несмотря на то, что на латыни ars может означать и искусство и ремесло, в греческом оригинале слово «ars» может означать только «мастерство», а не «искусство».

Итак, Вы хотите стать программистом

Вот мой рецепт успеха в программировании:

  • Интересуйтесь программированием, и делайте это так, чтобы было нескучно. Пусть вам будет нескучно на протяжении 10 лет /10000 часов.
  • Программа. Лучший способ обучения – обучение на собственном опыте. Выражаясь технически, «максимальный уровень производительности для физических лиц в некоторой области не достигается автоматически в зависимости от большого опыта, однако уровень производительности может быть увеличен даже для очень опытных людей в результате целенаправленных усилий по его улучшению» и «наиболее эффективное обучение требует наличия четко определенных задач с соответствующим уровнем сложности для конкретного человека, информационной обратной связи и возможности для повторения и исправления ошибок». Книга Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life («Познания на практике: разум, математика и культура в повседневной жизни») является хорошей ссылкой на эту точку зрения.
  • Общайтесь с другими программистами, изучайте чужие программы. Это важнее, чем любая книга или обучающий курс.
  • Если у Вас есть желание, потратьте четыре года на колледж (или больше на аспирантуру). Это даст вам доступ к рабочим местам, где требуется документ об образовании и это даст вам более глубокое понимание области..
  • Работайте над проектами с другими программистами. Будьте лучшим программистом в некоторых проектах, будьте худшим в некоторых других. Когда вы — лучший, вы получаете возможность проверить свои способности в качестве лидера проекта, а также как вы вдохновляете других своим видением. Когда вы — худший, вы узнаете, что делают мастера, и чего они не любят делать (потому что они заставляют вас делать это за них).
  • Узнайте, по крайней мере, полдюжины языков программирования. Включите один язык, поддерживающий абстракции на основе классов (как Java или С++), один, поддерживающий функциональную абстракцию (как Lisp или ML), один, поддерживающий синтаксическую абстракцию (как Lisp), один, поддерживающий декларативные спецификации (как Prolog или C++ — шаблоны), один, поддерживающий сопрограммы (как Icon или Scheme), и тот, который поддерживает параллелизм (как Sisal).
  • Помните, что есть «компьютер» в «компьютерных науках». Узнайте, сколько времени требуется вашему компьютеру для выполнения инструкции, выборки слова из памяти (с кэшом и без него), чтения упорядоченных слов с диска, и обращения в другое место на диске (Ответы ниже).
  • Участвуйте в процессе стандартизации языка. Это может быть ANSI C++ комитет или обсуждение стиля кодирования внутри компании, где пространство отступа составляет 2 или 4 уровня. В любом случае, вы узнаете о том, что другим людям нравится в языке, как глубоко они чувствуют его, а может быть даже немного о том, почему они так чувствуют.
  • Будьте готовы начать пытаться стандартизировать язык как можно скорее.

Учитывая все это, еще большой вопрос, как многому вы можете научиться только по книгам. Перед рождением моего первого ребенка, я прочитал все How To книги и все еще чувствовал себя, как невежественный новичок. 30 месяцев спустя, при рождении моего второго ребенка, вернулся ли я к книгам для того, чтобы освежить свои знания? Нет. Вместо этого, я положился на мой личный опыт, который оказался гораздо более полезным и обнадеживающим для меня, чем тысячи страниц, написанные экспертами.

Фредерик Брукс в своем эссе ”No Silver Bullet” определил план из трех частей по поиску великих дизайнеров программного обеспечения:

  1. Как можно раньше систематически выявляйте ведущих проектировщиков.
  2. Назначьте наставника, ответственного за развитие будущих проектировщиков и тщательно контролируйте ход их развития.
  3. Обеспечьте возможность для роста проектировщиков через их взаимное взаимодействие и стимулирование.

Все это предполагает, что некоторые люди уже обладают качествами, необходимыми, для того чтобы стать великими дизайнерами. Алан Перлис выразился более лаконично: «Всех можно научить лепить: Микеланджело бы пришлось учить, как лепить не надо. Так же и с великими программистами». Перлис говорит, что у великих людей есть внутреннее качество, которое выходит за рамки их профессиональной подготовки. Но откуда это качество берется? Оно врожденное? Или же оно развивается через трудолюбие? Как выразился Огюст Густо (шеф-повар в Ratatouille), «каждый может готовить, но только бесстрашные делают это великолепно». Я думаю об этом больше как о желании посвятить большую часть своей жизни совещательной практике. Но, возможно, бесстрашие является способом резюмировать это. Или, как говорит критик Густо, Антон Эго: «Не каждый может стать великим художником, однако великий художник может прийти откуда угодно».

Так что вперед за покупкой Java/Ruby/Javascript/PHP книг; вероятно, вы получите некоторую пользу от них. Но вы не измените свою жизнь и не станете опытным программистом за 24 часа, дня или даже недели. А как насчет упорного труда над улучшением профессиональных навыков в течение 24 месяцев?

Ответы

Приблизительная временная оценка для выполнения различных операций на типичном PC:

Выполнение типичной инструкции 1/1,000,000,000 сек = 1 наносек
Выборка из кэш-памяти 1 уровня 0.5 наносек
Ошибочное предсказание ветви 5 наносек
Выборка из кэш-памяти 2 уровня 7 наносек
Mutex lock/unlock 25 наносек
Выборка из основной памяти 100 наносек
Посылка 2 KB данных через сеть c пропускной способностью 1 гигабит в секунду 20,000 наносек
Последовательное чтение 1MB из памяти 250,000 наносек
Выборка через новое позиционирование на жестком диске (seek) 8,000,000 наносек
Последовательное чтение 1MB на жестком диске 20,000,000 наносек
Посылка пакета из США в Европу и обратно 150 мс = 150,000,000 наносек

Приложение: выбор языка

Несколько людей спросили меня, какой язык программирования они должны учить в первую очередь. На этот вопрос существует не один ответ, однако рассмотрите следующие моменты:

  • Используйте ваших друзей. На вопрос «какую операционную систему следует использовать Windows, Unix, Mac?», я обычно отвечаю: «используйте ту, которую используют ваши друзья». Преимущество, которое вы получите от обучения с помощью друзей, будет компенсировать любые внутренние различия между ОС или между языками программирования. Также учитывайте ваших будущих друзей: сообщество программистов, частью которого вы будете, если будете продолжать. Выбранный Вами язык имеет большое растущее сообщество или оно небольшое и умирает? Есть ли книги, веб-сайты и онлайн-форумы, где можно получить ответы? Нравится ли вам люди на этих форумах?.
  • Будьте проще. Языки программирования, такие как C++ и Java, предназначены для профессиональной разработки большими командами опытных программистов, которых беспокоит эффективность исполнения их кода. В результате эти языки имеют сложные части, предназначенных для удовлетворения таких требований. Ваша же цель — обучение программированию. Вам не нужны эти сложности. Вам нужен язык, который можно легко изучить и использовать единственным программистом.
  • Играйте. Какой путь вы избрали, чтобы научиться играть на фортепиано: нормальный, интерактивный способ, в котором вы слышите каждую ноту, как только вы нажмете клавишу или «пакетный» режим, в котором Вы слышите только ноты после того, как вы закончите песню целиком? Очевидно, что интерактивный режим проще для обучения как игры на фортепиано, так и для программирования. Используйте язык с интерактивным режимом.

Учитывая эти критерии, мои рекомендации для выбора первого языка программирования будут такими: Python или Scheme. Но для вашего случая обстоятельства могут измениться, есть и другие хорошие выборы. Если ваш возраст — единственная цифра, вы можете предпочесть Alice или Squeak (более взрослые ученики также могут пользоваться этим). Важно то, что вы выбрали и хотите начать работу.

Как выучить c++ за день ?

Программирование
Заказать бумажную версию
0
О книге:

В книге широко представлены возможности новейшей версии программного продукта Microsoft Visual C++. Подробно описаны средства и подходы программирования современных профессиональных приложений. Материалы книги дополнены многочисленными демонстрационными программами, в процессе разработки которых максимально используются возможности программных инструментов Microsoft Visual Studio. Особое внимание уделено новинкам версии 6.0 и новейшим технологиям объектно-ориентированного программирования, включая использование библиотеки MFC и шаблонов классов, а также создание связанных списков. Отдельное занятие посвящено вопросам объектно-ориентированного анализа и проектирования приложений. Подробно рассмотрены все средства и подходы конструирования собственных пользовательских классов. Книга рассчитана на широкий круг читателей, интересующихся современными проблемами программирования.

nataein

Вчера игралась с новой игрушкой от Гугла (RSS читалка в режиме слайдшоу) и он мне подкинул замечательный комикс, который я тут же перевела.
Для друзей, далеких от мира IT, поясню, откуда появился этот комикс. Существует книжка «Teach youself C++ in 21 days» (Изучите C++ за 21 день). Язык программирования C++ достаточно сложен и за 21 день его не осилить на приемлемом уровне.

Видимо автор комикса не знает о существовании ещё одной книжки — «Teach yourself C++ in 24 hours» (Изучите C++ за 24 часа). 🙂

LJ Video

14 comments — :
( 14 comments — Leave a comment )
(Deleted comment)

Я PHP так осваиваю. Изучать как следует мне его лень, но периодически надо то там, то сям чего-то прикрутить. Практически весь код есть в интернете, остается только адаптировать для своих нужд.
Но это точно не «приемлемый» уровень. 🙂

Вообще-то в книге «Teach yourself C++ in 24 hours» про уровень знаний нет ни слова. Приемлимый это уровень или начинающий.
Основы Си выучить за 21 день можно. По крайней мере написать Hello World вы сможете за 21 день и не читая книгу. А уж с книгой . Э-ге-ге-й.
А вот если бы было написано «Выучи Си++ за 21 день и устройся программистом Си++», то я бы посмеялся с вами.

Понятно, что начальный. Ничего серьёзного с таким уровнем запрограммировать нереально.
У меня есть свой незабываемый опыт написания Hello World с помощью книги и как раз на C++. В 1997 году я была наивной девочкой, которая считала, что в газете «Правда» только правда, а в книгах нет ошибок. Набираю я Hello World из книжки. Компилирую. Выдаёт огромнейшее количество ошибок и это на несколько строк кода. Перепроверяю, ведь в книжке не бывает ошибок и это я где-то накосячила. Не нахожу ничего, чем бы набранный код отличался от кода в книжке. Мне понадобилось несколько дней чтения MSDN (интернета тогда не было и спросить было не у кого), чтобы исправить ошибки. Так вот, в первой же программе в этой книге было аж 3 ошибки! С тех пор я никому не рекомендую покупать переводные книги.

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

Лингвистику как раз можно стерпеть, а вот ошибки в примерах очень усложняют изучение. Я теперь стала умней, качаю оригинальный вариант и переводной. Читаю перевод (сложно мне пока полностью читать на английском, особенно если авторы злоупотребляют фразеологическими оборотами и сленгом). Если пример не компилируется или не работает, смотрю в оригинал. С появлением интернета изучать что-либо — настоящее наслаждение. Можно найти практически любой кусок кода, поэтому относительно просто решать даже те задачи, с которыми сталкиваешься первый раз в жизни.

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

Hello World обычно бывает в первый день или час в таких книгах 🙂
смешной комикс:)

Склонность к суициду — почему именно себя его поощряют убить? Почему не «замени собой вторым соседа»? И так в цикле — до мира агента Смита?
Неужели С++ не всесилен? Слабо верится.

Это известный парадокс. Если на машине времени отправиться в прошлое, можно будет встретить самого себя.
Так вот, когда наш герой вернется на 21-ый день, будет две его копии, одна не знает C++, другая знает. Неграмотную копию и предполагается убрать. Соседей убирать нельзя, так как нарушится ход истории. Это хорошо показано в фильме «Назад в будущее».
Что касается вопроса «всесилен ли C++» — да, всесилен, но сейчас есть языки, разработка на которых более простая и производительная, например Java и C#.

в оригинале было «replace younger self» это наоборот значит «замени более молодого себя».
вообще довольно странный перевод, откуда например взялось «лови кайф от наступания на грабли» (remember to learn from your mistakes), и что за «последовательная теория» (consistent theory).

Я не являюсь знатоком английского языка, поэтому перевод вольный.
consistent theory — не знаю, какая фраза подойдет лучше. Может непротиворечивая, то есть теория, хорошо согласующаяся с результатами экспериментов и не противоречащая другим областям наук.

> перевод вольный
вышел на вас по запросу [learn c++ in 21 days] в гугловый поиск картинок, вы там на первом месте, ну после обложек самой книжки. так что надо чувствовать ответственность! 😉

Вот это да! Да если бы я знала, что запись выйдет в топ, я бы с носителями языка проконсультировалась. 🙂

( 14 comments — Leave a comment )
18 Nov 2016, 22:12
4 Различные мысли возникающие после прочитанного или увиденного
29 Mar 2016, 06:36
Спасибо тебе за это!)
26 Mar 2016, 03:29

Я же информационный маньяк и конечно же делаю бэкапы. И все картинки у меня были. Просто нужно было пройтись по жж и заменить ссылки, что тоже довольно нудно. Но зато перечитала весь свой жж и это…

26 Mar 2016, 02:53

Все это славно, а на ум приходит афоризм, что все люди делятся на две категории: люди которые делают бекапы и люди которые теперь начнут делать бекапы.
Все это внешние хостинги конечно хороши, но…

1 Jan 2016, 01:43

Ну спасибо. Я тут уже давно не пишу, а люди иногда заходят и поздравляют. 🙂
И вам солнечных дней в новом году, да поменьше трудностей.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *