Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Прошу помощи


Автор: cppGhost 16.12.2013, 13:10
Доброго времени суток, уважаемые форумчане. У меня прямо назрело, и теперь я точно знаю, что нужно что-то делать и прошу у Вас помощи. И так, что я имею: работаю программистом (c++) 7 лет, в работе использую только mfc, 99% работы это прикладное программирование. Большая часть классов написана, изобретать велосипед не надо, единственный вызов, как для программиста, это как сделать удобней для пользователя, чтобы поменьше ошибок и чтобы можно было легко переделать, если заказчику придет в голову "синька" и он захочет изменить бизнес-логику процентов на 20. Никакого многопоточного программирования, прямого сетевого взаимодействия. Я понимаю, надеюсь, чем внутренне стэк отличается от вектора, но не особо представляю как решается проблема коллизий в хеш-картах.

За следующие 6 месяцев я хочу существенно улучшить себя как программиста и уже метить на должность senior / lead. Для этого мне нужно многое подтянуть. Кто-то скажет, прочитай любую книгу по многопоточности, алгоритмам, напишу какое-нить ПО. Да, это тоже вариант, но это все равно, что учиться играть, допустим, в футбол самому, бегая каждый день во дворе или учиться в спортшколе. Эффект будет достигнут, но гораздо за больший срок. Поэтому мне хотелось бы услышать мнение людей, которые уже прошли этот путь.

Что как мне кажется я должен подтянуть / изучить
1) Алгоритмы
2) Структуры данных
3) Паттерны
4) Сетевое программирование (наверное, asio)
5) с++ 0х11
6) какой-то еще язык, который не помешало бы знать для общего развитя (разумеется отличный от c++)
7) регулярные выражения
8) регулярно читать какой-нибудь it-ресурс
9) может что-то еще

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

Автор: baldina 16.12.2013, 14:25
изучайте фундамент - алгоритмы и структуры, дискретная математика и комбинаторика, общая алгебра, численные методы
изучайте возможности и применение С++11
изучайте новые парадигмы, прежде всего функциональную - и в С++ на многое глянете иначе
познакомьтесь с языками, имеющими возможности, отсутствующие (или слабо поддерживаемые) в С++: динамическая типизация, reflection, pattern matching, ко- и контравариантные преобразования типов, мультиметоды etc
изучайте технологии - ОС, сети, базы данных...
познакомьтесь с boost (bgl, mpl, spirit, asio)
познакомьтесь с оконными библиотеками, которые лучше используют ООП чем mfc: wtl, qt

имхо за полгода на это все можно только посмотреть со стороны)))

Цитата(cppGhost @  16.12.2013,  13:10 Найти цитируемый пост)
чем внутренне стэк отличается от вектора

интересно, чем))

Добавлено через 11 минут и 43 секунды
чего с ходу вспомнилось

http://www.ozon.ru/context/detail/id/1273213/
http://www.ozon.ru/context/detail/id/20070017/
http://www.ozon.ru/context/detail/id/2963462/
http://www.ozon.ru/context/detail/id/6290126/
http://www.ozon.ru/context/detail/id/1507203/
http://www.ozon.ru/context/detail/id/5542451/
http://www.ozon.ru/context/detail/id/3905587/
http://www.ozon.ru/context/detail/id/21217629/
http://www.ozon.ru/context/detail/id/20217189/
http://www.ozon.ru/context/detail/id/21012659/
http://www.ozon.ru/context/detail/id/2457394/

Автор: vinter 16.12.2013, 14:47
Цитата(cppGhost @  16.12.2013,  14:10 Найти цитируемый пост)
1) Алгоритмы
2) Структуры данных

Читать книги и применять.
Книги: 
http://www.amazon.com/Data-Structures-Algorithms-Alfred-Aho/dp/0201000237/ref=sr_1_2?ie=UTF8&qid=1387193411&sr=8-2&keywords=data+structures+and+algorithms
http://www.amazon.com/Introduction-Algorithms-Thomas-H-Cormen/dp/0262033844/ref=pd_bxgy_b_img_z
Применять можно на всяких сайтах с задачами, например http://projecteuler.net/

Цитата(cppGhost @  16.12.2013,  14:10 Найти цитируемый пост)
3) Паттерны

http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/ref=sr_1_1?s=books&ie=UTF8&qid=1387193736&sr=1-1&keywords=design+patterns
Цитата(cppGhost @  16.12.2013,  14:10 Найти цитируемый пост)
6) какой-то еще язык, который не помешало бы знать для общего развитя (разумеется отличный от c++)

C#, можно еще F#, Haskell
Цитата(cppGhost @  16.12.2013,  14:10 Найти цитируемый пост)
7) регулярные выражения

http://www.amazon.com/Mastering-Regular-Expressions-Jeffrey-Friedl/dp/0596528124/ref=sr_1_1?s=books&ie=UTF8&qid=1387193830&sr=1-1&keywords=regular+expressions

Цитата(cppGhost @  16.12.2013,  14:10 Найти цитируемый пост)
5) с++ 0х11

http://www.amazon.com/C-Programming-Language-4th/dp/0321563840/ref=sr_1_1?s=books&ie=UTF8&qid=1387193875&sr=1-1&keywords=the+c%2B%2B+programming+language+4th+edition
http://www.amazon.com/Standard-Library-Tutorial-Reference-2nd/dp/0321623215/ref=sr_1_1?s=books&ie=UTF8&qid=1387193947&sr=1-1&keywords=the+c%2B%2B+standard+library
http://www.amazon.com/C-Concurrency-Action-Practical-Multithreading/dp/1933988770/ref=sr_1_1?s=books&ie=UTF8&qid=1387194289&sr=1-1&keywords=C%2B%2B+concurrency
Цитата(cppGhost @  16.12.2013,  14:10 Найти цитируемый пост)
8) регулярно читать какой-нибудь it-ресурс

http://isocpp.org/


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

Автор: cppGhost 16.12.2013, 15:00
Wow, уже огромное спасибо. Разумеется все это я не осилю, но тут как мне кажется должен действовать принцип высшего образования =) в вузе учат очень многому и в общем, зато когда приходит необходимость в чем то разобраться более основательно, то у тебя уже есть база во многих вещах. я не шибкий математик, всегда все давалось с трудом, но программирование люблю и буду брать упорством. Еще раз спасибо за ссылки, хотя буду благодарен, если кто еще что посоветует.

Автор: baldina 16.12.2013, 17:37
Цитата(vinter @  16.12.2013,  14:47 Найти цитируемый пост)
Книги: 
Data Structures and Algorithms
Introduction to Algorithms

и Кормен, и могучая троица, и C++ Concurrency in Action есть в магазе (переводные, с теми же обложками)

Добавлено через 7 минут и 55 секунд
Кормен - фундаментально, хорош скорее как справочник.
Ахо-Ульман-Хопкрофт - хороший язык, хороший материал, подходит для первоначального ознакомления.
Это я к тому, что информация повторяется. Хотя разных авторов на одну тему читать полезно.

Concurrency in Action хороша для разжижения мозга неподготовленных читателей))) А вообще - книга отличная.

Добавлено через 10 минут и 42 секунды
у Ахо и Ульмана есть монография "Синтаксический анализ и компиляция". Даже если на этом не специализируешься, хороша для общего развития. Сейчас есть новое издание, чуть иначе называется, почти вдвое толще))

Добавлено через 11 минут и 51 секунду
вот оно http://www.ozon.ru/context/detail/id/3829076/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)