Forwarded from 📚 موسوعة الكتب الشاملة 📚
المرجع الكامل للغة ++C.pdf
1.4 MB
Forwarded from 📚 موسوعة الكتب الشاملة 📚
المصفوفات الثنائية البعد.docx
30.2 KB
Forwarded from 📚 موسوعة الكتب الشاملة 📚
أفضل 7 قنوات على اليوتيوب لتعلم البرمجة لسنة 2019
https://bit.ly/2ValzRR
#برمجه_وتطوير #يوتيوب
#قنوات_يوتيوب🖥
https://bit.ly/2ValzRR
#برمجه_وتطوير #يوتيوب
#قنوات_يوتيوب🖥
أكوا ويب
أفضل 7 قنوات على اليوتيوب لتعلم البرمجة لسنة
أفضل 7 قنوات على اليوتيوب لتعلم البرمجة لسنة 2019 . قنوات يوتيوب لتعلم البرمجة، قنوات لتعلم البرمجة، تعلم البرمجة 2019، طريقة تعلم البرمجة لسنة 2019، تعلم البرمجة، مواقع تعلم البرمجة، قنوات تعلم البرمجة
#مقالات_برمجية📙📙
هذه المقالة توضح الفرق بين المبرمج و المطور
البرمجة : هي بناء تطبيقات أو برامج بغرض تنفيذ عمل أو مهمة معينة ( أدوات ) .
تطوير البرمجيات : هي بناء تطبيقات , سهلة الاستخدام , يمكن للمستخدم استخدامها , و قابلة للتعديل و التغيير ( برامج مصممة بشكل جيد )
المبرمج : Programmer
هو الشخص الذين يكتب أكواد نظيفة , و همه الأول أن تكون خالية من الأخطاء , لكن ليس بالضرورة أن يكون الكود مرتب , يهتم بتفاصيل الكود ,أكثر منه بالتفكير في إنهاءه, و دائما ما يكون هناك تنافس مع أصدقاءه في معرفة الحل الأمثل للمشكلة , لديه إطلاع واسع جداً على الخوارزميات ,
و الاهتمام بالرياضيات هو أمر أساسي لديه , مهارات التواصل مع فريق العمل أو التواصل مع المستخدم هو أمر اختياري بالنسبة له و ليس ضرورة !
يقضي معظم أوقات فراغه , في إنشاء نماذج من التطبيقات الغير منتهية , و كتابة الخوارزميات و تجربتها , يحلم في أن يتعلم كافة لغات البرمجة , و أن يكتب أقصر كود لحل أكبر مشكلة
خصائص تطبيقاته :
– كود احترافي يعمل بشكل ممتاز و غالبا بدون أخطاء , ( لكن من الصعب فهمه أو صيانته إلا من قبله و لمدة محدودة .)
– أغلب أكواده من نوع “المعكرونة”spaghetti code
– أغلب العناصر بأسمائها الافتراضية Button1 Button2 , Form1 …
– لا يوجد ترتيب لعناصر النافذة , ولا ترتيب لمفاتيح الانتقال فيما بينها (Tab Index)
– لا يوجد معالجة للأخطاء التي قد تحصل أثناء تنفيذ الكود – Exception handling .
– لا يوجد أي تخطيط لإمكانية إعادة استعمال هذا الكود من قبل مبرمج أو مطور آخر أو حتى من قبله هو .
– الكود بدون شرح أو تعليقات
المطور : Developer
هو الشخص الذي يكتب الكود المنسق , الذي يمكن قراءته كقصيدة أو قصة قصيرة , يعتمد اعتماد كبير على المكتبات الخارجية , الرياضيات هي آخر اهتماماته , من أولوياته التواصل مع فريق العمل و إيجاد حلول حول المشكلات , لديه تخصص عام و براعة تمكنه من توظيف أي مهارة أخرى ضمن تطبيقاته , يعتمد في بناء تطبيقه على التطبيقات العديدة التي قام بتجربتها و استخدامها خلال دراسته أو عمله , مما يجعل تطبيقه هو خلاصة لأفكاره , يقضي معظم أوقات فراغه في أمور لا علاقة لها بالبرمجة إطلاقاً أو ربما لا علاقة لها بالحاسب , يحلم دائما في أن يصنع فيس بوك جديد أو غوغل جديد .
خصائص تطبيقاته
– شرح الكود أطول أو يساوي طول الكود نفسه .
– الكود مرتب و منسق .
– لن تجد عنصر واحد بتسميته الافتراضية .
– كافة الأخطاء معالجة و قد يتم تسجيلها في سجل للأخطاء (log file) .
– يكتب الكود و كأن المستخدم سوف يقرأه .
– اهتمامه بواجهات البرنامج أكثر من اهتمامه بطريقة عمل البرنامج .
الخلاصة :
الشيء المهم الذي يجب الانتباه إليه , هو أنه ليس أي من الإثنين أفضل من الآخر , أو أقل شأناً من الآخر , بل هي مجرد صفات خاصة و عامة مختلفة في كل منهما عن الآخر , لا و بل بإمكانك أن تكون مبرمج محترف و مطور رائع بنفس الوقت و ذلك بدمج الخصائص الجيدة من كلا الطرفين ( طبعا سيكون أمامك أشياء كثيرة للتركيز عليها ) , لكنه يبقى أمرأ ممكناً , و ليس مستحيلاً .
و إن اختيارك طريق المبرمج أو المطور , هو الذي سيحدد مصير تطبيقك هل سيستخدم من قبل الزبائن أم لا ؟
هذه المقالة توضح الفرق بين المبرمج و المطور
البرمجة : هي بناء تطبيقات أو برامج بغرض تنفيذ عمل أو مهمة معينة ( أدوات ) .
تطوير البرمجيات : هي بناء تطبيقات , سهلة الاستخدام , يمكن للمستخدم استخدامها , و قابلة للتعديل و التغيير ( برامج مصممة بشكل جيد )
المبرمج : Programmer
هو الشخص الذين يكتب أكواد نظيفة , و همه الأول أن تكون خالية من الأخطاء , لكن ليس بالضرورة أن يكون الكود مرتب , يهتم بتفاصيل الكود ,أكثر منه بالتفكير في إنهاءه, و دائما ما يكون هناك تنافس مع أصدقاءه في معرفة الحل الأمثل للمشكلة , لديه إطلاع واسع جداً على الخوارزميات ,
و الاهتمام بالرياضيات هو أمر أساسي لديه , مهارات التواصل مع فريق العمل أو التواصل مع المستخدم هو أمر اختياري بالنسبة له و ليس ضرورة !
يقضي معظم أوقات فراغه , في إنشاء نماذج من التطبيقات الغير منتهية , و كتابة الخوارزميات و تجربتها , يحلم في أن يتعلم كافة لغات البرمجة , و أن يكتب أقصر كود لحل أكبر مشكلة
خصائص تطبيقاته :
– كود احترافي يعمل بشكل ممتاز و غالبا بدون أخطاء , ( لكن من الصعب فهمه أو صيانته إلا من قبله و لمدة محدودة .)
– أغلب أكواده من نوع “المعكرونة”spaghetti code
– أغلب العناصر بأسمائها الافتراضية Button1 Button2 , Form1 …
– لا يوجد ترتيب لعناصر النافذة , ولا ترتيب لمفاتيح الانتقال فيما بينها (Tab Index)
– لا يوجد معالجة للأخطاء التي قد تحصل أثناء تنفيذ الكود – Exception handling .
– لا يوجد أي تخطيط لإمكانية إعادة استعمال هذا الكود من قبل مبرمج أو مطور آخر أو حتى من قبله هو .
– الكود بدون شرح أو تعليقات
المطور : Developer
هو الشخص الذي يكتب الكود المنسق , الذي يمكن قراءته كقصيدة أو قصة قصيرة , يعتمد اعتماد كبير على المكتبات الخارجية , الرياضيات هي آخر اهتماماته , من أولوياته التواصل مع فريق العمل و إيجاد حلول حول المشكلات , لديه تخصص عام و براعة تمكنه من توظيف أي مهارة أخرى ضمن تطبيقاته , يعتمد في بناء تطبيقه على التطبيقات العديدة التي قام بتجربتها و استخدامها خلال دراسته أو عمله , مما يجعل تطبيقه هو خلاصة لأفكاره , يقضي معظم أوقات فراغه في أمور لا علاقة لها بالبرمجة إطلاقاً أو ربما لا علاقة لها بالحاسب , يحلم دائما في أن يصنع فيس بوك جديد أو غوغل جديد .
خصائص تطبيقاته
– شرح الكود أطول أو يساوي طول الكود نفسه .
– الكود مرتب و منسق .
– لن تجد عنصر واحد بتسميته الافتراضية .
– كافة الأخطاء معالجة و قد يتم تسجيلها في سجل للأخطاء (log file) .
– يكتب الكود و كأن المستخدم سوف يقرأه .
– اهتمامه بواجهات البرنامج أكثر من اهتمامه بطريقة عمل البرنامج .
الخلاصة :
الشيء المهم الذي يجب الانتباه إليه , هو أنه ليس أي من الإثنين أفضل من الآخر , أو أقل شأناً من الآخر , بل هي مجرد صفات خاصة و عامة مختلفة في كل منهما عن الآخر , لا و بل بإمكانك أن تكون مبرمج محترف و مطور رائع بنفس الوقت و ذلك بدمج الخصائص الجيدة من كلا الطرفين ( طبعا سيكون أمامك أشياء كثيرة للتركيز عليها ) , لكنه يبقى أمرأ ممكناً , و ليس مستحيلاً .
و إن اختيارك طريق المبرمج أو المطور , هو الذي سيحدد مصير تطبيقك هل سيستخدم من قبل الزبائن أم لا ؟
#مقالات_برمجية📙📙
كيف تحقق أفضل المعايير في البرمجة و تطوير البرمجيات :
أولاً :
لا تبدأ بكتابة الكود بشكل مباشر , بل خذ وقتك استرخي و صمم البرنامج في مخيلتك و ادرسه من كافة النواحي , ثم خططه على الورقة و القلم و بعدها باشر بكتابة الكود .
ثانياً :
لا تعقد الأشياء أثناء كتابة الكود و إذا شعرت أن هناك شيئاً ما قد يسبب مشكلة في المستقبل , إبدا بحلها فورا , لأنها قد تسبب تراكم مشكلات و تغييرات كثيرة في الكود فيما بعد .
ثالثا :
يجب تبسيط الخوارزميات المعقدة , لا تضمنها ضمن مشروعك مباشرة , بل أنشئ مشروع جديد , و ابني الخوارزمية على شكل Class و ادرسها و عندما تنجح و تفهم عملها انقل الـ Class إلى مشروعك . على مبدأ Keep it Simpl
رابعاً :
راجع الكود بشكل مستمر , و احذف التوابع و المتحولات الغير ضرورية , و حاول ان تكتب شرح مبسط .
خامسا :
جرب البرنامج أكثر من مرة , جربه أنت أو دع شخصاً آخر يجربه لك , و يفضل شخص آخر لأنه لن يتبع نفس القواعد التي تتبعها أنت !
سادساً :
لا تكثر من Try Catch في المشروع , إذا كان لدي متحول يقبل قيمة عددية فقط , فقم بتقييد المستخدم بادخال قيمة عددية فقط !
سابعا :
لست مجبرا على الاعتماد على أي ميزة حديثة , تقدمها لك لغة البرمجة , الميزات الحديثة قد تحتوي على أخطاء .
كيف تحقق أفضل المعايير في البرمجة و تطوير البرمجيات :
أولاً :
لا تبدأ بكتابة الكود بشكل مباشر , بل خذ وقتك استرخي و صمم البرنامج في مخيلتك و ادرسه من كافة النواحي , ثم خططه على الورقة و القلم و بعدها باشر بكتابة الكود .
ثانياً :
لا تعقد الأشياء أثناء كتابة الكود و إذا شعرت أن هناك شيئاً ما قد يسبب مشكلة في المستقبل , إبدا بحلها فورا , لأنها قد تسبب تراكم مشكلات و تغييرات كثيرة في الكود فيما بعد .
ثالثا :
يجب تبسيط الخوارزميات المعقدة , لا تضمنها ضمن مشروعك مباشرة , بل أنشئ مشروع جديد , و ابني الخوارزمية على شكل Class و ادرسها و عندما تنجح و تفهم عملها انقل الـ Class إلى مشروعك . على مبدأ Keep it Simpl
رابعاً :
راجع الكود بشكل مستمر , و احذف التوابع و المتحولات الغير ضرورية , و حاول ان تكتب شرح مبسط .
خامسا :
جرب البرنامج أكثر من مرة , جربه أنت أو دع شخصاً آخر يجربه لك , و يفضل شخص آخر لأنه لن يتبع نفس القواعد التي تتبعها أنت !
سادساً :
لا تكثر من Try Catch في المشروع , إذا كان لدي متحول يقبل قيمة عددية فقط , فقم بتقييد المستخدم بادخال قيمة عددية فقط !
سابعا :
لست مجبرا على الاعتماد على أي ميزة حديثة , تقدمها لك لغة البرمجة , الميزات الحديثة قد تحتوي على أخطاء .
Forwarded from 📚 موسوعة الكتب الشاملة 📚
python-web-frameworks.pdf
2.5 MB
كتيب ممتاز من أورايلي يقارن أطر عمل الويب للغة بايثون (فلاسك، وجانغو، بوتل وغيرها)
#كتب_بايثون📚
#كتب_برمجية📚
#كتب_بايثون📚
#كتب_برمجية📚
#مقالات_برمجية
السلام عليكم
ما هى صفات المبرمج الناجح ⌨️🖥؟؟
✅ جرب شىء جديد كل يوم
ربما تكون تلك الجملة مطاطة بعض الشىء، لكن كمبرمج من المهم دائما أن تكتشف أدوات أو لغات برمجة جديدة، انتقالك لسياق مختلف Context، يوفر ذلك أفكار جديدة لك يمكنك دائما تنفيذها فى مشروعاتك لتحسين خاصية ما كنت تطورها.
✅ التواصل مع الاخرين👨👨👦👦
بما أن المبرمج أو المطور يكون دائماً في فريق، فيجب عليه معرفة أساليب اﻹتصال الناجحة مع زملائه، كذلك فهو ربما يكون كثير اﻹحتكاك بالزبائن، أو الشركات التي تستفيد من برامجه. وكل شخص يحتاج لتعامل مختلف، فمثلاً اﻹتصال بالمدير في نفس الشركة يختلف بالإتصال بمدير خارج الشركة، أو زميل في نفس المجموعة، يختلف من اﻹتصال بزميل خارج المجموعة أو موظف خارج الشركة.
✅ إدارة االوقت🕔
الوقت بالنسبة للمبرمج أو المطور يعتبر مورد رئيسي، إن لم يُستغل فسوف يضيع هباءً. لذلك على الفرد النجاح في إدارة نفسه ووقته حتى يعمل بكفاءة عالية. فمثلاً يمكن أن يكون هناك مبرمج ينتج في سنة ماينتجه اﻵخرون في سنتين أو ثلاث سنين، والفرق يكون هو أن اﻷول تجنب مُضيعات الوقت ونجح في إدارة وقته ليقوم بعمل أشياء عدة في وقت وجيز
منقول من المهندس محمد
السلام عليكم
ما هى صفات المبرمج الناجح ⌨️🖥؟؟
✅ جرب شىء جديد كل يوم
ربما تكون تلك الجملة مطاطة بعض الشىء، لكن كمبرمج من المهم دائما أن تكتشف أدوات أو لغات برمجة جديدة، انتقالك لسياق مختلف Context، يوفر ذلك أفكار جديدة لك يمكنك دائما تنفيذها فى مشروعاتك لتحسين خاصية ما كنت تطورها.
✅ التواصل مع الاخرين👨👨👦👦
بما أن المبرمج أو المطور يكون دائماً في فريق، فيجب عليه معرفة أساليب اﻹتصال الناجحة مع زملائه، كذلك فهو ربما يكون كثير اﻹحتكاك بالزبائن، أو الشركات التي تستفيد من برامجه. وكل شخص يحتاج لتعامل مختلف، فمثلاً اﻹتصال بالمدير في نفس الشركة يختلف بالإتصال بمدير خارج الشركة، أو زميل في نفس المجموعة، يختلف من اﻹتصال بزميل خارج المجموعة أو موظف خارج الشركة.
✅ إدارة االوقت🕔
الوقت بالنسبة للمبرمج أو المطور يعتبر مورد رئيسي، إن لم يُستغل فسوف يضيع هباءً. لذلك على الفرد النجاح في إدارة نفسه ووقته حتى يعمل بكفاءة عالية. فمثلاً يمكن أن يكون هناك مبرمج ينتج في سنة ماينتجه اﻵخرون في سنتين أو ثلاث سنين، والفرق يكون هو أن اﻷول تجنب مُضيعات الوقت ونجح في إدارة وقته ليقوم بعمل أشياء عدة في وقت وجيز
منقول من المهندس محمد
#مقالات_برمجية
💻مستودعات على Github لا يمكنك الاستغناء عنها أبدًا!
إذا كنت من هواة البرمجة أو محترفيها، فلا بد وأن لديك الاطلاع الكافي على مشاريع github التي أتاحت للمبرمجين فرصة أكبر لتلاقي العمل الأبداعي، وأعطتهم مجالاً واسعاً لتطوير الأكواد والمشاريع التي يعملون عليها ومشاركتها.
يضم موقع Github ملايين المستودعات repositories والتي كما نعرف أنها مشاريع برمجية تختلف بالحجم والتعقيد ومكتوبة بلغات برمجية مختلفة، وبالتأكيد ستختلف مستودعات الهواة عن المحترفين والشركات، فإذا كنت تفكر بالاستفادة من بعض المستودعات المتميزة ذات العدد الكبير من النجوم Stars التي تعكس نجاحها وشعبيتها، أبحر معنا في هذه المجموعة المتنوعة من المستودعات التي ستغني أفكارك البرمجية، وتوفّر عليك جهوداً برمجية مضنية لما تحتويه من كتب وخدمات ومكتبات Libraries وأُطر عمل Frameworks ومن يعلم قد تضيفها إلى قائمة متصفحك المفضلة للرجوع إليها في المستقبل.
🔰مشاريع github
Build Your Own X
Build Your Own X هو مستودع تعليمي يحتوي الكثير من الأفكار الرائعة، لا يحفزك على تعلم أفكار غيرك من المبرمجين، وإنما يعطيك الحافز حتى تصبح مؤثراً في عالم البرمجة والتطوير، لذا إن كنت ترغب ببناء أدواتك البرمجية التي تستخدمها يوماً بعد يوم فهذا المستودع هو المكان المناسب.
يحتوي المستودع دروساً في طريقة بناء محرر نصي text editor خاص بك، أو بناء لعبة جديدة، ولغة برمجة جديدة أو مكتبات برمجية مساعدة، وحتى محرك بحث أو نظام تشغيل أو مخدم ويب!، حتى وإن لم تستطع بناء أي شيء جديد، فإنك بالتأكيد ستتعلم من هذا المستودع الكثير من الأشياء.
🔰Free Programming Books
قد يوحي لك Free Programming Books بأن المستودع للكتب البرمجية فقط، إلا أنّك تجد أشياء مختلفة ومفيدة في آن معًا. فهو أولاً متاح بلغات متعددة تزيد عن 30 لغة والعربية إحداها، بدأت فكرة هذا المستودع على موقع Stackoverflow ثم نقلوا المحتوى فيما بعد إلى Github، وبعد ذلك انتشرت الفكرة على نطاق واسع وحصدت هذا العدد الكبير من النجوم.
وكما أسلفنا، لا يقتصر محتوى المستودع على الكتب، بل يتعداه للعديد من الدورات المجانية المقدمة أونلاين والمتوفّرة بـ 11 لغة أساسية، وكثير من مصادر البرمجة التفاعلية ومواضيع أخرى تهم المطورين.
🔰Oh My Zsh
Oh My Zsh هو إطار عمل framework يختص بتقديم الإضافات والدعم لـ Zsh، وZsh هو موجه أوامر command line مشابه لـ Bash مبني على Unix، يمتلك العديد من الميزات المتقدمة والتي ستدفعك لاستبدال موجه الأوامر Bash به،
➖ ومن هذه الميزات:
➖التوجه السهل للمسار Easy cd: ليس عليك أن تكتب مسار مشروعك بدقة، سيعرف Zsh المسار من خلال توقعات سابقة.
➖التصحيح التلقائي Auto correction: اذا ارتكبت بعض الأخطاء في كتابة بعض الأوامر، سيقوم Zsh بتصحيحها.
➖إضافات Plugins وسمات متنوّعة
فإذا كنت من مستخدمي Zsh فلا بد لك من الاطلاع على هذا المستودع لما فيه من إضافات وسمات جديدة، لن يجعلك هذا المستودع محترفاً في البرمجة، إلا أنه سيسهّل عليك حياتك البرمجية ويوفر الوقت.
🔰Coding Interview University
يعتبر Coding Interview University من أجمل المستودعات، قام صاحب هذا المستودع بدراسة البرمجة بشكل ذاتي، وبشكل متواصل بدأ بالدراسة 8-12 ساعة في اليوم لعدة أشهر، واستطاع بعد ذلك الحصول على فرصة العمر بالعمل كمطور برمجيات في كبرى الشركات الأمريكية Amazon، فأحب أن يشارك مجموع الخبرات التي أهّلته للحصول على وظيفة بهذه الأهمية.
لم يكن هذا المستودع في البداية سوى خطة دراسة to-do list، وضعها لعدة أشهر على أمل الوصول إلى الحد اللازم من المعرفة البرمجية للقبول الوظيفي، ولكنك ستجد المستودع الآن مليئًا بالنصائح والفوائد لمهندسي البرمجيات، وفيه باب عن الأسئلة المتوقعة قي مقابلات العمل في شركات كبيرة مثل غوغل وفيسبوك.
🔰Gitignore: A Collection of .gitignore Templates
مستودع خدمي لتسهيل عمل المبرمجين، يعرف العاملين في صناعة البرمجيات أهمية ملف gitignore.، ولكل مشروع بلغة برمجة معينة مجموعة من الملفات التي يجب تجاهل تحميلها للمستودع، ولتسهيل الأمر على المبرمجين،قام مؤسسو هذا المستودع بتجميع كل ملفات gitignore الجاهزة للعديد من اللغات مثل Java وPython وLaravel والكثير.
🔰Public APIs
يمكن تمثيل الـ APIs بشكل مبسط على أنها برامج خدمية صغير تقدمها مواقع الانترنت للتعامل مع المواقع الأخرى، فعلى سبيل المثال، إذا أراد موقع ما الحصول على صور من موقع آخر وعرضها على صفحاته دون الحاجة إلى تخزينها، فليس من المنطقي استعمال الروابط العادية، لأن هذه الروابط قابلة للتغير ويصعب مع تضخم الموقع وزيادة عدد الصفحات إصلاح هذه الروابط، هنا يجب الاستعانه بـ API لموقع يقدم هذه الخدمة، حيث يرسل الصور لموقعك عند الطلب.
هذا مثال صغير والأمثلة تطول، يمكنك جلب الأخبار المحلية والعالمية دون
💻مستودعات على Github لا يمكنك الاستغناء عنها أبدًا!
إذا كنت من هواة البرمجة أو محترفيها، فلا بد وأن لديك الاطلاع الكافي على مشاريع github التي أتاحت للمبرمجين فرصة أكبر لتلاقي العمل الأبداعي، وأعطتهم مجالاً واسعاً لتطوير الأكواد والمشاريع التي يعملون عليها ومشاركتها.
يضم موقع Github ملايين المستودعات repositories والتي كما نعرف أنها مشاريع برمجية تختلف بالحجم والتعقيد ومكتوبة بلغات برمجية مختلفة، وبالتأكيد ستختلف مستودعات الهواة عن المحترفين والشركات، فإذا كنت تفكر بالاستفادة من بعض المستودعات المتميزة ذات العدد الكبير من النجوم Stars التي تعكس نجاحها وشعبيتها، أبحر معنا في هذه المجموعة المتنوعة من المستودعات التي ستغني أفكارك البرمجية، وتوفّر عليك جهوداً برمجية مضنية لما تحتويه من كتب وخدمات ومكتبات Libraries وأُطر عمل Frameworks ومن يعلم قد تضيفها إلى قائمة متصفحك المفضلة للرجوع إليها في المستقبل.
🔰مشاريع github
Build Your Own X
Build Your Own X هو مستودع تعليمي يحتوي الكثير من الأفكار الرائعة، لا يحفزك على تعلم أفكار غيرك من المبرمجين، وإنما يعطيك الحافز حتى تصبح مؤثراً في عالم البرمجة والتطوير، لذا إن كنت ترغب ببناء أدواتك البرمجية التي تستخدمها يوماً بعد يوم فهذا المستودع هو المكان المناسب.
يحتوي المستودع دروساً في طريقة بناء محرر نصي text editor خاص بك، أو بناء لعبة جديدة، ولغة برمجة جديدة أو مكتبات برمجية مساعدة، وحتى محرك بحث أو نظام تشغيل أو مخدم ويب!، حتى وإن لم تستطع بناء أي شيء جديد، فإنك بالتأكيد ستتعلم من هذا المستودع الكثير من الأشياء.
🔰Free Programming Books
قد يوحي لك Free Programming Books بأن المستودع للكتب البرمجية فقط، إلا أنّك تجد أشياء مختلفة ومفيدة في آن معًا. فهو أولاً متاح بلغات متعددة تزيد عن 30 لغة والعربية إحداها، بدأت فكرة هذا المستودع على موقع Stackoverflow ثم نقلوا المحتوى فيما بعد إلى Github، وبعد ذلك انتشرت الفكرة على نطاق واسع وحصدت هذا العدد الكبير من النجوم.
وكما أسلفنا، لا يقتصر محتوى المستودع على الكتب، بل يتعداه للعديد من الدورات المجانية المقدمة أونلاين والمتوفّرة بـ 11 لغة أساسية، وكثير من مصادر البرمجة التفاعلية ومواضيع أخرى تهم المطورين.
🔰Oh My Zsh
Oh My Zsh هو إطار عمل framework يختص بتقديم الإضافات والدعم لـ Zsh، وZsh هو موجه أوامر command line مشابه لـ Bash مبني على Unix، يمتلك العديد من الميزات المتقدمة والتي ستدفعك لاستبدال موجه الأوامر Bash به،
➖ ومن هذه الميزات:
➖التوجه السهل للمسار Easy cd: ليس عليك أن تكتب مسار مشروعك بدقة، سيعرف Zsh المسار من خلال توقعات سابقة.
➖التصحيح التلقائي Auto correction: اذا ارتكبت بعض الأخطاء في كتابة بعض الأوامر، سيقوم Zsh بتصحيحها.
➖إضافات Plugins وسمات متنوّعة
فإذا كنت من مستخدمي Zsh فلا بد لك من الاطلاع على هذا المستودع لما فيه من إضافات وسمات جديدة، لن يجعلك هذا المستودع محترفاً في البرمجة، إلا أنه سيسهّل عليك حياتك البرمجية ويوفر الوقت.
🔰Coding Interview University
يعتبر Coding Interview University من أجمل المستودعات، قام صاحب هذا المستودع بدراسة البرمجة بشكل ذاتي، وبشكل متواصل بدأ بالدراسة 8-12 ساعة في اليوم لعدة أشهر، واستطاع بعد ذلك الحصول على فرصة العمر بالعمل كمطور برمجيات في كبرى الشركات الأمريكية Amazon، فأحب أن يشارك مجموع الخبرات التي أهّلته للحصول على وظيفة بهذه الأهمية.
لم يكن هذا المستودع في البداية سوى خطة دراسة to-do list، وضعها لعدة أشهر على أمل الوصول إلى الحد اللازم من المعرفة البرمجية للقبول الوظيفي، ولكنك ستجد المستودع الآن مليئًا بالنصائح والفوائد لمهندسي البرمجيات، وفيه باب عن الأسئلة المتوقعة قي مقابلات العمل في شركات كبيرة مثل غوغل وفيسبوك.
🔰Gitignore: A Collection of .gitignore Templates
مستودع خدمي لتسهيل عمل المبرمجين، يعرف العاملين في صناعة البرمجيات أهمية ملف gitignore.، ولكل مشروع بلغة برمجة معينة مجموعة من الملفات التي يجب تجاهل تحميلها للمستودع، ولتسهيل الأمر على المبرمجين،قام مؤسسو هذا المستودع بتجميع كل ملفات gitignore الجاهزة للعديد من اللغات مثل Java وPython وLaravel والكثير.
🔰Public APIs
يمكن تمثيل الـ APIs بشكل مبسط على أنها برامج خدمية صغير تقدمها مواقع الانترنت للتعامل مع المواقع الأخرى، فعلى سبيل المثال، إذا أراد موقع ما الحصول على صور من موقع آخر وعرضها على صفحاته دون الحاجة إلى تخزينها، فليس من المنطقي استعمال الروابط العادية، لأن هذه الروابط قابلة للتغير ويصعب مع تضخم الموقع وزيادة عدد الصفحات إصلاح هذه الروابط، هنا يجب الاستعانه بـ API لموقع يقدم هذه الخدمة، حيث يرسل الصور لموقعك عند الطلب.
هذا مثال صغير والأمثلة تطول، يمكنك جلب الأخبار المحلية والعالمية دون
الحاجة لنشرها بشكل يدوي على موقعك.
يقدم Public APIs أهم وأشهر الـ APIs التي يحتاجها المبرمجون ولا غنى لهم عنها مثل APIs الخاصة بـ google analytics أو facebook.
🔰FreeCodeCamp
يعتبر Free Code Camp من أكبر مشاريع github ، يجمع المبرمجين لتبادل الخبرات ويتبع هذا المستودع إلى منظمة غير ربحية مفتوحة المصدر، ويطرح العديد من القضايا البرمجية والحلول المقترحة لها.
🔰YouDontKnowJs
YouDontKnowJs هو مستودع خاص بلغة جافاسكريبت تلك التي اكسبت شعبية كبيرة لسهولتها وأهميتها في عالم الويب، يحتوي هذا المستودع على كم كبير من الكتب للمؤلف Kyle Simpson، ويضم حالياً الطبعة الثانية من سلسلة كتب You dont js yet التي تغوص في نواة الجافاسكريبت.
🔰Bootstrap
مستودع مختص ببيئة العمل المعروفة Bootstrap، إحدى أشهر بيئات التصميم الخاصة بمطوّري الويب، ستجد فيها كل المعلومات التي تحتاجها.
🔰JavaScript Algorithms and Data Structures
يحتوي JavaScript Algorithms and Data Structures على كثير من الأمثلة المفيدة عن الخوارزميات وبنى البيانات Data structure، مع شرح تفصيلي لكل مثال، بالإضافة إلى روابط لفيديوهات على اليوتيوب لشرح الأمثلة وتتوفر هذه الفيجيوهات بعدة لغات منها الإنكليزية والإسبانية والفرنسية، كما توفر تصنيفاً للأمثلة كمستوى مبتدئ أو متقدم وإلى جانب كل مثال حرف B مبتدئ أو A متقدم، وفيها تصنيف رائع للخوارزميات الرياضية Maths والنصية Strings والبحث search والترتيب sorting والمجموعات sets والرسوم البيانية Graphs والكثير.
✅كما يمكنك الاستفادة من مشاريع github التابعة للشركات الكبيرة ومنها:
📍Google on Github
📍Microsoft on Github
📍Facebook on Github
يقدم Public APIs أهم وأشهر الـ APIs التي يحتاجها المبرمجون ولا غنى لهم عنها مثل APIs الخاصة بـ google analytics أو facebook.
🔰FreeCodeCamp
يعتبر Free Code Camp من أكبر مشاريع github ، يجمع المبرمجين لتبادل الخبرات ويتبع هذا المستودع إلى منظمة غير ربحية مفتوحة المصدر، ويطرح العديد من القضايا البرمجية والحلول المقترحة لها.
🔰YouDontKnowJs
YouDontKnowJs هو مستودع خاص بلغة جافاسكريبت تلك التي اكسبت شعبية كبيرة لسهولتها وأهميتها في عالم الويب، يحتوي هذا المستودع على كم كبير من الكتب للمؤلف Kyle Simpson، ويضم حالياً الطبعة الثانية من سلسلة كتب You dont js yet التي تغوص في نواة الجافاسكريبت.
🔰Bootstrap
مستودع مختص ببيئة العمل المعروفة Bootstrap، إحدى أشهر بيئات التصميم الخاصة بمطوّري الويب، ستجد فيها كل المعلومات التي تحتاجها.
🔰JavaScript Algorithms and Data Structures
يحتوي JavaScript Algorithms and Data Structures على كثير من الأمثلة المفيدة عن الخوارزميات وبنى البيانات Data structure، مع شرح تفصيلي لكل مثال، بالإضافة إلى روابط لفيديوهات على اليوتيوب لشرح الأمثلة وتتوفر هذه الفيجيوهات بعدة لغات منها الإنكليزية والإسبانية والفرنسية، كما توفر تصنيفاً للأمثلة كمستوى مبتدئ أو متقدم وإلى جانب كل مثال حرف B مبتدئ أو A متقدم، وفيها تصنيف رائع للخوارزميات الرياضية Maths والنصية Strings والبحث search والترتيب sorting والمجموعات sets والرسوم البيانية Graphs والكثير.
✅كما يمكنك الاستفادة من مشاريع github التابعة للشركات الكبيرة ومنها:
📍Google on Github
📍Microsoft on Github
📍Facebook on Github
[💛سلاسل ودروس النابلسي💜]
قناة تهتم بنشر جميع سلاسل ودوس وكتب النابلسي وكل ماهو جديد من دروس الشيخ العلامة محمد راتب النابلسي حفظه الله ونفع به المسلمين
ساعدونا بنشر رابط القناة فالدال على الخير كفاعله
https://t.me/slaslanablsy
قناة تهتم بنشر جميع سلاسل ودوس وكتب النابلسي وكل ماهو جديد من دروس الشيخ العلامة محمد راتب النابلسي حفظه الله ونفع به المسلمين
ساعدونا بنشر رابط القناة فالدال على الخير كفاعله
https://t.me/slaslanablsy
Telegram
[🎧سلاسل ودروس النابلسي🎧]
قناة تهتم بنشر جميع سلاسل ودوس وكتب النابلسي وكل ماهو جديد من دروس الشيخ العلامة محمد راتب النابلسي حفظه الله ونفع به المسلمين
قناتنا في اليوتيوب
https://youtube.com/channel/UCCSn8t9BlSlHoo8febSvyDw
ساعدونا بنشر رابط القناة فالدال على الخير كفاعله
قناتنا في اليوتيوب
https://youtube.com/channel/UCCSn8t9BlSlHoo8febSvyDw
ساعدونا بنشر رابط القناة فالدال على الخير كفاعله
. #نصائح_برمجية📙📙
مُتلازمة المحتال
“لست مؤهلاً بما يكفي لأبرمج”
أن بعض المُبرمجين لديهم مُتلازمة يشعرون من خلالها أنهم ليس مؤهلين تمامًا للقيام بالبرمجة على أكمل وجه، وأن معرفتهم لا تكفي، فضلًا عن كفاءة بقية المُبرمجين وأن معرفتهم قليلة جدًا إذا ما قُورنت بالبقية.
هذه المُتلازمة صُنّفت فيما بعد على أنها دليل قاطع على أن صاحبها هو مُبرمج حقيقي، لأن الشعور بعدم الرضا والسعي إلى التطوّر بشكل دائم كفيل بأن يجعل صاحبها مُتميّزًا عن غيره.
.
مُتلازمة المحتال
“لست مؤهلاً بما يكفي لأبرمج”
أن بعض المُبرمجين لديهم مُتلازمة يشعرون من خلالها أنهم ليس مؤهلين تمامًا للقيام بالبرمجة على أكمل وجه، وأن معرفتهم لا تكفي، فضلًا عن كفاءة بقية المُبرمجين وأن معرفتهم قليلة جدًا إذا ما قُورنت بالبقية.
هذه المُتلازمة صُنّفت فيما بعد على أنها دليل قاطع على أن صاحبها هو مُبرمج حقيقي، لأن الشعور بعدم الرضا والسعي إلى التطوّر بشكل دائم كفيل بأن يجعل صاحبها مُتميّزًا عن غيره.
.
💻🔰✅#دليل_مفصل_لكيفية_عمل_المواقع_الإلكترونية
📌الويب
سنعرف اليوم قصة ظهور مصطلح الويب، وأهم الآليات والتقنيات التي يشتغل بها إضافة إلى أنواع وأصناف لغات البرمجة المستخدمة لتطوير تطبيقاته. هذا وسنتكلم في النهاية بشيء من التفصيل عن مهنة مطور الويب وما هي الخصال والمهارات التي يجب على المرء اكتسابها ليصبح مطورا للويب.
إذن دعونا لا نضيع مزيدا من الوقت :) ولنبدأ مباشرة في تعريف مصطلح الويب.
🌐ما المقصود بالويب ؟
دائما ما نسمع ونقرأ عن الشبكة العنكبوتية العالمية ونظن بأن القصد من هذا الإسم هو شبكة الإنترنت ككل، ولكن هذا غير صحيح :)
🛡المقصود بالشبكة العنكبوتية هو الويب بالتحديد، والأخير ليس سوى جزء أو خدمة من الخدمات الكثيرة التي توفرها لنا الإنترنت.
🌐ولكن ما العلاقة بين شبكة العنكبوت والويب ؟ ولماذا هذا الإسم ؟
عندما ننظر إلى بيت العنكبوت نجد بأنه عبارة عن شبكة مكونة من خيوط مترابطة فيما بينها ومتقاطعة، ويمكن الإنتقال من أي نقطة إلى أخرى باستخدام هذه الخيوط. ولما ننظر إلى الويب نجد بأنه يمكننا كذلك الإنتقال من صفحة لأخرى، ومن موقع لآخر باستخدام ما يعرف بالروابط أو Hyperlinks التي يمكن تشبيهها تماما بخيوط بيت العنكبوت.
📍بيت العنكبوت
قد تبدو فكرة الروابط بسيطة في أيامنا هذه، ولكنها كانت ثورة حقيقية بنيت عليها شبكة الويب برمتها إذ لا يمكن تخيل سلسلة لا نهائية من المواقع الإلكترونية بدون روابط وخيوط تقودنا إليها.
الشبكة العنكبوتية جزء من شبكة الإنترنت إذن كما أشرنا إليه أعلاه، يعتبر الويب خدمة من واحدة الخدمات العديدة التي توفرها شبكة الإنترنت العالمية. ومن بين الخدمات الأخرى نجد خدمة التراسل بالبريد الإلكتروني أو الإيميل، وإلى جانبها كذلك خدمة FTP التي تمكن مجموعة من الحواسب من تبادل مختلف أنواع الملفات.
🌐الويب يتم الولوج إليه عبر المتصفحات التي يعد متصفح Google Chrome أشهرها وأكثرها استخداما في أيامنا هذه. حيث تقوم هذه المتصفحات بطلب صفحات الويب من الخوام التي تستضيفها (الصفحات) عبر بروتوكول Http (أو Https) الذي يظهر في بداية كل روابط الصفحات على الشبكة العنكبوتية.
➖أما خدمة Ftp فتعتمد على بروتوكول FTP بينما إرسال البريد الإلكتروني يتم عبر بروتوكولات أخرى لعل أشهرها SMTP و POP3.
📌قصة ظهور الإنترنت والويب
ظهور الإنترنت
هذه القصة طويلة، ولكن يمكن اعتبار عام 1969 أهم فصولها.
في هذا العام، قامت وزارة الدفاع الأمريكية بإنشاء شبكة ARPANET التي اعتبرت في ذلك الوقت أول شبكة تعتمد على بنية TCP/IP التي ستشكل فيما بعد الأساس الذي ستقوم عليه شبكة الإنترنت.
توالت التحسينات والتطويرات على ARPANET ولحقت بها شبكات أوروبية أخرى، حاولت كل منها تكملة وإصلاح الثغرات في نظيراتها، حتى جاء عام 1990 ليستقر العالم على شبكة موحدة مبنية على معايير قياسية متفق عليها سميت شبكة الإنترنت التي نعرفها اليوم.
📌اختراع الويب
في أواخر ثمانينات القرن الماضي، تحديد في عام 1989 وأثناء عمله في المركز الأوروبي للأبحاث النووية على الحدود الفرنسية السويسرية، قام عالم الحاسوب البريطاني تيم بيرنيرز لي بتقديم فكرة مبدئية لمشروعه الذي يتمثل في تمكين مستخدمي شبكة الإنترنت من تقديم ونشر المعلومات على شكل صفحات يمكن الوصول إليها عن طريق روابط أو ما يعرف ب Hypertext Links.
عمل Tim Berners-Lee على هذه الفكرة داخل المعهد الأوروبي حتى نضجت وتم اختبارها والعمل بها داخله. بعد عامين، أصبح المشروع الذي سمي World Wide Web عاما وبات بإمكان العوام من الناس والشركات والمنصات الإعلامية الوصول للشبكة العنكبوتية وإنشاء نوافذها ومواقعها الإلكترونية.
في نهاية عام 1993 لم يتجاوز عدد المواقع حول العالم 650 موقعا إلكترونيا، ولكن هذا العدد تضاعف مع مرور السنوات بمعدلات كبيرة جدا ليصل في عام 2014 إلى أكثر من 1 مليار موقع إلكتروني! وفي العام الذي تلاه شهد الويب حدثا تاريخيا ومفصليا جديدا تمثل في افتتاح مدونة توتومينا :sunglasses:.
🌐يعتبر تيم بيرنرز لي كذلك مصمم وواضع أسس لغة الترميز النصي HTML التي ما نزال نستخدمها إلى اليوم. كما قام هذا العالم بإنشاء منظمة W3C التي أخذت على عاتقها مهمة الإشراف على تطوير عدد من اللغات والتقنيات
📌الويب
سنعرف اليوم قصة ظهور مصطلح الويب، وأهم الآليات والتقنيات التي يشتغل بها إضافة إلى أنواع وأصناف لغات البرمجة المستخدمة لتطوير تطبيقاته. هذا وسنتكلم في النهاية بشيء من التفصيل عن مهنة مطور الويب وما هي الخصال والمهارات التي يجب على المرء اكتسابها ليصبح مطورا للويب.
إذن دعونا لا نضيع مزيدا من الوقت :) ولنبدأ مباشرة في تعريف مصطلح الويب.
🌐ما المقصود بالويب ؟
دائما ما نسمع ونقرأ عن الشبكة العنكبوتية العالمية ونظن بأن القصد من هذا الإسم هو شبكة الإنترنت ككل، ولكن هذا غير صحيح :)
🛡المقصود بالشبكة العنكبوتية هو الويب بالتحديد، والأخير ليس سوى جزء أو خدمة من الخدمات الكثيرة التي توفرها لنا الإنترنت.
🌐ولكن ما العلاقة بين شبكة العنكبوت والويب ؟ ولماذا هذا الإسم ؟
عندما ننظر إلى بيت العنكبوت نجد بأنه عبارة عن شبكة مكونة من خيوط مترابطة فيما بينها ومتقاطعة، ويمكن الإنتقال من أي نقطة إلى أخرى باستخدام هذه الخيوط. ولما ننظر إلى الويب نجد بأنه يمكننا كذلك الإنتقال من صفحة لأخرى، ومن موقع لآخر باستخدام ما يعرف بالروابط أو Hyperlinks التي يمكن تشبيهها تماما بخيوط بيت العنكبوت.
📍بيت العنكبوت
قد تبدو فكرة الروابط بسيطة في أيامنا هذه، ولكنها كانت ثورة حقيقية بنيت عليها شبكة الويب برمتها إذ لا يمكن تخيل سلسلة لا نهائية من المواقع الإلكترونية بدون روابط وخيوط تقودنا إليها.
الشبكة العنكبوتية جزء من شبكة الإنترنت إذن كما أشرنا إليه أعلاه، يعتبر الويب خدمة من واحدة الخدمات العديدة التي توفرها شبكة الإنترنت العالمية. ومن بين الخدمات الأخرى نجد خدمة التراسل بالبريد الإلكتروني أو الإيميل، وإلى جانبها كذلك خدمة FTP التي تمكن مجموعة من الحواسب من تبادل مختلف أنواع الملفات.
🌐الويب يتم الولوج إليه عبر المتصفحات التي يعد متصفح Google Chrome أشهرها وأكثرها استخداما في أيامنا هذه. حيث تقوم هذه المتصفحات بطلب صفحات الويب من الخوام التي تستضيفها (الصفحات) عبر بروتوكول Http (أو Https) الذي يظهر في بداية كل روابط الصفحات على الشبكة العنكبوتية.
➖أما خدمة Ftp فتعتمد على بروتوكول FTP بينما إرسال البريد الإلكتروني يتم عبر بروتوكولات أخرى لعل أشهرها SMTP و POP3.
📌قصة ظهور الإنترنت والويب
ظهور الإنترنت
هذه القصة طويلة، ولكن يمكن اعتبار عام 1969 أهم فصولها.
في هذا العام، قامت وزارة الدفاع الأمريكية بإنشاء شبكة ARPANET التي اعتبرت في ذلك الوقت أول شبكة تعتمد على بنية TCP/IP التي ستشكل فيما بعد الأساس الذي ستقوم عليه شبكة الإنترنت.
توالت التحسينات والتطويرات على ARPANET ولحقت بها شبكات أوروبية أخرى، حاولت كل منها تكملة وإصلاح الثغرات في نظيراتها، حتى جاء عام 1990 ليستقر العالم على شبكة موحدة مبنية على معايير قياسية متفق عليها سميت شبكة الإنترنت التي نعرفها اليوم.
📌اختراع الويب
في أواخر ثمانينات القرن الماضي، تحديد في عام 1989 وأثناء عمله في المركز الأوروبي للأبحاث النووية على الحدود الفرنسية السويسرية، قام عالم الحاسوب البريطاني تيم بيرنيرز لي بتقديم فكرة مبدئية لمشروعه الذي يتمثل في تمكين مستخدمي شبكة الإنترنت من تقديم ونشر المعلومات على شكل صفحات يمكن الوصول إليها عن طريق روابط أو ما يعرف ب Hypertext Links.
عمل Tim Berners-Lee على هذه الفكرة داخل المعهد الأوروبي حتى نضجت وتم اختبارها والعمل بها داخله. بعد عامين، أصبح المشروع الذي سمي World Wide Web عاما وبات بإمكان العوام من الناس والشركات والمنصات الإعلامية الوصول للشبكة العنكبوتية وإنشاء نوافذها ومواقعها الإلكترونية.
في نهاية عام 1993 لم يتجاوز عدد المواقع حول العالم 650 موقعا إلكترونيا، ولكن هذا العدد تضاعف مع مرور السنوات بمعدلات كبيرة جدا ليصل في عام 2014 إلى أكثر من 1 مليار موقع إلكتروني! وفي العام الذي تلاه شهد الويب حدثا تاريخيا ومفصليا جديدا تمثل في افتتاح مدونة توتومينا :sunglasses:.
🌐يعتبر تيم بيرنرز لي كذلك مصمم وواضع أسس لغة الترميز النصي HTML التي ما نزال نستخدمها إلى اليوم. كما قام هذا العالم بإنشاء منظمة W3C التي أخذت على عاتقها مهمة الإشراف على تطوير عدد من اللغات والتقنيات
التي يعتمد عليها الويب بشكل أساسي مثل PNG ،XML ،CSS ،HTML إلخ...
📌العميل والخادم (Client & server)
الآن وقد تعرفنا على الفرق بين الإنترنت والويب، حان الوقت لكي نكتشف الأجزاء والمكونات الأساسية لهذه الشبكة.
عندما نتكلم عن شبكة الويب فإننا نتكلم عن جزءين أسياسين لا ثالث لهما: العميل والخادم (Client/Server). هذان المصطلحان يبدوان مألوفان ومترادفان في كثير من المجالات، سواء في مجالنا الذي هو البرمجة، أو في المجالات الأخرى كالمطاعم على سبيل المثال لا الحصر.
في المطعم، يقوم العميل بطلب طبق معين فيقوم الخادم بالإستجابة لهذه الطلبية عن طريق إعداد الطبق المراد. إذن لدينا عمليتان أسياسيتان: طلب واستجابة. في ميدان تطوير الويب نسميهما Request و Response
📌الخادم والعملاء
العملاء في الويب
في الويب، العميل هو الجهاز أو الجهة التي تقوم بطلب صفحة ويب معينة. فمثلا عندما أكتب tutomena.com على شريط العنوان في المتصفح يكون جهازي هو العميل و tutomena.com هي صفحة الويب التي أقومأ بطلبها.
خادم الويب
ببساطة الخادم هو الآلة (حاسوب) الموجودة في مكان ما من هذا العالم والتي يوجد فيها الملف أو صفحة الويب التي قام العميل بطلبها.
جميعنا معتادون على فتح ملفات والدخول إلى مجلدات في حواسبنا، هذا بالضبط ما يفعله العميل عندما يطلب شيئا من الخادم في شبكة الويب، الفرق أن الملف هنا موجود في مكان بعيد عن جهازنا: موجود في الخادم أو Server .
مراكز البيانات (Data centers)
الخوادم التي تستضيف وتخدم مختلف المواقع الإلكترونية نجدها منتشرة حول العالم على شكل مراكز بيانات أو ما يعرف بالإنجليزية ب Data centers
هذه المراكز عبارة عن بنايات مؤمنة بشكل كبير لكي تكون بيانات ومعلومات المستخدمين بعيدة قدر الإمكان عن أيدي المخربين والمخترقين بشكل عام.
مركز بيانات
المواقع الإلكترونية الضخمة والمعروفة مثل فيسبوك، غوغل وأمازون تمتلك مراكز بيانات خاصة بها. فعلى سبيل المثال، تمتلك شركة فيسبوك في الوقت الحالي 16 مركز بيانات منتشرة في كل من الولايات المتحدة الأمريكية، الدانمارك، المملكة المتحدة، السويد وماليزيا، وتمتد على مساحات كبيرة بحيث يضم كل منها الآف الخوادم والحواسيب الخارقة.
صلة الوصل بين الخادم والعميل
إذن قلنا بأن هذه الخوادم تستضيف المواقع التي نزورها وتمدنا بها عند الطلب، ولكن كيف يتم ذلك ؟ كيف يستطيع حاسوبي مثلا عند الدخول لموقع فيسبوك أن يتواصل مع خادم يوجد على بعد آلاف الأميال من المغرب ؟ في الولايات المتحدة مثلا.
كما ترون في الصورة أسفله، كل خادم تخرج منه أسلاك تعرف ب Networking cables والتي تلتقي وتشبك مع أسلاك مزود الإنترنت في المنطقة التي يتواجد بها مركز البيانات. هذه الأسلاك تلتقي في النهاية في نقطة معينة مع أسلاك شبكة الإنترنت العالمية التي تخترق هذه الكرة الأرضية بطولها وعرضها.
مركز بيانات
في حالتي هذه، عندما أدخل لفيسبوك فإن صلة الوصل ستكون واحدا من تلك الأسلاك التي تربط الولايات المتحدة بأوروبا وافريقيا والموجودة في أعماق المحيط الأطلنتي. هذه الأسلاك مصنوعة عادة من ألياف بصرية تضمن سرعة فائقة في نقل البيانات.
تلتقي هذه الكابلات العابرة للقارات في النهاية مع شبكة الشركة التي تزودني بالإنترنت هنا في المغرب لتكمل بعدها الحزمة الآتية من الخادم في أمريكا مسيرتها نحو حاسبي 😃
هذه هي الفكرة العامة لكيفية ربط كل الأجهزة المتصلة بالإنترنت مع بعضها البعض. العملية بطبيعة الحال أعقد من هذا بكثير ولكن مقالنا هذا أبعد ما يكون عن درس في الشبكات 😉
عنوان Domain name ،DNS ،IP !! ما كل هذا ؟؟
أظن أننا فهمنا لحد هذه النقطة معنى العميل والخادم وكذا العلاقة بينهما. ولكن هناك سؤال قد يطرحه كثير منكم الآن: عندما يتوصل خادم فيسبوك بالولايات المتحدة بطلبي (Request)، كيف يعرف أن جهازي بالضبط هو الذي طلب تلك الصفحة من بين عشرات الملايين من الأجهزة والحواسيب التي تتصل به ؟ والعكس صحيح، عندما أكتب في المتصفح facebook.com كيف يعرف الأخير الخادم الذي سيطلب منه تلك الصفحة ؟
كلمة في ما يطلق عليه عنوان IP أو بالإنجليزية Internet Protocol Address.
عنوان IP
يمكننا أن نستعير مثالا من حياة اليومية حتى نفهم المعنى بشكل أفضل وتترسخ لدينا فكرة عناوين IP.
عندما تريد دعوة أحد ما إلى بيت أحد أصدقائك (أنت تعرف اسم هذا الصديق بالطبع 😃) فإنك لن تقول بطبيعة الحال "سنلتقي في المنزل الذي يوجد في الحي الفولاني، في الشارع الفولاني ورقم البيت هو xx"، بل ستقول "سنلتقي في بيت صديقنا ابراهيم" 😉 هذا أسهل وأيسر على مدعوك لتذكره ولمعرفة المقصود بالضبط.
هذا صحيح كذلك في بنية الويب، فلكل جهاز عنوانه المختصر الخاص الذي يعرف ويستهدف به، والذي هو كما قلنا عنوان IP. صيغة وشكل هذا العنوان تكون على هذا النحو مثلا 157.240.195.35 ولا يمكن أن نجد جهازين متصلين في ذات الوقت بالإنترنت ولهما نفس عنوان IP.
📌العميل والخادم (Client & server)
الآن وقد تعرفنا على الفرق بين الإنترنت والويب، حان الوقت لكي نكتشف الأجزاء والمكونات الأساسية لهذه الشبكة.
عندما نتكلم عن شبكة الويب فإننا نتكلم عن جزءين أسياسين لا ثالث لهما: العميل والخادم (Client/Server). هذان المصطلحان يبدوان مألوفان ومترادفان في كثير من المجالات، سواء في مجالنا الذي هو البرمجة، أو في المجالات الأخرى كالمطاعم على سبيل المثال لا الحصر.
في المطعم، يقوم العميل بطلب طبق معين فيقوم الخادم بالإستجابة لهذه الطلبية عن طريق إعداد الطبق المراد. إذن لدينا عمليتان أسياسيتان: طلب واستجابة. في ميدان تطوير الويب نسميهما Request و Response
📌الخادم والعملاء
العملاء في الويب
في الويب، العميل هو الجهاز أو الجهة التي تقوم بطلب صفحة ويب معينة. فمثلا عندما أكتب tutomena.com على شريط العنوان في المتصفح يكون جهازي هو العميل و tutomena.com هي صفحة الويب التي أقومأ بطلبها.
خادم الويب
ببساطة الخادم هو الآلة (حاسوب) الموجودة في مكان ما من هذا العالم والتي يوجد فيها الملف أو صفحة الويب التي قام العميل بطلبها.
جميعنا معتادون على فتح ملفات والدخول إلى مجلدات في حواسبنا، هذا بالضبط ما يفعله العميل عندما يطلب شيئا من الخادم في شبكة الويب، الفرق أن الملف هنا موجود في مكان بعيد عن جهازنا: موجود في الخادم أو Server .
مراكز البيانات (Data centers)
الخوادم التي تستضيف وتخدم مختلف المواقع الإلكترونية نجدها منتشرة حول العالم على شكل مراكز بيانات أو ما يعرف بالإنجليزية ب Data centers
هذه المراكز عبارة عن بنايات مؤمنة بشكل كبير لكي تكون بيانات ومعلومات المستخدمين بعيدة قدر الإمكان عن أيدي المخربين والمخترقين بشكل عام.
مركز بيانات
المواقع الإلكترونية الضخمة والمعروفة مثل فيسبوك، غوغل وأمازون تمتلك مراكز بيانات خاصة بها. فعلى سبيل المثال، تمتلك شركة فيسبوك في الوقت الحالي 16 مركز بيانات منتشرة في كل من الولايات المتحدة الأمريكية، الدانمارك، المملكة المتحدة، السويد وماليزيا، وتمتد على مساحات كبيرة بحيث يضم كل منها الآف الخوادم والحواسيب الخارقة.
صلة الوصل بين الخادم والعميل
إذن قلنا بأن هذه الخوادم تستضيف المواقع التي نزورها وتمدنا بها عند الطلب، ولكن كيف يتم ذلك ؟ كيف يستطيع حاسوبي مثلا عند الدخول لموقع فيسبوك أن يتواصل مع خادم يوجد على بعد آلاف الأميال من المغرب ؟ في الولايات المتحدة مثلا.
كما ترون في الصورة أسفله، كل خادم تخرج منه أسلاك تعرف ب Networking cables والتي تلتقي وتشبك مع أسلاك مزود الإنترنت في المنطقة التي يتواجد بها مركز البيانات. هذه الأسلاك تلتقي في النهاية في نقطة معينة مع أسلاك شبكة الإنترنت العالمية التي تخترق هذه الكرة الأرضية بطولها وعرضها.
مركز بيانات
في حالتي هذه، عندما أدخل لفيسبوك فإن صلة الوصل ستكون واحدا من تلك الأسلاك التي تربط الولايات المتحدة بأوروبا وافريقيا والموجودة في أعماق المحيط الأطلنتي. هذه الأسلاك مصنوعة عادة من ألياف بصرية تضمن سرعة فائقة في نقل البيانات.
تلتقي هذه الكابلات العابرة للقارات في النهاية مع شبكة الشركة التي تزودني بالإنترنت هنا في المغرب لتكمل بعدها الحزمة الآتية من الخادم في أمريكا مسيرتها نحو حاسبي 😃
هذه هي الفكرة العامة لكيفية ربط كل الأجهزة المتصلة بالإنترنت مع بعضها البعض. العملية بطبيعة الحال أعقد من هذا بكثير ولكن مقالنا هذا أبعد ما يكون عن درس في الشبكات 😉
عنوان Domain name ،DNS ،IP !! ما كل هذا ؟؟
أظن أننا فهمنا لحد هذه النقطة معنى العميل والخادم وكذا العلاقة بينهما. ولكن هناك سؤال قد يطرحه كثير منكم الآن: عندما يتوصل خادم فيسبوك بالولايات المتحدة بطلبي (Request)، كيف يعرف أن جهازي بالضبط هو الذي طلب تلك الصفحة من بين عشرات الملايين من الأجهزة والحواسيب التي تتصل به ؟ والعكس صحيح، عندما أكتب في المتصفح facebook.com كيف يعرف الأخير الخادم الذي سيطلب منه تلك الصفحة ؟
كلمة في ما يطلق عليه عنوان IP أو بالإنجليزية Internet Protocol Address.
عنوان IP
يمكننا أن نستعير مثالا من حياة اليومية حتى نفهم المعنى بشكل أفضل وتترسخ لدينا فكرة عناوين IP.
عندما تريد دعوة أحد ما إلى بيت أحد أصدقائك (أنت تعرف اسم هذا الصديق بالطبع 😃) فإنك لن تقول بطبيعة الحال "سنلتقي في المنزل الذي يوجد في الحي الفولاني، في الشارع الفولاني ورقم البيت هو xx"، بل ستقول "سنلتقي في بيت صديقنا ابراهيم" 😉 هذا أسهل وأيسر على مدعوك لتذكره ولمعرفة المقصود بالضبط.
هذا صحيح كذلك في بنية الويب، فلكل جهاز عنوانه المختصر الخاص الذي يعرف ويستهدف به، والذي هو كما قلنا عنوان IP. صيغة وشكل هذا العنوان تكون على هذا النحو مثلا 157.240.195.35 ولا يمكن أن نجد جهازين متصلين في ذات الوقت بالإنترنت ولهما نفس عنوان IP.