האם כדאי ללמוד DevOps כמפתח מתחיל - תשובה כנה¶
זו שאלה שאני מקבל הרבה, בדרך כלל מאנשים שרק סיימו ללמוד את היסודות של תכנות, ראו כמה סרטונים על Docker ו-Kubernetes, ופתאום מתלבטים אם הם בכלל הלכו בכיוון הנכון. אז בואו נענה על זה בכנות, בלי לפחד להגיד "לא עכשיו" כשזה נכון.
התשובה הקצרה¶
לא, אל תתחילו ללמוד DevOps ברצינות לפני שיש לכם בסיס מוצק בתכנות. אבל כן, כדאי מאוד שתכירו את המושגים הבסיסיים כבר בשלב מוקדם, כי הם ישרתו אתכם גם אם אתם נשארים בכיוון פיתוח קלאסי.
עכשיו בואו נסביר למה.
הבעיה עם לקפוץ ל-DevOps מוקדם מדי¶
DevOps הוא לא תחום שקיים בוואקום. כל הכלים והרעיונות שלו - Docker, CI/CD, ענן, ניהול תשתית - קיימים כדי לשרת אפליקציות. אם אתם עוד לא יודעים לכתוב אפליקציה סבירה, לומדים על מה שאמור להריץ אותה, זה כמו ללמוד לתחזק מכונית לפני שידעתם לנהוג בה. זה אפשרי, אבל זה לא הסדר ההגיוני, וזה יהיה הרבה יותר מופשט ומבלבל מבלי הקשר מעשי אליו זה מתחבר.
יש עוד בעיה מעשית: DevOps ותשתיות הם תחום עמוק ורחב. אם אתם מתחילים לפזר את זמן הלמידה המוגבל שלכם בין תכנות ל-DevOps בו זמנית, לרוב התוצאה היא שאתם לא באמת שולטים באף אחד מהם ברמה שמעסיק ירצה לראות. עדיף מיקוד - קודם בסיס תכנות רציני, ואחר כך העמקה בתשתיות.
אז מה כן כדאי ללמוד מוקדם¶
יש הבדל גדול בין "להתמחות ב-DevOps" לבין "להכיר את הבסיס שכל מפתח היום צריך". הדברים הבאים שווים לימוד גם למתחילים, כי הם יעזרו לכם בכל מסלול שתבחרו:
- Git ובקרת גרסאות. זה כבר לא DevOps, זה כלי עבודה בסיסי לגמרי לכל מתכנת.
- טרמינל ופקודות בסיסיות בלינוקס. מספיק כדי להסתדר ולא לפחד ממסך שחור.
- הבנה כללית של איך אפליקציה מגיעה לעולם. מה זה שרת, מה זה ענן, מה קורה כשלוחצים "פרוס" - לא ברמת מומחה, רק ברמת "אני מבין את התמונה הגדולה".
- Docker בסיסי. להבין מה זה קונטיינר ולדעת להריץ אחד. זה נהיה כל כך נפוץ שגם מפתחים "רגילים" נתקלים בזה תדיר.
זו לא רשימה ארוכה, ואפשר לעבור עליה תוך כמה שבועות מבלי לפגוע בזמן שמוקדש לבניית בסיס תכנות אמיתי.
מתי כן הגיע הזמן להעמיק בDevOps¶
יש כמה סימנים שאתם מוכנים לצלול פנימה ברצינות:
- אתם כבר יודעים לבנות אפליקציה שלמה - לא מושלמת, אבל שלמה, מהחזית ועד השרת, כולל חיבור למסד נתונים.
- בניתם כמה פרויקטים אישיים ופרסתם אותם בעצמכם, ולו בצורה בסיסית, ופגשתם את הכאבים האמיתיים של פריסה - שרת שנופל, גרסה שלא עולה, קונפיגורציה שמשתגעת.
- אתם מוצאים את עצמכם נמשכים דווקא לצד התשתיתי - יותר סקרנים איך הדברים רצים מאשר איך הם נראים למשתמש.
אם שלושת התנאים האלה מתקיימים, DevOps הופך מנושא מופשט לנושא שמדבר ישירות לניסיון שכבר צברתם, וזה בדיוק הרגע הנכון להעמיק בו.
גם למי שנשאר מפתח - זה שווה השקעה בהמשך¶
חשוב לומר משהו שלא תמיד אומרים בגלוי: היום ההבחנה בין "מפתח" ל"DevOps" הרבה פחות חדה ממה שהייתה פעם. מפתח backend מודרני נדרש להכיר Docker, להבין איך פועל צינור CI/CD, ולדעת לקרוא לוגים בענן - לא כי הוא DevOps, אלא כי זו הפכה להיות מיומנות בסיסית של תפקיד הפיתוח עצמו. אז גם אם אתם לא מתכננים להתמחות בDevOps באופן ייעודי, ההיכרות הבסיסית איתו תשרת אתכם בכל תפקיד פיתוח שתלכו אליו.
אז מה הסדר הנכון¶
התהליך המומלץ, בקצרה: קודם תבנו בסיס תכנות מוצק, כתבו קוד, פתרו תרגילים, בנו כמה פרויקטים. תוך כדי, תכירו את הכלים הבסיסיים - git, טרמינל, Docker ברמת מתחילים. ואז, ברגע שאתם מרגישים בנוח עם פיתוח ומתחילים לפגוש שאלות תשתיתיות בפועל, זה הזמן להעמיק - ענן, CI/CD, Kubernetes, ניטור.
בקורס צד-שרת שלנו בנינו את הסדר הזה בדיוק - קודם פיתוח API אמיתי, ורק אחרי זה פרק DevOps שלם, כדי שהמעבר יהיה טבעי ומחובר להקשר, לא קפיצה מנותקת לתחום מופשט.
קורס צד-שרת - חינם, בעברית, בסדר הלימוד שבאמת עוזר.
ואם אתם מתלבטים באיזה שלב אתם נמצאים ומתי כדאי לכם להתחיל להעמיק בDevOps, בואו לשאול בקהילה - זו בדיוק השאלה שאנשים שם שמחים לעזור להבין.
לסיכום¶
אל תרדפו אחרי DevOps רק כי הוא נשמע כמו המילה הכי חמה ברשימות הדרושים. תבנו קודם בסיס תכנות אמיתי, תכירו כלים בסיסיים בדרך, ותנו לעצמכם להעמיק בתשתיות כשיש לכם כבר ניסיון אמיתי לחבר אליו. הסדר הזה לא רק הגיוני יותר - הוא גם הופך את הלמידה של DevOps להרבה יותר קלה, כי פתאום כל המושגים המופשטים מתחברים לבעיות אמיתיות שכבר פגשתם בעצמכם.