מפתח תוכנה? הנה שישה דברים שלא למדת באוניברסיטה
השנים שבילית באקדמיה הם בעלות ערך רב, אך לא בהכרח מכינות אותך לחיים כמפתח תוכנה. הנה שישה דברים שלא למדת באוניברסיטה וכדאי מאוד שתתעמק בהם
מחפש משרה בעולם התוכנה? רוצה לדעת יותר על חייו של מפתח? מעוניין לשפר את הסיכויים שלך להתקבל לעבודה ולהשתלב בה טוב יותר? אם התשובה לשאלות הללו היא כן, אז רוב הסיכויים שסיימת או שאתה עומד לסיים את לימודי התואר הראשון שלך. השנים שבילית באקדמיה הם בעלות ערך רב, אך לא בהכרח מכינות אותך לחיים כמפתח תוכנה. נקדים ונאמר כי הפוסט הזה לא בא לענות על השאלה אם לימודי תואר ראשון הם תנאי הכרחי ומספיק על מנת להיות מתכנת טוב, וגם לא איזה אוניברסיטה מכינה אותך טוב יותר. פוסט זה מנסה להצביע על דברים שבד"כ מתעלמים מהם באקדמיה ואיך אפשר לזכות ביתרון יחסי על פני מפתחים מתחילים אחרים. בהמשך מוצגות 6 נקודות שינסו לעזור לכם להשיג מטרות אלה.
הכרת המבנה של חברת תוכנה
אמנם מבנה חברות תוכנה משתנה בין חברה אחת לחברתה, אך ברוב המקרים החברה תורכב ממפתחים, QA, Support, Product ו-IT. הבנת המבנה תעזור למועמד להבין טוב יותר את הגדרת התפקיד אליו הוא מתראיין, לעובד חדש להשתלב טוב יותר ולאמץ את התהליכים העסקיים של החברה מהר יותר ועוד.
הכרת מתודולוגיות פיתוח
בין אם זה Waterfall או Scrum, Agile או לא, הכרת הגישות השונות יכולה להעניק מושג על חיי המפתח. הכרת הגישות השונות יכולה אף לעזור בבחירת חברה שתתאים טוב יותר. לדוגמה, ספר מומלץ למתודולוגית Scrum הוא Agile Software Development with Scrum.
כלים לניהול קוד ותהליכי פיתוח
- בוגר תואר ראשון יכול לסיים את התואר עם ידע אפסי על כלים לניהול קוד כמו SVN, Git וכו', אשר נמצאים בשימוש נרחב בחברות תוכנה.
- Continuous Build רלוונטי לתהליך בקרת איכות.
- Integration Test רלוונטי לשלב בתהליך הפיתוח.
- Issue tracking systems כגון Trac ו Jira – הפועלים ככלים לניהול תהליכי הפיתוח.
קווים מנחים לכתיבת קוד
אין צורך להבהל אם לא קודדת הרבה במהלך התואר הראשון שלך (אין הכוונה לבוגר שכתב תוכניות קצרות בלבד – יש לשאוף לכתוב כמה שיותר קוד במהלך התואר). יחד עם זאת – אומרים שלוקח 100 חזרות ללמוד איך לעשות Squat נכון, אבל לוקח 10,000 חזרות לתקן תנועה שלא נלמדה נכון.
למד את עצמך כיצד לכתוב קוד טוב מהשלב הראשון. ספר נהדר להתחיל הוא Code Complete, Second Edition.
שליטה ב-IDE
סביבות IDE הינם כלים נהדרים. מומלץ להתמקד ולשלוט באחד מהם. הם באמת עושים את החיים לקלים יותר ומספקים גישה נוחה לטכנולוגיות קיימות וחדשות. יחד עם זאת, יש לשים לב לא לאמץ IDE מהר מדי. אתה עלול להיות נבוך כאשר מישהו יבקש ממך להריץ תוכנית משורת הפקודה או להסביר את המושג Classpath. יש להיות מודע לכך שיש עולם מחוץ ל-IDE .
ניצול קוד פתוח
נניח כי יש לך רעיון גדול עבור פרוייקט חדש. רוב הסיכויים כי חלק גדול של תשתית הפרוייקט כבר זמינה כקוד פתוח. יתר על כן, בחירת הטכנולוגיה המתאימה יכולה לחסוך לך כמות עצומה של זמן. מפתח מתחיל צריך להבין כי קוד פתוח הוא כלי רב עוצמה שניתן למנף אותו כך שאין צורך להמציא את הגלגל בכל פעם מחדש.
לסיכום, הטיפ הטוב ביותר שאנחנו יכולים לתת למפתח מתחיל הוא להצטרף ליוזמת קוד פתוח. פעולה שכזאת בהחלט יכולה לעמת אותו בפני רוב המושגים הנ"ל, לתת לו טעימה מעולם התוכנה, ולעשות את ההבדל בינו לבין מפתחים מתחילים אחרים. כיוון שעולם הקוד הפתוח הינו רחב יריעה ונוגע לכל שפות התכנות ולמבחר עצום של תחומים, החל ב-Gaming וכלה ב-Android, בחירת כיוון ההתמקצעות הינה שלך בלבד.
נדב עזריה ורועי גמליאל חולקים בלוג בו הם כותבים על חוויותיהם כמפתחי תוכנה, משתפים תובנות טכנולוגיות וסוציאליות מעולם זה, ומספרים על טכנולוגיות חדשות שהתנסו בהם. שניהם בוגרי תואר שני במדעי המחשב, ועוסקים בפיתוח תוכנה למחייתם. הפוסט פורסם לראשונה באנגלית בבלוג DeveloperLife.
הגב
15 תגובות על "מפתח תוכנה? הנה שישה דברים שלא למדת באוניברסיטה"
* היי, אנחנו אוהבים תגובות!
תיקונים, תגובות קוטלות וכמובן תגובות מפרגנות - בכיף.
חופש הביטוי הוא ערך עליון, אבל לא נוכל להשלים עם תגובות שכוללות הסתה, הוצאת דיבה, תגובות שכוללות מידע המפר את תנאי השימוש של Geektime, תגובות שחורגות מהטעם הטוב ותגובות שהן בניגוד לדין. תגובות כאלו יימחקו מייד.
יש לי הרבה כבוד כלפי האקדמיה, אבל לא כשזה מגיע להכשרת בוגרי תואר ראשון במדעי המחשב.
הרשימת מכולת שניתנה פה היא חלקית, אך כבר לבדה היא תנאי הכרחי להצלחתו של איש מקצוע בעולם התוכנה.
כשאתה משווה את ההשכלה הפרקטית שמקבל סטודנט בטכניון ב4 שנים מול ההשכלה שמקבל בוגר ממר"מ אחרי חצי שנה בלבד, אתה מבין באמת את הפער.
אממממ.. נחמד – אפשר לקבל עוד פוסטים בנושא??
לא משווים צבא לאקדמיה. חייל הוא רק חייל. אקדמאי זה סטטוס אחר והרבה עבודה קשה גם בתור סטודנט וגם בתור סטודנט (הרבה כסף, עבודה זמנית) הרבה השקעה.
בוגר ממרם מקבל את זה על חשבון הצבא. תחשבו על זה.
מה יש לחשבו על זה – זה קשקוש
חייל הוא רק חייל
אקדמאי זה סטטוס אחר
אנחנו בודקים את היכולות ואת הידע
לא משווים צבא לאקדמיה. חייל הוא רק חייל. אקדמאי זה סטטוס אחר והרבה עבודה קשה גם בתור סטודנט וגם בתור סטודנט (הרבה כסף, עבודה זמנית) הרבה השקעה.
בוגר ממרם מקבל את זה על חשבון הצבא. תחשבו על זה.
אדון כאילו – לא יכולתי לנסח את זה טוב יותר.
++
בתור בוגר המסלול להנדסת תוכנה בטכניון (לפני שנים מעטות), אני חייב להגיד שדווקא יש דגש על 6/6. בכל אחת מהנקודות שהועלו נגענו בקורס אחד או יותר. אז אפשר להגיד שזה לא מספיק – אבל תואר ראשון נועד לעשות לך הכרה עם העולם ולבסס לך את העקרונות – את השאר, "צא ולמד"…
אני לא בטוח ש-6 הנקודות שפורטו הן-הן העיקר שחסר – אבל רק רציתי להגיד שאני דווקא כן למדתי עליהם באוניברסיטה!!
בישראל SCRUM אומר שלוקחים כמה טקסים ומעוותים אותם למיקרו מנג'מנט ברישיון. בישראל לרוב לא בוגרים מספיק בשביל SCRUM. בנוסף המחשבה שמוצרים יהיו טובים יותר עם הספק גדול יותר היא שגויה. מה שאתה מקבל זה קוד בינוני בהספק גדול יותר ובטווח הארוך זה מתנקם בך עם פניות גדולות יותר ממחלקות SUPPORT וQA. השאלה היא כמה זמן ייקח עד שיבינו את זה בתעשייה.
בלינוקס זה לא היה קורה.
בלינוקס גם היית צריך להתקין איזה 15 תוספים בשביל להצליח להגיב כאן בכלל
זה כי אתה גיי. היית יכל לפתוח סוקט לשרת בחינם.
לד"ר עמיר תומר, תודה על ההפניה למצגות הנהדרות. ותודה על שיתוף חומרי הקורסים עם הציבור.
האם יש לך המלצה לפרוייקט open source נחמד לאנדרואיד או בכלל?
אני מאוד רוצה להתחיל לעבוד על פרוייקט open source וקצת לא מוצאת מאיפה להתחיל
תודה רבה!