אני לא בטוח. בגאמפא מחפשים מהנדסים, לא מתכנתים, וחשיבה אלגוריתמית זה בסיסי בשביל מהנדס תוכנה.
אציין מראש שאני מאוד מאוד מאוד אוהב leetcode ודומיהם, ולי ברמה האישית הרבה יותר נוח לפתור שאלה בleetcode מאשר להתחיל לעשות מטלת בית או מיליון ואחד דברים כאלה וכנראה שיהיה לי קל יותר ככה.
לגבי leetcode ותכנות:
גם אם מניחים שleetcode זה קורלציה גבוהה לחשיבה אלגוריתמית,
וגם אם חשיבה אלגוריתמית הכרחית להנדסת תוכנה,
מתכנת שהוא לא חזק אלגוריתמית יכול לפצות בהרבה דברים אחרים:
רצון להוכיח, השקעה, מחויבות, יכולות חברתיות
בראייה שלי מתכנת אידאלי מראיית עולם ביזנסית:
- יודע להתחשב בהמון פרמטרים ולתכנן לעתיד
- יודע לא לתכנן יותר מידי ולא להתעכב על בעיות עתידיות
- יודע לעבוד עם המון stakeholders
- יודע לכתוב קוד בהיר ומובן
- הקוד שלו רץ חלק וscalabily
- יודע לעבוד מהר
- אפשר לסמוך עליו שהעבודה תתבצע בזמן
- בעל יכולות חברתיות שמאפשרות לו לעבוד בצוות - כולל וזו בעיה של הרבה אנשים חכמים - לא יהיר מידי
- פוליטיקה ארגונית - זה רמה יותר גבוה של יכולות חברתיות, שיכולה להרים בן אדם
- יודע להודות בטעות ולבקש עזרה
- יודע להשתמש בספריות ובעזרים חיצונים(SO/GOOGLE/GPT/ETC...)
אם אדם יודע לכתוב קוד טוב,והקוד לא הכי טוב אלגוריתמית, אבל מבחינת הדרישות, הוא עונה לדרישות, רץ מהר, נכתב בזמן סביר, בהיר, וסקיילבילי מספיק, אז הקוד טוב.
אם אתה כותב אתר, ועשית משהו בסיבוכיות ריבועית שאפשר לעשות בסיבוכיות לינארית, אז טכנית, ולי לקח המון זמן להבין את זה, נכון הקוד שלך לא יעיל, אבל אם הקלט המקסימלי, הוא במאות, והפונקציה מסיימת את עבודתה בזמן סביר, והקוד ברור ל95% מי שקורא אותו,
אז מה הופך אותו לרע? השיפור התאורטי?
עכשיו נניח באמת יש בעיה אלגוריתמית והקוד הזה לא עומד כבר באלפי בקשות, אבל מצד שני אפשר לעשות לו שיפור קטן, למשל לחלק לחלקים קטנים והוא יעבוד, נכון עדיין לא יעיל אבל יעבוד.
עכשיו מבחינת הביזנס, יש בן אדם שנותן פתרונות, אין לו תואר, אבל הכל עובד,
מבחינה עסקית, הרבה חברות ישמחו להעסיק אותו
כמובן שיעדיפו אדם שהוא גם אלגוריתמקאי נפלא, אבל אם ב95% מהמקרים הוא נותן עבודה טובה מאוד וב5% מהמקרים צריך שהראש צוות/ ארכיטקט/חבר לצוות יעזור לו, אז הרבה ישמחו לקחת אותו.
עכשיו נניח ויש אלגורתמיקאי טוב, האם בהכרח הוא יהיה טוב בכל שאר הדברים - שמאוד חשובים גם- כמו אותו אדם?