Какво има на моята лавица със софтуерно инженерство

Актуализирането и непрекъснатото усъвършенстване е част от работата на софтуерен инженер.

Има много начини за изучаване на нови неща в интернет като MOOC, уроци и статии. Понякога обаче физическата книга е най-добрият избор , особено когато е „справка“, която предоставя знания, които ще продължат през следващите години. Можем да го поставим на рафта си с книги и да го прегледаме всеки път, когато сметнем, че е необходимо.

Това е списък с справочници, които държа на рафта си със софтуерно инженерство. Надявам се, че може да бъде източник на вдъхновение за всички, които търсят нещо интересно за четене! ?

Това, което имам на рафта си с книги

Модели на проектиране: Елементи на многократно използвания обектно-ориентиран софтуер

Това е класика.

В тази книга така наречената „Банда на четирима“ представя 23-те модела на дизайна, които движат обектно-ориентирания свят в продължение на десетилетия. Оттогава се създават нови модели, но тези в книгата се считат за основите на всички други модели.

Това не е лесно четиво, но трябва да го разгледате, само за да разберете къде да намерите това, от което се нуждаете по всеки повод. Дръжте го на бюрото си и преминете през него, когато изграждате нещо и имате усещането „Това, което правя, звучи познато“. Вероятно ще откриете, че се опитвате да приложите модел на дизайн, който вече е описан в тази книга.

Чист код: Наръчник за гъвкаво майсторство на софтуера

Прочетох тази книга преди много години, но оттогава ми остана.

Това е чудесен източник на най-добри практики за създаване на чист, четим код и избягване на миризми на код. Книгата е фокусирана главно върху Java / OOP, но много съвети могат да бъдат приложени към всеки език или парадигма за програмиране.

Писането на поддържаем и четим код не е лукс - това е нещо, към което всеки добър софтуерен инженер трябва да се стреми . Тази книга ще ви предостави знанията за това.

Чичо Боб понякога може да бъде малко екстремен и не съм съгласен с него във всички представени техники. Моето предложение: прочетете го и вземете със себе си само нещата, които смятате за правилни. Във всеки случай това е книга, която си заслужава да се прочете .

Научете ви Haskell за голямо добро!: Ръководство за начинаещи

Това е книга за езика за програмиране Haskell, така че защо да я купувате и да я запазвате за справка? Моите причини са:

  • Това е много добре написана и лесна за четене книга на не толкова лесна тема като функционалното програмиране
  • Това ви дава основата на функционалното мислене, а не само на синтаксиса на Haskell
  • Haskell е много елегантен език и ми харесва

Това е книгата, която ме запозна с функционалното програмиране. В момента програмирам главно в Scala, но преходът беше много по-лесен, след като научих основите на Haskell.

Функционалното програмиране не е лесно, но ще ви отвори ума. Може да бъде много теоретично и прилагането му на практика с помощта на Haskell ще помогне много .

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

Теория на категориите за програмисти

Тази книга обхваща теорията на категориите , която е в основата на парадигмата на функционалното програмиране.

Темата е доста сложна за нематематици, но авторът е положил големи усилия, за да я направи разбираема за разработчиците. Признавам, че имах известни трудности при четенето му, но бих искал да го прегледам отново.

Тази книга не се изисква, за да се превърнете в чудесен функционален програмист. Прочетете го, ако обичате предизвикателства и искате да навлезете по-дълбоко в теоретичните основи на функционалното програмиране.

Проектиране на интензивни приложения: Големите идеи зад надеждните, мащабируеми и поддържаеми системи

Това е любимото ми, може би защото обичам разпределени системи! :-Д

В тази книга Мартин Клепман описва всички различни аспекти на разпределените системи, от сериализация до модели на последователност и консенсус, преминаващи през различните двигатели на бази данни. Той също така изследва нови тенденции по отношение на приложения, управлявани от данни.

В свят на приложения, базирани на облачни микроуслуги, е фундаментално да се познават различните аспекти на разпределена система. Знанията, предоставени от тази книга, не са обвързани с конкретна технология и ще бъдат ценни за цялата ви кариера в софтуерното инженерство .

Пуснете го !: Проектирайте и внедрете софтуер, готов за производство

Чета тази сега.

Готови ли сме, след като софтуерът ни бъде изпратен в производство? Не, това е само началото!

Тази книга подчертава какво може да се обърка, след като софтуерът бъде пуснат в производство и трябва да се изправи пред реални потребители. Той описва анти-модели, които могат да подкопаят стабилността на нашия софтуер, както и решения на такива проблеми.

Това, което най-много ми харесва в тази книга, е, че всяка глава започва с пример, взет от реалния живот. След това авторът анализира проблемите, довели до провал на софтуера в производството. Мисля, че ученето от конкретни примери е много ефективен подход.

Въведение в алгоритмите

Какво мога да кажа за тази книга? Просто го купете и го дръжте на бюрото си .

Ако сте софтуерен инженер, има голяма вероятност да сте изучавали структури от данни и алгоритми. Не винаги е лесно да се справите със сложността или да изберете правилната структура на данните.

Когато възникнат съмнения, отворете тази книга и ще намерите това, от което се нуждаете.

За повечето хора (включително и за мен) това е много трудно четиво. Обикновено просто чета това, което трябва да знам в този момент, и държа книгата на видно място на бюрото си.

Хиперфокус: Как да управлявате вниманието си в един свят на разсейване

Това не е техническа книга, но е в набор от четения, които промениха живота ми по-добре.

Работата ни като софтуерни инженери се състои от решаване на проблеми с нашите умове. За да бъдем ефективни в тази задача, ни е необходима способността да се фокусираме изцяло върху проблема, който решаваме .

Тук можете да намерите много предложения и техники за максимизиране на времето, в което можете да се съсредоточите върху дадена задача. Авторът обсъжда също важността да оставите ума си да се лута, когато трябва да бъдете по-креативни.

Овладяването на това как да използвате вниманието си е нещо, което ще подобри не само работата ви в работата, но и всеки друг аспект от живота ви.

Какво ще добавя към рафта си с книги

Прагматичният програмист

Това е една от най-известните книги в разработването на софтуер.

Предложенията и техниките, представени в тази книга, повлияха на кариерата на много разработчици и инженери към по-добро. Книгата е публикувана през 1999 г., но вече е достъпна като ново и актуализирано издание от 20-годишнината.

Не можете да пропуснете това. :-)

Рефакторинг: Подобряване на дизайна на съществуващия код

Трудно е винаги да се доставя висококачествен код. Сроковете, спешността, лошият ден влияят на качеството на вашата работа.

Ето защо рефакторингът е толкова важен. Ако не можем да осигурим качество за първи път, можем да го подобрим по-късно за по-добра поддръжка. Мартин Фаулър (един от моите идоли в света на разработката на софтуер) описва най-добрите техники за ефективно рефакторинг.

На рафта ми винаги ще има място за книги, които да ми помогнат да напиша по-добър код.

Заключение

Това е моят списък с задължителни книги по софтуерно инженерство. Това в никакъв случай не е изчерпателен списък на „важните“ книги в тази област и съм сигурен, че ще добавя все повече и повече книги през следващите години.

Дано ви дам няколко хубави съвета за следващата книга, която трябва да прочетете. ?

Ще се видим !?