25 במאי 2017

על מתכנתים ומשרות

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

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

14 במאי 2017

Equilibrium index on array

רמת קושי: בינוני

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

LeetCode

דרישות:
  • יעילות זמן - n
  • יעילות מקום - 1
  • במידה וקיימים מספר אינדקסים מתאימים - יש להחזיר את הראשון

13 במאי 2017

Performance issue in Python

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

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

3 במאי 2017

Single number on unsorted array

רמת קושי: קל

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


דרישות:
  • יעילות זמן - n
  • יעילות מקום - 1
  • המספרים במערך יהיו מסוג int

2 במאי 2017

Fizz Buzz - הצעה לפתרון

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

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


1 במאי 2017

Fizz Buzz

רמת קושי: קל

הדפס סדרה של מספרים לפי כללי Fizz Buzz.

LeetCode

דרישות:
  • המספר המתקבל לפונקציה יהיה int גדול מאפס.
  • יש להחזיר רשימה המכילה את כל המספרים החל מ-1 לפי הכללים הבאים.
  • אם המספר מתחלק ב-3 יש להחליף אותו ב-"Fizz"
  • אם המספר מתחלק ב-5 יש להחליף אותו ב-"Buzz"
  • אם המספר מתחלק ב-3 וגם ב-5, יש להחליף אותו ב- "FizzBuzz"

30 באפריל 2017

Second max on numbers array - הצעה לפתרון

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

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

29 באפריל 2017

Second max on numbers array

רמת קושי: קל
מצא את המקסימום השני במערך של מספרים.


דרישות:
  • המספרים יכולים להיות חיוביים או שליליים.
  • המספרים אינם ממויינים.
  • יעילות מקום - 1 
  • יעילות זמן - n
דוגמא:
[2,4,6,5] -> 5

22 באפריל 2017

איך מתכוננים לראיון עבודה בתכנות ?

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

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

19 באפריל 2017

מה הופך מתכנת רגיל למתכנת טוב ?

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

בפוסט הזה נתרכז בנושא איכות הקוד.

28 במרץ 2017

האם מדעי המחשב הוא חובה עבור מתכנת ?

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

27 במרץ 2017

רוצה להיות מפתח ?

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

לא יכול לחשוב על דרך טובה יותר לפתוח את הבלוג הזה.