עזרה: אני רוצה להעלות את רמת החשיבה האנליטית שלי

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

אדמה את זה למטאפורה:
אם עכשיו אני צריכה לרוץ 10 קילומטר, טכנית, אני יכולה.
מה קורה בפועל? זה קורה נורא לאט ובצורה נורא נסבלת, כי אני לא בכושר.

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

לייק 1

מתמטיקה זה כלי עזר הכרחי, אך לא מספיק לדעתי.

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

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

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

2 לייקים

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

6 לייקים

זה מה שקורה אצלי. אני חושב שאני לא טוב בחשיבה אנלטית/ לוגית לטובת התרגילים.
השאלה האם זה משהו שפתיר או אני צריך להרים ידיים?

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

2 לייקים

אולי זו השיטה שתהיה לי הכי טוב ללמוד בה. מאמצת מעכשיו