-
@davidnead אמר בתכנות | איך להתחיל?:
הדרך להתגבר על זה היא ליצור לבד
או ללמוד את הנושא... יש טקסטים רבים (בעיקר באנגלית). האמת היא שכולם יצרו לבד, אבל חבל לעבוד על משהו שכבר עבדו עליו.
אני גם מרגיש חוסר בהבנה מעמיקה של איך פועל המחשב, הזכרון, קבצים בינאריים, מערכות הפעלה.
כנ"ל. (מתחשק לי מאוד לכתוב בנושא... זה נושא מרתק שהרבה מתכנתים לא מכירים מספיק. אבל כרגע אני לא רואה את עצמי מקדיש המון זמן לכתוב משהו ברור שיהיה לתועלת)
@davidnead אמר בתכנות | איך להתחיל?:
לזה צריך או לימוד בי"ס יסודי או חופשות בחו"ל
או לסובב את עצמך בדוברי אנגלית, יש כאלה גם בארץ (דוקא אנשים נחמדים ). לקרוא אנגלית ולתרגל יום יום. זה עוזר מאוד על פי נסיון (לא נסיון שלי, אני דובר אנגלית שפת אם).
-
@dovid אמר בתכנות | איך להתחיל?:
בזמנו המלצתי על ספרים אקדמיים של תכנות בפועל (כמו זה) הבעיה שהם לא מתאימים לJS אלא לC# או JAVA, אם כי את האמנות של התכנות הם מעבירים יפה.
תודה לך! נפלא, זה בדיוק מה שחיפשתי. אמנם בC# אבל לא מתמקד בC# אלא בחומר התיאורטי וזה מה שאני צריך.
-
@nigun אמר בתכנות | איך להתחיל?:
@davidnead אמר בתכנות | איך להתחיל?:
לא הרבה, אבל קורה. אני מאמין שזו פחות הנקודה, יותר חוסר של אלוגריתמים מוכרים וכדו', אם זה אלוגריתמים מתמטיים ואם תכנותיים. הדרך להתגבר על זה היא ליצור לבד, אבל לפעמים זה בזבוז זמן ולפעמםי גם תוצאה לא יעילה.
מעניין, אני אף פעם לא הרגשתי שזה חסר
אולי אני לא יודע מה אני מפסיד?
יש לך דוגמה?מאוד אופייני...
אתה יודע מה? אף אחד לא יצליח להוכיח לך שאתה מפסיד משהו.
השאלה אם אתה מרויח מזה שאין הוכחה... כנראה שכן -
@dovid אמר בתכנות | איך להתחיל?:
@nigun אמר בתכנות | איך להתחיל?:
@davidnead אמר בתכנות | איך להתחיל?:
לא הרבה, אבל קורה. אני מאמין שזו פחות הנקודה, יותר חוסר של אלוגריתמים מוכרים וכדו', אם זה אלוגריתמים מתמטיים ואם תכנותיים. הדרך להתגבר על זה היא ליצור לבד, אבל לפעמים זה בזבוז זמן ולפעמםי גם תוצאה לא יעילה.
מעניין, אני אף פעם לא הרגשתי שזה חסר
אולי אני לא יודע מה אני מפסיד?
יש לך דוגמה?מאוד אופייני...
אתה יודע מה? אף אחד לא יצליח להוכיח לך שאתה מפסיד משהו.
השאלה אם אתה מרויח מזה שאין הוכחה... כנראה שכןלא הבנתי.
אני מפסיד משהו או לא?
למה זה לא ניתן להוכחה? -
@nigun ממ"נ, אם אתה מעוניין להשתכנע שכן, יכולת מייד להאמין לאחר וללמוד על זה יותר מכח הרצון הזה ללא אף שכנוע.
ואם אתה מעוניין שלא, אז מניסיון רב שנים אני אומר לך - אין הוכחה שמצליחה על מישהו שלא רוצה.
בטח תענה, מה פתאום, אני מעוניין! אבל למה שאשקיע בלי לראות איפה זה עוזר לי? אז תתחיל לקרוא שוב בwhile את ההודעה הזו עד שתבין אותי, או שתכפה יציאה מהנושא... -
@dovid
אני מעוניין להשתכנע
וחיפשתי הסבר בהרבה מקומות, שאלתי אנשים ותשבות שמצאתי זה משהו בסגנון:- זה נצרך לAI או מדעני נתונים.
- זה בשביל לחדד את החשיבה.
אז המסקנה שיש לי כיום, זה שביום שאני ארצה ללמוד AI, אני אצטרך לעבור על כמה קורסים במתמטיקה, אבל עד אז אני לא מוצא את הצורך.
ואין מישהו שאמר לי (עד ללפני חצי שעה) תלמד, וזה יעזור לך בעבודה הנוכחית שלך , ואין מצב שתבין בלי לטעום.
-
@nigun אמר בתכנות | איך להתחיל?:
@davidnead אמר בתכנות | איך להתחיל?:
לא הרבה, אבל קורה. אני מאמין שזו פחות הנקודה, יותר חוסר של אלוגריתמים מוכרים וכדו', אם זה אלוגריתמים מתמטיים ואם תכנותיים. הדרך להתגבר על זה היא ליצור לבד, אבל לפעמים זה בזבוז זמן ולפעמםי גם תוצאה לא יעילה.
מעניין, אני אף פעם לא הרגשתי שזה חסר
אולי אני לא יודע מה אני מפסיד?
יש לך דוגמה?דוגמה פשוטה ומינימלית שנתקלתי לא מזמן. נתון לי משפט שמורכב מכמה מילים. אני רוצה לשנות את סדר המילים, ולחשב את כל הקומבינציות האפשריות. (למשל "שלום לך עולם", "שלום עולם לך", "עולם לך שלום", וכו'). די פשוט, לא?
כמובן, גם הסתדרתי בסוף. אבל בזבזתי זמן מיותר, ויתכן שגם יש דרך יעילה יותר מהפתרון שבחרתי.
אולי בשביל מישהו עם ראש מתמטי טוב משלי אין צורך להשקיע רגע בשביל לפתור את זה, אבל הוא יתקל בזה בבעיה מורכבת יותר. -
@davidnead
צודק, דוגמה טובה
אני לא נתקלתי כל כך עם משימות בסגנון הזה
אבל בכל מה שקשור לאלגוריתמים של חיפוש והמסתעף, מתמטיקה יכולה בהחלט לעזור.
עריכה: במקרה הזה זכור לי שמשתמשים בסימן ! במחשבון מדעי
אז חיפשתי בגוגל "מה זה הסימן ! במחשבון"
ואחרי כמה תוצאות מצאתי את הערך עצרת
נראה לי שזה מה שצריך, צדקתי?
אם כן, כל מה שצריך זה מושגים בסיסיים, וגוגל.עריכה 2: בשביל מה יש פורומים, אם לא בשביל לשאול כאלו שאלות?
-
@nigun אמר בתכנות | איך להתחיל?:
@davidnead
צודק, דוגמה טובה
אני לא נתקלתי כל כך עם משימות בסגנון הזה
אבל בכל מה שקשור לאלגוריתמים של חיפוש והמסתעף, מתמטיקה יכולה בהחלט לעזור.
עריכה: במקרה הזה זכור לי שמשתמשים בסימן ! במחשבון מדעי
אז חיפשתי בגוגל "מה זה הסימן ! במחשבון"
ואחרי כמה תוצאות מצאתי את הערך עצרת
נראה לי שזה מה שצריך, צדקתי?
אם כן, כל מה שצריך זה מושגים בסיסיים, וגוגל.ראשית, צדקת רק למחצה. זה נותן לך את מס' הקומבינציות, אבל צריך את הקומבינציות עצמן. שנית, כמו שאתה אומר צריך מושגים בסיסיים - הרבה באמת (כולל זה שהבאת) אין לי, ועל זה בדיוק דיברתי.
אני נזכר על דוגמה נוספת בעבר שכללה חישוב זוית כלשהי, משהו עם קונוס, לא זוכר. יש לזה אפילו פונקציות עזר מובנות נJS כי זה מונחים מקובלים במתמטיקה/גאומטריה. למזלי היה איתי מתכנת בעל תשובה (בוגר ליב"ה...) והוא ישר ידע לומר לי את המושגים. למזלי הפחות טוב הוא היה דוגמה מצוינת למי שיד עמושגי בי"ס אבל כשרון לא היה לו ולכן להשלים את המושגים לכדי יישום הייתי צריך עוד לעבוד.ואלוגריתמים, כפי שמבהיר יפה הספר הבסיסי ש@dovid נתן לעיל - יכולים להיות גם חישוב בסיסי ביותר, לוגי או מתמטי.
עריכה 2: בשביל מה יש פורומים, אם לא בשביל לשאול כאלו שאלות?
בדרך כלל אחת מהשתיים: או שמהר לי יותר לעשות/לחפש בעצמי מאשר להמתין לתשובה בפורום. או שעד שאני טורח לנסח את השאלה בבהירות בפורום - כבר מתבהרת לי חצי תשובה וכמאמר הידוע. ובשורה התחתונה בשני המקרים עשיתי את העבודה לבד.
-
@davidnead
מה שיצא לבנתיים זה שחסר את השמות של המושגים, וברגע שמכירם את המושגים קל למצוא אותם בגוגל, ושוב אין צורך ללמוד באופן מסודר ע"י מורה פרטי, רק צריך ללמוד מילון מושגים.
ולבנתיים אפשר לשאול בפורום שאלות , ומישהו יכתוב את המושג, וההמשך תעשה בגוגל בקלות. -
@nigun אמר בתכנות | איך להתחיל?:
@davidnead
מה שיצא לבנתיים זה שחסר את השמות של המושגים, וברגע שמכירם את המושגים קל למצוא אותם בגוגל, ושוב אין צורך ללמוד באופן מסודר ע"י מורה פרטי, רק צריך ללמוד מילון מושגים.
ולבנתיים אפשר לשאול בפורום שאלות , ומישהו יכתוב את המושג, וההמשך תעשה בגוגל בקלות.נו נו
-
@davidnead אמר בתכנות | איך להתחיל?:
@nigun אמר בתכנות | איך להתחיל?:
@davidnead
מה שיצא לבנתיים זה שחסר את השמות של המושגים, וברגע שמכירם את המושגים קל למצוא אותם בגוגל, ושוב אין צורך ללמוד באופן מסודר ע"י מורה פרטי, רק צריך ללמוד מילון מושגים.
ולבנתיים אפשר לשאול בפורום שאלות , ומישהו יכתוב את המושג, וההמשך תעשה בגוגל בקלות.נו נו
מה אני אמור לענות על זה?
לא באתי לנגח, אני באמת מנסה להבין מתי? איפה? ואיך? צריכים ללמוד מתמטיקה? -
@nigun אמר בתכנות | איך להתחיל?:
@davidnead אמר בתכנות | איך להתחיל?:
@nigun אמר בתכנות | איך להתחיל?:
@davidnead
מה שיצא לבנתיים זה שחסר את השמות של המושגים, וברגע שמכירם את המושגים קל למצוא אותם בגוגל, ושוב אין צורך ללמוד באופן מסודר ע"י מורה פרטי, רק צריך ללמוד מילון מושגים.
ולבנתיים אפשר לשאול בפורום שאלות , ומישהו יכתוב את המושג, וההמשך תעשה בגוגל בקלות.נו נו
מה אני אמור לענות על זה?
לא באתי לנגח, אני באמת מנסה להבין מתי? איפה? ואיך? צריכים ללמוד מתמטיקה?גם אני לא באתי לנגח, חלילה. רק לא היה לי כל כך מה לענות. הצגתי בעיה פשוטה ומעשית, שכמוה אפשר להיתקל הרבה, ידע מסודר במתמטיקה בסיסית פותר אותה מהר ובקלות, ועוד יותר מזה ידע באלוגריתמים בסגנון מדעי המחשב. אתה פוטר את זה כלאחר יד, לא ברור לי איך, בסגנון ישראלי של "יהיה בסדר איכשהו".
אני יודע שיהיה בסדר, הסתדרתי עם זה ועם אתגרים גדולים בהרבה, אני רק, כמו ש @dovid ו @yossiz חידדו למעלה כל כך יפה, מנסה להבהיר לעצמי מה אני מפסיד (אני יותר אוהב: מה יכולתי להרוויח) ולא איך אני יכול להמשיך איכשהו להסתדר עם המצב הקיים.יודע מה? אתגר: תן לי קוד JS שעושה מה שביקשתי. ותתאר אחר כך איך הגעת לפתרון וכמה זמן לקח לך. זאת, אחרי שכבר יש לנו חצי תשובה.
-
@davidnead אמר בתכנות | איך להתחיל?:
הצגתי בעיה פשוטה ומעשית, שכמוה אפשר להיתקל הרבה, ידע מסודר במתמטיקה בסיסית פותר אותה מהר ובקלות
לדעתי ידע "מסודר" במתמטיקה בסיסית לא יעזור כמעט כלום לכאלה בעיות, מניסיון.
צריך להיות אחד שהמון פעמים חשב על בעיות מתמטיות ואהב את הפתרונות שלהם, בלי זה מחר אתה שוב בבעיה. ואכן גוגל מאוד טוב בעניין עם אנגלית בסיסית.
לעומת זאת אלגוריתמיקה עבורי איננה אוסף פתרונות אלא שיטות חשיבה והיכרות עם בעיות מפורסמות ופתרונות מפורסמים, זה מקנה לדעתי ייתרון גדול בתכנון בעיקר אבל גם בכל שלב בפיתוח, גוגל פה לא רלוונטי בכלל.
באופן כללי כפי שאמרת וכפי ש@yossiz אמר, בלי צימאון לידע בתחום אז מובטח דשדוש גרוע שעושה כל הזמן שימוש באותם כלי חשיבה/תוכנה/תכנון מצומצמים שבתחילת הדרך היו חייבים לרכוש אותם איכשהו. -
@davidnead אמר בתכנות | איך להתחיל?:
יודע מה? אתגר: תן לי קוד JS שעושה מה שביקשתי. ותתאר אחר כך איך הגעת לפתרון וכמה זמן לקח לך. זאת, אחרי שכבר יש לנו חצי תשובה.
אחרי כמה ניסיונות חיפוש בגוגל החיפוש "factorial sort all options of arrays"
הניב לי את התוצאה בPHP
ומתוך זה למדתי מילה חדשה permutations
מה השלב הבא?
לחפש "permutations js" -
@dovid
לא באמת הבנתי, אבל הבנתי שיש פה קונספט נוסף שאני לא מודע לו,
ושאני יוכל לדון עליו רק אחרי שהבנתי את הקונספט.
אין לי מספיק סיפוק מלפתור בעיות מתמטיות או אתגרי תכנות המופעים באתרים שונים
אז כנראה שאני באמת לא יצליח להבין את הנקודה (כנראה גם אם הייתי הולך למכללה) -
@dovid אמר בתכנות | איך להתחיל?:
@davidnead אמר בתכנות | איך להתחיל?:
הצגתי בעיה פשוטה ומעשית, שכמוה אפשר להיתקל הרבה, ידע מסודר במתמטיקה בסיסית פותר אותה מהר ובקלות
לדעתי ידע "מסודר" במתמטיקה בסיסית לא יעזור כמעט כלום לכאלה בעיות, מניסיון.
צריך להיות אחד שהמון פעמים חשב על בעיות מתמטיות ואהב את הפתרונות שלהם, בלי זה מחר אתה שוב בבעיה. ואכן גוגל מאוד טוב בעניין עם אנגלית בסיסית.
לעומת זאת אלגוריתמיקה עבורי איננה אוסף פתרונות אלא שיטות חשיבה והיכרות עם בעיות מפורסמות ופתרונות מפורסמים, זה מקנה לדעתי ייתרון גדול בתכנון בעיקר אבל גם בכל שלב בפיתוח, גוגל פה לא רלוונטי בכלל.צודק, פשוט עירבתי בין המושגים. אלגוריתמיקה היא העיקר. למשל, בספר שהבאת ישנם שורה של אלוגריתמים בסיסיים מאוד, שלרובם יש פונקציות מובנות בכל שפה שהיא ולכן אנו אף פעם לא טורחים להקדיש להם מחשבה (כמו sum, sort, reverse, max, min ועוד). אבל זה דומה למי שעושה כל פעולה חישובית שהיא עם מחשבון ובחיים לא טרח לחשב תרגיל בראש - נראה שאפשר להסתדר עם מחשבון, אבל בסוף, הוא לא למד איך להתמודד עם חישובים וזה יתנקם בו בחיים האמיתיים.
אני משוכנע שמי שחרש מספיק טוב תבניות בסיסיות ומוכרות, חוסך לעצמו הרבה קוד לא יעיל ופותר הרבה יותר בקלות בעיות שהוא נתקל בהן, ועוד יותר חשוב - יודע לזהות ולהבדיל בין בעיות ואתגרים אמיתיים לסתם חוסר מחשבה.
-
@nigun אמר בתכנות | איך להתחיל?:
@dovid
לא באמת הבנתי, אבל הבנתי שיש פה קונספט נוסף שאני לא מודע לו,
ושאני יוכל לדון עליו רק אחרי שהבנתי את הקונספט.
אין לי מספיק סיפוק מלפתור בעיות מתמטיות או אתגרי תכנות המופעים באתרים שונים
אז כנראה שאני באמת לא יצליח להבין את הנקודה (כנראה גם אם הייתי הולך למכללה)הבעיה שלי שאתגרים אלו דוקא בגלל פשטותם משעממים אותי ולכן אין לי כוח לשבור את הראש עליהם. אבל האמת שמה שדרוש זה דוקא ללעוס היטב עד דק את הדברים הפשוטים (לפחות, והמוסיף הרי זה משובח), כדי לחיות חשיבה אלוגריתמית נכונה.
ובשביל לימודים משעממים כאלו, לפחות אנשים כמוני, צריכים כנראה את הדרבון של סביבת למידה. -
רוצה עוד דוגמה, מכיוון אחר? אינדקסים.
מי שעבד עם כמויות גדולות של נתונים, יודע שאינדוקס נכון יכול להיות הבדל שמים וארץ בתפקוד התכנה. בלי שום גוזמה. פעולה יכולה לקחת שבריר שניה במקום כמה דקות במצבים מסוימים.
אז אפשר לשבור את הראש הרבה, ואפשר פשוט להכיר את האלוגריתמים הקלאסיים של אינדוקס.
אני מכיר 2-3 ששינו לי את החיים. אולי מישהו שידע להפנות אותי לרפרנס מתאים או עדיף יותר - להסביר לי מהר וקל את כל הקלאסיים, אולי בשעה אחת אוכל לרכוש את הידע הקריטי הזה. עוד דוגמה לחומר שאולי לא קשה, אך למידה מסודרת תחסוך לך המון שבירת ראש כשאינך יודע מה חסר לך.כמובן, אפשר להשתמש באינדוקס המובנה של השפה (בJS זה יותר מאחורי הקלעים, בSQL אני מכירים את זה בפרונט), אבל זה שוב, כמו שימוש במחשבון, וכשאתה מגיע למצבים מתקדמים יותר הדורשים פתרון מותאם אישית - זה כבר לא עוזר.