Обявления

Четива за лятото

Четива за лятото

by Калин Николов -
Number of replies: 1

Здрявейте, колеги,

Вече няколко от вас се свързаха с мен да препоръчам четиво за лятото. Този факт много ме радва. Ще се възползвам от кореспондецията, която имам вече с някои от вас (замесените се надявам, че нямат нищо против):

1. "Programming: Principles and Practice Using C++ (2nd Edition)" на Bjarne Stroustrup

2. "C++ Primer" на Stanley B. Lippman, Josée Lajoie, и Barbara E. Moo.

Според мен книгата на Строуструп ще ви се отрази добре. Липман също е добър, но вече много се задълбава в C++ спецификите и макар в това да няма нищо лошо, на този етап ви трябва и малко поглед и в широчина.

Като свършите със Строуструп, вижте нещо и по структури от данни. Аз имам голямата класика на MIT "Algorithms" на хартия, мога да я дам на някого, или да си я намерите online. Това не го препоръчвам за четене от корица до корица на този етап, но си струва да се видят основни неща.

Следващия семестър ще учите СДП, а това е доста сериозен предмет. Там просто няма място за пропуски. 

3. Задачи за самостоятелна работа

Аз съм се постарал да подготвя лесни задачки за самоподготовка за списъци, дървета и хеш мапове. Може да ги погледнете. Особено списъците е добре с тях да можете да боравите с лекота преди да започне СДП-то, за да можете да схванете по-сложните механизми на другите структури. Пишете ми, ако имате въпроси.

4. Радослав Павлов, Математическа Лингвистика

Ето едно малко радикално предложение: тази книга мен ме запали по компютърните науки, когато бях ученик. Не говоря само за програмирането, а за "следващото ниво" на знание в нашата сфера - формални машини и изчислимост. Може да се пробвате да видите дали ще ви развълнува и вас. Ако пробиете през тази книга, ще ви се отворят неподозирани хоризонти. А ако не - няма нищо лошо, нашата сфера е ужасно разнообразна, важното е да намерите посока, която да мотивира вас.

5.  Erich Gamma, John Vlissides, Richard Helm, Ralph Johnson, Design Patterns

Съветвам ви да видите и нещо по-абстрактно за ООП, като например класиката Design Patterns, за да видите как се прилага ООП-то при изграждане на сложен софтуер. Това е много важно, защото ние учим техническата страна на нещата, но понякога човек трудно  разбира идеята им. Доколкото знам, книгата има и  модерни вариации с други технологии, но няма значение кой вариант изберете - въпросът е да усвоите принципите, дори езикът за програмиране в книгата да ви е непознат.

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

Поздрави,

Калин Георгиев

 

In reply to Калин Николов

Re: Четива за лятото

by Стефан Ангелов -
Здравейте и от мен.

Познавайки ме, може би се досещате, че няма как да остана безмълвен, когато става въпрос за книги за програмиране и математика (или каквито и да било книги :) ).

Гореспоменатите книги са, разбира се, изключително полезни, особено с две ръце гласувам за книгата по математическа лингвистика. Аз ще допълня с още няколко четива, за които сме си говорили с някои студенти:

1. Clean Agile: Back to Basics - Robert C. Martin
Книгата е изкрючително подходяща за начинаещи в методологията Agile, която е движещата сила на софтуерната индустрия. Колкото по-рано разберете идеите, толкова по-мощни ще бъдете в управлението на собствени проекти и в адекватното участване в по-големи проекти.

2. The Unicorn Project / The Phoenix Project - Gene Kim
Първата е по-съсредоточена към девове, докато втората е по-мениджърска.

3. Каквато и да е книга от сферата на теоретичната информатика
Теоретичната информатика е неизменна част от програмирането. Знаейки повече за нея, вие ставате по-добри програмисти, и дори бихте могли да намерите нови модели за решаване на задачи. Запознайте се с основни понятия като език, азбука, автомат, семантика. Ето например едно интересно четиво за денотационна семантика на прости езици за програмиране - https://www.cl.cam.ac.uk/teaching/1920/DenotSem/DenotSemNotes.pdf

4. Математика
Няма как да избегна математиката в тези предложения - тя е основна движеща единица на програмирането. Ако все още не сте научили математиката от първи курс, това са най-добрите книги да го направите според мен:
4.1. Дискретна математика - Discrete Mathematics with Ducks
Прегледал съм доста книги, които се опитват да въведат студенти във висшата математика на програмирането, но нито една не го прави по начина, по който тази книга се справя с проблемите на студентите - да представи материала по инетерсен начин, с ярки примери и приложими аспекти.
4.2. Алгебра - Linear Algebra Done Right
Дори и да сте си взели предмета, все още има някои важни аспекти, които не се обсъждат в основния курс. Разгледайте главите за дуални пространства, които ни дават теоретична база за функционалното програмиране.
4.3. Основи на функционалното програмиране
Освен логически основи, то има и така наречената категорна топология вградена в него. Тази част от математиката е наистина за напреднали, затова препоръчвам курс по обща топология, който е толкова абстрактен, че е от помощ на всеки програмист - пробвайте с General Topology на Engelking.
4.4. Малко повече за математическата логика и теория на множествата - On Intuitionistic Fuzzy Sets Theory - Prof. K. Atanassov
Тук ще намирате доста познати имена от българската математическа школа и как е повлияла на съвременната математика :)