עשה זאת בעצמך! למד בניית אתרים מאפס

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

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

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

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

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

יש כמה מלכודות שצריך להמנע מהן באופן חד משמעי כאשר לומדים לבד:

1. דרימוויבר/פרונט פייג'/מחולל אתרים. בתעשיה בזים (כך ממש) למי שמשתמש בכלים האלו ועדיף לא להשתמש בהם כלל. אי אפשר לטעון שאתם יודעים HTML אם אתם תלויים במחולל שיעשה זאת עבורכם. אם אתם צריכים סביבת עבודה ניתן להשתמש ב-Visual Studio Express הנהדר והחינמי של מיקרוסופט, או ב-Aptana המופלא לא פחות וגם ב-webmatrix המצויין ואפילו ב-notepad לצורך העניין. אבל בשום פנים לא משתמשים או נוגעים בדרימוויבר.
2. שירותים חינמיים של אכסון אתרים/בניית אתרים. שירותים כמו LiveCity ודומיהם הם מחוץ לתחום עבור מי שלומד. בנוסף, אם אתם רוצים לבנות אתר לצורך הלימודים, ריכשו לעצמכם שטח אחסון שיתופי בכמה עשרות שקלים ותהיו מקצועיים.

מגוון המקורות באינטרנט ללימוד עצמי יכול להיות מבלבל. גם קשה ליצור רשימה מסודרת של מקורות כאלו. יש אתרים שמעולים בלימוד HTML בסיסי ויש אתרים שדווקא טובים בלימוד XML. מה שטוב הוא שיש שפע עצום ולכל אחד יש את המדריכים המתאימים לו. אם אתם מתייאשים ממדריך מסוים – תחליפו אותו! השתמשו באופן תכוף בגוגל כדי למצוא מדריכים ומאמרים. המדריך הזה אמור להראות לכם את הנושאים שיש ללמוד בגדול.

רמת מתחילים – מתעניינים או גרפיקאים

HTML – HTML היא אוסף אבני הבנייה של הרשת. גם אם אתם גרפיקאים שרוצים להרחיב את מגוון השירותים שלכם ובין אם אתם מזיני תוכן שעובדים מול מערכת, HTML היא הכרחית. כאשר אתם לומדים HTML שימו לב שאתם מכירים ושולטים היטב בנושאים הבאים:
1. HTML תקני (מה זה תקן, איך בודקים אם הדף שבניתי תקני ולמה זה חשוב).
2. אבני בנייה בסיסיות כגון div, span וההבדלים ביניהם.
3. אלמנטים סמנטיים כגון h1,h2,h3, strong,em,p וכו'.
4. טבלאות (שלא משתמשים בהן לעיצוב!).
5. שילוב תמונות בדף.

CSS – בדרך כלל בא ביחד עם HTML כיוון שהשניים הולכים ביחד. בעוד HTML משמש לבנייה, CSS משמש לעיצוב. אי אפשר ללמוד HTML ללא CSS. כאשר אתם לומדים CSS שימו לב שאתם מכירים היטב את הנושאים הבאים:
1. CSS תקני (מה זה תקן ואיך בודקים אם ה-CSS תקני).
2. inline CSS, external CSS וההבדלים ביניהם.
3. קינון ופסאודו אלמנטים של CSS.
4. תכונות שונות של CSS.

כלי הפיתוח: עורך טקסט מסוג כלשהו וגם Firebug.

כמובן שאין גבול לרמת הידיעה שאפשר להגיע אליה ב-HTML ו-CSS. אך לאחר סיום הלימודים באופן עצמאי אתם צריכים להגיע למצב שבו אתם מסוגלים לבנות עמוד בסיסי עם עיצוב באמצעות HTML + CSS ולבצע בו שינויים כרצונכם.

רמת האמצע – בוני אתרים מקצועיים יותר

JavaScript
שפת התכנות הזו רצה בסביבת הדפדפן ומשמשת אותנו למגוון שימושים – מבדיקת טפסים לפני משלוח ועד לאנימציות מורכבות יחסית. ל-JavaScript יש חשיבות גדלה והולכת בעולם בניית האתרים והאפליקציות. הנושאים הבאים חשובים מאד בלימוד JavaScript:
1. משתנים, לולאות ופונקציות.
2. שימוש באובייקטים.
3. מניפולציות ב-DOM (מסמך ה-HTML נקרא DOM)
4. עבודה עם טפסים.

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

מערכת וורדפרס
וורדפרס היא מערכת קלה מאד ונעימה מאד לפיתוח בלוגים ואתרים פשוטים. מומלץ מאד, עם ידע מספק ב-HTML וב-CSS להתחיל וללמוד אותה. דרך הלימוד היא פשוטה – פשוט להתקין ולשחק. הנושאים החשובים שאתם אמורים לשלוט עליהם הם:
1. התקנה של מערכת וורדפרס על שרת שיתופי כלשהו (תוכלו להיעזר באיש ה-IT בנוגע להתקנה)
2. שינוי עיצוב באמצעות תמות.
3. התקנת תוספים.
4. יצירת תכנים שונים.

זו הרמה של רוב בוני אתרי האינטרנט בארץ – ואם אתם רוצים לדעת לבנות אתרי אינטרנט – זו הרמה שמספיקה לכם. עם הידע הזה תוכלו לבנות אתר אינטרנט. כמובן שאם אתם מכירים את ג'ומלה/דרופל בנוסף או במקום וורדפרס זה בסדר גמור. אבל הידע ב-HTML + CSS הוא חיוני והיכרות, ולו גם שטחית, עם JavaScript תסייע לכם מאד בהטמעת תוספים שונים.

רמת מתקדמים – מפתחי אינטרנט/מתכנתים

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

כאשר אנו רוצים להגיע לרמת מפתח, אנחנו צריכים להחליט לאיזה סוג של מחנה אנו רוצים להשתייך. יש בגדול שלושה סוגים של מתכנתי אינטרנט בארץ. המסה הגדולה היא מתכנתי C# בטכנולוגית דוטנט. מעט יותר מעטים הם מתכנתי ה-JAVA. ז'אנר שלישי שהולך ומתעצם בשנים האחרונות הם מתכנתי PHP ושפות אחרות כגון Ruby ו-Python. בגדול תחום ה-PHP,Python ו-Ruby נקרא תחום הקוד הפתוח. אני מתכנת PHP (למרות שאני מכיר את Ruby ו-Python) ואני חושב שתחום ה-PHP הרבה יותר סובלני לאוטו-דידקטים ולפיכך אם אתם רוצים להתקדם בתחום הפיתוח – מסלול ה-PHP הוא הבחירה הטובה יותר. ומבחינתי זה לא משנה אם תבחרו ללמוד דווקא Python או Ruby (למרות שהן פחות נפוצות בישראל מאשר PHP).

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

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

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

מפתח או מתכנת אינטרנט טוב נדרש ללמוד כל הזמן, Linux, Apache, MySQL, PHP הם רק הבסיס. אני חושב שמלבד jQuery חשוב גם ללמוד עוד פריימוורק אמיתי ל-JavaScript כמו MooTools. יש כאלו שיעדיפו ללמוד ActionScript ויש כאלו שיחשבו להתמקד דווקא בדרופל. העניין הוא להמשיך ללמוד – אך הידע הבסיסי יאפשר לכם בסיס טוב להמשך למידה ורכישת ניסיון, שברמת מתכנת הוא חשוב לאין שיעור.

פוסטים נוספים שכדאי לקרוא

תמונת תצוגה של מנעול על מחשב
פתרונות ומאמרים על פיתוח אינטרנט

הגנה מפני XSS עם Trusted Types

תכונה ב-CSP שמאפשרת מניעה כמעט הרמטית להתקפות XSS שכל מפתח ווב צריך להכיר וכדאי שיכיר.

תמונה מצוירת של רובוט שמנקה HTML
יסודות בתכנות

סניטציה – למה זה חשוב

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

גלילה לראש העמוד