למה אני מתמכר לStackoverflow ואיך זה הופך אותי למתכנת טוב יותר

Alonisser ,29/11/2011

מה זה בכלל Stackoverflow?

אם לא הייתם  בסביבה בשנים האחרונות - אז Stackoverflow הוא אתר שאלות ותשובות למתכנתים.

שאלות ותשובות למתכנתים, עוד אתר כזה? אתם שואלים ובראש עולה לכם תמונת פורום עבש מהאינטרנט של 2001, עם קטלוג ותתי קטלוג של נושאים, עם חתימות gif מעצבנות עמוסות אמרות שפר ארוכות. פורומים עם שרשור תשובות ארוך שכל אחת מצטטת את הציטוט מהציטוט של השאלה הראשונה >>>>>>>. או experts-exchange עמוסי הפרסומות, שדורשים כסף ובסוף לא מספקים את הסחורה.

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

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

אז למה אני מתמכר לstackoverflow ואיך זה הופך אותי למתכנת טוב יותר?

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

רוצים להתחיל בStackoverflow?  הנה כמה טיפים:

  1. תשאלו מפורט: בסטאק אוהבים שאלות מפורטות, עם דוגמאות קוד (תשתמשו בעיצוב!) עם הפניות למה ניסיתם כבר וקישורים רלוונטיים, אם זה ארוך תעלו דוגמא בjsfiddle (לווב) או pastebin. תראו שהשקעתם והקהילה תחזיר. שאלה שאפשר למצוא את התשובה אליה בדף הראשון של גוגל תזכה לdownvote וסגירה מהירה. על שאלות טובות תקבלו הצבעות וניקוד והנה התחלתם.
  2. חפשו לפני שתשאלו: מישהו שאל את זה קודם, סתם מעצבן את כולם לענות שוב לשאלה שנשאלה אלף פעמים איך לצבוע באדום שורה עם css. אם לא מצאתם שאלות רלוונטיות עם תשובות טובות אבל יש משהו דומה - תקשרו לשאלה ותסבירו למה שלכם שונה.
  3. תשאלו במקום הנכון: אם זו שאלה כללית על פילוסופיות תכנות תשאלו באתר programmers.stackexchange אם על וורדפרס אז בwordpress.stackexhange וכו'. תכירו את רשת האתרים וכך תדעו איפה לשאול מה.  גם המוניטין (ניקוד) שלכם נודד בצורה מסויימת מאתר לאתר (בתנאים מסויימים).
  4. תייגו מדוייק: חלק מהעצמה של סטאק היא מערכת תגיות, התגיות מושכות עונים רלוונטיים ומרחיקות את מי שלא מכיר. השתמשו בתגיות שרלוונטיות לשאלה. עדיף שתכללו גם תגית ספציפית מאוד (נאמר Scraping with beautifulsoup) וגם תגית כללית (Python למשל) כך שתאפשרו גם מענה מכיוונים שלאו דווקא חשבתם עליהם מראש.  כמשתמשים מתקדמים ומרובי ניקוד גם תוכלו לתקן תגיות לאחרים או אפילו להוסיף תגיות לאתר.
  5. תנו כותרת: כמו בספרות, הכותרת קובעת אם מישהו יכנס לשאלה שלכם - תנו כותרת שמדייקת את הבעיה, את הטכנולוגיה שאתם משתמשים בה אבל לא מנופחת מדי.אגב אי אפשר להשתמש במילה Problem בכותרת, תחסכו מראש את הודעת השגיאה.
  6. תשתתפו, אל תנצלו: תצביעו על תשובות טובות ושאלות טובות (שתקבלו את ההרשאות המתאימות) - תסמנו את התשובה הנכונה כתשובה שפותרת. אם פתרתם לבד אל תתעצלו ותחזרו לשאלה המקורית כדי לסגור אותה עם תשובה שלכם.  ככה מופק ערך באתר.
  7. תפשו מקום: התחלתם לענות ואתם רוצים להוסיף קישור לספרייה המגניבה ההיא? שגרו כבר את התשובה לאתר ואז תלכו לחפש. אולי זה יספיק לענות לשואל? אם לא כבר תפשתם מקום ותוכלו רגע אח"כ לערוך את התשובה ולהוסיף.
  8. סמנו תגים: אתם לא יודעים לענות על כל נושא שבעולם, בחרו תגים וסמנו עליהם favorite.  וסטאק יסמן ויסנן לכם שאלות שיותר קשורות לנושאים שלכם.  תוכלו גם לעשות מנוי על תגים וסטאק ישלח לכם התרעות שיש שאלות חדשות בתגית שלכם.
  9. זה באינטרנט וזה ציבורי: תזכרו שזה ציבורי - תמחקו מהקוד סיסמאות וקודים לapi, או דברים שעלולים לסכן את הקוד שאתם מפתחים.

והנה מישהו שכותב על זה ביותר מילים - "שנתיים בstackoverflow"

וגם שלום עולם פוסט ראשון שלי שמתארח כאן.

Tags: ,

3 תגובות

  1. מאת אלי:

    הי
    לינק שבור ל"שנתיים בSackoverflow",
    חוץ מזה פוסט מעניין

  2. [...] אל תתביישו לשאול: תשאלו הרבה ומהר, אל תתנו לבעיה לתקוע אותכם, אבל תשאלו רק אחרי שדפקתם את הראש בקיר , חיפשתם בגוגל ובפורומים וכו'.  והנה גם מדריך שכתבנו בנושא stackoverflow. [...]

תגובה