2010-05-26 8 views
11

В поисках хорошего, свободно доступного ресурса, который научит меня C++ Я наткнулся на http://www.learncpp.com/.Является ли learncpp.com хорошим для новичков?

Мой вопрос Промежуточное для опытных программистов на C++ ...

кажется ли этот сайт, чтобы быть хорошим ресурсом для начинающих, чтобы узнать C++ из?

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

EDIT: После выполнения некоторых исследований по этой теме, и читать ответы и комментарии здесь, кажется, что если я делаю учебник, читать Accelerated C++, а затем прочитать Эффективное STL ... Я буду на правильный трек. Конечно, я буду писать программы для решения проектных программ Эйлера и т. Д. У кого-нибудь из вас есть идея для начинающих с намерением стать компетентными на этом языке?

+0

Если вы чувствуете, что начинаете учиться, то сайт, вероятно, работает! :) ... серьезно, я * сделал * просто снимок некоторых своих страниц только сейчас. Я очень ржавый на C++, но он выглядит хорошо написанным. Я скорее визуальный ученик и предпочитаю диаграммы для кодирования списков (когда это возможно), но он выглядит как хороший сайт. Я надеюсь, вы узнаете что-то хорошее с этого сайта. – FrustratedWithFormsDesigner

+1

Многим людям кажется, что они начинают учиться, когда используют ресурсы, которые учат ужасным практикам, которые не сразу очевидны как ужасные. Возьмите учебник PHP по PHP W3School, я не нашел пример, который вводит пользователя без демонстрации отверстия для SQL-инъекции. – Quentin

+0

Этот учебник является наиболее востребованным учебным пособием по этой коллекции учебников C++: https://hackr.io/tutorials/learn-c-plus-plus. Если вас интересуют другие форматы курсов/обучающих программ на C++ (например, основанные на курсах, на основе видео, формат книг и т. Д.), Вы также увидите предложения по другим учебным пособиям на вышеупомянутой странице. –

ответ

7

Сайт выглядит не так уж плохо.

Однако это действительно учебник, поскольку он просто объясняет самые основные понятия C++.

Примечательно, что он полностью пропускает введение в STL и правильное его использование. Вы почти не видите std::cout и std::string. Нет никакого упоминания о <algorithm>, о котором я мог видеть и не упоминал о <vector> или <deque> или <map>, которые являются наиболее часто используемыми контейнерами на C++.

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

+0

Я принял этот ответ, потому что мне хочется кратко и информативно ответить на мой вопрос. Благодаря! Я предполагаю, что это означает, что я закончу учебник, а затем перейду к книге для более продвинутых (но еще начинающих) тем. –

+0

Вы можете попробовать «Эффективный STL» Скотта Мейерса для точки специфики STL. Если вы не готовы его купить, возможно, вы спросите друзей вокруг, что у них есть в своих библиотеках :) –

+1

@Matthieu - Я бы сказал, что эта книга будет над головой новичка, который не был представлен STL уже. Лучшей книгой для чтения после или вместо этого урока будет Ускорение C++ от Koenig и Moo. Тогда книги Мейерса и Саттера будут легче понять и следовать. –

3

Да.

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

5

Этот сайт выглядит не так уж плохо, но я не думаю, что это здорово. Большой бесплатный ресурс для изучения C++ - это книга «Thinking in C++». Это просто замечательно, и я от всей души рекомендую его вам. Другая вещь, которую я рекомендую вам, - начать писать код на C++ прямо сейчас! Project Euler - мой любимый источник для задач программирования начинающих (особенно, если вам нравится математика ;-))

+0

Я только начал использовать Project Euler, и, похоже, это отличная платформа для тестирования новых концепций, которые я изучаю на C++. Хорошая подсказка спасибо! –

5

Хотя несколько страниц, на которые я смотрел, кажутся разумными, любая инструкция на C++, которая рекомендует использовать венгерскую нотацию, полностью пропускает точку и, следовательно, подозревается.

+0

Я бы хотел больше узнать об этом. Не могли бы вы предоставить некоторые ссылки или еще одно объяснение того, почему венгерская нотация не должна использоваться? –

+6

Статья - http://www.joelonsoftware.com/articles/Wrong.html – Secko

+1

Собственно, статья, которую вы только что связали, является извинением венгерской нотации (оригинальной). Он просто ругает программистов за использование извращенной версии, потому что они полностью пропустили точку:/ –

5

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

Я бы рекомендовал, чтобы вы основали свое исследование на хорошей книге, например, The C++ Programming Language (Third Edition and Special Edition) создателем C++ Bjarne Stroustrup.

Это не обязательно должна быть эта книга, это может быть любая книга useful, которую использовали и изучили другие программисты. Книги также являются инструментами для программистов.

+0

Я спорю с книгой здесь, так как мне всегда приходилось что-то делать с языком программирования, чтобы научиться этому. Чтение книги не помогло ... – Nils

+6

@Nils Книга расширяет ваш взгляд на язык в целом, он также объясняет некоторые концепции, которые вы, возможно, пропустили. – Secko

+0

Хорошо читать эту книгу, но я бы не рекомендовал ее в качестве отправной точки. –

0

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

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

+0

Только что пришел в голову: Вы знакомы с C? Я бы предложил сначала изучить C сначала или использовать C++ без всех функций OOP. – Nils

+1

Вы можете отредактировать свой пост, а не оставлять комментарий;) – samoz

10

Если вы хотите изучить C++ правильно, я настоятельно рекомендую вам приобрести копию Accelerated C++. Без сомнения, это лучшая книга на C++ для начинающих.

1

Я сейчас читаю учебник по C++ по адресу learncpp.com и думаю, что это здорово!

Для начинающего C++, как и я. Вы не получите ответы на все вопросы, но действительно ли хотите, чтобы это начиналось с C++? Я бы сказал, нет. По крайней мере, я этого не делаю.

Что вы получите, это короткие ответы на вопросы о базовых концепциях C++, которые, я считаю, будут полезны, когда вы позже узнаете о других аспектах C++.

Как я уже сказал, я начинающий C++, но я использовал PHP уже несколько лет. Я бы сказал, что я эксперт по PHP, но я тоже не новичок, поэтому я думаю, что я более или менее знаю, о чем говорю, когда речь заходит о языках, похожих на PHP, например на C++.

+1

От короткий взгляд кажется ОК, но есть одна вещь, которую ИМО делает ее не лучшим ресурсом для новичков. Они вводят массивы и строки в стиле C в главе 6, в то время как они полностью пропускают контейнеры STL и оставляют std :: string для главы 17. Что оставляет неправильное впечатление.Строки в стиле C и голые массивы редко используются вообще, и, конечно, не новички. –

+0

Когда я знаю больше C++, я, скорее всего, соглашусь с комментарием выше. Но, как я сказал выше, причина, по которой я думаю, что learncpp.com хорош для новичков, заключается в том, что вы получаете короткие ответы на вопросы об основных концепциях C++, которые понятны начинающему C++, как я. Я не нашел другого сайта, написанного в том же стиле. Большинство учебников скорее напоминают комментарий выше. Другими словами, во многих случаях такие понятия, как «массивы», «строки стиля С», «контейнеры STL», «std :: string» и «голые массивы», не объясняются так, как может понять новичок. – matsolof

+0

То, что я также не могу найти в комментарии выше, - это ссылка на сайт с учебником, который автор считает лучше, чем learncpp.com И это написано в том же стиле, что и learncpp.com. Отправьте такую ​​ссылку, пожалуйста, и помогите мне с вами согласиться! – matsolof

2

Я использую C# несколько лет ... Иногда мне приходится работать с устаревшим кодом C++ (некоторые из них относятся к VC6, написанному 10 лет назад), но я не очень хорошо понимал базовый язык C++, например, как работают файлы заголовков и почему компилятор C++ требует передовых объявлений, а также ключевое слово extern. Поэтому я решил найти онлайн-учебник, чтобы узнать некоторые основы C++, и это то, что я нашел, learnCPP.com!

Учебник очень хорошо написан, на понятном, понятном английском языке, мне вряд ли нужно обращаться к словарю :-) (Я не английский говорящий). Теперь я изучаю этот сайт на пару месяцев, и я должен сказать, что все, что мне нужно знать, для программирования START на C++ можно найти в этом учебнике.

Понятно, что этот учебник не является «энциклопедией для основного языка C++», он не содержит выделенной главы по юникоду или другой главы о crt ... но этот учебник не предназначен для освещения этих тем, в противном случае в этом уроке будет гораздо больше глав.

Попробуйте и наслаждайтесь!

Смежные вопросы