תכנות-תחביב/עבודה?

תכנות-תחביב/עבודה?

ביומיום שלי(תואר שני,כימיה חישובית) אני לא יותר מדי משתמש בתכנות אבל כשזה יוצא לי-זה נחמד,אני די אוהב לתכנת(עד כמה שזה נשמע מוזר). קשה לי להגדיר עצמי "מתכנת מנוסה" בגלל זה, ובדיוק עקב כך אני בא לשאול: מה כדאי ללמוד עוד כדי להעמיק הידע שלי בנ"ל(C++)? כדאי בכלל ללמוד עוד(מבני נתונים,אלגוריתמים וכו') או פשוט לנסות לצבור נסיון עם הכלים הנוכחיים הבסיסיים למדיי(לולאות,בקרות שונות,מבנים,טיפול בקבצים ומחרוזות ומעט רקורסיות)? זאת מתוך הנחה שאני רוצה,בבוא הזמן,להגיד שאני באמת מתכנת ולא "מהצד" או "בכאילו"(וכו'), לדעת ולהציג נסיון רציני בתחום. ונניח ואני רוצה לפתח אלגוריתמים (לעשות בזה תואר שלישי,למשל)בבוא הזמן,האם ניתן להיכנס לתחום ללא ידע מתמטי נרחב(כרגע מכיר קצת חדו"א ואלגברה לינארית מקורסים שעשיתי באוני' אבל בטח שלא נגעתי ברמה של "תהי פונקציה....(הרבה אותיות לטיניות)"? וכנ"ל בעניין התכנות, ברמה שהצגתי לעיל. פשוט אני חושב על זה שסה"כ,למרות שהיו פעמים במהלך הקורס שרציתי לזרוק משהו על המסך של המחשב, אני אוהב לתכנת(האם אני טוב בזה?..היום היה מבחן והרגשתי שהיה בסדר...אבל מי יודע,אולי כתבתי תכניות עם יעילות של N בחזקת 10 ואז...קצת חבל
). אז למה לא לצבור בזה נסיון?..ממילא בבוא הזמן זה בהחלט לא יזיק לי. תודה מראש,מקווה שהבנתם אותי
 

vinney

Well-known member
כדאי מאוד לשלב

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