LINUX.ORG.RU
решено  

[програмирование][учить]C++ + Qt.


0

0

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

Вопрос - как к этому лучше всего подступиться?
Кое что в программировании в принципе я понимаю (понятия функции, цикла и тому подобного, необходимости понятного кода ну и т.п.). Однако знаний ни в C ни в C++ нет никаких.
Начать с C++ в целом, а потом, после того, как разберусь как оно вообще работает, смотреть уже документацию/книги по Qt?

Или как?

Посоветуйте.

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

ЗАСТАВЬ КОМПЬЮТЕР ПОЛИВАТЬ ОГОРОД

автоматизация своими руками: электроприборы под контролем компьютера
beware of programmers who carry screwdrivers!
http://www.unicontrollers.com/products/unc01x

[#]  
SV0L0CH

Питон с кошерным PyQt!

А плюсы ненужны.

* ()
[#]  
panter_dsd

Qt только после изучения c++. Начинать с Кьюта нельзя, если хочешь хорошо программировать. Лучше stl.

** ()
[#]  
Zhbert

Я начинал по книжке по Qt, там примеры были, читал, сразу писал их. Но я к тому времени с++ знал уже. Тебе можно сразу попробовать куте, а лучше для начала все-таки поучить цпп, а уже потом кутэ.

*** ()
[#]  
hibou

> Начать с C++ в целом, а потом, после того, как разберусь как оно вообще работает, смотреть уже документацию/книги по Qt?

Да, именно. Выучи сначала С++. Qt потом очень легко освоится. К тому же она дублирует многие вещи в С++ и STL.

Сам С++ не такой уж и тривиальный язык. Много подводных камней. Так что осиль сначала его.

***** ()
[#]  

Тогда до кучи:


Что почитать по плюсам, наиболее адекватное?
Учитывая минимальный опыт в программировании.

** ()
[#] Ответ на: комментарий от CyberTribe 20.05.2010 22:00:20  
SV0L0CH

Повторяю есчё раз: не нужны тебе плюсы!

* ()
[#] Ответ на: комментарий от CyberTribe 20.05.2010 22:00:20  
hibou

У меня примерно так было: Лафоре - Шилдт - Страуструп - Элджер.

***** ()
[#] Ответ на: комментарий от CyberTribe 20.05.2010 22:00:20  
Zhbert

>Что почитать по плюсам, наиболее адекватное?

Я бы посоветовал Шилдта.

*** ()
[#] Ответ на: комментарий от SV0L0CH 20.05.2010 22:02:14  

Прочитай первый пост топика ещё раз)

** ()
[#] Ответ на: комментарий от CyberTribe 20.05.2010 22:05:46  
Zhbert

Он, видимо, не осилил цпп, не обращай внимания =)

*** ()
[#] Ответ на: комментарий от Zhbert 20.05.2010 22:07:07  

джаббер в профиле рабочий?
если по ходу будут вопросы (Шилдта скачал) постучусь, хорошо?

** ()
[#] Ответ на: комментарий от Zhbert 20.05.2010 22:07:07  
SV0L0CH

Ну я какбы предупреждаю... :)

* ()
[#] Ответ на: комментарий от CyberTribe 20.05.2010 22:08:47  
Zhbert

>джаббер в профиле рабочий?

Рабочий, ага.

>Ну я какбы предупреждаю... :)


Ну тогда ладно =)

*** ()
[#]  
shty
>>-----Цитата---->>

Начать с C++ в целом, а потом, после того, как разберусь как оно вообще работает, смотреть уже документацию/книги по Qt?

<<-----Цитата----<<

только так, иначе понимания не будет, ибо Qt нивелирует часть плюшек С++ и может сложиться ложное ощущение уверенности

ЗЫ рекомендую книгу "С++ для профессионалов", гуглабельна

*** ()
[#] Ответ на: комментарий от SV0L0CH 20.05.2010 21:54:34  

> FreePascal с кошерным GTK!
> А плюсы не нужны.


fixed во имя Лазаруса :-)

**** ()
[#]  
ShTH

>Повторяю есчё раз: не нужны тебе плюсы!

не слушай его. Читай по плюсам книжку под названием "C++ без [c]траха". Мне выдра посоветовал и по этой книге быстро выучил.

* ()
[#]  
slyjoeh

Осмелюсь спросить, а Вам знание с+++qt нужно чисто для себя или в коммерческих целях?

* ()
[#]  

учи сначала С, потом С++, потом Qt

**** ()
[#] Ответ на: комментарий от SV0L0CH 20.05.2010 22:02:14  

>Повторяю есчё раз: не нужны тебе плюсы!

А что нужно в Замкадье?

()
[#]  
x0r

Есть мнение, что стоит начать с изучения "классического С" (только не диалект С99), а потом уже кресты, постепенно вбрасывая в изучение их костыльную реализацию ООП. После чего приступить к изуччению КюТ.

** ()
[#] Ответ на: комментарий от lester 20.05.2010 22:35:20  
gunja

> учи сначала С, потом С++,

зачем человеку советуете плохое? совершенно разные 2 концепции. начнёт с изучения С, так и застрянет в таком подходе к программированию. ++, только ++

* ()
[#] Ответ на: комментарий от gunja 20.05.2010 23:18:32  

> зачем человеку советуете плохое? совершенно разные 2 концепции. начнёт с изучения С, так и застрянет в таком подходе к программированию. ++, только ++

бред - С по сути подмножество С++, а отвлеченность от stl и т.д. даст возможность более ясно представлять, что на самом деле происходит

**** ()
[#]  
annulen

я начинал с Дж. Либерти "С++ за 21 день", очень полезная книжка

** ()
[#] Ответ на: комментарий от lester 20.05.2010 23:26:19  
annulen

>С по сути подмножество С++

не совсем - в плюсах убраны некоторые способы выстрелить в ногу (хотя добавлено множество новых))

>отвлеченность от stl

уже давно никого не инетересует. А при устройстве на работу во многих местах еще и Boost нужно знать

** ()
[#]  
Sphinx

Я бы порекомендовал Лого, Лисп, Хаскель, Форт, Питон и Си,
плюсы потом за два вечера по справочнику освоишь.

*** ()
[#]  
Boy_from_Jungle

Выучи хорошо С++, попрограмЪ,а через годок сядешь за кутю :)

** ()
[#] Ответ на: комментарий от lester 20.05.2010 23:26:19  
Boy_from_Jungle

>бред - С по сути подмножество С++
наоборот

** ()
[#] Ответ на: комментарий от Boy_from_Jungle 21.05.2010 0:10:49  
annulen

>наоборот

man теория множеств

** ()
[#] Ответ на: комментарий от annulen 21.05.2010 0:11:48  
SV0L0CH

может он имел ввиду "любая валидная программа на C является валидной программой на C++".

* ()
[#]  
ramon13666

Тоже решил этим заняться. Пока забросил. Из книг Шилдт (мне очень нравится его метод изложения), и вышеупомянутый Либерти.

* ()
[#]  

придумать для себя задачу(или две, или три) и решить её на сабжевом наборе. Например - записная книжка, тетрис, интерфейс к базе - что угодно, но более/менее реальное и для самого себя нужное и интересное.

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

**** ()
[#] Ответ на: комментарий от lester 20.05.2010 23:26:19  
alex_custov

>>бред - С по сути подмножество С++, а отвлеченность от stl и т.д. даст возможность более ясно представлять, что на самом деле происходит

некоторых вещей, которые есть в C99, в C++ нет. Например VLA.

**** ()
[#] Ответ на: комментарий от SV0L0CH 21.05.2010 0:16:24  
yoghurt

>>любая валидная программа на C является валидной программой на C++

Нет

***** ()
[#]  
Legioner

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

***** ()
[#] Ответ на: комментарий от Legioner 21.05.2010 8:55:42  
namezys

В школе я начала со второго способы. Было сложно и не понятно. Получилось криво и жутко. Но как-то работало (это был MFC + C++)

Потом, в 11 классе я начала идти первым путем. Главное не затягивать второй путь

*** ()
[#] Ответ на: комментарий от alex_custov 21.05.2010 0:50:03  

>некоторых вещей, которые есть в C99, в C++ нет. Например VLA.

В gcc есть.

*** ()
[#] Ответ на: комментарий от legolegs 21.05.2010 11:05:03  
namezys

gcc не все

а так. хотя бы различие в использование const в глобальных переменых

*** ()
[#] Ответ на: комментарий от alex_custov 21.05.2010 0:50:03  

> некоторых вещей, которые есть в C99, в C++ нет.

я ж не спорю - 100%-й совместимости нет, это очевидно всем кто хоть немного знает оба языка, но таки в основе С++ тот самый С, с относительно небольшим набором различий

**** ()
[#] Ответ на: комментарий от lester 21.05.2010 11:10:10  

Но программируется на них очень по-разному.

*** ()
[#] Ответ на: комментарий от legolegs 21.05.2010 11:23:15  

> Но программируется на них очень по-разному.

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

**** ()
[#] Ответ на: комментарий от namezys 21.05.2010 8:59:25  
shty
>>-----Цитата---->>

В школе я начала со второго способы.

<<-----Цитата----<<

o_O вот это новости... я что-то пропустил???

*** ()
[#] Ответ на: комментарий от shty 21.05.2010 11:43:41  
namezys

> o_O вот это новости... я что-то пропустил???

Это лично обо мне? У меня в руках учебник по MFC появился раньше, чем по С++

> С++ - это не функциональный язык, не ООП( в полной мере ), это С с "сахарком"

А вот не правда. ООП свой. Но тоже полноценный

*** ()
[#] Ответ на: комментарий от lester 21.05.2010 11:34:08  
Legioner

А что плохого в бусте и километровых шаблонах?

***** ()
[#] Ответ на: комментарий от lester 21.05.2010 11:34:08  

>это С с "сахарком" в виде классов, шаблонов и т.д

Этого сахару там на триста страниц в стандарте. То же RAII, более строгая типизация, конструкторы с деструкторами сильно меняют подход, позволяя больше рутинной работы спихнуть на компилятор. Мои программы на c++ на си не переводятся, а если переводятся, то поддержке не подлежат.

*** ()
[#] Ответ на: комментарий от Legioner 21.05.2010 11:47:04  

> А что плохого в бусте и километровых шаблонах?

KISS

**** ()
[#] Ответ на: комментарий от namezys 21.05.2010 11:45:57  

> А вот не правда. ООП свой. Но тоже полноценный

для примера RTTI практически отсутствует

**** ()
[#] Ответ на: комментарий от Legioner 21.05.2010 11:47:04  

>А что плохого в бусте и километровых шаблонах?

Ниасиляторы ниасиливают. Причём это реальная проблема, и отдел кадров её решить не в силах, как правило.

*** ()
[#] Ответ на: комментарий от lester 21.05.2010 11:34:08  
shty
>>-----Цитата---->>

> Но программируется на них очень по-разному.

одинаково

<<-----Цитата----<<

4.2, вот нифига не одинаково

и вообще, хватит разводить тут компиляторосрач, ТС явно намекал на то что его интересует С++

>>-----Цитата---->>

С++ - это не функциональный язык, не ООП( в полной мере ), это С с "сахарком" в виде классов, шаблонов и т.д.

<<-----Цитата----<<

простите, но то мнение дилетанта

>>-----Цитата---->>

и по сути это остается все тот же ассемблер

<<-----Цитата----<<

по сути остаются машинный код, который умеет хавать процессор

>>-----Цитата---->>

выбрать другой язык( по примеру Александреску, например )

<<-----Цитата----<<

очень Вы умело привели пример толстого фейла

*** ()