כיצד להפוך למפתח תוכנה


תשובה 1:

אולי מיומנות טובה שיש, אבל לא, לא כמקצוע כרגע.

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

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

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

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

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

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


תשובה 2:

אם אתה מתרגש מזה, כן!

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

הדבר הנהדר בלהגיע לתואר בתחום קשרי CS / IT הוא שיש הרבה אפשרויות שאינן פשוט "קידוד". הצוות הנוכחי שלי הוא למעשה צוות טכנולוגי והדרכה ואנחנו מטפלים בצד הטכנולוגי של העניינים, אך גם מעבירים את הסדנאות להכשרת עובדים במערכות ונהלים חדשים ועושים הרבה תיעוד טכני. אם אתה מסוגל להבין את האינטרס והמודעות של מערכת, תוכל ליישם את הידע במגוון דרכים ותוכל לעבוד בדרכך לתפקיד שמאפשר לך להיות מעורב בדברים טכניים ובעזרה. אֲנָשִׁים.

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

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

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


תשובה 3:

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

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

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

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


תשובה 4:

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

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

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

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

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

הצוות העולמי כפי שיש לנו בטריו.

תשובה 5:

אם אתה מבקר בבתי הספר המובילים, תראה שאין שום הבחנה בין מהנדס תוכנה למדען מחשבים. כל קורס 6 בוגר MIT הוא גם מדעני מחשבים וגם מהנדס. כנ"ל לגבי ברקלי, סטנפורד וכו '.

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

אחת הדוגמאות החביבות עליי בז'אנר הזה הוא הניגוד בין פיטר נורוויג לרון ג'פריז כאשר מתקיפים בעיה פשוטה (פותר סודוקו): http://gigamonkeys.wordpress.com/2009/10/05/coders-unit-testing/

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

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

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


תשובה 6:

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

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

אפשרויות אחרות שאני יכול לחשוב עליהם לקבל עבודה בהנדסת תוכנה עשויות להיות:

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

תשובה 7:

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

שנית, בנוסף למספר שפות בסיסיות כמו Java, C ++, C # וכו ', עליכם ללמוד כמה שפות סקריפט נפוצות כמו Python, Javascript וכו'. אלה שימושיות לפיתוח אינטרנט, יצירת כלים, אופטימיזציה של הסביבה שלכם ואפילו גרסה. ניהול בקרה (אם למעט כמה שימושים!).

ברוב המקרים תזדקק בסופו של דבר לכישורי מסד נתונים. למד אודות נורמליזציה, SQL ושיטות עבודה טובות במסדי נתונים במינימום מוחלט. יש הרבה מוצרי מסדי נתונים בחינם או בגרסאות מוגבלות שיעזרו לך ללמוד. התחלתי עם Microsoft Access, ואז MySQL, לפני שעברתי לאורקל וכו '. בכל ארגון עסקי מסד נתונים הוא המלך. כשאני מנתח חברה אני תמיד פונה ישר לאנשי מאגרי המידע (ומדחה את החבר'ה והבחורים הפונקציונליים / תהליכים לפגישות הצהריים).

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

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

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


תשובה 8:

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

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


תשובה 9:

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

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


תשובה 10:

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

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


תשובה 11:

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