JavaRush /בלוג Java /Random-HE /איך הופכים מקודד רגיל למפתח מגניב? לימוד מדעי המחשב

איך הופכים מקודד רגיל למפתח מגניב? לימוד מדעי המחשב

פורסם בקבוצה
עולם ה-IT והתוכנה המודרני קשוח למדי - דרישות גבוהות לכישורים של קודנים, שינויים מתמידים ותחרות הולכת וגוברת מאלצים מומחים הפועלים בתחום זה כל הזמן לחנך את עצמם ולהתפתח. נדרשת למידה מתמשכת אפילו כדי פשוט להישאר מומחה מבוקש, כי "לעלות מאחורי החיים" זה קל כמו הפגזת אגסים. איך הופכים מקודד רגיל למפתח מגניב?  לימוד מדעי המחשב - 1בפרסומים על JavaRush, אנו מנסים לעזור לקוראים להתפתח באופן מלא וללמוד את עצמם כדי להיות תחרותיים ככל האפשר בעולם המפתה של פיתוח IT. במאמר היום נדבר על חינוך עצמי בדיסציפלינה רחבה מאוד - מדעי המחשב. נבחן מה בדיוק כלול במושג מדעי המחשב (CS) קצת מאוחר יותר, אבל לעת עתה ננסה לענות על השאלה: למה בעצם מתכנת ללמוד מקצועות CS ולשאוף להשתפר בתחום זה .

מדעי המחשב - למה ללמד?

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

דיסציפלינות במדעי המחשב

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

    תכנות הוא הבסיס והדיסציפלינה הבסיסית של מדעי המחשב; רוב הסטודנטים מתחילים ללמוד איתו את קורס מדעי המחשב. הקורסים הטובים ביותר לתכנות CS יהיו שימושיים לא רק למתחילים, אלא גם לקודנים מנוסים שאולי החמיצו מושגים ודגמי תכנות מסוימים כאשר למדו אותו בפעם הראשונה.

    Лучшая книга: “Структура и интерпретация компьютерных программ” (Structure and Interpretation of Computer Programs). Authorы: Джеральд Сассман (Gerald Sussman) и Хэл Абельсон (Hal Abelson).

    А на JavaRush, кстати говоря, всем желающим доступен для изучения легендарный гарвардский курс “CS50. Основы программирования”, fully переведенный на русский.

    Лучшая видеолекция: Brian Harvey’s Berkeley CS 61A

  • Алгоритмы и структуры данных

    Знание наиболее распространенных алгоритмов и структур данных помогает решать разного рода задачи, а это очень важно в любой из областей компьютерных наук, включая, конечно, и разработку программного обеспечения.

    Лучшая книга: The Algorithm Design Manual. Author: Стивен Скьена (Steven Skiena).

    Лучшая видеолекция: лекции Стивена Скьены

  • Компьютерная архитектура

    Знание компьютерной архитектуры, то есть понимание того, How на самом деле работает компьютер, является еще одной важной частичкой пазла, без которой попытки построения программных конструкций и моделей часто оказываются неудачными.

    Лучшая книга: “Архитектура компьютера и проектирование компьютерных систем” (Computer Organization and Design). Authorы: Дэвид Паттерсон (David Patterson) и Джон Хеннеси (John Hennessy).

    Лучшая видеолекция: Berkeley CS 61C

  • Операционные системы

    Практически весь code, написанный программистом, будет выполняться операционной системой, поэтому знание принципов работы ОС также является важным элементом.

    Лучшая книга: “Введение в операционные системы” (Operating Systems: Three Easy Pieces). Authorы: Андреа Арпачи-Дюссо (Andrea Arpaci-Dusseau) и Ремзи Арпачи-Дюссо (Remzi Arpaci-Dusseau).

    Лучшая видеолекция: Berkeley CS 162

  • Компьютерные сети

    Мало что в современном ИТ может обойтись без использования Интернета, поэтому ИТ-специалистам важно понимать, How Всемирная сеть работает, чтобы использовать ее потенциал по полной.

    Лучшая книга: Computer Networking: A Top-Down Approach. Authorы: Джеймс Куросе (James Kurose), Кит Росс ( Keith Ross).

    Лучшая видеолекция: Stanford CS 144

  • Математика для computer science

    Поскольку компьютерные науки, по сути, являются ответвлением прикладной математики, знание этого предмета тоже будет очень полезным практически в любой профессии, связанной с программированием. А также даст вам конкурентное преимущество перед теми, кто этой дисциплиной не владеет.

    Лучшая книга: Mathematics for Computer Science. Authorы: Альберт Р. Мейер (Albert R. Meyer), Эрик Леман (Eric Lehman) и Фрэнк Томсон Лейтон (Frank Thomson Leighton).

    Лучшая видеолекция: Tom Leighton’s MIT 6.042J

  • Базы данных

    מאגרי מידע הם תחום חדש יחסית במדעי המחשב, ועדיין אין בו הרבה מומחים. נתונים הם מרכיב מפתח נוסף של CS מכיוון שהם עומדים בבסיס רוב התוכניות המשמעותיות, אך מעטים האנשים שמבינים כיצד מערכות מסד נתונים פועלות בפועל.

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

    הרצאת הווידאו הטובה ביותר: ברקלי CS 186 של ג'ו הלרשטיין Как из обычного codeера стать крутым разработчиком? Изучаем Computer Science - 2

  • שפות ומהדרים

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

    הספר הטוב ביותר: מהדרים: עקרונות, טכניקות וכלים. מחברים: Alfred Aho, Monica S. Lam, Ravi Sethi, Jeffrey Ullman.

    הרצאת הווידאו הטובה ביותר: הקורס של אלכס אייקן על לגונית

  • מערכות מבוזרות

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

    הספר הטוב ביותר: מערכות מבוזרות, מהדורה שלישית. מחברים: Maarten van Steen ואנדרו S. Tanenbaum.

    הרצאת הווידאו הטובה ביותר: CS 436: מערכות מחשב מבוזרות

טיפים ללימודי מדעי המחשב

ולסיום, כמה עצות למי שמתכנן להתחיל ללמוד מקצועות מדעי המחשב. Как из обычного codeера стать крутым разработчиком? Изучаем Computer Science - 3
  1. לפתח מיומנויות מעשיות בדיסציפלינות של CS

    אחד היתרונות של CS, כמו קורסי IT אחרים, הוא שניתן ליישם מיד את המיומנויות התיאורטיות שרכשת. אל תשכח מזה ותחליף תיאוריה עם פרקטיקה כדי להשיג את התוצאות הטובות ביותר.

  2. אל תתמהמה

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

    Как из обычного codeера стать крутым разработчиком? Изучаем Computer Science - 4
  3. אל תגביל את עצמך לקורס אחד

    אל תצפו שתוכלו לקבל את כל הידע שאתם צריכים בנושא מקורס אחד, לא משנה כמה הוא טוב. תמיד עדיף להתייעץ עם לפחות כמה מקורות מידע כדי לקבל הבנה רחבה יותר של הנושא.

  4. מצא אנשים בעלי דעות דומות

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

  5. למד לכתוב מילים, לא רק קוד

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

הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION