📚موسوعة الحاسوب و البرمجة📚
11.7K subscribers
875 photos
275 videos
3.95K files
913 links
تحتوي على اي كتب او برامج او فيديوهات او دورات تتعلق بالحاسوب او البرمجة وصيانة الهواتف
قنواتنا
للتواصل @mosoaa_bot
قناتنا في اليوتيوب
https://youtube.com/@musuaamsg
Download Telegram
#مقالات_برمجية
السلام عليكم
ما هى صفات المبرمج الناجح ⌨️🖥؟؟

 جرب شىء جديد كل يوم
ربما تكون تلك الجملة مطاطة بعض الشىء، لكن كمبرمج من المهم دائما أن تكتشف أدوات أو لغات برمجة جديدة، انتقالك لسياق مختلف 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 لموقع يقدم هذه الخدمة، حيث يرسل الصور لموقعك عند الطلب.
هذا مثال صغير والأمثلة تطول، يمكنك جلب الأخبار المحلية والعالمية دون
الحاجة لنشرها بشكل يدوي على موقعك.
يقدم 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
. #نصائح_برمجية📙📙
مُتلازمة المحتال
“لست مؤهلاً بما يكفي لأبرمج”


أن بعض المُبرمجين لديهم مُتلازمة يشعرون من خلالها أنهم ليس مؤهلين تمامًا للقيام بالبرمجة على أكمل وجه، وأن معرفتهم لا تكفي، فضلًا عن كفاءة بقية المُبرمجين وأن معرفتهم قليلة جدًا إذا ما قُورنت بالبقية.

هذه المُتلازمة صُنّفت فيما بعد على أنها دليل قاطع على أن صاحبها هو مُبرمج حقيقي، لأن الشعور بعدم الرضا والسعي إلى التطوّر بشكل دائم كفيل بأن يجعل صاحبها مُتميّزًا عن غيره.




.
💻🔰#دليل_مفصل_لكيفية_عمل_المواقع_الإلكترونية


📌الويب

سنعرف اليوم قصة ظهور مصطلح الويب، وأهم الآليات والتقنيات التي يشتغل بها إضافة إلى أنواع وأصناف لغات البرمجة المستخدمة لتطوير تطبيقاته. هذا وسنتكلم في النهاية بشيء من التفصيل عن مهنة مطور الويب وما هي الخصال والمهارات التي يجب على المرء اكتسابها ليصبح مطورا للويب.

إذن دعونا لا نضيع مزيدا من الوقت :) ولنبدأ مباشرة في تعريف مصطلح الويب.
🌐ما المقصود بالويب ؟
دائما ما نسمع ونقرأ عن الشبكة العنكبوتية العالمية ونظن بأن القصد من هذا الإسم هو شبكة الإنترنت ككل، ولكن هذا غير صحيح :)

🛡المقصود بالشبكة العنكبوتية هو الويب بالتحديد، والأخير ليس سوى جزء أو خدمة من الخدمات الكثيرة التي توفرها لنا الإنترنت.
🌐ولكن ما العلاقة بين شبكة العنكبوت والويب ؟ ولماذا هذا الإسم ؟
عندما ننظر إلى بيت العنكبوت نجد بأنه عبارة عن شبكة مكونة من خيوط مترابطة فيما بينها ومتقاطعة، ويمكن الإنتقال من أي نقطة إلى أخرى باستخدام هذه الخيوط. ولما ننظر إلى الويب نجد بأنه يمكننا كذلك الإنتقال من صفحة لأخرى، ومن موقع لآخر باستخدام ما يعرف بالروابط أو 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.
إذن لكي أدخل لموقع فيسبوك على سبيل المثال سأقوم بكتابة 157.240.195.35 في شريط العنوان بمتصفحي وسيفتح لي بعدها موقع الفيسبوك.

هذا العنوان قد لا يعمل لديكم لأن فيسبوك وجميع المواقع الكبرى والمعروفة لا تستخدم عنوان IP واحد، بل مجموعة كبيرة من العناوين يخدم كل واحد منها منطقة معينة. وتلجأ هذه المواقع لهذه السياسة حتى لا يسهل على المخربين إيقاف خدماتها بشكل كلي باستهداف العنوان الواحد.

إذن دخلت لموقع فيسبوك بإدخال عنوان IP أحد خوادمه الذي يخدم منطقتي الجغرافية، ولكن هذه العناوين متغيرة كما قلت والعنوان الذي يعمل عندي لا يعمل بالضرورة عندك، فضلا عن أن تذكر تلك الأرقام ليس سهلا أبدا. لهذا ولحسن الحظ تم اختراع ما نعرفه جميعا بأسماء النطاقات أو Domain names.

facebook.com
google.com
amazon.com
tutomena.com
جميع العناوين أعلاه تسمى أسماء نطاق، وكل اسم نطاق يحيلنا على موقع إلكتروني محدد. والمتصفح عندما نطلب منه فتح facebook.com فإنه خلف الكواليس يقوم بعملية تحويل اسم النطاق هذا إلى عنوان 157.240.195.35، الفرق هنا أن هذه العملية تكون آلية (شكرا لنظام DNS 😃) وليس علينا أن نقلق بشأنها إطلاقا.

يمكننا تشبيه هذه الفكرة بنظام دليل جهات الإتصال بالهاتف حيث نقوم بربط كل رقم هاتف باسم صاحبه، وعندما نريد الإتصال بأحد نبحث عن اسمه فقط عوض كتابة وتذكر رقمه الهاتفي.

نظام DNS
عملية تحويل اسم النطاق إلى عنوان IP لا يقوم بها المتصفح من تلقاء نفسه، بل تتم من طرف نظام معقد يسمى ويعرف بنظام Domain Name System أو DNS.

يعتمد هذا النظام على أربعة أنواع من الخوادم:

DNS Resolver.
Root name server.
Top Lovel Domain name nerver.
Autoritative name server.
النوع الأول، DNS Resolver، يتم توفيره من طرف مزود الإنترنت (ISP) الخاص بك، ودوره حفظ نسخة (Cache) من المعلومات الخاصة بأسماء النطاقات الأكثر ولوجا في رقعتك الجغرافية. هذه العملية تزيد من سرعة نظام DNS وكفاءته وتوفر عليه عددا من الإتصالات - بالتالي الوقت - مع أنواع الخوادم الأخرى التي أشرنا إليها أعلاه.

عمل نظام DNS معقد كما قلت، كلما يهمنا الآن هو أن نعرف بأنه عبارة عن مترجم يتولى ترجمة أسماء النطاقات مثل facebook.com إلى عناوين IP مثل 157.240.195.35.

إذا كان فضولك يدفعك لمزيد من التعمق في كيفية عمل هذا النظام وطريقة تفاعل أنواع الخوادم الأربعة فيما بينها، فهذا الفيديو يقدم شرحا ممتازا ومختصرا لذلك:


قاعدة البيانات (Database)
فهمنا إذن ما يحصل في الكواليس عندما نطلب عنوان فيسبوك في متصفحنا، ولكن برأيي مازالت هناك قطعة من الأحجية تنقصنا.

عندما ندخل لموقع فيسبوك نرى جميع المنشورات التي سبق لنا مشاركتها على حساباتنا، مهما كان الجهاز أو المتصفح الذي نفتح منه الموقع. هذا يعني أن فيسبوك يخزن تلك المعلومات والبيانات في مكان ما ويستدعيها من هناك كلما طلب المستخدم ذلك.

هذا المكان يسمى قاعدة البيانات أو Database، وأعتقد أنكم جميعا سبق لكم السماع بهذا الإسم 😺

عندما أدخل إلى فيسبوك فإن الأخير، بعد تلقي طلبي (Request)، يقوم بالبحث في قاعدة بياناته عن مستخدم باسمي، وعندما يجد سجلاتي فإنه يقوم بقراءتها وعرضها (Response) في الواجهة الرسومية للموقع. لهذا يجب علينا أولا تسجيل الدخول حتى يتمكن الموقع من التعرف علينا وبالتالي إيجاد معلوماتنا في قاعدة البيانات وتمييزها عن معلومات ملايين المستخدمين الآخرين.

توجد مواقع إلكترونية لا تعتمد على أي قواعد للبيانات، تسمى مواقع ساكنة أو Static Websites. مدونة توتومينا واحدة من هذه المواقع حيث أنها مجرد ملفات HTML، Javascript ولانخزن أي شيء في قواعد البيانات. هذه المواقع تتميز بسرعتها وأدائها العالي لأنها توفر على المستخدمين الوقت اللازم لعمل الإستعلامات على قاعدة البيانات والإجراء ات التي يقوم بها خادم الويب (Web server).

هناك نقطة يجب أن أشير إليها هنا وهي أن المواقع الكبرى وشركات الإستضافة (Hosting services) تنفق أموال وإمكانيات كبيرة لتأمين بيانات مستخدميها المخزنة في قواعد بياناتها وخوادمها. وأمن المعلومات من أكبر الهواجس التي باتت تسيطر على المنظمات والمنصات الإلكترونية في يومنا هذا.

📌تطوير الويب
لا شك بأنك سمعت من قبل وفي كثير من المواضع مصطلحي تطوير الويب أو مطور ويب، وربما تساءلت عن معنى هذان المصطلحان. في هذه الفقرة سنوضح المقصود بهما

عندما نقوم بصناعة وإنشاء مواقع إلكترونية (تعرف كذلك بتطبيقات الويب) فإننا فعليا نقوم بتطوير الويب، أي أننا نقدم إضافة للويب، بغض النظر عن جودة التطبيق الذي قمنا بتطويره. الذي يقوم بإنشاء وبرمجة تطبيقات الويب نسميه مطور ويب

مطور الويب

أنواع مطوري الويب
مع تطور الويب والتقنيات التي يعتمد عليها، أصبحت لدينا تفرعات عدة من مصطلح مطور الويب نفسه. وسنذكر هنا ثلاثة أنواع رئيسية من مطوري الويب.

1. مطور واجهات أمامية (Frontend Web Deve
loper)
مهتم بتطوير الواجهة الأمامية للتطبيق، ويتعامل فقط مع لغات Css ،Html وجافاسكريبت. هذا الأخير اتسعت مساحة استخدامه بشكل كبير في السنوات الأخيرة، حيث تطور من كونه مجرد لغة بسيطة لإضافة بعض المؤثرات والأحداث على صفحات الويب إلى كونه الآن مسؤولا عن إعداد وعرض الصفحات بكاملها باستخدام أطر العمل الحديثة مثل React.js ،Vue.js و أنغولار.

يمكنكم قراءة هذا المقال إذا كنتم تودون معرفة المزيد من التفاصيل حول تطور أطر عمل جافاسكريبت عبر الزمن:

من jQuery إلى React.js.. كيف ظهرت وتطورت أطر عمل جافاسكريبت ؟
2. مطور واجهات خلفية (Backend Web Developer)
يعرف كذلك باسم مطور نظم خلفية ويكون مسؤولا عن كل ما له علاقة بالتعاملات التي تتم على مستوى الخادم مثل الإستعلام على قواعد البيانات، الحرص على تأمين التطبيق أو الموقع، إعداد الخادم إلخ...

يتعامل هذا المطور في العادة مع لغات مثل Ruby ،Python ،PHP و SQL، هذه الأخيرة خاصة بقواعد البيانات.

في المدة الأخيرة، ومع التطور الحاصل على مستوى بيئة انتاج وتطوير تطبيقات الويب، انشق عن مطور النظم الخلفية نوع آخر من مطوري الويب ويعرف ب DevOps developer أو DevOps Engineer ويشار إليه كذلك في أحيان أخرى ب SysAdmin.

هذا الشخص يكون مسؤلا مسؤولية كاملة عن إعداد البيئة التي ينشر (Deployment) فيها التطبيق، أي الخادم. فهو المكلف مثلا بإعداد بيئتي Staging و Production، الأولى لتجربة التطبيق داخليا قبل نقله لبيئة الإنتاج (أو Production) النهائية.

3. مطور ويب شامل (Fullstack Web Developer)
هذا المطور يستطيع القيام بالدورين السابقين معا، دور Frontend Developer و Backend Developer. هذا النوع من المطورين عملة نادرة جدا ومن الصعب إيجاد مطور ويب شامل يستحق فعلا هذا اللقب خاصة مع التطور الكبير والسريع الذي يطرأ على مجال تطوير الويب في الوقت الحالي.

مصمم الويب
إلى جانب مطور الويب هناك شخص ودور آخر لا يقل أهمية، ألا وهو مصمم الويب أو Web Designer هذا الشخص يكون مكلفا بتصميم الهوية البصرية للتطبيق ووضع الخطوط العريضة لتجربة المستخدم أو User Experience، هذه الأخيرة عنصر وعامل في غاية الأهمية في نجاح أو عدم نجاح أي تطبيق ويب مهما كانت روعة فكرته.

يعتمد مصمم الويب في العادة على أدوات وبرامج مثل برنامج فوتوشوب، إليستراتور (لصناعة الأيقونات والشعارات مثلا) وفي السنوات الأخيرة ظهرت برامج منافسة وموجهة لتصميم الويب بشكل خاص، ونعطي كمثال: Sketch ،Adobe Xd و Figma.

المميزات التي يجب توفرها في مطور الويب
هل تريد أن تصبح مطور ويب أو تسأل عن أهم الخصال التي يجب أن تتوفر في هذا الشخص ؟ إذن هذه الفقرة موجهة لك ولكل من يشاركك هذا السؤال.

1. يمكنك أن تبدأ في أي وقت.. مهما كان تخصصك قد تظن أنه يجب عليك أن تبدأ منذ سن 16 وتقضي ساعات وساعات أمام شاشة حاسبوك لكي تصبح مطور ناجح، أو أنك مطالب بديبلوم أو تكوين أكاديمي علمي لكي تدخل لهذا المجال. هذا الإعتقاد خاطئ! خصوصا في زمن الإنترنت وانتشار المعلومة.

المجال يتسع للجميع، يكفي أن تخصص وقتا لتكوين نفسك ذاتيا من منزلك. هناك مدرسون وموظفون في قطاعات لا علاقة لها بالبرمجة أصبحوا مطوري ويب ناجحين وذوي مستويات عالية وتنافسية.

المهم هو أن تبدأ وتستمر في التعلم، لأن جبل البرمجة لا توجد لديه قمة، فقط تعلم واصعد واستمر في الصعود إلى أن يأتيك اليقين من ربك.

2. يجب تعلم الإنجليزية
لكي تتعلم بشكل سريع وسليم فيجب عليك تعلم اللغة الإنجليزية. هذه اللغة هي المسيطرة هذه الأيام على ميدان البرمجة والميدان العلمي بشكل عام.

لا يجب أن تخاف من قراءة المقالات في المدونات والمواقع الإنجليزية، وكذلك متابعة دورات مرئية على اليوتيوب بالإنجليزية، إذ أن هناك معلومات وتفاصيل مهمة لن تجدها متوفرة بالعربية أو أي لغة أخرى غير الإنجليزية.

التحدث باللغة الإنجليزية ليس بالضرورة القصوى، يكفي أن تحسن كتابتها وقراءتها لكي تبدأ بشكل مريح، ومع الوقت وتطور مستواك فمن المؤكد بأنك ستتعلم كيف تتحدثها شيئا فشيئا.

3. المطورون يحبون خوض التحديات الجديدة وحل المشاكل
عندما تدخل ميدان البرمجة فإنك ستواجه تحديات مستمرة ومشاكل يجب عليك حلها لكي تمر للمرحلة الموالية. إذا واجدت نفسك في وضعية رتيبة ولم تعد تواجهك مشاكل جديدة فاعلم بأنك واقف أمامك ولم تعد تتعلم أو تتقدم نحو الأمام! هناك شيء ما يجب أن يتغير في بيئة عملك.

المطورون الجيدون هم الذي يختارون بيئة العمل أو الشركات التي سيشتغلون فيها، وليس العكس! فالطلب على هذه النوعية مرتفع في جميع دول العالم، وليس عليك أن تقبل العمل في مكان لا تجد فيه ما يجعلك تحسن مستواك وتدفع مهاراتك أكثر للأمام.

4. لا يمكن معرفة كل شيء
ذكرت سابقا أنه لا وجود للقمة في هذا المجال، ولا يمكن لأحد أن يدعي أنه يعلم ويتقن كل شيء. إذا كنت تتقن لغة برمجة واحدة وبعض الأدوات والتقنيات المرتبطة بها فأنت هو المبرمج
و المطور الذي يبحث عنه الجميع. على سبيل المثال، إذا كنت تتقن العمل بمكتبة React.js ومعها Html و Css فكن متأكدا بأن هناك آلاف الشركات حول العالم تبحث عنك 😃

هذا الكلام لا يعني بأن تظل منغلقا على نفسك وما تعرفه في الوقت الحالي، بل على العكس، يجب أن تبقى منفتحا على العالم الخارجي وتستعد لتعلم أي شيء جديد إذا كان هذا الشيء سيشكل نقلة نوعية في مسارك المهني.

ببساطة كن متأقلما وليّنا! ولا تكن متصلبا.

5. استخدم محرك البحث جوجل
أظن أن أكبر ضربة يمكن أن توجه للمبرمجين حول العالم هي أن يغلق موقع جوجل أبوابه بين عشية وضحاها. لا يوجد مطور حول العالم إلا ويستخدم Google مرات ومرات كل يوم.

جوجل هو أفضل مكان يمكن أن تسأل فيه قبل أن تتجه إلى أي منتدى أو موقع آخر، وهذه العادة يجب عليك أن تكتسبها إذا أرت الذهاب بعيدا وتربح الوقت.

لا تخف من نسخ رسالة الخطأ في برنامجك ولصقها في جوجل.

استخدم محرك البحث جوجل

في الختام
أتمنى ألا أكون قد أطلت عليكم كثيرا وأخذت من وقتكم الكثير.

على كل حال، الموضوع مهم جدا لأنه من الأساسيات التي يجب على كل مطور ويب مبتدئ أن يفهمها بشكل جيد حتى لا ينبهر ببحر الأسماء والمصطلحات التقنية التي ستصادفه هنا وهناك في بداياته.

https://t.me/Vbs_net
كتب_مقدمة_لكم_من_بلاك_هات_الاسلامية.rar
152.2 MB
اكثر من 150 كتاب بشتى المجالات و خاصتا بايثون و بعض قنوات اليوتيوب المهمه مقدمة لكم من Black hat islamic
#كتب_برمجية📚
كتاب تعلم اللينكس بطريقة المطورين


المؤلف:

William Bo Rothwell

عدد الصفحات:

318

اللغة:

English



كتاب لينكس للمطورين يعلمك كيفية كتابة التعليمات البرمجية الكبيرة بنظام لينكس وهو موجه للخبيرين وقليلي الخبرة بهذا النظام وايضل لمبرمجي ويندوز ذوي الخبرة

سأترك لكم نسخة من الكتاب في الأسفل 👇
كتاب HACKING THE ART OF EXPLOITATION

المؤلف:

Jon Erickson

عدد الصفحات:

492

اللغة:

الانكليزية


مرجع مميز جدا عن تقنيات الاختراق وكيفية التعامل معها والحماية منها وبشرح موسع ومفصل ومع الصور

سأترك لكم نسخة pdf في الأسفل 👇
مكتبة_نور_كتاب_تعليم_قواعد_البيانات.pdf
7.6 MB
كتاب تعليم قواعد البيانات من الصفر حتى الاحتراف SQL


مؤلف الكتاب: ammar hlal

قسم الكتاب: لغات SQL المختلفة

عدد الصفحات: 148 صفحة

حجم الكتاب: 8.03 ميجا بايت
#كتب_sql📚
#كتب_برمجية📚
👆👆ملازم حاسوب
هندسةة كهرباء