Jakie książki powinni przeczytać inżynierowie oprogramowania?

Najlepsza odpowiedź

Oczywiście każdy ma swoje własne preferencje. Ja włącznie. Ponieważ nakładanie się jest ograniczone, należy się zastanawiać, jak „trzeba czytać” te książki. 🙂 Jednak zawsze fajnie jest stworzyć listę.

  1. The Mythical Man-Month
  2. Bezpieczne kodowanie w C i C ++, wydanie drugie (dotyczy tylko programistów C i C ++, chociaż istnieje wersja dla języka Java – w przypadku Ada zazwyczaj wystarczy John Podręcznik Barnesa: Amazon.co.uk: John Barnes: 9781107424814: Książki )
  3. Logika programu dla certyfikowanych kompilatorów: Andrew W. Appel, Robert Dockins, Aquinas Hobor, Lennart Beringer, Josiah Dodds, Gordon Stewart, Sandrine Blazy, Xavier Leroy: 9781107048010: Amazon.com: Books
  4. The Art of Computer Programming, tom. 1: Fundamental Algorithms, 3rd Edition: 9780201896831: Computer Science Books @ Amazon.com
  5. Art of Computer Programming, tom 2: Seminumerical Algorithms (Wydanie trzecie): Donald E. Knuth: 0785342896848: Amazon.com: Książki
  6. Sztuka programowania: Tom 3: Sortowanie and Searching (2nd Edition): Donald E. Knuth: 9780201896855: Amazon.com: Books
  7. Kolorowe sieci Petriego – modelowanie i weryfikacja Równoległe | Kurt Jensen | Springer
  8. TCP / IP Illustrated, tom 1: Protokoły
  9. Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition): W. Richard Stevens, Bill Fenner, Andrew M. Rudoff: 9780131411555: Amazon.com: Books
  10. Programowanie w wątkach POSIX: David R. Butenhof: 0785342633924: Amazon.com: Książki

Oczywiście, nie wszystkie te książki dotyczą wszystkich ludzi. Jestem na tyle szalony, że mogę zająć się całością, więc mam to wszystko i dużo więcej. Jednak ten wybór jest wystarczający, aby uzyskać solidne zrozumienie programowania, algorytmów, sieci, modelowania systemów i różnych modeli tworzenia oprogramowania. Obszary, które są na tyle istotne, że inżynierowie oprogramowania powinni zwrócić na nie uwagę.

Odpowiedź

Zrobię tutaj założenie, że mówimy o inżynierze oprogramowania, który osiągnął biegłość techniczną w szkole, bootcamp lub inna okazja do nauki.

Algorytmy są rzeczywiście ważne, a książka „ Wprowadzenie do algorytmów ” to lektura obowiązkowa. Uważam, że dobre zrozumienie projektowania oprogramowania i projektowania obiektowego ma również kluczowe znaczenie, a moją biblią jest nadal książka „ Wzorce projektowe: elementy oprogramowania obiektowego wielokrotnego użytku ”. Jego przykłady w Smalltalk nie czynią go obecnie najłatwiejszym do przeczytania, ale nie znam żadnej innej książki, która tak obszernie porusza ten temat.

Spotkałem wielu inżynierów rozpoczynających pracę w miejscu pracy , i zauważyłem kilka luk na przestrzeni lat, więc chciałbym zasugerować książki dla każdego z tych obszarów.

Nowi inżynierowie zwykle nie rozumieją współbieżności bez względu na język. Koncepcja równoległego uruchamiania wielu wątków przy jednoczesnym zapewnieniu odpowiedniego poziomu synchronizacji między nimi nie jest łatwa do zrozumienia. Osobiście wiele się nauczyłem, czytając „ Współbieżność języka Java w praktyce ” pochodzącą z języka Java. W „ Efektywnej Javie znajduje się również dobra sekcja o współbieżności, którą trzeba przeczytać o tym, jak prawidłowo kodować w Javie.

Cyber -bezpieczeństwo to w końcu gorący temat w dzisiejszych czasach. Niestety, młodsi inżynierowie zwykle nie są świadomi koncepcji bezpieczeństwa stosowanych w ich kodzie. Dobrym miejscem do rozpoczęcia jest przeczytanie listy 10 najpopularniejszych OWASP i przeanalizowanie każdej luki w zabezpieczeniach aplikacji. Jestem wielkim fanem „ 24 grzechów głównych bezpieczeństwa oprogramowania: błędy programowania i ich naprawianie ”.

Nowi inżynierowie mają tendencję do skup się na kodowaniu. Uważają, że liczy się kodowanie i chcą szybko tworzyć dobry kod, czasami polegając na kodzie trudnym do odczytania, ponieważ mogą go wpisać bardziej zwięźle. Są tylko dwa problemy z tym myśleniem: każdy inżynier oprogramowania tworzy błędy, a inżynierowie oprogramowania pracują lepiej w zespołach! Jakość jest ważna, ważna jest również łatwość konserwacji. Osobiście lubię książki „Efektywna praca ze starszym kodem”, w których mowa o testowaniu i potrzebie testowania w celu ulepszenia kodu. „ Clean Code: A Handbook of Agile Software Craftsmanship ” podchodzi do tematu łatwości utrzymania, czasami z ekstremalnego punktu widzenia, co czyni ją świetną dyskutować jako zespół.

Nowi inżynierowie, zwłaszcza po studiach, mogą mieć trudności z dostosowaniem się do miejsca pracy i nowej pracy. Dotyczy to również każdego inżyniera, właściwie każdego, kto zaczyna również nową pracę. Jest taka świetna książka „ Pierwsze 90 dni: sprawdzone strategie szybszego i sprytniejszego poruszania się ”, która nauczyła mnie wielu koncepcji, jak zacząć nowa praca, w szczególności potrzeba struktury. Struktura jest świetna. To pocieszające, zwłaszcza w nowym otoczeniu. Uzyskuję spójne rezultaty, stosując ten sam przepis, jak wtedy, gdy pieczę z córką ciasto. Kiedy jedenaście miesięcy temu zaczynałem w Wayfair w Native App Team, po przybyciu zdecydowałem się zadać dość ogólne, ale spójne pytania, aby poznać ukształtowanie terenu. Te pytania nie tylko dały mi pojęcie o tym, co się dzieje, ale wiele mówiły o ludziach, z którymi się spotykałem. Przez około miesiąc wykonywałem misję rozpoznawania faktów, używając tego samego kwestionariusza co 1: 1, i pierwszego dnia zacząłem wymieniać moje obszary zainteresowania.

Tworzę oprogramowanie od ponad dwudziestu lat, czytając książki o przywództwie przez ostatnie dziesięć lat, więc nie krępuj się zapytać mnie o książki o przywództwie, jeśli wolisz nowsze lektury!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *