ספרים ממומלצים מפי חבריי הקהילה

ניחשתם נכון!
זו רשימת כל הספרים המומלצים שאנשים מהפורום המליצו עליהם :exploding_head:

[הכנס רשימה כאן :wink:]


כמו ששמתם לב רשימת הספרים שלנו מצומצמת, והיינו שמחים להמלצות על ספרים שקראתם!

איך נותנים המלצה?
שלחו כתגובה את:

  • שם הספר שאתה ממליצים עליו
  • הנושא הכללי בו הוא מתעסק
  • מה למדתם ממנו
  • למה דווקא הוא?
  • במידה ויש לכם קשר אישי לספר (עורכים, כותבים או קשורים באיזה שהוא אופן) גילוי נאות דרוש.
5 לייקים
  • The Rootkit Arsenal - Bill Blunden
  • הספר עוסק ב-internals של rootkits בפלטפורמת Windows מנקודת מבט פיתוחית בעיקר
  • למדתי מהספר את כל העקרונות של rootkits, את ה-mindset של מפתחי rootkits, מה השיטות העיקריות על מנת להשיג הסתרה טובה והקשייה על ניתוח, כיצד לפתח windows device drivers, וכיצד לכתוב שלקוד טוב בווינדוס
  • הסיבה שאני ממליץ עליו היא שהוא הספר היחיד לגבי rootkits שבאמת עוסק קודם כל בבסיס ובונה יסודות טובים בהקשר של ארכיטקטורה ומערכות הפעלה, לעומת ספרים אחרים דוגמת subverting the windows kernel שלחלוטין לא עושים את זה ופשוט זורקים bloat של טכניקות בלי להסביר את העקרונות כמו שצריך ולבנות יסודות טובים. בסופו של דבר הוא נותן את אותו סט טכניקות + הרבה מידע על anti forensics וכל זאת תוך הנחלת עקרונות יציבים ונכונים בתחום. מומלץ מאוד לכל מתחיל עם רקע חזק בפיתוח ומחקר, אך ללא רקע ב-rootkits ואפילו בנוזקות
7 לייקים
  • Compilers: Principles, Techniques, and Tools - Aho, Lami , Sethi, Ullman
  • הספר מתעסק בפיתוח קומפיילרים, החל מניתוח לקסיקלי ועד לתכנון של runtime ואופטימיזציה
  • הספר עזר לי לפתח בסיס תיאורטי חזק בנושא parsing וlexing וSDT, הספר מכיל נושאים יותר מתקדמים כגון אופטימיזציות ותכנון זמני ריצה
  • לא נתקלתי בעוד ספר בנושא, שמצליח להסביר בצורה כל כך טובה את כל הגוונים של פיתוח קומפיילרים, בין אם הנושא המוסבר הוא תיאורטי ובין אם הנושא המוסבר הוא פרקטי , הכל מוסבר בצורה קולחת ומעניינת. הספר מאגד בתוכו (כמעט) כל נושא אשר מתכנן קומפיילרים צריך לדעת כדי ליצור קומפיילר.
    אישית היה לי ממש חסר בספר פרקטיקה, אני חושב שהוא תיאורטי מדי, אבל זה בהחלט תלוי בקורא.
    הספר מומלץ ומתאים לכל מי שמתעניין בנושא ובעל ידע וניסיון בתכנות, ידע באלגברה ליניארית ומתמטיקה בכללי יהיה פלוס עצום, בכל הנוגע לפרקים באופטימיזציה
2 לייקים

קצת תכנות:

  1. הספר Clean Code של Uncle Bob הוא קלאסיקה לאיך כותבים קוד שנראה טוב. מי שמחפש לשפר מעט את הצורה והנהירות של הקוד שלו – כדאי.
  2. הספר The Pragmatic Programmer הוא ספר מצוין שהשאיר חותם מאוד משמעותי בחלק מהטיפים שהוא נותן. הוא נותן מוטיבציה ורעיונות לאיך ניגשים לקוד ואיך כותבים אותו כמו שצריך. לא קראתי את המהדורה החדשה, אבל הישנה מצוינת (עד בערך אמצע הספר ממש מצוינת, משם והלאה – בסדר).3
  3. הספר Programming Pearls הוא ספר עם חידות מדהימות שממש כיף לראות איך הם פותרים אותם ואיך הם מפרקים את המחשבה בנוגע לפתרון שלהם.
  4. “גדל, אשר, באך” (יש גם בעברית, התרגום ממש אחלה!) הוא ספר נהדר. הוא לא קשור באופן ישיר לתכנות, אבל צורת החשיבה והפיתוחים הלוגיים שם כייפים לאללה.
  5. הספר A Philosophy of Software Design הוא קצת מתקדם, מדבר על איך מעצבים תוכנית נכון, ומדבר על גישות מובילות בכתיבת תוכנה.
  6. לאנשים שמרגישים בנוח בפייתון, ממליץ על הספר Fluent Python. הוא ספר ברמת ביניים+ שאישית למדתי ממנו הרבה. הוא מצוין כדי ללמוד טכניקות וגישות שונות, אבל הוא לגמרי מניח שאתם יודעים את רמת הבסיס.7
  7. עוד אחד כזה, שאני מאוד מחבב הוא Effective python. הגרסה האחרונה שלו אאל"ט מתייחסת לפייתון 3.8, שזה סופר מרשים ועדכני.
  8. לראיונות: Elements of programming interviews in python עבור החידות, Cracking the coding interview עבור החלק האישיותי.
4 לייקים
  • Understanding the Linux kernel

  • הספר עוסק בבסיס והעקרונות של קרנלים ממשפחת יוניקס, ספיציפית לינוקס.

*לדעתי ספר חובה לכל מי שרוצה להיכנס למחקר קרנלי.
מסביר בערך כל אספקט רלוונטי שצריך לדעת כדי להבין דוקומנטציות ומאמרים מתקדמים. מסביר הכל החל מקונספטים פשוטים כמו חריגות עד לאיך המעבד פיזית מחליט איזה אינטרפט לבצע, ברמת החומרה.
יכול להעיד על עצמי שהוא פותח את הראש לעוד נושאים כמו חקר חולשות חומרה. מסביר מה זה race conditions במעבדים, המון המון חומר מקיף שלעיתים אפילו נראה יותר מדי מעמיק.
לדעתי ספר חובה לכל מי שרוצה לקרוא לעצמו חוקר קרנלי (אתה יודע מה כל הגורמים ל-page fault? מה ההבדל בין הקצאות קרנליות כמו kmalloc ו-vmalloc? מה ייתרונות וחסרונות בהקצאה של זיכרון רציף? אם אתה לא יודע, קרא את הספר).

  • יש כל מיני ספרים שסוקרים את הקרנל. הספר הזה גם שואב ידע/השראה מספרים אחרים. אני אישית מאוד אהבתי את התוכן של הספר, שברובו הגדול מאוד רלוונטי לכולם.
5 לייקים
  • Windows Kernel Programming - Pavel Yosifovich
  • הספר עוסק בפיתוח device drivers תוכנתיים ל-Windows
  • למדתי ממנו את כל הבסיס לגבי Windows internals, פיתוח קרנלי, WDM, פיצ’רים שהקרנל מספק לפיתוח דרייברים, התנהגות של ה-I/O Manager, פיתוח של Minifilter Drivers, טיפה נגיעה ב-Filter Drivers
  • הסיבה שאני ממליץ דווקא עליו היא שבעיני, זה הספר המושלם עבור היכנסות לפיתוח קרנלי עבור חבר’ה עם רקע יוזרמודי בווינדוס. הוא לא משעמם בכלל, לא זורק יותר מדי למים של Windows internals, אלא מסביר את הבסיס, ודואג שכל נושא שנזרק שם מקבל המון הדגמה פרקטית. ממנו אפשר אחר כך להתקדם לספרים יותר רציניים על מחקר ופיתוח קרנלי, אבל הוא נקודת התחלה מצוינת והוא באמת מרתק (מה גם שאין כל כך הרבה חומרים על Windows internals, זה תחום שלומדים בשלב מסוים כבר רק מרברסינג :wink:)

(בכל יום אזרוק המלצה על ספר אחר, לא רוצה להעמיס הכל בבת אחת :slight_smile:)

6 לייקים