מתכנתים בהסגר: כך תנצלו את הזמן בבית ללמוד עוד שפת תכנות
המתכנת רן בר-זיק כבר עבר שני מיתונים קשים בחייו והמסקנה שלו: מיתון זו התקופה הטובה ביותר ללמוד ולשדרג את יכולות התכנות שלכם. הנה כמה מקומות טובים להתחיל בהם
ימי הקורונה הם ימים לא פשוטים לכולם. התמזל מזלם של רוב המתכנתים והאנשים הטכניים ובניגוד לאנשים אחרים, שנאלצים לשבת בבית, אנו יכולים לעבוד מהבית. אבל למעט עבודה, לפתע מתפנה המון זמן כתוצאה מהסגר. גם לאנשים עם משפחה, בגלל שבאמת אין מה לעשות ואין לאן לצאת ואפילו הזמן שמתבזבז על הנסיעות למקום העבודה נחסך – פתאום מתפנה המון זמן. אפשר לחרוך את הנטפליקס כמובן, אבל הימים עוברים ויצר השיעמום מתגבר. במקום לטפס על הקירות או לעשות בינג' לסדרות עבשות, אפשר (רק אם רוצים כמובן) לנצל את ההזדמנות ולהרחיב את הידע הטכני שלכם. אנחנו נכנסים לתקופה בעייתית מבחינת תעסוקה, ואפשר ורצוי לחזק את הידע הטכני ולהרחיב אותו לכיוונים חדשים לכל צרה שלא תבוא. אני מפתח בן 42, עברתי שני מיתונים קשים מאוד בחיי: זה של 2001 וזה של 2008. תקופה של מיתון זו התקופה, בה' הידיעה, ללמוד ולהשתדרג.
אבל, ופה אני מדבר שוב מהניסיון שלי, קל לומר שצריך ללמוד ולהשתדרג. כל אחד שנמצא יותר מיום במקצוע יודע לומר את המנטרה ש"מי שקופא על השמרים לא ישרוד בתעשיה". וזה נכון. אבל יש פער גדול בין ההבנה שצריך ללמוד לבין ההבנה בדיוק איך עושים את זה. זו המטרה של הפוסט הזה – לתת לכם כיוון למה ואיך ללמוד כולל קישורים ומקורות. לא כל החוכמה אצלי כמובן ואני (ובטח גם הקוראים) אשמח לתגובות עם קישורים ורעיונות שאולי פספסתי.
לפני הלימוד – הכנת סביבת עבודה והגדרת מטרות
החלטתם ללמוד? מעולה. מהניסיון האישי שלי כדאי להחליט מה ללמוד ולהגדיר acceptance criteria. יש לימודים שממש יש בהם הסמכות – כלומר מבחנים שצריך לעבור ואז זה יותר קל. יש מקומות שאין. חשוב מאוד להגדיר את זה כי כולנו כבר יודעים שצפייה בקורס כלשהו ב-Udemy או קריאת ספר היא משהו שאפשר לעשות על אוטומט וברפרוף. זו הסיבה שחייבים להגדיר מטרות וקריטריוני הצלחה קשיחים ומדידים. למשל:
- להצליח לכתוב בפייתון בוט שידליק לי את הטיימר בדוד.
- לבנות אתר בוורדפרס לחוג הרובוטיקה של הבן שלי.
- לבנות ממשק בריאקט שעושה ויזואליזציה לתהליך בקאנדי שכתבתי.
- להצליח לענות על 5 שאלות ב stack overflow על SQL.
החלק הזה נראה משונה, שלא לדבר על מיותר. אבל מהניסיון שלי זה החלק הכי חשוב בלימוד עצמי. לכל אחד יש את ההגדרות שלו להצלחה והמטרות שלו. גם המטרות יכולות להשתנות תוך כדי הלימוד, אבל חשוב להגדיר הצלחה וגם לחגוג את ההצלחות הקטנות.
עוד דבר שמאוד מאוד כדאי להקפיד עליו הוא הגדרת סביבת הפיתוח והלמידה. זה הזמן לעדכן את ה-IDE הרלוונטי במחשב. להריץ איזה Hello World, לבדוק שהדיבאגר מנגן כהלכה ולראות שהכל עובד במה שאתם רוצים שיעבוד. ברוב המדריכים וההסברים נוטים לדלג על השלב הזה שמהניסיון שלי הוא החשוב ביותר. נכון, לשבור את הראש על הדיבאגר בשפה חדשה בזמן שבקושי אתם מבינים איך לעשות 1+1 זה נראה מיותר. אבל זה חשוב ותקינות של סביבת עבודה תאיץ את קצב הלימוד ותצמצם את התסכולים שמלווים את תהליך הלימוד.
אז מה לומדים?
שפת תכנות חדשה היא הבחירה הקלאסית. בדיוק כמו שפה מדוברת, לימוד של שפה חדשה יכול להרחיב אופקים. אם אתם רגילים רק לג'אווהסקריפט, שהיא Prototype-based, יהיה לכם ממש מגניב ללמוד ג'אווה, שהיא מונחית עצמים. או פייתון. אם עסקתם עד כה ב-R, אולי יעניין אתכם ללמוד דווקא PHP. כמתכנתים מנוסים, כדאי גם להתעמק בעקרונות מאחורי השפה ולא רק במכניקה שלה. בכל מקרה, כדאי לא רק ללמוד אלא להגדיר במטרות הלימוד לעשות עם השפה הזו משהו מעשיר.
פייתון
פייתון היא אחת השפות המגניבות והקלות ללימוד, שסביר להניח שאם אתם מתכנתי ווב אתם לא מכירים. לגמרי שווה לנסות אותה. גם בגלל שיש הרבה חומרי לימוד המוקדשים לה בעברית ובאנגלית וגם בגלל שהיא תפתח לכם תחומי עיסוק חדשים. פייתון נמצאת בבסיס הרבה דברים שהם לא ווביים קלאסיים ושווה לקחת אותה לסיבוב ולהכיר אותה כבסיס טוב ללמידת דברים אחרים.
איפה לומדים?
באנגלית: יש את סדרת הסרטונים המצויינת של מיקרוסופט. מומלץ בחום.
בעברית: יש קורסים ממש טובים שלה זמינים ובחינם ובעברית ב-campus.gov.il
איפה מתרגלים?
המון תרגילים נמצאים ב-https://www.hackerrank.com – שזה אתר סופר מגניב שכדאי להכיר.
מקורות ללימוד ווב/בניית אתרים
אם אתם מתכנתים שהם לא ווביים וכל פעם התבאסתם על זה שכל קרוב משפחה מזדמן מבקש מכם לבנות אתר ואין לכם מושג איך – זה הזמן להכנס קצת יותר חזק לעולם הווב. מ-HTML ו-CSS ועד לג'אווהסקריפט. כתבתי פוסט ארוך המיועד למתחילים בתחום שרוצים ללמוד בניית אתרים או פיתוח ווב.
איפה לומדים?
HTML\CSS בעברית: מGoCode Sderot הכינו מדריכי וידאו טובים ששווה לבדוק.
HTML\CSS באנגלית: Code Academy (חינם), FreeCodeCamp – הקורס של Responsive Web Design.
JavaScript באנגלית: Code Academy (קורס בסיס חינמי, המתקדמים בתשלום), ב-Free Code Camp יש את הקורס של JavaScript Algorithms and Data Structures שהוא של 300 שעות והוא ממש סבבה וחינמי. JavaScript.info הוא גם מעולה ועם המון דוגמאות חיות.
אם אתם כבר שולטים בג'אווהסקריפט ורוצים להעמיק את הידע, אז הספר You don't really know javaScript הוא חובת קריאה. גם 30 יום על ג'אווהסקריפט זה יופי של מקום לתרגל ג'אווהסקריפט ונילה.
JavaScript בעברית: טוב, פה אני משוחד – הספר שלי ללימוד ג׳אווהסקריפט בעברית.
וורדפרס באנגלית: ב-tuts plus יש אוסף של מדריכים לפי המטרות השונות שלכם – רק לעצב? לבנות תוספים? סתם להכיר את וורדפרס? זה המקום.
וורדפרס בעברית: יש אתרים טובים המותאמים למפתחים אבל אין כמעט מישהו שמלמד מאפס ובאופן טוב. האתר של שגיב לפי דעתי הוא הכי מוצלח בעברית.
למעט שפת תכנות אחרת, אפשר להעשיר את הידע המקצועי באמצעות לימוד אספקטים אחרים מלבד תכנות. כמו למשל מסדי נתונים.
מסד נתונים
הרבה מאוד מתכנתי צד לקוח, וגם חלק מהבקאנד, מתעלמים באלגנטיות מנושא מסדי הנתונים וחבל. קל מאוד ללמוד מסדי נתונים רלציוניים ולא רלציונים ולהעשיר מאוד את יכולות ההבנה שלכם על איך ארכיטקטורה עובדת. הבנה מעמיקה של מסד נתונים מסוג כלשהו תעשיר את היכולת המקצועית שלכם וזה גם לא בשמיים ללמוד. הייתי ממליץ לבחור מסד נתונים שגם ככה אתם משתמשים בו וללמוד אותו. אם אין לכם כזה, אני ממליץ לכם ללמוד MySQL כמסד נתונים רלציוני ראשון – מהסיבה הפשוטה שקל ללמוד אותו והוא נורא פופולרי וגם דומה לשאר ה-SQLים. ו-MongoDB כמסד נתונים לא רלציוני מאותן סיבות.
MySQL באנגלית: MySQL tutorial הוא מקור ידע נהדר ששווה לבדוק.
MySQL בעברית: המדריך שלי ללימוד MySQL הוא מיושן אבל הוא המקור העיקרי שנמצא ברשת בעברית.
MongoDB באנגלית: הדוקומנטציה של מונגו היא אחת הטובות שראיתי ומומלץ ואפילו כדאי ללמוד משם.
MongoDB בעברית: גם פה, כתבתי סדרה של מדריכים בעברית שמכסים את הלימוד או לפחות נותנים איזשהו בסיס.
Machine Learning
זה תחום ששווה להכיר וללמוד, אולי למרות כל הבאזז סביבו. ללא ספק לימוד Machine Learning זה דבר שיכול לפתוח אופקים חדשים גם אם לא תכנסו אל התחום. אפילו ברמת ה-Hello World.
בעברית: מן הסתם אין אבל פוסט של ליאור בר-און שפורסם בגיקטיים הוא אחלה התחלה.
בקטנה:
Devops: ללמוד קוברנטיס, דוקר וג'נקינס זה מאוד מעשיר כל מפתח. נכון, לא תהיו אנשי Devops מנוסים אבל בטח ובטח להבין יותר בתהליך שהקוד שלכם עובר עד שהוא מגיע לנקודת הקצה זה נפלא.
עולם ה-IoT: והארדואינו גם הם מעניינים. אם אין לכם ארדואינו בבית (ומן הסתם אי אפשר להזמין עכשיו) יש סימולטורים שאפשר לנסות עליהם את הקוד שלכם עד שתקבלו אחד אמיתי.
יש המון נושאים להתמקצע בהם וללמוד אותם. וכאמור אתם מוזמנים לפנק ולצ'פר בקישורים משלכם או ברעיונות משלכם לטובת הכלואים בבית. בתקווה לימים טובים יותר.
תודה לעינת, אדיר, משי, חגי, ערן ולשאר המפתחים מורייזון מדיה על הסיוע
הגב
27 תגובות על "מתכנתים בהסגר: כך תנצלו את הזמן בבית ללמוד עוד שפת תכנות"
* היי, אנחנו אוהבים תגובות!
תיקונים, תגובות קוטלות וכמובן תגובות מפרגנות - בכיף.
חופש הביטוי הוא ערך עליון, אבל לא נוכל להשלים עם תגובות שכוללות הסתה, הוצאת דיבה, תגובות שכוללות מידע המפר את תנאי השימוש של Geektime, תגובות שחורגות מהטעם הטוב ותגובות שהן בניגוד לדין. תגובות כאלו יימחקו מייד.
ממליץ גם על אתר Unity learn למי שרוצה ללמוד מנוע פיזיקלי ולהיכנס קצת לעולם המשחקים. הם מציעים עכשיו שלושה חודשים של מנוי פרמיום בחינם לתקופת הקורונה
שכחת את Grasshopper של גוגל..
אחד הטובים.
ואגב ממש תודה על הכתבה וכל הקישורים. שמרתי במועדפים.
תעשו עוד בסגנון
מצטרף למחמאות! מאמר מעולה! תודה
באמת תודה על הכתבה והצעות שצירפת … בתוך 3 ימים כבר למדתי את איך להשתמש בAngular and react and typescript , express server
יחד עם כל זה ישלי רקע 3 שנים בגאווה ו SQL ותכנתי 3 תוכנות למקום העבודה שלי והיום כבר בונה אתר משלי ושואף לבנות אפליקציה ציטוט בעיצוב שיכבוש את העולם באמת
אם אתה צריך עזרה לגבי איך מתחילים מיזם וכו אצה מוזמן ליצור קשר זה המייל
[email protected]
היי אני תיכוניסט אני רוצה ללמוד איזה שפת תכנות, מה ממליצים?
היי ישי, יש לך רקע בתכנות?
מה הרקע?
אם אין לך רקע – ויש לך רק את הזמן של ההסגר הקרוב – אני ממליץ להתחיל המחוברות של "גבהים" על פייתון. חוברות מוצלחות ומעניינות מאוד.
https://cyber.org.il/data/
אני למדתי מהם המון, ונהנתי מאוד
בהצלחה!
בתור מישהו שתכנות נראה לו משעמם – אם כבר, עשה לעצמך טובה ותלמד פייתון. אפשר דרך אתר codecademy . או דרך סרטונים באתר scanlibs.com
ואם יום אחד תמצא את עצמך בתפקיד מתקדם של תשתיות IT או אבטחה, גם אז זה יכול רק לעזור (אוטומציה למשל).
בהצלחה.
תודה רבה- תהיו בריאים (-:
אני כבר התחלתי ללמוד java ממורה מעולה שמצאתי באינטרנט. הקורס שלו עכשיו בהנחה רצינית (50$ במקום 147$). הנה האתר שלו codewithmosh.com
ממליץ בחום.
יש דבר כזה קורס AIMLDL.. ללא כניסה עמוקה מדי לנושא?
זה מרגיש שהקורס של COURSERA (ומה שמצאתי ברשת) כאילו מלמד אותי אסמבלי לפני שלומדים גאווה.
זה כמו לשאול אם אפשר ללמוד חשבון דיפרציאלי בלי ללמוד את לוח הכפל
שלום לכל מי שקורא את זה, רציתי לשאול מה אתם ממליצים ללמוד ולאיזה תחום כדאי להכנס. כרגע אני בכיתה יא, לומד מדמח ופיזיקה ויודע C# בסיס+מבני נתונים. ראיתי את השלושה חודשים בחינם ביודמי עם הקורסי פרימיום ורציתי לשאול מה אתם ממליצים לעשות. האם בעתיד לתחום הזה יש ביקוש או שעדיף ללכת לתחום אחר כמו מפתח פול סטאק או משהו אחר. (בכללי אני מתכנן גם לעשות תואר אבל סתם אני רוצה ללמוד טיפה דברים כדי להיות מוכן).
התכוונתי לקורסי פרימיום של יוניטי (תחום הגיימינג ופיתוח המשחקים)
זה מאוד תלוי במה שמעניין אותך
יצא לי טיפה לגעת בweb זה נחמד, אבל לא משהו שהלהיב ו"ריגש" אותי. פיתוח משחקים נראה תחום מעניין השאלה האם זה ישתלם לעתיד והאם התחום הזה מבוקש?
אין בכלל שאלה- תלמד UNITY
יוניטי הוא מנוע המשחק הפופולרי בעולם ונשולב בסביבית פיתוח הנתמכת בc#
כך שלא תצטרך ללמוד שפה חדשה– ומתקמפל לכל סביבה שרק תרצה כולל לדפדפן
מעבר לכך -תחום המשחקים הוא התחום הכי מאתגר שיש במדעי המחשב וכולל בתוכו גרפיקה ממוחשבת ואנימציה דו ותלת מימדית בינה מלאגותית ולמידת מכונה ממשקי משתמש עיבוד צליל רשתות תקשורת מנועי פיזיקה וסימולציות וגם קצת מתמטיקה
לאחרונה אפילו ראיה ממוחשבת החלה להכנס לתחום( סריקה תלת מימדית AR וכדומה )
והשורה המוחצת היא- לא צריך תואר בשביל להרויח מלא כסף מתכנות ביוניטי ויש ים אינסופי של הצעות עבודה מקרוב ומרחוק
3
כנס לאתרי free-lancer וחפש הצעות עבודה ליוניטי- תבין על מה אני מדבר…הביקוש אדיר ורק יגדל
מעריך את התשובה, תודה רבה. יש דרך שאפשר ליצור קשר איתך? לכמה שאלות.
לא ממש- אני UNDER-GRID
תכתוב את השאלות כאן- בפוסט חדש
מבטיח לנסות לענות לכשאתעורר
דרך אגב- אני לא מתכנת בUNITY (-:
אז אם השאלות הן על UNITY הכי טוב זה לברר בפורומים באתר שלהם-
מניח שיש גם קהילה בעיברית איפושהוא
אבל בכל מקרה כדאי שתתחיל להתרגל לתקשר עם מתכנתים באנגלית
עברית ומחשבים זה לא ממש הולך טוב ביחד
אם חסרים לך מושגים- גוגל טרנסלייט…
טיפ – הפורום של יוניטי הוא ידידו הטוב של המתכנת- כל שאלה שתשאל כבר נשאלה ונענתה צריך רק לדעת מה לחפש
בנוסף לכך ליוניטי יש מרקט-פלייס עצום עם כל plugin template ו Assets שתוכל לדמיין
חלקם בתשלום וחלקם חינמים
סבבה אחי, תאמת לא התכוונתי לשאול שאלות בנוגע ליוניטי אבל הבנתי. תודה.
מתכנתים = פועלי בניין וירטואלים
יש פועלי בניין ויש מהנדסי בניין יש ארכיטקטים של תוכנה ויש גם אמנים שמבטאים עצמם בעזרת קוד- הכל תלוי במתכנת ועל מה הוא עובד
ברוח הזמנים אני ממליץ ללמוד את סביבת הפיתוח למשחקים – corona
https://coronalabs.com/product
ואל תשכחו לשתות אלכוג'ל ולהתעטף במסקינג-טייפ לפני שאתם מתחילים (-:
מאמר מעולה!
ממליץ גם על https://www.w3schools.com/