Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите выбрать книгу, для изучения STL 
V
    Опции темы
lllJollyRogerlll
Дата 15.1.2015, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Недавно закончил изучение "Освой самостоятельно С++ за 21 день", Джесс Либерти, Бредли Джонс. Теперь хотелось бы перейти к изучению STL, знаю точно что это необходимо для полноценной работы с языком. При выборе материала остановился на Николае Джосьютисе, "C++ Стандартная библиотека. Для профессионалов." Скачал в DjVu формате и начал изучать. В принципе материал хороший, доступно изложен, все хвалят и т.д. Но вот проблема в том, что я привык учить материал, с помощью "бумажной" версии, физического учебника. А эту книгу негде не купишь. Да и материал староват(или нет?). В общем, если есть что посоветовать на замену, буду рад. Либо если кто готов продать мне Джосьютиса, попробуем договориться ;) Хотя сомневаюсь, что такие найдутся... Спасибо!

В поисках Николая Джосьютиса, "C++ Стандартная библиотека. Для профессионалов." наткнулся на "Стандартная библиотека C++. Справочное руководство", Автор: Николаи М. Джосаттис. Кто знает что за книга, на кого рассчитана? Это случаем не переиздание вышеописанной книги? Не могу ничего о ней найти. Боюсь, что закажу, выкуплю а в итоге - не смогу освоить её.. Спасибо!

Это сообщение отредактировал(а) lllJollyRogerlll - 15.1.2015, 15:01
PM MAIL   Вверх
Cheloveck
Дата 15.1.2015, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Бьерн Страуструп - Язык программирования C++. Специальное издание
user posted image
У меня издание 2010 года и там есть всё, что тебе нужно. 


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


Новичок



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

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



Цитата(Cheloveck @ 15.1.2015,  20:42)
Бьерн Страуструп - Язык программирования C++. Специальное издание
user posted image
У меня издание 2010 года и там есть всё, что тебе нужно.

Спасибо, а про "Стандартная библиотека C++. Справочное руководство", Автора: Николаи М. Джосаттис, Вы ничего сказать не можете?
В книге Страуструпа, которую Вы рекомендуете подробно описывается STL?
И на какой уровень знаний она рассчитана?
Извините, что насел с вопросами)
PM MAIL   Вверх
Cheloveck
Дата 15.1.2015, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(lllJollyRogerlll @  15.1.2015,  22:39 Найти цитируемый пост)
про "Стандартная библиотека C++. Справочное руководство", Автора: Николаи М. Джосаттис, Вы ничего сказать не можете?

Не знаю такой

Цитата(lllJollyRogerlll @  15.1.2015,  22:39 Найти цитируемый пост)
В книге Страуструпа, которую Вы рекомендуете подробно описывается STL?

Там целый раздел (~300 страниц) посвящён STL. Я бы сказал, что это слишком подробно =)


--------------------
user posted image
PM Jabber   Вверх
baldina
Дата 15.1.2015, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



lllJollyRogerlllhttp://www.ozon.ru/context/detail/id/1940311/
Страуструп, при всем уважении, не лучший писатель, особенно про stl

Добавлено через 7 минут и 28 секунд
еще вот эту рекомендую
http://forcoder.ru/cpp/c-boost-graph-library-11
она не про stl, но там неплохое описание обобщенного программирования вообще и программирования в стиле stl - это помогает понять концепции, заложенные в stl. да и сама BGL заслуживает внимания
PM MAIL   Вверх
lllJollyRogerlll
Дата 15.1.2015, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(baldina @ 15.1.2015,  22:16)
lllJollyRogerlllhttp://www.ozon.ru/context/detail/id/1940311/
Страуструп, при всем уважении, не лучший писатель, особенно про stl

Написано: "Для опытных программистов". А я только одну книгу изучил, в первом сообщении описано. Так что таковым не являюсь, к сожалению. Да, я понимаю принципы построения классов, шаблонов классов и функций, связанных списков, как устроены основные объекты классов ввода-вывода и так далее. Но опыта у меня как такового нет. Я даже еще не определился куда мне податься и вообще для чего я учу С++(если есть рекомендации, я приму с удовольствием  smile  ). Но за ответ спасибо!

Добавлено через 10 минут и 10 секунд
Цитата(baldina @ 15.1.2015,  22:16)
еще вот эту рекомендую
http://forcoder.ru/cpp/c-boost-graph-library-11
она не про stl, но там неплохое описание обобщенного программирования вообще и программирования в стиле stl - это помогает понять концепции, заложенные в stl. да и сама BGL заслуживает внимания

А вы как считаете, с чего можно начать? Просто в моем учебнике вкратце автор описывает некоторые аспекты STL и дальше рекомендует переходить к изучению непосредственно STL, вот по этому я и поднял тему.. Хотя честно, даже и не знаю куда мне дальше податься. Даже и близко понятия не имею.
PM MAIL   Вверх
baldina
Дата 15.1.2015, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



BGL это для опытных. но скорее опытных в программировании вообще, чем именно в С++
Степанов подойдет в любом случае, если тема STL вас интересует, т.к. изложение без сухости и наукообразия. Но тема сама по себе не элементарная (начинать надо с шаблонов вообще, а уж имея какое-то понятие, можно изучать конкретные библиотеки)
думаю "курса за 21 день" всяко не достаточно. читайте и другие, более толстые книжки, статьи, в т.ч. на общие темы - ООП и обобщенное программирование. 
PM MAIL   Вверх
lllJollyRogerlll
Дата 16.1.2015, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(baldina @ 15.1.2015,  23:39)
BGL это для опытных. но скорее опытных в программировании вообще, чем именно в С++
Степанов подойдет в любом случае, если тема STL вас интересует, т.к. изложение без сухости и наукообразия. Но тема сама по себе не элементарная (начинать надо с шаблонов вообще, а уж имея какое-то понятие, можно изучать конкретные библиотеки)
думаю "курса за 21 день" всяко не достаточно. читайте и другие, более толстые книжки, статьи, в т.ч. на общие темы - ООП и обобщенное программирование.

Это она только так называется, "Освой самостоятельно С++ за 21 день".. На самом деле я эту книгу с пол года мусолил, ее разве что просто прочитать за 21 день возможно, но не изучить.. Там около 800 страниц + задания. А для человека, который вообще в программировании ничего не бум-бум, как говорится - процесс тем более растягивается smile
Вот, что то на подобие этого я вычитал из той книги, о которой говорю, а потом(для проверки самого себя, понял-не понял тему) - воспроизвел. Конечно получилось не так как у автора, но все же:
Код

#include<iostream>

class theExeption{};
class OutOfMemory: public theExeption{};
class OutOfBorder : public theExeption{};
class NoSearchingObject : public theExeption{};

//                                        Детали
class Part
{
public:
    Part(int number) : partNumber(number){}
    virtual ~Part() {}
    int GetPartNumber() const { return partNumber; }
    void SetPartNumber(int number) { partNumber = number; }
    virtual void Display() const = 0;

private:
    int partNumber;
};

void Part::Display() const
{
    std::cout << "Part Number: " << partNumber << std::endl;
}

//                                   Автомобильные детали
class CarPart : public Part
{
public:
    CarPart(int number, int model) : modelYear(model), Part(number){}
    virtual ~CarPart() {}
    int GetModelYear() const { return modelYear; }
    void SetModelYear(int model) { modelYear = model; }
    virtual void Display() const;
private:
    int modelYear;
};

void CarPart::Display() const
{
    Part::Display(); 
    std::cout << "It's model year: " << modelYear << std::endl;
}

std::ostream& operator<<(std::ostream& output, Part * thePart)
{
    thePart->Display();
    return output;
}

//                                   Авиационные детали
class AirplanePart : public Part
{
public:
    AirplanePart(int number, int engine) : engineNumber(engine), Part(number){}
    virtual ~AirplanePart() {}
    int GetEngineNumber() const { return engineNumber; }
    void SetEngineNumber(int engine) { engineNumber = engine; }
    virtual void Display() const; 
private:
    int engineNumber;
};

void AirplanePart::Display() const

    Part::Display(); 
    std::cout << "It's engine number: " << engineNumber << std::endl; 
}

//                              Блок детали(Node) основной элемент списка(List),
//                             содержит указатель на любой объект (Type* itsObject), 
//                          в нашем случае будет содержать детали (Node* itsObject)
//                         а так же указатель на следующи блок детали (Node* theNext)
template<class Type>
class Node
{
public:
    Node(Type * newObject) : itsObject(newObject), theNext(0) {}
    ~Node() { delete itsObject; delete theNext; itsObject = 0; theNext = 0; }
    void SetNext(Node * next) { theNext = next; }
    Node* GetNext() const { return theNext; }
    Type* GetObject() const { return itsObject; }
private:
    Type * itsObject;
    Node * theNext;
};

template<class Type>
std::ostream& operator<<(std::ostream output, Node<Type> * theNode)
{
    theNode->GetObject()->Display();
    return output;
}

//               Список(List), является списком шаблонных объектов Node(контейнеры, содержащие детали)
//    содержит головной контейнер, которы в свою очередь содержит указатель на следующий объект Node и так далее
//                        а так же счетчик общего колличества контейнеров (int itsCount)
template <class Type>
class List
{
public:
    List() : headNode(0), itsCount(0){}
    ~List();
    
    void Iterate() const;
    void Insert(Type * newObject);
    Type* Find(int & offset, int searchingNumber);
    Node<Type>* GetHead() const;

    Type* operator[](int offset);

private:
    Node<Type> * headNode;
    int itsCount;
};

template<class Type>
List<Type>::~List() 

    delete headNode; 
    headNode = 0;
    itsCount = 0;
}

template<class Type>
void List<Type>::Iterate() const
{
    Node<Type>* pNode = headNode;
    for (; pNode != 0; pNode = pNode->GetNext())
    {
        pNode->GetObject()->Display();
    }
}

template<class Type>
void List<Type>::Insert(Type * newObject)
{
    itsCount++;
    if (!headNode)                        // если головного нет, назначить новый - головным
    {
        headNode = new Node<Type>(newObject);
        return;
    }

    int headNodeNumber; 
    headNodeNumber = headNode->GetObject()->GetPartNumber();
    int newNodeNumber;
    newNodeNumber = newObject->GetPartNumber();
    Node<Type>* pNewNode = new Node<Type>(newObject);

    if (headNodeNumber > newNodeNumber)    // если головной блок больше нового, то назначить новый - головным
    {
        pNewNode->SetNext(headNode);
        headNode = pNewNode;
        return;
    }

    Node<Type>* pCurrent = headNode;

    while (1)                            // проверяем следующий блок после текущего, если он больше нового,
    {                                    // вставляем за текущим, если нет - присваиваем текущему - следующий
        if (!pCurrent->GetNext())        //                                                и начинаем цикл заново
        {
            pCurrent->SetNext(pNewNode);
            return;
        }

        int nextPartNumber;                
        nextPartNumber = pCurrent->GetNext()->GetObject()->GetPartNumber();

        if (nextPartNumber > newNodeNumber)
        {
            pNewNode->SetNext(pCurrent->GetNext());
            pCurrent->SetNext(pNewNode);
            return;
        }

        pCurrent = pCurrent->GetNext();
    }
}

template<class Type>
Type* List<Type>::Find(int & offset, int searchingNumber)
{
    if (!headNode) throw NoSearchingObject();
    Node<Type>* pNode = headNode;
    for (offset = 0; pNode != 0; pNode = pNode->GetNext(), offset++)
    {
        if (pNode->GetObject()->GetPartNumber() == searchingNumber)
            break;
    }
    if (!pNode) throw NoSearchingObject();
    else return pNode->GetObject();
}

template<class Type>
Node<Type>* List<Type>::GetHead() const
{
    if (headNode) return headNode;
    else
        throw NoSearchingObject();
}

template<class Type>
Type* List<Type>::operator[](int offset)
{
    if ((offset >= itsCount)||(offset < 0)) throw OutOfBorder();
    else
    {
        Node<Type>* pNode = headNode;
        for (int i = 0; i < offset; i++) { pNode = pNode->GetNext(); }
        return pNode->GetObject();
    }
}

CarPart* NewCarPart();
AirplanePart* NewAirplanePart();

int main()
{
    try
    {
        Part* pPart = 0;
        List<Part> partList;
        bool ifQuit = false;
        int choice;
        while (!ifQuit)
        {
            std::cout << "(0)Exit, (1)Airplane part, (2)Car Part: ";
            std::cin >> choice;
            switch (choice)
            {
            case 0: ifQuit = true; break;
            case 1: pPart = NewAirplanePart();  
                    partList.Insert(pPart);
                    break;
            case 2: pPart = NewCarPart(); 
                    partList.Insert(pPart);
                    break;
            default: continue;
            }
        }
        while (1)
        {
            if (partList.GetHead())partList.Iterate();
            std::cout << "what number in this list would you like get? : ";
            std::cin >> choice;
            choice--;
            std::cout << partList[choice] << std::endl;
        }
    }
    catch (OutOfMemory)
    {
        std::cout << "Out of memory!\n";
    }

    catch (NoSearchingObject)
    {
        std::cout << "Searching object is not found!\n";
    }

    catch (OutOfBorder)
    {
        std::cout << "Out of border!\n";
    }

    catch (...)
    {
        std::cout << "Something gone wrong!\n";
    }
    return 0;
}

AirplanePart* NewAirplanePart() 
{
    int partNumber = 0;
    int engine = 0;
    std::cout << "Please enter part number: ";
    std::cin >> partNumber;
    std::cout << "And engine number: ";
    std::cin >> engine;
    AirplanePart* pPart = new AirplanePart(partNumber, engine);
    return pPart;
}

CarPart* NewCarPart()
{
    int partNumber = 0;
    int year = 0;
    std::cout << "Please enter part number: ";
    std::cin >> partNumber;
    std::cout << "And it's model year: ";
    std::cin >> year;
    CarPart* pPart = new CarPart(partNumber, year);
    return pPart;
}

В общем, может конечно и рано мне, но я попробую Степанова. Если не пойдет, буду искать что попроще. Спасибо!
PM MAIL   Вверх
Alexeis
Дата 16.1.2015, 10:32 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Для меня самая лучшая книга по stl это http://www.cplusplus.com/reference/stl/
Ни где такого подробного и точного изложения не встречал. Но правда это для тех кто уже хоть немного в теме. Просто вот когда любой вопрос возникает, сразу открыл и сразу нахожу четкое строгое исчерпывающее описание по стандарту. Идеальный справочник. 
  Есть еще книга по STL Николая Джосьютиса (Издательство Питер) (700 страниц и все по STL)
  Александр Степанов, Менг Ли (только в электронном виде)
  Л.Аммерааль (240 страниц)
Это на русском. Но я бы ничего из этого не рекомендовал. Русские издания грешат неточностями, вольностями.



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
lllJollyRogerlll
Дата 16.1.2015, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Alexeis @ 16.1.2015,  10:32)
Для меня самая лучшая книга по stl это http://www.cplusplus.com/reference/stl/
Ни где такого подробного и точного изложения не встречал. Но правда это для тех кто уже хоть немного в теме. Просто вот когда любой вопрос возникает, сразу открыл и сразу нахожу четкое строгое исчерпывающее описание по стандарту. Идеальный справочник. 
  Есть еще книга по STL Николая Джосьютиса (Издательство Питер) (700 страниц и все по STL)
  Александр Степанов, Менг Ли (только в электронном виде)
  Л.Аммерааль (240 страниц)
Это на русском. Но я бы ничего из этого не рекомендовал. Русские издания грешат неточностями, вольностями.

Спасибо, но у меня уровень английского средний, сейчас в процессе изучения, к тому же я новичок в программировании, боюсь что будет тяжело читать в оригинале. А вот по поводу Джосьютиса я и спрашивал вначале. Но к сожалению эта книга сейчас не доступна в продаже. Вот по этому думаю брать эту, я так понимаю - что то вроде переиздания. Как вы думаете? Судя по содержанию вроде она.
PM MAIL   Вверх
Alexeis
Дата 16.1.2015, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(lllJollyRogerlll @  16.1.2015,  13:52 Найти цитируемый пост)
А вот по поводу Джосьютиса я и спрашивал вначале. Но к сожалению эта книга сейчас не доступна в продаже. Вот по этому думаю брать эту, я так понимаю - что то вроде переиздания. Как вы думаете? Судя по содержанию вроде она. 

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


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Guinness
Дата 16.1.2015, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Alexeis @  16.1.2015,  14:24 Найти цитируемый пост)
.е. сначала прочитать Александреску , а потом уже STL как практика шаблонного программирования.

Прочитать Александреску до изучения STL - очень странный совет. Тем более, что человек говорит, что он только начинает. STL можно начать пользовать и без чтения Александреску, тем более что его книгу сложно назвать элементарной.
Вообще, после начального освоения плюсов, мне для следующего шага, очень помогли книжки такого плана:
Саттер + можно ещё продолжение этой книги
Мейерс


Это сообщение отредактировал(а) Guinness - 16.1.2015, 14:25
PM MAIL   Вверх
Alexeis
Дата 16.1.2015, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Guinness, библиотека STL это реализация шаблонов проектирования. Без всяческих понятий устройства STL неправильно браться использовать. Ну допустим книжка подробно описывает тебе все функции, параметры, допустимые значения параметров, но она тебя не научит как проектировать программу с использованием шаблонов проектирования.
  Возможно Александреску не лучшая книга для новичка, но и альтернативы особенно нет. 
Человек использует шаблон, допускает первую ошибку и получает полотно текста на 3 страницы из которого он не в состоянии понять что он сделал не так. А разобраться он не может, потому что без понятия как там все устроено внутри. После чего появляется очередная тема на форуме
"помогите найти ошибку ..." и листинг кода. 
  Пусть сначала напишет свой маленький простейший контейнер, к нему итератор и алгоритм, или хотя бы разберется в исходном коде  примера из книги Александреску, вот тогда можно читать справочник.

  Чтобы начать говн_кодить с использованием STL можно даже книжки не читать. Но это не называется учиться программировать на С++ . Книга Александреску именно учит программировать, она объясняет зачем нужен контейнер, а не как подставить в шаблон класс без конструктора копирования и выдать свету свой первый говн_код, который будет валится на ошибках доступа к памяти. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
baldina
Дата 16.1.2015, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Alexeis @  16.1.2015,  15:57 Найти цитируемый пост)
библиотека STL это реализация шаблонов проектирования

не совсем. пожалуй лишь iterator (можно добавить strategy, но скорее как средство собственной реализации, естественно вытекающее из механизма специализации шаблонов).
скорее можно сказать, что у stl есть своя идеология, и её стоит понять для эффективного использования.
PM MAIL   Вверх
lllJollyRogerlll
Дата 16.1.2015, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



 smile 
Я запутался. Нашел все рекомендованные тут книги и в ступоре. Видимо я вообще рано полез на форум. 
Вот тот код, который я привел в пример - мой максимум на данный момент.
Но и другие учебники, в которых в первой главе история языка, а во второй (std::cout<<"Hello world!\n";) мне читать скучно.
Я думал, что мне нужно дальше учить STL, потому что автор книги, которую я изучал рекомендует далее перейти к изучению STL, но видимо мне рано... В общем всем спасибо, но...  smile  smile 
PM MAIL   Вверх
baldina
Дата 16.1.2015, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



lllJollyRogerlll, каков ваш опыт в программировании вообще?
PM MAIL   Вверх
lllJollyRogerlll
Дата 16.1.2015, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(baldina @ 16.1.2015,  21:00)
lllJollyRogerlll, каков ваш опыт в программировании вообще?

Я подробно изучил книгу Джесс Либерти и Бредли Джонс "Освой самостоятельно С++ за 21 день". Раз 5 начинал читать и все не как не мог её освоить, потом собрался с силами и все таки изучил. Но вы не заостряйте внимание на название. За 21 день её физически не изучить. Разве что только прочитать. Она довольно объемная, около 800 страниц + задачи. Там рассматриваются Векторы, Списки, Очереди, Карты, то есть некоторые аспекты STL. Ну естественно основы - классы, шаблоны и т.д. Я приводил пример кода, который я написал последним. Там связанный список, на основе шаблона класса с передачей пользовательских исключений. Работать я негде не работал. Из опыта написания кода только те задачи, которые были у меня в учебнике и некоторый код, который там приводится в пример я просматривал, запоминал и потом просто "под свою дудку" его переписывал. Вот по этому, учебник который начинается с std::cout<<"Hello world!\n"; мне скучен. А многие из тех, которые мне тут советовали я открывал книги и с первых строк не понимал о чем идет речь. Хотя Николай Джосьютис "стандартная библиотека c++ для профессионалов", выпуск 2004го года уже 60ти десятая страница пошла и я все прекрасно понимаю, о чем пишет автор. Но мне говорят что мне это не подойдет, что это всего лишь справочник а не учебник. Да и в бумажном виде его нет. Вот такая ситуация... 
PM MAIL   Вверх
Guinness
Дата 17.1.2015, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Alexeis, спорить не буду. Данная книга действительно учит определенному подходу к написанию программ. Она очень интересная и полезная, но боюсь, что начинающий её не осилит. Прежде чем изучать stl действительно стоило бы понять, что такое шаблоны в C++. Мне в своё время хватило самоучителя Шилдта, хотя я бы не сказал, что там много времени уделяется данной теме. Плюс различная информация в интернете. Этого должно хватить для написания своего класса контейнера и использования stl. В принципе можно попробовать почитать Вандервуда с Джосаттисом, там вроде более менее рассказано о всех возможностях шаблонах в C++.
PM MAIL   Вверх
baldina
Дата 17.1.2015, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



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

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

так что перечень тем (и книг) растет)))) 

применительно к С++ следует, как минимум, понимать объектно-ориентированный подход (см. SOLID), обобщенное программирование, плюс неплохо бы элементы функционального программирования
по каждой теме есть литература, статьи и тд.

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

вы с какой целью язык изучаете?

PM MAIL   Вверх
lllJollyRogerlll
Дата 18.1.2015, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



baldina, изначально я решил стать разработчиком, что бы зарабатывать на жизнь головой, поэтому целью  является устроиться в компанию по разработке. А С++ выбрал, потому что где то вычитал, что программа для марсохода Кьюриосити написана на Си, ну а т.к. С++ является продолжением(тогда я так думал) языка Си, мне показалась эта затея очень увлекательной. К тому же, многие современные компьютерные игры разрабатываются не без участия С++ и эта тема мне близка. Не подумайте, я не заядлый геймер. В последнее время, каждую свободную минуту я уделяю изучению С++, или Английского языка, но тема создания компьютерных игр меня влечет. Ну а в общем, мне кажется что разработка в целом - интересное и увлекательное занятие.
Но я и понятия не имею, какие нужны знания, что бы устроиться на работу С++ разработчиком... И тем более - куда...)
PM MAIL   Вверх
baldina
Дата 19.1.2015, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



PM MAIL   Вверх
lllJollyRogerlll
Дата 19.1.2015, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



baldina, спасибо
PM MAIL   Вверх
kemiisto
Дата 26.2.2015, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(lllJollyRogerlll @  16.1.2015,  21:26 Найти цитируемый пост)
Я подробно изучил книгу Джесс Либерти и Бредли Джонс "Освой самостоятельно С++ за 21 день".

Не читал, но за одно название осуждаю. А хотя... Не за 24 часа и то ладно. smile 

Цитата(lllJollyRogerlll @  16.1.2015,  21:26 Найти цитируемый пост)
Она довольно объемная, около 800 страниц + задачи.

800 страниц - это капля в море. Вам тут ссылок на литературу уже много накидали, и Вы должны были уже понять, что с 800 страниц всё только начинается. Вообще, Вам тут самое главное забыли сказать. Точнее, не сказали прямо, между строк то оно читается. Так вот, главное заключается в том, что начиная с нуля, Вам потребуется, грубо говоря, лет 5 для того, чтобы начать создавать компьютерные игры на С++. И это если вообще получится, ибо тут никаких гарантий, осилите Вы или нет, Вам никто дать не может.

Цитата(lllJollyRogerlll @  18.1.2015,  08:37 Найти цитируемый пост)
Но я и понятия не имею, какие нужны знания, что бы устроиться на работу С++ разработчиком... И тем более - куда...)

Ну, так узнайте. Требования везде разные, поэтому, что конкретно нужно знать зависит от того, куда Вы хотите пойти работать. Поищите в интернетах объявления о найме C++ Junior.

Добавлено через 8 минут и 57 секунд
А, ну и да. В любом случае, идущие на смерть приветствуют тебя. smile 


--------------------
PM MAIL WWW GTalk Jabber   Вверх
konshyn
Дата 27.2.2015, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Есть очень хорошая статья: Почему научиться программировать так чертовски тяжело?

Добавлено через 1 минуту и 17 секунд
Оу, сорри, не туда. окнами ошибся. Но пусть останется:)


--------------------
«Потому что ценность акта действия в этой стране возрастает в несколько раз».
PM MAIL Skype   Вверх
disputant
Дата 27.2.2015, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я бы рекомендовал Мюссера "C++ и STL Справочное руководство", а Джосаттиса "Стандартная библиотека С++. Справочное руководство" - уже когда будете работать профессионально. 

PM MAIL   Вверх
lllJollyRogerlll
Дата 1.3.2015, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



kemiisto, В общем, тогда нет смысла вообще продолжать учиться? Мне уже 25 лет + еще 5 на обучение и потом я буду 30дти летний начинающий программист без опыта работы. Но такие навряд ли кому нужны, если и берут без опыта то помоложе.. Правильно я понимаю? Мб заняться чем попроще, например PHP? Что посоветуете? Спасибо.
PM MAIL   Вверх
kemiisto
Дата 1.3.2015, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



lllJollyRogerlll, моё мнение таково: Вам лучше как можно скорее устроится младшим (junior) программистом или стажёром в какую-нибудь контору. Мне трудно оценить Ваш уровень программирования в целом и на С++ в частности, к тому же, как я уже писал, требования к junior'ам везьде разные, но уж стажёром то Вас могут взять. Будете сочетать приятное с полезным: даже если денежку первое время платить совсем не будут, получите неоценимый опыт работы в команде.

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

Цитата(lllJollyRogerlll @  1.3.2015,  11:03 Найти цитируемый пост)
Мб заняться чем попроще, например PHP?

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


--------------------
PM MAIL WWW GTalk Jabber   Вверх
lllJollyRogerlll
Дата 1.3.2015, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(kemiisto @ 1.3.2015,  12:40)

Вам лучше как можно скорее устроится младшим (junior) программистом или стажёром в какую-нибудь контору. Мне трудно оценить Ваш уровень программирования в целом и на С++ в частности, к тому же, как я уже писал, требования к junior'ам везьде разные, но уж стажёром то Вас могут взять. Будете сочетать приятное с полезным: даже если денежку первое время платить совсем не будут, получите неоценимый опыт работы в команде.

kemiisto, писал в различные компании. Но безрезультатно. К тому же практически везде, где я нашел по данному запросу объявления - они закрыты уже года два назад(хотя я все ровно писал). Всем требуются опытные программисты, в основном. Мне не кто ничего не ответил, даже не поинтересовались моим уровнем знаний. Хотя я готов и бесплатно работать, лишь бы научиться чему то полезному...
Цитата(kemiisto @ 1.3.2015,  12:40)

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

Не писал. У меня диплом бакалавра, "Компьютерная инженерия", но заочка, поэтому в голове только лишь то, что я самостоятельно изучал. Не могу похвастаться, что это богатый набор знаний. Тем не менее кое какие есть. 

На другой язык переходить мне просто не хочется лишь потому, что я углубился в С++(хотя и не понимаю для чего). Купил себе кучу учебников, сейчас Джосаттиса(Стандартная библиотека С++, 2014г.) изучаю. Думал посвятить этому жизнь и теперь так разочаровываюсь. Понимаю, что я вообще ничего толком реализовать не могу, но основы знаю и колебаюсь.. то начну WinAPI учить, то OpenGL, то еще что то.. В какой то момент думаю: "Так, мне это сейчас нужно больше" и перескакиваю с одного материала на другой в итоге у "разбитого корыта"... И толком ничего не умею. Вот поэтому я тут просил помощи. 

Это сообщение отредактировал(а) lllJollyRogerlll - 1.3.2015, 13:50
PM MAIL   Вверх
kemiisto
Дата 1.3.2015, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



lllJollyRogerlll, даже не знаю, с чего начать.

Возможно, язык Вы таки неудачно выбрали. С++ - это всё-таки не игрушка какая-нибудь а-ля Python, на нём в основном пишут серьёзные проекты и требования даже к junior'ам там обычно существенно выше. И, возможно, стоит таки, пока не поздно, не углубляться в С++, а посмотреть в сторону Java или C#. Конечно, можно и тот же Python поковырять, но он куда существеннее отличается от С++.

Цитата(lllJollyRogerlll @  1.3.2015,  12:47 Найти цитируемый пост)
На другой язык переходить мне просто не хочется лишь потому, что я углубился в С++(хотя и не понимаю для чего).

Да Вы не переживайте, Вы не сильно то и углубились. smile К тому же, уже полученные Вами знания лишними не будут, если Вы решите посмотреть в сторону Java или C#. В любом случае, Вам нужно как-то начать получать опыт реальной разработки ПО, ведь от чтения книг этого опыта у Вас всё равно не прибавится. С этой позиции, С++ был не лучшим выбором.

Цитата(lllJollyRogerlll @  1.3.2015,  12:47 Найти цитируемый пост)
Думал посвятить этому жизнь и теперь так разочаровываюсь.

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

Программирование - деятельность сложная. Обычно те, кто в конечном итоге становятся профессиональными программистами, начинают заниматься программированием ещё в школе. Потом они поступают в профильный ВУЗ и ещё 5 лет обучаются там, попутно работая стажёром курса с 3-4, а после окончания учёбы идут работать junior'ом. В итоге к Вашим 25 годам у них уже срок знакомства с программированием лет 10 и опыт участия в реальных проектах от 3 до 5 лет. 

А что у Вас? А у Вас 1 прочитанная книга по С++. Вы только в самом начале пути, и, что ещё хуже, у Вас нет их 10 лет на его прохождение. У Вас нет даже половины этого срока. Поэтому Вам надо прежде всего прекратить витать в облаках и чётко расставить приоритеты. Давайте посмотрим, с чего всё началось.

Цитата(lllJollyRogerlll @  18.1.2015,  08:37 Найти цитируемый пост)
baldina, изначально я решил стать разработчиком, что бы зарабатывать на жизнь головой, поэтому целью  является устроиться в компанию по разработке. А С++ выбрал, потому что где то вычитал, что программа для марсохода Кьюриосити написана на Си, ну а т.к. С++ является продолжением(тогда я так думал) языка Си, мне показалась эта затея очень увлекательной. К тому же, многие современные компьютерные игры разрабатываются не без участия С++ и эта тема мне близка.


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

Во-первых, да, и Вы уже сами это поняли, С и С++ - это две большие разницы. Два по сути абсолютно разных языка. Да в С++ есть подмножетсво С, но его непосредственно используют очень-очень редко. На С++ пишут и думают совершенно иначе.

Во-вторых, я не вижу связи между Вашим желанием стать программистом в 25-летнем возрасте и тем, что Вы выбрали язык С++ руководствуясь тем фактом, что программа для марсохода Кьюриосити написана на Си. Не сочтите за грубость, но Вы вряд ли будете писать программы для марсоходов. И точка. Надо спуститься с небес на землю и выбрать язык программирования исходя из более реалистичных возможных приложений. И с учётом того, что учиться программировать Вам придётся в крайне сжатые сроки.

Так вот, я бы в Вашей ситуации выбирал между Java с прицелом на Android и Python или Ruby с прицелом на Web. А почему - это уже совсем другая история.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
lllJollyRogerlll
Дата 1.3.2015, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



kemiisto, мб мне и Java поздно учить начинать? И если уж на то пошло, что вы можете сказать про C#? Я все таки больше люблю MS и в том числе Windows Phone моя любимая ОС из мобильных...
PM MAIL   Вверх
kemiisto
Дата 1.3.2015, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(lllJollyRogerlll @  1.3.2015,  15:35 Найти цитируемый пост)
kemiisto, мб мне и Java поздно учить начинать?

Java Вы уже по сути знаете. Вам осталось только разобраться с тамошним "(почти) всё - есть объект", понять механизм сборки мусора, ознакомится с пакетной системой и базовыми классами "стандартной библиотеки" (Java Class Library). В Java, конечно, тоже есть подводные камни и она может казаться громоздкой, но по большей части она таки проста, так что очень много времени у Вас это не займёт.

Цитата(lllJollyRogerlll @  1.3.2015,  15:35 Найти цитируемый пост)
И если уж на то пошло, что вы можете сказать про C#?

По сложности он где-то посередине между Java и С++: и сам язык, и "стандартная библиотека" побогаче, чем у Java, но на изучение это богатства необходимо больше времени.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
lllJollyRogerlll
Дата 1.3.2015, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



kemiisto, думаете не стоит и браться за С#, опять разочаруюсь? Душа просто не лежит к андроиду... :(
Хотя я конечно понимаю, в моей ситуации не приходится особо выбирать.. 
PM MAIL   Вверх
kemiisto
Дата 1.3.2015, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



lllJollyRogerlll, ну, дожимайте C++ тогда. Забудьте на время о всяких WinAPI и OpenGL, и "долбите" язык и стандартную библиотеку. Вот Вам примерный список:
  • Липпман, Лажойе, Му - Язык программирования C++. Базовый курс. 5-е изд. (2014) 
    Я не знаю, насколько хороша/плоха уже прочитанная Вами книга "Освой самостоятельно С++ за 21 день", но обычно новичкам я настоятельно рекомендую именно Липпмана. По-моему, именно эта книга позволяет освоить базовые техники С++ наилучшим образом. Скачайте для начала, полистайте, если всё знакомо и понятно, переходите к следующему пункту. Настоятельно рекомендую именно последнее издание, т.к. там оисано много нового из C++11.
  • Мейерс - Эффективное использование C++, 3-е изд. (2006)
    Обязательно к прочтению. "Отлично подходит для промывки мозгов", выражаясь языком Сайфер из фильма "Матрица". smile
Это прямо жёсткий минимум. По стандартной библиотеке на начальных этапах никакая книга не нужка. Есть два великолепных ресурса в сети: 1 и 2. Если с английским совсем плохо и нужен справочник по стандартной библиотеке на русском, то листайте гроссбух Джосаттиса

И ещё Вам бы что-нибудь почитать по алгоритмам и структурам данных. Есть, конечно, Седжвик "Алгоритмы на C++": там много и не всё пригодится, но зато сразу на С++. Альтернативой, пожалуй, будет Вирт "Алгоритмы и структуры данных", там поменьше, но нужны знания хотя бы старого-доброго Pascal.

В дополненение к Мейерсу можно ещё почитать "Скользкие места С++" Дьюхэрста и "Совершенный код" Макконнелла. Но это необязательно сразу, потом успеется. И не рекомендую читать Страуструпа, у него стиль изложения ориентирован на опытных программистов.

Это сообщение отредактировал(а) kemiisto - 1.3.2015, 18:57


--------------------
PM MAIL WWW GTalk Jabber   Вверх
lllJollyRogerlll
Дата 1.3.2015, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



kemiisto, извините, но я спрашивал за C#. Мне его рекомендовали, на одном вебинаре, тем более вы мне ясно дали понять, что С++ не для меня. Вы считаете, что на сегодняшнем этапе "дожимать" С++ будет быстрее, чем начать с нуля Си шарп? Если так, то Java мой единственный выход, я так понимаю ситуацию. Конечно, я уже душей запал на С++ и Си шарп мне кажется будет интересен, ведь я люблю Windows Phone, а Андроид мне не по душе, поэтому как то скептически отношусь к Java, но времени у меня в обрез. В общем совета спрашиваю у вас, как у профессионала. Я понимаю что уже достал, но все таки моя жизнь решается сейчас, как то так.. Извините..
И если единственный выход - Java, я буду его изучать. И тогда попрошу вас порекомендовать литературу.
PM MAIL   Вверх
sgrey
Дата 1.3.2015, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(lllJollyRogerlll @ 1.3.2015,  20:37)
kemiisto, извините, но я спрашивал за C#. Мне его рекомендовали, на одном вебинаре, тем более вы мне ясно дали понять, что С++ не для меня. Вы считаете, что на сегодняшнем этапе "дожимать" С++ будет быстрее, чем начать с нуля Си шарп? Если так, то Java мой единственный выход, я так понимаю ситуацию. Конечно, я уже душей запал на С++ и Си шарп мне кажется будет интересен, ведь я люблю Windows Phone, а Андроид мне не по душе, поэтому как то скептически отношусь к Java, но времени у меня в обрез. В общем совета спрашиваю у вас, как у профессионала. Я понимаю что уже достал, но все таки моя жизнь решается сейчас, как то так.. Извините..
И если единственный выход - Java, я буду его изучать. И тогда попрошу вас порекомендовать литературу.

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

По поводу языка - начинать с C# вполне неплохо, главно найти хороший учебник. На нём разрабатывать практически применимые приложения новичку намного легче, чем на том же JAVA, особенно если речь идёт о GUI. На начальных этапах вдаваться в дебри языка совсем не обязательно. Возможно лучше прослушать какой-то курс видеолекций, которых в бесплатном доступе хватает. Также можно закончить какой-нибудь бесплатный класс по основам. 

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

И ещё возник такой вопрос - если есть специальность "компьютерная инженерия", что тоже является заработком головой, почему нельзя устроится на работу по специальности? Часто "компьютерные инженеры" на работе осваивают языки и пишут программки. Кстати странно что у вас не было программирования на этой специальности - у нас эта специальность на половину состоит из классов по программированию
PM MAIL   Вверх
lllJollyRogerlll
  Дата 1.3.2015, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



sgrey, да в том то и дело, я второе образование не собираюсь получать. Я учился на заочке, у нас сессии по столку по скольку были. Тех знаний по программированию на С++ мне хватало что бы сдать экзамены.. Я хочу научится что то создаать своими руками и интеллектом. Вот моя цель. Но боюсь что у меня не хватит времени что бы реализовать все до того момента как меня отнесут в список "старых начинающих" программистов и я буду некому не нужен. Знания мои на уровне основ по С++ Классы, шаблоны классов, списки, вектора и т.д. STL немного я знаю и пока это все. Сейчас мне открыли глаза на то что я поздно начал учить программирование и еще и выбрал самый сложный язык. В общем я в растерянности. 
PM MAIL   Вверх
sgrey
Дата 1.3.2015, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(lllJollyRogerlll @ 1.3.2015,  21:52)
sgrey, да в том то и дело, я второе образование не собираюсь получать. Я учился на заочке, у нас сессии по столку по скольку были. Тех знаний по программированию на С++ мне хватало что бы сдать экзамены.. Я хочу научится что то создаать своими руками и интеллектом. Вот моя цель. Но боюсь что у меня не хватит времени что бы реализовать все до того момента как меня отнесут в список "старых начинающих" программистов и я буду некому не нужен. Знания мои на уровне основ по С++ Классы, шаблоны классов, списки, вектора и т.д. STL немного я знаю и пока это все. Сейчас мне открыли глаза на то что я поздно начал учить программирование и еще и выбрал самый сложный язык. В общем я в растерянности.

Многие вещи вполне можно делать и без образования. Веб программирование и средней сложности приложения под винду вполне можно научится делать по книгам. Проблема с языком C++ в том, что пользовательские приложения на нём сложно писать. Я считаю что C# вполне подойдёт для "научиться создавать своими руками". Enterprise архитектором вам конечно без образования не стать, а программистом вполне можно. И совсем не поздно в 25 лет. За пару лет реально достичь вполне неплохого уровня - главно чтобы было желание и упорство. А полученные знания по C++ - они вполне универсальны и помогут в освоении других языков

Сейчас провожу на работе собеседования на позицию Senior, и довольно много человек заявляются, при этом не имея профильного образования. Есть люди с актёрским, музыкальным, телекомунникационным и пр. различным образованием. При том многие имеют master's и начали изучать программирование в более старшем возрасте чем вы. Так что ставьте цель и идите к ней, если вы этого хотите.

Это сообщение отредактировал(а) sgrey - 1.3.2015, 22:11
PM MAIL   Вверх
kemiisto
Дата 1.3.2015, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(lllJollyRogerlll @  1.3.2015,  19:37 Найти цитируемый пост)
Вы считаете, что на сегодняшнем этапе "дожимать" С++ будет быстрее, чем начать с нуля Си шарп? 

Трудно сказать. C# становится всё объёмнее и объёмнее с каждым годом, Java, напротив, существенных изменений за последние 10 лет не претерпела. Сейчас хорошие книги по C# зачастую уже перегнали по кол-ву страниц книги по С++, а это говорит уже о многом. В любом случае, все эти три языка синтаксически близки друг к другу, а с базовым синтаксисом на примере С++ Вы уже знакомы. Поэтому болшая часть времени у Вас уйдёт на изучение приёмов эффективного программирования на выбранном языке и его стандартной библиотеки. И с этой точки зрения, Java - самый простой язык из трёх. Вы зря так боитесь Java.  smile C# синтаксически и идейно намного ближе к Java, чем к С++. Но в Java меньше всего понапихано, она попроще, и, как следствие, её можно быстрее освоить.

Цитата(lllJollyRogerlll @  1.3.2015,  19:37 Найти цитируемый пост)
Конечно, я уже душей запал на С++ и Си шарп мне кажется будет интересен, ведь я люблю Windows Phone, а Андроид мне не по душе, поэтому как то скептически отношусь к Java, но времени у меня в обрез.

Так то под Windows Phone можно писать и на С++, по крайней мере начиная с 8 версии. Вообще говоря, и под Android тоже можно части приложения писать на С++. Но это, скорее, частности. Большинство программ под Windows Phone, наверное, таки пишутся на C#. Ну, если Вам так не нравится Java, хотя Вы её в глаза не видели, то изучайте C#. Особой разницы на первых порах не будет.

Добавлено через 3 минуты и 57 секунд
Цитата(sgrey @  1.3.2015,  20:29 Найти цитируемый пост)
На нём разрабатывать практически применимые приложения новичку намного легче, чем на том же JAVA, особенно если речь идёт о GUI.

Это всё-таки крайне спорное утверждение.

Цитата(sgrey @  1.3.2015,  20:29 Найти цитируемый пост)
Возможно лучше прослушать какой-то курс видеолекций, которых в бесплатном доступе хватает.

Да, кстати. Это не такая уж и плохая идея. Одно только НО: на русском я толковых курсов по программированию и разработке ПО что-то не видел.

Цитата(sgrey @  1.3.2015,  20:29 Найти цитируемый пост)
Ну и как уже сказали - очень важно найти место, куда можно устоится стажёром. Но перед тем как это можно будет сделать - нужно обязательно научится писать хотябы простые вещи на каком-нибудь языке. Надо действительно определится чего охота, выбрать направление и изучать его. И как можно больше практики.

Да, да, да, и ещё раз, да!

Добавлено через 7 минут и 8 секунд
lllJollyRogerlll, если решитесь перейти на C# или Java, попробуйте начать с книг из известной серии Head First: Изучаем C# и Изучаем Java, соответственно. Там живенькое изложение, по крайней мере, в оригиналах на английском.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
sgrey
Дата 1.3.2015, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(kemiisto @ 1.3.2015,  22:09)

Это всё-таки крайне спорное утверждение.

это моё мнение smile Я сам пишу на обоих языках на работе и так считаю исходя из личного опыта. Вполне вероятно что у вас другой опыт smile

Добавлено через 4 минуты и 3 секунды
Цитата(kemiisto @ 1.3.2015,  22:09)

Да, кстати. Это не такая уж и плохая идея. Одно только НО: на русском я толковых курсов по программированию и разработке ПО что-то не видел.

к сожалению не могу ничего сказать по этому поводу. Я думаю что это так и есть к сожалению. Но программист имхо должен знать английский, я считаю что без этого как минимум проблематично обучаться будет
PM MAIL   Вверх
lllJollyRogerlll
Дата 1.3.2015, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



kemiistosgrey, Английский у меня выше среднего. Я понимать все понимаю, говорю не уверенно конечно, но думаю мне пока этого хватит. Хотя я его и так изучаю ежедневно вместе с STL. Вот теперь я знаю что мне делать. Но не знаю что выбрать - Java или C#. )))) В любом случае, спасибо вам, что открыли мне глаза!
kemiisto, сижу, смотрю на обе книги и думаю, что заказывать... 

Это сообщение отредактировал(а) lllJollyRogerlll - 1.3.2015, 22:49
PM MAIL   Вверх
kemiisto
Дата 1.3.2015, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(lllJollyRogerlll @  1.3.2015,  21:45 Найти цитируемый пост)
Но не знаю что выбрать - Java или C#.

Да любой выбирайте. smile Уж если Вам так нравится продукты Microsoft, то C#.

Цитата(lllJollyRogerlll @  1.3.2015,  21:45 Найти цитируемый пост)
Английский у меня выше среднего.

Ну, тогда вообще без проблем. smile И книжек не надо. Крупнейший русскоязычный битторрент трекер завален обучающими курсами по C#. Как, впрочем, и по Java. smile

Добавлено через 1 минуту и 1 секунду
Ой-ой-ой, да мы ж оказывается в разделе по С++ оффтопим. За это нас по голове не погладят... smile 


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Alexeis
Дата 4.3.2015, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



  Да, на счет выбора языка я пожалуй согласен, хотя впрочем в 25 лет ничего не рано. Просто язык С++ для тех кто готов потратить на его изучение очень много времени. Инструмент мощный, но слишком костыльный, с точки зрения построения языковых конструкций. Обширное поле для того чтобы выстрелить себе в ногу. 
  Я вынужден на нем писать, но продолжаю считать, что для частных решений лучше использовать специализированные языки. Кроме того крайне неприемлю всякие мысли о кроссплатформе (на С++). Во всех сферах применения С++ есть более подходящие языки. ИМХО С++ прижился за счет его костыльной гибридности, позволяющей начинать с низкого уровня С и потом надстраивать на этом подобие высокого уровня. Именно то чем не стоит заниматься программисту. Но к этому подталкивает сам язык.
  На С++ стоит или писать чисто логику высокого уровня отвергая язык С на 100% (Примерно как пишут на QT). Просто бить по рукам при попытке использовать любой механизм языка С или писать чисто низкий уровень, но тогда следует писать почти на языке С отказавшись от всей новомодной, нежелезопригодной дряни. От всего что скрывает логику и от всех не производительных решений, решений, которые боятся прерываний и одновременного доступа. В этом случае STL не лучший друг. Железячники стараются не использовать кучу без нужды, экономия памяти, детерменированное время исполнения и т.д. т.п. Попробуй например перенести алгоритм с STL на GPU. Короче нет пути от Си к С++ это тупиковая ветвь развития.   


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Olej
Дата 23.12.2016, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Alexeis @ 4.3.2015,  01:23)
Короче нет пути от Си к С++ это тупиковая ветвь развития.

Есть такой путь smile ... С, C++ и далее к Go smile

Цитата
Помогите выбрать книгу, для изучения STL

Начала STL и контейнеры C++



Это сообщение отредактировал(а) Olej - 23.12.2016, 11:31
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Компьютерная литература | Следующая тема »


 




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


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

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