JavaRush /בלוג Java /Random-HE /10 ספרי התכנות המובילים למתחילים
Max Stern
רָמָה
Нижний Новгород

10 ספרי התכנות המובילים למתחילים

פורסם בקבוצה
יש לי עמית שערך הרבה ראיונות טכניים עבור ג'אוויסטים לעתיד. שאלתי אותו פעם מה משפיע על ההחלטה להעסיק מועמד ללא ניסיון אמיתי בבחירה בין אנשים בעלי כישורי שפה שווה בערך. בהתחשב במצב השוק, אני חושב שהשאלה הזו רלוונטית לרבים מכם. 10 הספרים המובילים בנושא תכנות למתחילים - 1"תשוקה לטכנולוגיה, היכולת לבחור את האפשרות הטובה ביותר לפתרון בעיה, ידע כללי ב-IT, הבנה של מה מצפה לו בעבודה" - זו הייתה התשובה שלו. פעם תיארתי במאמר את ספרי התכנות למתחילים שעזרו לי ללמוד ג'אווה. במאמר זה, אתמקד בפרסומים שיעזרו למתכנת מתחיל לזכות באותה מיומנות IT, הבנה של עבודה עתידית, וגם לפשט את המשימה של בחירת הפתרון הטוב ביותר. כלומר, לקבל עבודה ולהתפקד בה כמה שיותר מההתחלה. הרכבתי את הרשימה הזו לפי ההעדפות שלי, כך שהיא עשויה להיות סובייקטיבית במקצת. יש גם ספרי תכנות קלאסיים לסטודנטים וגם ספרי עיון למתכנתים מכל הדורות.

שיפור הקוד והפרודוקטיביות

רק לכתוב קוד זה לא מספיק. חשוב לכתוב אותו היטב, להצליח לשפר אותו, וגם להבין איך הוא מתפתח באופן כללי. הספרים הבאים למתכנתים מתחילים ואחרים עזרו ליותר מדור אחד של מומחים להתמודד עם התהליך הטכנולוגי הקשה של פיתוח תוכנה.

מתכנת פרגמטי. מסע אל המאסטר (אנדרו האנט, דיוויד תומאס)

שם מקורי: המתכנת הפרוגרמטי מ-From Journeyman to Master מאת אנדרו האנט ודיוויד תומס 10 הספרים המובילים בנושא תכנות למתחילים - 2אם לא קראתם את הספר הזה, סביר להניח שנתקלתם שוב ושוב בציטוטים ממנו בפורומים ובמשאבים מיוחדים. הדימוי של מתכנת פרגמטי בספר הזה כל כך ברור ואידיאלי עד ש... אפשר לקרוא לו רומנטיקן, לא משנה כמה זה נשמע פרדוקסלי. אף על פי כן, העצות מהספר הן מעשיות ורלוונטיות, למרות גילו המתקדם. אני לא יודע למה להשוות את "המתכנת הפרגמטי" בעולם ספרי התכנות. האנלוגים הקרובים ביותר מהעולם הזה הם "הברית הישנה" או איזה ספר בישול סופר מגניב. ב"פרגמטיקה" הכל מאוד ספציפי וישים בצורה מקסימלית בפועל. לפעמים זה מגיע לנקודה של בנאליות (למשל, הסעיף על תקשורת אפקטיבית מכיל כללים בסיסיים של נימוס עסקי), אבל לפעמים העצות מהספר הן חסרות תחליף, במיוחד אם למפתח מתחיל אין מנטור סבלני וקשוב. אלו הם טיפים על חזרה על קוד, יצירת אב טיפוס, הערכה. או תזכורת לחוסר האפשרות ליצור תוכנית מושלמת. יש גם נקודות טכניות שימושיות הקשורות, למשל, לקוד ניפוי באגים, בדיקת יחידות או מהירות האלגוריתמים... בקיצור, מה צריך להתכונן לקריירה כמתכנת.

Refactoring שיפור הקוד הקיים (מרטין פאולר)

שם מקורי: Refactoring: Improving the Design of Existing Code מאת מרטין פאולר, עם קנט בק 10 הספרים המובילים בנושא תכנות למתחילים - 3אם תבקשו ממישהו לרשום את ספרי התכנות הטובים ביותר לקידום הקריירה בכל הזמנים, מישהו בטוח יזכיר את "Refactoring". מישהו יכול לומר שהספר הזה מיושן, ובמובנים מסוימים הם יהיו צודקים. הוא נכתב בתקופה שבה הפקטורינג עדיין לא היה כלל אוניברסלי, וחלק מהאמיתות בו ברורות למתכנתים שואפים של ימינו. אף על פי כן, טכניקות ה-refactoring מתוארות בו כל כך טוב ומפורט (במקומות מסוימים, הייתי אומר אפילו במילים) עד שכל מתחיל ימצא בו משהו שימושי. לפני כמה שנים יצאה מהדורה מעודכנת של הספר ונוספו טכניקות חדשות, וזה נהדר. בנוסף, הדוגמאות בספר זה כתובות ב-Java. החיסרון היחיד שאני יכול להזכיר הוא הדיבור. למרות זאת, אני ממליץ על הספר.

קוד נקי (רוברט מרטין)

שם מקורי Clean Code: A Handbook of Agile Software Craftsmanship מאת רוברט סי מרטין 10 הספרים המובילים בנושא תכנות למתחילים - 4ספר זה, למרות שהוא חדש יותר מהקודם, הפך גם לקלאסיקה של ספרי תכנות. "הדוד בוב", כפי שמכונה לעתים רוברט מרטין בקהילת התכנות העולמית, הוא אחד ממחברי המניפסט Agile, כמו גם כמה מהעקרונות של תכנות "טהור" מודרני, למשל, SOLID. אפשר להתייחס לאחד הלייטמוטיבים העיקריים של הספר... אמפתיה או פשוט יחס טוב לכל מי שיצטרך לעבוד עם הקוד שלך (כולל עצמך בעתיד). רוב כללי "קוד נקי" מבוססים על העיקרון הפשוט הזה והשכל הישר. רוב הכללים והעצות נראים נכונים מאוד, כאלה שמתערבלים באופן אינטואיטיבי בראש, אבל לא קל לנסח אותם בצורה ברורה. עם זאת, אפשר להתווכח עם כמה ממחשבותיו של המחבר: לפעמים הוא קטגורי ביותר. לדוגמה, הוא כותב שקוד טוב לא מצריך הערות. למרות זאת, הספר חובה לקרוא.

עבודה יעילה עם קוד מדור קודם (Michael Feathers)

הכותרת המקורית Working Effectively with Legacy Code מאת Michael Feathers 10 הספרים המובילים בנושא תכנות למתחילים - 5החיים לא הכינו אותך לזה... לא, באמת: אם אתה רק לומד, אתה לא יכול לתאר לעצמך איזה כאב זה לעבוד עם בסיסי קוד מדור קודם, אשר כנראה נכתבו על ידי סבו של ביל גייטס. הקוד הזה כתוב לרוב בצורה שונה לחלוטין ממה שהורגלתם אליו, ומתועד כל כך גרוע שלפעמים רוצים למצוא את המחבר שלו ו... אבוי: החיים של מתכנת ג'אווה בפרויקטים גדולים קשורים לעתים קרובות מאוד לתמיכה מדור קודם. ספר זה יכול לעזור בהיבטים הטכניים של עבודה עם קוד עתיק, אבל הוא גם יכול לעזור לך להשלים עם גורלך. וכן, אני רציני. ספר זה יהיה שימושי עבורך אם אתה מכוון היטב לחברת מיקור חוץ או מוצר עם פרויקטים גדולים.

ראש תחילה. דפוסי עיצוב (אריק פרימן, ברט בייטס, קתי סיירה, אליזבת רובסון)

הכותרת המקורית Head First Design Patterns: A Brain-Friendly Guide מאת אריק פרימן, ברט בייטס, קתי סיירה, אליזבת רובסון 10 הספרים המובילים בנושא תכנות למתחילים - 6דפוסי עיצוב הם אותם כללים לוגיים של צורה טובה, שאם לא תלמד אותם לאורך זמן, יעלו בראש ( או לא...) ואשר ממש הופכים לכוח העל של מתכנת מתחיל אם מתחילים להסתכל עליהם מוקדם ככל האפשר. כן, בהתחלה זה שימושי לשחק עם פרויקט אישי מורכב יחסית ולנסות לפרק אותו לתת-משימות בעצמך... ובסופו של דבר למצוא את אותו דפוס. עם זאת, כשזה מגיע לעבודה, לא תמיד יש מספיק זמן לניסויים. כשקיבלתי את ההתמחות, ידעתי מעט מאוד על דפוסים: בזמן שלמדתי ב-JavaRush, פשוט דילגתי על כל המפעלים האלה, יחידות, זריקות, תלות, מתוך מחשבה שאבין את זה כשצריך. עם זאת, היה צורך להבין את זה מהר מאוד, וזה היה הספר "הראש הראשון. עיצוב דפוסי" עזר לי עם זה. זה כתוב בקלות, מלא באיורים והומור... אני חושב שהמצגת לנושא "תבניות עיצוב" חשובה מאוד: אפשר להציג אותה בצורה מאוד משעממת, או שהיא יכולה להיות מוצגת כמו בראש. תוספת נהדרת ל-"Clean Code" ו/או "Refactoring"!

ארכיטקטורת מחשבים ומדעי המחשב כלליים

כמה חשוב למתכנת עתידי להבין את ארכיטקטורת המחשב, לדעת איך בנויות מערכות הפעלה ואיך בנויים מסדי נתונים? זה לא עובדה שהידע הזה יועיל לך בעבודתך. אבל הם בהחלט יעזרו לך להפגין את התשוקה שלך לתחום ה-IT ולידע ה-IT. והכי חשוב: אם אתה יודע איך הכל עובד, זה יעזור לך לפתור בעיות טוב יותר. מידע 100%. אז הנה עוד שני ספרים שיעזרו לך.

קוד (צ'רלס פצולד)

הכותרת המקורית Code: The Hidden Language of Computer Hardware and Software מאת צ'רלס פצולד 10 הספרים המובילים בנושא תכנות למתחילים - 7המהדורה הראשונה של "קוד" ראתה את העולם בתחילת שנות ה-2000, אבל למעשה היא הייתה יכולה להופיע מוקדם יותר או מאוחר יותר - ועדיין הייתה רלוונטית. העובדה היא שבספר זה מוסברת פעולתו של מחשב ברמה מאוד מאוד נמוכה, החל מהאופן שבו אותם אפסים ואלה עובדים, והדוגמה הטכנית הראשונה היא מעגל פנס, שיכול להיחשב הפשוט ביותר. -bit computer... לא, אתה לא חושב שהכל בספר הוא מאוד פרימיטיבי. למעשה, בדיוק ההפך... הוא מתאר מעגלים של מחשבים, עם פקודות, פעולת זיכרון ומערכות הפעלה במהותם. אולי אחרי שקראתי את זה הבנתי איך מחשבים עובדים. למרות שהארכיטקטורה וערכת ההוראות של המעבד משתנה, ורוחב הפס של הזיכרון גדל, למעשה, המחשבים עובדים בדיוק אותו הדבר. האם מתכנת Java צריך את הידע הזה? מעט מאוד אנשים יזדקקו להם ישירות בעבודתם. אבל בעקיפין, לעתים קרובות נעזרתי בעבודה שלי מהעובדה שהבנתי איך הכל עובד בפועל.

מבוא למדעי המחשב (גלן ברוקשייר, דניס ברילוב)

שם מקורי Computer Science: An Overview מאת גלן ברוקשיר ודניס ברילו 10 הספרים המובילים בנושא תכנות למתחילים - 8הספר הזה הגיע אליי באוניברסיטה, כשלמדתי את היסודות של מדעי המחשב. רק אני קיבלתי תרגום של המהדורה השישית, וכרגע המהדורה ה-13 עדכנית. הספר הוא קורס יסוד במדעי המחשב הנלמד כבר שנים רבות באוניברסיטאות בארצות הברית ובמדינות נוספות. הכיסוי של החומר בו רחב מאוד: ארכיטקטורת מכונות, מערכות מספרים, עיבוד נתונים, מערכות הפעלה, עקרונות בניית מסד נתונים, מבני נתונים, מבני קבצים וכדומה. לא כל חלקי הספר כתובים באותה מידה. לדוגמה, פעם הייתי מאוד מבולבל מהסעיפים על שיטות עיצוב ומסדי נתונים, אבל הסעיפים על מערכות מספרים, חישובים סיביים, ארכיטקטורת PC ומבני נתונים ממש הדהדו אותי. הדבר הכי מגניב בספר הוא המספר העצום של תרגילים עם מפתחות. בנוסף לסטודנטים, ספר כזה נחוץ כנראה בעיקר על ידי אוטודידקטים ללא השכלה טכנית כדי להשלים את החסר ולקבל מושג על מדעי המחשב בכלל.

אלגוריתמים ומבני נתונים. ועוד התקפה!

בהתחשב עד כמה התכנות המודרני הפך לרמה גבוהה, הידע באלגוריתמים הפך פחות חשוב. עכשיו זה מספיק כדי להשתמש בספרייה הנדרשת ולא להתעסק במוח שלך לגבי הדרך הטובה ביותר למיין את המערך. עם זאת, עדיין תצטרכו לדפוק את המוח שלכם בעבודה, ויותר מפעם אחת. זוכרים את הנקודה "היכולת לבחור את הפתרון הטוב ביותר האפשרי" מתוך הדרישות למתכנת מתחיל? אז, לא משנה מה מישהו אומר, אני מחשיב אימון אלגוריתמי טוב כשדרוג מצוין למציאת פתרונות אופטימליים. לכן, שני הספרים הבאים עוסקים בהם. לגבי אלגוריתמים.

אנחנו מטלטלים את האלגוריתמים. מדריך מאויר למתכנתים ואדיתיה בהרגבה הסקרנית

שם מקור: Grokking Algorithms: מדריך מאויר למתכנתים וסקרנים אחרים מאת Aditya Y. Bhargava 10 הספרים המובילים בנושא תכנות למתחילים - 9המחבר עצמו כותב בתחילת הספר שאלגוריתמים לא הגיעו אליו מיד, והוא ניסה לכתוב "Grokking Algorithms" אז שיהיה קל לקריאה. הוא מיועד למתכנתים מתחילים, כלומר לאלה שיכולים לכתוב "שלום, עולם" ולדעת מה זה int, מחרוזת, לולאה, ענף ומערך. ובכן, זה יכול להציג את המערך על המסך. הידע הנדרש במתמטיקה הוא בערך ברמה של כיתות ו'-ז' של תיכון ללא כל סלסולים. וזהו הפלוס הרציני הראשון של הספר. הוא אינו מנסה לדמיין את הקורא כסטודנט למתמטיקה, כפי שעושים פרסומים רבים בנושא. כלומר, אם אתה מפחד ממתמטיקה, אלגוריתמים, כבר ניסית ללמוד את האחרון ולא הבנת כלום, הספר הזה מושלם לשיקום שלך בעיני עצמך. הנקודה החיובית השנייה היא שהספר דן במשהו שעשוי בהחלט להיות שימושי בפועל (הבנה שזה בהחלט נכון). זה מתחיל בהסבר על מהות החיפוש והיעילות הבינאריים – ממש על האצבעות ובהרבה תמונות. שלישית, הספר מכיל הרבה שאלות ותרגילים (דוגמאות קוד נמצאות ב-Python, אבל זה לא כל כך חשוב). נקודה שאולי חיובית עבור חלקם, אך שלילית עבור אחרים: הספר אינו מתיימר להיות ספר עיון מקיף. נניח שמתוך האלגוריתמים המקובלים ללימוד, יש כאן רק שניים - אלגוריתם הכנסה לא יעיל ואלגוריתם מיון מהיר יעיל. אני לא יודע למה המחבר לא צריך לשקול אלגוריתמים אחרים, למשל בועה או מיזוג. למעשה, אלגוריתם המיזוג מוזכר בספר, אך בקצרה, ללא ניתוח, ורק בהשוואה למיון מהיר. עם נושאים אחרים הכל בדיוק אותו דבר. יש יסודות שמכוסים היטב, אבל לפעמים אתה באמת רוצה המשך מעמיק יותר, אבל פשוט אין כזה. במילה אחת, יש לנו ספר מאוד בסיסי, שאחריו, סביר להניח, תרצו למצוא ספר שבו הכל מתואר יותר ברצינות. לדוגמה, הבא.

אלגוריתמים בג'אווה (רוברט סדג'וויק, קווין וויין)

שם מקור: אלגוריתמים מאת רוברט סדג'וויק וקווין וויין 10 ספרי התכנות המובילים למתחילים - 10למעשה, הספר הזה יכול להקסים ולהפחיד. זה יפחיד אותך לפחות עם הנפח שלו של... הרבה עמודים ואופי אקדמי מסוים. לכן, אם אתם לא נוטים לזה, אנשי אקדמיה, או לא מרגישים בטוחים במתמטיקה (תיכון, האלמנטים הפשוטים ביותר של מתמטיקה גבוהה למהנדסים), אז עדיף לא להתחיל עם הספר הזה. אין שם כל כך הרבה מונחים מתמטיים, אבל הגישה עצמה מניחה חשיבה כזו. אבל אחרי הספר הקודם - למה לא. היא תיתן לך מדריך. הפרק הראשון במקומות מסוימים מסכם את הידע ב-Java ומגדיר כמה מבני נתונים. עדיף לקרוא אותו באופן סלקטיבי, אבל לא יזיק ללמוד את הפרק השני והשלישי בפירוט מספיק. השאר גם מלאים במידע מעניין ויסודי על גרפים ומיתרים. הייתי אומר שדברים כאלה עוזרים מאוד בעיצוב הלך הרוח התכנותי. לגבי המצגת מרגישים שהכותבת היא מורה, אבל רגילה לעבוד עם אנשים שמתעניינים ומוכנים בעיקר. אז היו סבלניים ותקראו. וגם לפתור בעיות, יש הרבה כאלה כאן. אגב, ב-Coursera תוכלו למצוא קורס על אלגוריתמים שיצרו מחברי הספר.

הכר את המסגרת שלך

ולבסוף, עוד ספר אחד. ושוב - שימושי.

אביב בפעולה (קרייג ווללס)

שם מקורי: Spring in Action מאת קרייג ווללס 10 ספרי התכנות המובילים למתחילים - 11ספר מפורסם מאוד עם כריכה מפורסמת לא פחות עם "גבר בחצאית" שאינו לובש חצאית בפועל. בכנות, ללמוד את אביב מתוך ספר אחד בלבד היא משימה קשה מאוד, גם אם אתה מנסה לנסות הכל בפועל בבת אחת. אגב, זה יכול להיות קשה מאוד להבין איך עושים זאת לאחר קריאת פרק זה או אחר. עבדתי עם הספר הזה כשהגעתי להתמחות בחברה, וכשמשתמשים בו בצורה כזו, זה עוזר מאוד. יתרה מכך, גם היום, כבר עובד כמתכנת, אני חוזר אליו כל הזמן. בקיצור, אתה יכול לקבל מושג כללי על מסגרת Java הראשית בעזרתה.
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION