الكاتب: محمد هاني صباغ

  • لماذا المقاطعة التقنية ضرورية لنصرة الأمة؟

    لماذا المقاطعة التقنية ضرورية لنصرة الأمة؟

    تكاد تكون معظم الخدمات والبرمجيّات التي نستعملها اليوم من صنيع الغرب. هذا الغرب الذي لم يتوانَ خجلًا عن إمداد المغضوب عليهم بالمدد والسلاح وكافة ما يحتاجونه من خدمات لوجستية لقتل وقصف وتشريد إخواننا في غزة الأبيّة.

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

    عِش أين شئت؛ في الرياض أو دمشق أو دبي أو القاهرة أو الجزائر أو تونس أو الرباط… أنت وجميع من رأيتهم في حياتك من الناس لا تساوون شيئًا عند هؤلاء، ويمكن تقتيلكم وقصفكم وتخريب حياتكم في أي لحظة، وثم مع ذلك، سيهبّ الغرب بحضارته وجيوشه وشركاته ليدعم أولئك لإراقة دمائكم ثم يتهمونكم أنتم بمعاداة حقوق الإنسان.

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

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

    لماذا المقاطعة التقنية؟

    تخيّل أن الكهرباء اختفت فجأة من العالم، هل كان ليمكن لجيش الاحتلال أن يستمر في قصف غزة ومحاصرتها وضربها؟ أم أن كل قوّته التي يتبجح بها ما هي إلا أجهزة إلكترونية متصلة ومتراكمة فوق بعضها البعض لتشكّل هذا الحيوان الهمجي الذي نراه اليوم؟

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

    مليارات من الدولارات كمساعداتٍ مالية، وآلاف الفروع لتشغيل مواطنيهم وإمدادهم بفرص العمل، وعقودٌ من الدعم والصيانة لمعدّاتهم الحربية والعسكرية… كل ذلك هو ما يشكّل 20% من الاقتصاد الإسرائيلي القائم على التكنولوجيا، ويدعم الـ80% الباقية لأداء مهامها.

    نأتي هنا إذًا إلى السؤال الجوهري: ما هي هذه الشركات والخدمات التي تشغّل آلات جيش الاحتلال وتدعمه بالمال والعتاد والعدة على الرغم من جرائمه؟

    حارب هذه الشركات واضغط عليها واطردها من بلاد المسلمين وستكون أسديت ضربةً موجعةً للاحتلال وداعميه معًا.

    قائمة الشركات التقنية التي تدعم إسرائيل

    تضامنت عشرات الشركات التقنية مع المغضوب عليهم بعد السابع من أكتوبر ونشروا بيانًا مشتركًا يدعمونهم فيه ويعدونهم بالمال والعدد والعدة، ويمكنك رؤية قائمة بالشركات التقنية التي تدعم إسرائيل من هنا.

    يمكنك أيضًا استخدام هذا الموقع للبحث عن أي شركة ورؤية العلاقات التي بينها وبين دولة الاحتلال.

    أبرز الشركات التقنية الداعمة لإسرائيل التي ينبغي مقاطعة منتجاتها هي: جوجل وآبل وميتا (فيسبوك وانستغرام) ومايكروسوفت وإنتل وNVIDIA وOracle وHP وDell وCisco وOpenAI وIBM.

    وقد شاركت الشركات التالية فقط قبل أيامٍ من نشر هذه المقالة في مؤتمرٍ اسمه “التقنية من أجل جيش الاحتلال”، أي أن هؤلاء قد بلغوا مبلغًا عظيمًا في مساندة المغضوب عليهم على الرغم من كل ما جرى بعد السابع من أكتوبر:

    - 2
    قائمة بأبرز الشركات التقنية التي لا تزال تدعم جيش الاحتلال بالعدة والخدمات وصولًا إلى شهر تموز، 2024.

    كيف تكون المقاطعة التقنية؟

    تكون المقاطعة عبر استخدام الخدمات والمنتجات البديلة لهذه الشركات.

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

    الولايات المتحدة وألمانيا مثلًا هما أكبر دولتين تدعمان إسرائيل، فحاول قدر المستطاع الابتعاد عن الشركات الموجودة في هذه البلدان لأن الضريبة التي ستدفعها هذه الشركات (التي تتراوح بين 20% إلى 40%) ستذهب لخزينة هذه الدول ومن ثم تذهب كمساعدات إلى دولة الاحتلال. وبالتالي عليك تقليل استخدامك لخدمات الشركات الموجودة في هذه الدول وأشباهها.

    ولا بأس أيضًا بتقليل استهلاكك واستعمالك لمنتجات الشركات التقنية التي لا تقدر على الخلاص منها، فما لا يُدرك كلّه لا يُترك جلّه؛ إن كنتَ تدفع 100$ شهريًا لشركة استضافة أمريكية مثلًا فحاول الانتقال منها إلى أحد الشركات الأوروبية لتدفع 30$ مثلًا (حتى لو كانت ألمانية مثلًا فتكون قد خفّضت الأموال التي تمررها لهم بنسبة 70% على الأقل).

    يمكنك البحث في جوجل أو موقع GitHub عن البرمجيات مفتوحة المصدر أو الخدمات الأخرى البديلة للخدمات والمنتجات التي تستخدمها؛ ومن ثمّ يمكنك الانتقال إليها.

    ولا تعتقد أن الخدمات المجانية من هذه الشركات التقنية العميلة لا بأس بها؛ فمثلًا حتى لو كنت تستخدم ويندوز مجاني من شركة مايكروسوفت، فإن النظام يجمع أطنانًا من البيانات المفيدة عنك وعن التطبيقات التي تستخدمها وعن نشاطك ومن ثمّ يرسلها إلى الشركة للاستفادة منها في التحليلات والعمليات التجارية لاحقًا أو حتى لعرض الإعلانات لك داخل النظام، وبالتالي فإن استخدامك المجاني لخدمات مايكروسوفت – مهما كانت – هو أمرٌ يصب في صالحهم وعليك التخلص منه كذلك حتى لو كنت لا تدفع لهم قرشًا.

    سننشر على حوسبة بإذن الله سلسلةً من المقالات عن البدائل المناسبة لأشهر خدمات الشركات التقنية.

    هل المقاطعة التقنية مجدية؟

    عدد العرب 400 مليون إنسان، وعدد المسلمين 2 مليار إنسان يشملهم.

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

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

    والإنسان المسلم مأمورٌ بفعل ما يقدر عليه بغض النظر عن ثمرة جهده أو نتيجته؛ النصرة غير مشروطة بالنصر!

    تمتلك بعض الشركات العربية عقودًا كبيرة مع هذه الشركات الأجنبية وتشتري خدماتٍ ومنتجاتٍ منها بقيمة ملايين الدولارات؛ إبطال عقدٍ واحدٍ من هذه العقود كفيلٌ بجعل المغضوب عليهم ومن عاونهم يخسرون خسارةً كبيرة.

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

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

    كيف تكون المقاطعة التقنية أجدى وأكثر استدامة

    تكون كذلك عبر تطوير بدائل محليّة والتخلّي والاستغناء الدائم عن أي شركة أجنبية.

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

    وبالتالي فإن أردنا الانتقال بالمقاطعة التقنية إلى الخطوة التالية فعلينا تطوير منتجات تقنية محلية مناسبة للمستخدم العربي والمسلم وجعله يستخدمها بشكلٍ دائم بدلًا من أي منتج أجنبي سواءٌ كان يدعم الاحتلال أم لا على المدى البعيد.

  • أدوات تقنية لحفظ سلامك الروحي في العالم الرقمي

    أدوات تقنية لحفظ سلامك الروحي في العالم الرقمي

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

    من هذه الأمور مثلًا:

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

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

    1- محو خلاصة المحتوى من الصفحة الرئيسية

    تحتوي جميع مواقع التواصل الاجتماعي تقريبًا على “صفحة رئيسية” تظهر فيها جميع الحسابات أو الصفحات التي أنت تتابعها أو مشترك فيها، كما تظهر فيها أحيانًا اقتراحات لأمور أنت لا تتابعها إلا أن الخوارزميات قد استنتجت بشكلٍ ما أنك قد تكون مهتمًا بمتابعتها.

    هذه الخلاصات هي من أكبر منابع الشرّ، فأنت لا ترى فقط من تتابعهم بل أيضًا أي شيء تريد منك المنصة أن تراه.

    كما أن من تتابعهم أنفسهم للأسف قد لا يكونون أشخاصًا ملتزمين بالقواعد الإسلامية وينشرون بعض المحرّمات أحيانًا؛ فأنت تتابع شخصًا أجنبيًا (غير مسلم) مثلًا لعلمه في المجال الهندسي أو التقني، وفجأة تجد إعجابه بصورة امرأة ما أو لعله هو يعيد نشرها على حسابه فتظهر بالتالي عندك الصورة.

    حل هذه المشكلة بسيط وهو عبر استخدام إضافة اسمها News Feed Eradicator، وهي إضافة متصفح متوفرة لمتصفحيّ فيرفكس وكروم، تخفي خلاصة المحتوى هذه من الصفحة الرئيسية وتعرض لك أقوالًا واقتباساتٍ عوضًا عنها بحيث لا تعود تراها مرة أخرى.

    - 13

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

    2- إلغاء متابعة الكل على تويتر

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

    لا يمكنك متابعة ما تريده من كل شخص، بل أنت مجبورٌ على متابعة كل ما ينشره الشخص، فأنت تتابع أشخاصًا ولا تتابع اهتمامات.

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

    إضافة Twitter Mass Unfollow هي إضافة لمتصفح كروم تلغي متابعتك لجميع الأشخاص على تويتر. كل ما عليك فعله هو تثبيتها ثم الانتقال إلى صفحة الأشخاص الذين تتابعهم على تويتر، ثم الضغط على زرّ الإضافة في متصفحك لبدء إلغاء متابعتهم مجموعةً مجموعة:

    - 15

    قد تحتاج تحديث الصفحة عدة مرات وإجراء نفس العملية عدة مرات إلى حين الانتهاء من إلغاء متابعة الجميع.

    إن أردت متابعة مجموعة من الأشخاص أو الحسابات فالحلّ الأفضل لذلك هو استخدام ميزة القوائم (Lists) على تويتر؛ أضف الحسابات التي تريدها إلى قوائم منفصلة تظهر لك فقط عند الضغط عليها. وهكذا تتخلص من الإزعاج الكبير لظهور جميع هذه الحسابات مع بعضها البعض الواحد تلو الآخر في صفحتك الرئيسية كلما فتحت المنصة.

    3- حجب الإعلانات وإخفاء عناصر الصفحة مع uBlock Origin

    يمكنك استخدام إضافة uBlock Origin والمتوفرة لمتصفحيّ فيرفكس وكروم لإخفاء أي عنصر أو منطقة لا تريدها في الصفحة.

    مثلًا يمكنك استخدامها لإخفاء أزرار المجموعات والفيديوهات على فيسبوك بالشكل التالي:

    كل ما عليك فعله هو تثبيتها، ثم اختيار زرّ تحديد المنطقة ومن ثمّ سيصبح بإمكانك إخفاء المناطق التي لا تريدها من الصفحة:

    - 17

    يمكنك تحديد المنطقة التي تريد إخفاءها بالشكل التالي. اختر معرّفات الـCSS (الرموز الطويلة التي تظهر على اليمين) لترى معاينةً سريعة عن العناصر التي ستُحجب إن اخترت هذا العنصر لحجبه من الصفحة. يمكنك التبديل بين هذه العناصر إلى أن تلتقط الأداة العنصر الذي تريد حجبه بالضبط من الصفحة. بعدها اضغط على زرّ Create لإضافة القاعدة:

    - 19

    ولا تنسى إعادة تحميل الصفحة بعدها لترى النتيجة.

    الجميل فيها هو أن هذه الإضافة تخفي هذه المنطقة دائمًا وليس فقط هذه المرة أثناء تصفّحك للصفحة؛ حتى لو أعدت تصفح الموقع الذي تريده بعد عدة أيام فستجد المنطقة مختفية كما تريد أنت.

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

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

    هذه الإعلانات التي غالبًا ما يكون فيها صور نساء أو محتوى موسيقى وغير ذلك من المحرّمات… يمكنك حجبها بمجرّد تثبيت هذه الإضافة تلقائيًا دون الحاجة لمزيد تدخل منك.

    4- تصفح اليوتيوب دون الحاجة للتطبيق الرسمي

    يوتيوب واحدٌ من أفضل الاختراعات البشرية، وربما لا يكاد الواحد لا يستعمله في أي يومٍ من الأيام.

    لكن مشكلة يوتيوب هي أنه يحشر الكثير من الإعلانات أثناء مشاهدتك للفيديو، وهي الإعلانات التي كما ذكرنا قبل قليل: يكون فيها الكثير من المحرّمات مثل الموسيقى وصور النساء وغير ذلك.

    هذا فضلًا عن كونها إزعاجًا كبيرًا ومضيعة للوقت أثناء مشاهدة أي فيديو.

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

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

    أبرز هذه التطبيقات (للحواسيب) هو برنامج FreeTube وهو برنامج مجاني ومفتوح المصدر ويعمل على أنظمة ويندوز وماك ولينكس. يمكنك عبره إنشاء حساب محلّي لمتابعة قنوات يوتيوب التي تريدها من داخل هذا البرنامج دون الحاجة لحساب جوجل أصلًا؛ أي أنك لا تحتاج إدخال اسم المستخدم وكلمة المرور لمتابعة القنوات التي تريدها، بل يمكنك متابعتها مباشرةً من حسابك المحلّي على جهازك، وهذا أمر في غاية الروعة:

    - 21

    أما لأجهزة الهاتف المحمول فننصح بتطبيق NewPipe؛ وهو مشابه للتطبيق السابق لكن موجه لهواتف أندرويد. للأسف لسنا على علمٍ حاليًا ببرنامج شبيه يعمل على نظام iOS من آبل.

    كل هذه التطبيقات تحذف الإعلانات من فيديوهات يوتيوب، وبالتالي لا تراها عند مشاهدتك إيّاها.

    5- تحديد وقت أقصى لتصفّح كل موقع إنترنت

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

    مثلًا يمكنك جعلها تسمح لك بساعة واحدة فقط من تصفّح موقع فيسبوك كل يوم (وهناك عداد يظهر أمامك أثناء التصفح). بعدها ستحجب عنك الموقع ولن تتمكن من تصفحه إلى اليوم التالي.

    - 23

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

    يمكنك ضبط إعدادات الإضافة حسب ما يناسبك:

    - 25

    كانت هذه بعض الطرق السريعة التي يمكنك من خلالها المحافظة على صفائك الروحي في العالم الرقمي. بالطبع لا يزال عليك بذل الكثير من أجل ذلك، لكن ما لا يدرك كلّه لا يُترك جلّه؛ حاول تقليل استخدامك لهذه المنصات قدر المستطاع، بل وتخلّص من أي تطبيق أو منصة يؤثران سلبًا على دينك وآخرتك.

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

    بالتوفيق.

  • عن أهميّة النشرات البريدية ولماذا تعود بقوّة

    عن أهميّة النشرات البريدية ولماذا تعود بقوّة

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

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

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

    قد تجد نشرات بريدية:

    • مقسّمة على حسب التصنيف أو الموضوع في الموقع، بدلًا من نشرة واحدة جامعة.
    • نشرة واحدة تصدر يوميًا أو أسبوعيًا أو شهريًا بها آخر التطورات.
    • مجانية أو مدفوعة، على حسب ما يريده صاحبها.
    • مؤتمتة يكون النشر فيها تلقائيًا (ترسلها البرامج الحاسوبية) أو يدوية يكتبها إنسان في كل مرة.

    إلا أن المشترك بينها جميعًا هو أن المستخدم بحاجة لإدخال بريده الإلكتروني للاشتراك بها مرة واحدة فقط، ثم سيتوصّل بجميع الرسائل البريدية من تلك النشرة على بريده الإلكتروني. يريح هذا الأمر المستخدم من عناء التحقق من جميع هذه المواقع الإلكترونية الواحدة تلو الآخر، أو من استخدام برامج متابعة خلاصات الـRSS لمتابعة جديدها.

    النشرات البريدية حلٌ جيدٌ إذًا لمشكلة العثور على المحتوى الجيّد في كومة القشّ الكبيرة من المحتوى السيئ التي نعاني منها في عصرنا، لأنه يكفي للمستخدم رؤية الموقع مرة واحدة فقط للتسجيل بالنشرة الإلكترونية ليصبح من جمهور ذاك الموقع.

    موضة النشرات البريدية

    النشرات البريدية في ازدياد، وصار هناك خدمات كثيرة جدًا توفّرها سواءٌ على الصعيد الأجنبي مثل Substack أو العربي مثل هدهد، هذا فضلًا عن خدمات المراسلة الإلكترونية التقليدية مثل MailChimp وMailerLite.

    يذكر تقرير النشرات البريدية من Trends مجموعةً من النشرات البريدية العملاقة التي تدرّ على أصحابها ملايين الدولارات سنويًا، أو التي كانت على ذلك. أبرزها في التاريخ كانت نشرة DailyCandy اليومية المتخصصة في أخبار الأعمال والأنشطة التجارية الجديدة في كل مدينة محليّة (في أمريكا)، والتي بدأت سنة 2000م ثمّ باعها صاحبها سنة 2003م مقابل 3.5 مليون دولار، ثمّ اشترتها شركة Comcast سنة 2008م من صاحبها الجديد مقابل 125 مليون دولار.

    اليوم هناك نشرات بريدية كثيرة جدًا، وتقريبًا يمتلك كل موقع إلكتروني متخصص في إنتاج المحتوى نشرةً بريديةً خاصةً به.

    اشتهر موقع Substack بالنشرات البريدية عالية الجودة في جميع مجالات الحياة، من الزراعة إلى الهندسة إلى البرمجة إلى ريادة الأعمال… ستجد دومًا أنه هناك شخص على الأقل يقوم على نشرة بريدية لتلخّص لك أهم المواضيع الرائجة حاليًا في المجال بالإضافة إلى آخر الأخبار.

    لكن ميزة Substack الأبرز هي النشرات البريدية المدفوعة، فمستخدمو الإنترنت صاروا يدركون أن الزمن الذي كان فيه كل شيءٍ مجانيًا قد ولّى، وأن المحتوى عالي الجودة لا بد من الدفع للحصول عليه. أتاح موقع Substack خدمة النشرات البريدية المدفوعة مقابل عمولة بسيطة يقتطعها من أصحاب هذه النشرات عن كل مشترك، فيمكن للمشترك أن يدفع 15$ أو 20$ شهريًا مثلًا، فيأخذ الموقع 10% من أرباح النشرة ككل.

    لماذا يحب صنّاع المحتوى النشرات البريدية؟

    هناك عدة أسباب لذلك:

    • أنت لا تحتاج للكثير من الجهد لإنشاء نشرة بريدية، ففي النهاية هي مجرد رسالة إلكترونية ويكأنك ترسلها إلى شخصٍ تعرفه. في الواقع يمكنك إنشاء نشرة بريدية والمداومة عليها حتى دون الحاجة لامتلاك موقعٍ إلكتروني، وهو ما يعني انخفاض التكاليف وعدم الحاجة لبذل مجهودٍ كبير.
    • لست بحاجة لمذاكرة قواعد تحسين محركات البحث (SEO) والعمل عليها سنينًا طويلة من عمرك لتستقطب المستخدمين الجدد باستمرار، ولست بحاجة لتحسين كل مقال تريد أن تنشره ليوافق هذه المعايير، بل تنشر كيفما تشاء في نشرتك.
    • كامتداد للنقطة السابقة: عندما تكتب مقالًا جديدًا على موقعك فأنت بحاجة لكتابة مقدمة وخاتمة وجعل المقال بشكل معيّن ليكون صالحًا للنشر، وقد تفعل ذلك رغمًا عنك بهدف كسب الزوار من محركات البحث. قد تحتاج أن تكتب مقالًا من 1000 كلمة رغم أنه يمكنك تلخيص الفكرة في سطر أو سطرين لأنك مجبور على كتابة المقال. الأمر مختلف في النشرات البريدية؛ لأنه يمكنك كتابة المحتوى كيفما تشاء بأريحية فالمشترك موجود عندك في قائمتك على الحالتين.
    • وستحتاج بالتالي إلى الحفاظ على معدل نشر معيّن، وهو بدوره ما يؤدي لمجهود أكبر.
    • معدّل تحويل المشتركين إلى عملاء (Conversion Rate) لشبكات التواصل الاجتماعي هو 1% كمتوسط، إلا أنه 3% كمتوسط في النشرات البريدية، أي أن النشرات البريدية تحقق 3 أضعاف ما تحققه شبكات التواصل من عمليات التحويل (انظر تقرير Trends السابق).
    • صنّاع النشرات البريدية يبنون علاقة مباشرة مع جمهورهم، فهناك هوية مترابطة قوية تجمعهم حول الموضوع الذي يتحدثون عنه، على عكس مواقع الويب التي قد تبدو جميعًا كبعضها البعض والتي قد يدخلها الزائر ثم يخرج ولا يعود مرة أخرى. النشرات البريدية عملية مستدامة طويلة الأمد.
    • من السهل جدولتها ومتابعتها يوميًا أو أسبوعيًا أو شهريًا، على عكس مواقع المحتوى التي تحتاج أطنانًا من الجهد لصيانتها.
    • يكفي للمستخدم أن يشترك مرة واحدة لتصله جميع رسائلك، على عكس شبكات التواصل مثل فيسبوك الذي لا يوصل منشوراتك سوى إلى 10% من معجبي الصفحة مثلًا.

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

    نشرة حوسبة: نشرة بريدية عربية عن علوم الحاسوب

    - 28

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

    لقد أطلقنا نشرة حوسبة لعدة أسباب:

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

    نحن أيضًا لا نشير للنقاشات والأخبار في النشرة فنقول “حصل كذا وكذا” فقط؛ بل نقدم توصياتٍ وتعليقاتٍ على هذه الأحداث قد تساعدك كشخص على اتخاذ قرارات مصيرية قد تتعلق بك وبوظيفتك ودراستك ومستقبلك بناءً على ما تقرؤه، فمثلًا عندما تحدثنا عن توطين الإنترنت وكيف أن الدول بدأت تتجه للحلول مفتوحة المصدر، ذكرنا كيف أن هذا سيؤثر على سوق الأعمال والأسهم والشركات التقنية الكبرى، وبالتالي كيف سيؤثر عليك كفرد.

    ولعل نشرة حوسبة هي النشرة العربية الوحيدة المتخصصة بعلوم الحاسوب على الشبكة، ولهذا رأينا أن نسد ثغرًا في هذا المجال المهم والحيوي الذي يشكّل عالمنا اليوم.

    الوقت المناسب للبدأ هو الآن

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

    عمل النشرات البريدية ليس عملًا صعبًا، خصوصًا إن كانت وتيرة النشرة منخفضة (أسبوعيًا أو شهريًا مثلًا)، في نشرة حوسبة نتبع الأسلوب التالي:

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

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

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

  • استخدام لينكس والبرمجيات مفتوحة المصدر مطلب أممي وليس شخصي فقط

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

    كثيرًا ما يسمع الفرد عن مميزات نظام لينكس وتوزيعاته، أو مميزات البرمجيات مفتوحة المصدر (Open Source Software) عمومًا، وكل هذا جميل ويؤخذ بعين الاعتبار عندما يتخذ الفرد قراره بالانتقال من ويندوز وبقية البرمجيات الاحتكارية إليها.

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

    تشغيل البنية التحتية التقنية دون الحاجة للغرب والشرق

    - 31

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

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

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

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

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

    ولا ينحصر الأمر بمايكروسوفت أو الغرب عمومًا؛ بل حتى الاعتماد على العتاد الصيني أمرٌ غير مقبول لتأمين البنية التحتية التقنية، لأن تلك الدولة – وأي دولة – قد تقطع تعاملها معك لأي سبب سياسي وبالتالي بنيتك التحتية التقنية كلها مرهونة بالسياسة الجيدة مع هذه الدول. وهذه حالة انسحاق تقنية يجب ألا تصل إليها أي دولة.

    في لينكس والبرمجيات مفتوحة المصدر الوضع مختلف؛ يمكنك بسهولة – بل لأي مستخدم عادي كذلك – أن يصنع مستودعات البرمجيات الخاصة به ويضيفها للنظام ويحدّثه كيفما شاء، بل قد يصنع مرآة مستودعات (Repository Mirror) يمكنها أن تجلب جميع حزم البرمجيات والتحديثات من الخارج وتستضيفها على خادوم محلي داخل الدولة. كما أن كون النظام مفتوح المصدر يعني أنه بإمكانك فعل أي شيء به حسب احتياجاتك.

    هكذا تكون البنية التحتية التقنية بالكامل تحت سيطرة الدولة ولا تحتاج شيئًا من الخارج لتشغيلها.

    التخلص من إمكانيات التجسس

    - 33

    من أبرز مميزات البرمجيات مفتوحة المصدر هو أن الشفرة المصدرية للبرنامج قابلة للمعاينة والرؤية، وبالتالي يمكن لأي مبرمج أن يتحقق من خلو البرنامج من برمجيات التجسس أو البرمجيات الخبيثة التي قد تكون موجودةً فيه.

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

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

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

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

    تطوير الخبرات التقنية المحلية

    - 35

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

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

    • توفير منح ودعم مادي لمن يتخصص في دراسة علوم الحاسوب وهندسة البرمجيات.
    • توفير الوظائف الجاهزة لمن يتخرج من التخصصات التقنية في الدولة.
    • إنشاء المراكز البحثية ومراكز إدارة العمليات التقنية لإجراء عمليات الانتقال.
    • التخلص من أي عمليات وعقليات بيروقراطية قد تعيق العملية.

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

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

    توفير التكاليف

    - 37

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

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

    بعض الشركات بدأت تنتقل تدريجيًا لاستخدام نموذج “البرامج كخدمة” (Software as a service) أو ما يعرف بـSaaS، حيث أن المستخدم هنا لا يدفع سعر الرخصة مرة واحدة بل عليه أن يدفع تكلفة اشتراك شهرية (مبلغ مثل 5$ أو 10$ أو 20$… حسب البرنامج) هكذا إلى الأبد أثناء استخدامه للبرنامج. وهذا بالطبع غبن نحن في غنىً عنه.

    خاتمة

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

  • الويب العربي بحاجة للنشر المنظم والجاد وليس العشوائي

    الويب العربي بحاجة للنشر المنظم والجاد وليس العشوائي

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

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

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

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

    تحديد مشاكل المحتوى العشوائي وغير المنظم

    هناك نوعان أساسيان للمحتوى:

    • محتوى مفيد دائم الخضرة (Evergreen Content): محتوى لا يبلى مع الزمن بل يبقى مُحدثًا وقابلًا للتطبيق في مختلف الأوقات، حيث يمكن للقارئ أن يستفيد منه بغض النظر عن تاريخ نشر المقال. هناك طرق متعددة لعرض هذا المحتوى كذلك وتسهيل الوصول إليه منها الجيد والسيء.
    • محتوى ماجَرَيَاتي (من كتاب الماجريات): مقالات إخبارية عن المجال بها معلومة محددة بوقت معلوم، وبعد أن يقرأ القارئ المقال لن يعود إليه مرة أخرى فليس هناك شيء آخر ليستفيد منه. الماجريات منها ذو القيمة كذلك ومنها المنخفض؛ فأخبار تغيير شعارات الشركات مثلًا ليست بنفس أهمية وقيمة أخبار شبكات الجيل الخامس.

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

    غالبًا ما تكون إجابة صنّاع المحتوى الخيار الثاني، لكن الغريب بالموضوع هو أنهم يستعملون أسلوب النشر الخاص بالنوع الأول.

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

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

    فقد تجد موقعًا لديه مثلًا 2000 مقالة منشورة عن تطوير التطبيقات ولديه مثلًا 100 مقال عن تطوير تطبيقات آيفون، لكنه لن يعرض لك في صفحته الرئيسية سوى رابطٍ لتصنيف “تطبيقات آيفون” وعند النقر عليه فسيأخذك إلى صفحة تعرض لك آخر التدوينات المنشورة في ذاك التصنيف، بدلًا من سلسلة تدريجية تأخذ بيدك خطوة بخطوة وتعرض لك التدوينات بشكلها وترتيبها الصحيح.

    مواقع مثل الجزيرة أو nytimes أو The Guardian وغيرها هي مواقع إخبارية؛ وظيفتها أن تتخصص بالماجريات وتنشرها للمهتمين والمختصين ليعلموا ما الذي يجري حول العالم فيما يتعلق بذاك التخصص أو المجال. لكن المواقع الأخرى المفترض أنها مواقع محتوى تهدف لإفادة القارئ والاستمرار بإفادته وليس تقديم الأخبار والتحليلات له فقط.

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

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

    إذًا لدينا مشكلتان لنحددهما هنا:

    1. عدم نشر المحتوى الصحيح ولا معرفة شكله وأنواعه.
    2. حتى عند نشر المحتوى الجيد، صنّاع المحتوى لا يعرفون كيف يعرضونه بصورة جيدة للناس تمكّنهم من الوصول إليه متى ما احتاجوا.

    ملامح وعلامات للمحتوى المنظم والجاد

    - 40

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

    فمثلًا إن كان الموقع يتخصص في برمجة تطبيقات الهاتف المحمول، فحينها ستكون “تطبيقات أندرويد” و”تطبيقات iOS” و”التطبيقات الهجينة” ثلاثة تصنيفات أساسية يمكن الحديث عنها وشرحها في هذا الموقع (وبالطبع هناك تصنيفات أخرى)، وتحت كل تصنيف يمكن عمل عدة سلاسل محتوى مختلفة.

    سلسلة المحتوى هي ببساطة مجموعة من المقالات أو الصفحات المرتبطة ببعضها ارتباطًا تدريجيًا؛ فتكون هناك مقالات تقديمية ومقالات ابتدائية وبعدها يرتفع المستوى شيئًا فشيئًا إلى أن تكتمل المعرفة المطلوبة لدى القارئ عند وصوله لآخر مقال في السلسلة.

    ميزة هذا الأسلوب بالنشر هو أنه يشبه المساقات (Courses)؛ فلا تفتح وتقرأ أي مقال عشوائي يظهر لك على الموقع، بل تقرأ محتوى هذا الموقع بصورة منظمة وبالتدريج حسب السلاسل المحددة، وهو ما سيحقق أفضل استفادة للقارئ بدلًا من تقيّؤ كامل المحتوى في صفحات الأرشيف أو الصفحة الرئيسية.

    انظر مثلًا صفحة “Full Linux Guide” التي أنشأناها لموقعنا باللغة الإنجليزية حول البدء باستخدام لينكس والبرمجيات مفتوحة المصدر، وانظر إلى تقسيم المحتوى وطريقة عرضه لتفهم المقصود. بعد أن انتهينا من هذه السلسلة لم نعد ننشر أي مقالات إطلاقًا عن هذا الموضوع، لأننا قلنا بالفعل كل ما لدينا لنقوله.

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

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

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

    الويب العربي بحاجة لموسوعات وليس مواقع عشوائية

    - 42

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

    ميزة الموسوعات أنها:

    • لا تتبع أسلوب النشر العشوائي للمقالات، بل المحتوى مقسّم افتراضيًا حسب المواضيع.
    • طريقة سير العمل فيها تجبرك على المحتوى الجاد والمنظم.
    • لا يوجد بها فكرة “نشر مقال”، بل هي صفحات محتوى تملؤها بالمعلومات متى ما أمكنك ذلك.
    • سهلة التعديل والتحرير والتحديث؛ فهي مصممة بالأساس لتكون محتوى دائم الخضرة.
    • سهلة للتحميل والنسخ الاحتياطي والمتابعة.
    • تدعم ميزات المشاركة في التحرير والكتابة افتراضيًا لأكثر من كاتب.

    أشهر أنظمة إدارة المحتوى للموسوعات على الويب هي DokuWiki وMediaWiki، وننصح شخصيًا بدوكوويكي فهي أكثر سلاسةً وسهولةً للاستخدام والتعامل.

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

    طريقة العرض مهمة جدًا أكثر مما تتصور

    ليس من المفيد أن تمتلك خطة محتوى رصينة، ثم تعرض ذاك المحتوى بشكل غير منظم للزوار.

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

    فإذا وصلك إلى مقال عن “شرح مفاهيم التشفير في شبكات الجيل الخامس” فعليك أن تضع ضمن المقال إشاراتٍ وعلامات أنه هناك سلسلة مقالات أكبر عن شبكات الجيل الخامس على موقعك، وأنه هناك مقالات ابتدائية عليه أن يقرأها قبل أن يقرأ هذا المقال.

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

    خاتمة

    نأمل أن هذا سيغير من طريقة إطلاق صنّاع الويب العربي لمشاريع المحتوى المستقبلية الخاصة بهم.

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

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

  • تصرف الحكومات المليارات على البرمجيات الاحتكارية بدلًا من المصدر المفتوح

    تصرف الحكومات المليارات على البرمجيات الاحتكارية بدلًا من المصدر المفتوح

    في عالم البرمجيات وعند صدور إصدارٍ جديد من برنامجٍ ما، فما يشتريه المستخدمون عادةً آنذاك ليس البرنامج كله، بل ما يُعرف برخصة الاستخدام (License Agreement) التي تؤهلهم لفعل أشياء محدودة فقط بتلك البرمجيات التي اشتروها، فلا يمكنهم مثلًا نسخ أو تعديل أو رؤية الشفرة المصدرية لتلك البرامج، وهو الفرق الرئيسي بين البرمجيات الاحتكارية والبرمجيات الحرة والمفتوحة المصدر (Open Source Software).

    من المحزن والمُزعج جدًا أنه في القرن الحادي والعشرين ما تزال الحكومات حول العالم تدفع المليارات من الدولارات سنويًا لقاء البرمجيات؛ إنه محزنٌ أكثر لأنهم لا يدفعون لقاء البرمجيات في الواقع، بل ما يدفعون لقاءه هو مجرد رخصة استخدام لتلك البرامج بطريقة معينة سنويًا. الآن افرض أنك كنت تمثل دولةً تمتلك ملايين الأجهزة، هل يمكنك تخيّل كميات إنفاق الأموال حول العالم لجعل هذه الأجهزة تعمل؟

    الأهم من ذلك هو أنك تدفع نفس المبلغ من المال السنة وراء السنة. بينما توفّر لك البرمجيات الحرة الحريات الأربع: حرية قراءة ونسخ وتوزيع ومشاركة البرمجيات بأي طريقةٍ تريدها.

    قرار استخدام البرمجيات الاحتكارية بدلًا من البرمجيات الحرة على أجهزة الدولة هو قرارٌ خاطئ تقوم به الكثير من الحكومات حول العالم. إننا نخسر كميات هائلة من الأموال التي كان يمكن أن تذهب لقطاعات الصحة والتعليم والبنية التحتية عندما نستخدم البرمجيات الاحتكارية بدلًا من البرمجيات الحرة أو مفتوحة المصدر.

    والأهم من ذلك هو أن المال الذاهب للدفع لقاء البرمجيات الاحتكارية والدعم الفني الخاص بها كان يمكن استثماره لتطوير البدائل مفتوحة المصدر؛ بدلًا من صرف 50 مليون دولار سنويًا من أجل تراخيص مايكروسوفت أوفيس لأن البديل المفتوح ليبر أوفيس ليس جيدًا بصورة كافية؛ لما لا نستثمر 25 مليون دولار في ليبر أوفيس نفسه لمرة واحدة لتحسينه وإصلاح المشاكل التي نعاني منها؟ البنية التحتية التقنية للدولة ستتطور إذا تحولت ليس فقط إلى مجرد مستخدم بل مطوّر للبرمجيات الحرة، والبرمجيات الحرة وحدها من تسمح لك بالقيام بذلك.

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

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

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

    أمثلة على إنفاق الحكومات على البرمجيات

    الحكومة الأسترالية

    - 45

    أشارت تقارير سابقة إلى أن الحكومة الأسترالية أنفقت ما مجموعه 364 مليون دولار أسترالي فقط على عقود مايكروسوفت بين 2013م و2016م. تضمنت هذه العقود خدمات الدعم الفني وتراخيص البرمجيات وبعضًا من اللوجستيات الأخرى التي توفّرها مايكروسوفت عمومًا.

    ولاستكشاف المزيد من التفاصيل ذهبنا إلى التقارير الرسمية حول الإنفاق الحكومي لأستراليا لسنتيّ 2017م و2018م. وأظهر هذا التقرير أنه خلال فترة سنة واحدة فقط، صرفت الحكومة الأسترالية:

    • 136 مليون دولار أسترالي على عقود مايكروسوفت.
    • 719 مليون دولار أسترالي على عقود شركة SAP.
    • 333 مليون دولار أسترالي على عقود شركة أوراكل.
    • 87 مليون دولار على عقود شركة VMWare.

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

    الحكومة المصرية

    - 47

    الحالة المصرية مثيرة للاهتمام لأنها تظهر كيف أن نوع البرمجيات التي تختارها الحكومات سيؤثر جدًا على الدولة عمومًا في الأوقات الصعبة التي قد تكون تعيشها.

    في 2012م وبعد الثورة المصرية والمشاكل الاقتصادية التي تبعتها والتي كانت تواجهها الدولة، أعلنت الحكومة آنذاك أنها ستدفع 43 مليون دولار من أجل عقود مايكروسوفت ويندوز ومايكروسوفت أوفيس لـ150 ألف جهاز في مصر.

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

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

    الحكومة الأمريكية

    - 49

    الحكومة الفيدرالية الأمريكية هي أكبر مُنفق على البرمجيات حول العالم. في سنة 2017م أنفقت الحكومة الفيدرالية مبلغ 350 مليون دولار على عقود شركة مايكروسوفت وحدها:

    - 51

    أنفقت الحكومة الفيدرالية كذلك:

    • 1.13 مليار دولار على عقود IBM.
    • 70 مليون دولار على عقود أوراكل.
    • 35 مليون دولار على عقود Capgemini.
    • 27 مليون دولار على عقود SAP.

    وكل هذا الإنفاق في فترة سنة واحدة فقط.

    لاحظ كذلك أن هذا الإنفاق هو من قبل الحكومة الفيدرالية وحدها فقط.

    بالإضافة إلى ذلك أنفقت وزارة الدفاع الأمريكية وحدها مبلغ 1.5 مليار دولار على عقود مايكروسوفت بين سنتيّ 2000م و2017م.

    ما هو البديل؟

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

    تقول الحكومات غالبًا أنها لا تمتلك الخبرة التقنية الكافية لإجراء هذا التحول، ويقولون كذلك أنه لا يوجد أحدٌ ليوفر لهم الدعم التقني في حال احتاجوه (مثلًا ليبر أوفيس يأتي دون دعم فني)، وحينها تكون النتيجة الكسولة:

    فلندفع بضع ملايين من جيوبنا ونرتاح

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

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

    ستكون هذه ضربة ثلاثية، لأنه:

    1. أولًا هي عملية توفر على الدولة المال، بل أطنان منه في الواقع.
    2. وثانيًا توفّر مئات وآلاف وظائف العمل للكثير من الناس في هذه الدول بالتخصصات المرتبطة؛ ويمكن لهذه الدولة أن تبيع الدعم الفني والخبرة التقنية للدول الأخرى بمجرد أن تمتلك هذه الفئة الخبيرة من الناس.
    3. وثالثًا لأنها توطّن قطاع البرمجيات في البلاد، وتجعله خاليًا من الاعتماد على جهات أجنبية في البنية التحتية الحساسة.

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

    والواقع العربي في هذه المسألة مؤسف؛ الكثير من صنّاع القرار تدعوهم مايكروسوفت لندوات وورشات تدريبية في باريس وغيرها، فيرجع المسؤول العربي إلى بلده وهو لا يرى أمامه سوى منتجات مايكروسوفت وأشباهها من الشركات الأجنبية؛ وكل ما عدى ذلك هو “لهو أولاد صغار”.

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

    ماذا علينا نحن الناس أن نفعل؟

    1. حاول الضغط على الحكومة في بلدك للانتقال إلى البرمجيات المفتوحة بدلًا من الاحتكارية.
    2. انشر المشكلة الخفية التي تعيشها هذه البلدان من هذا الصرف والتبذير الهائل كل سنة من أموال الضرائب لقاء أمور كان يمكن توفيرها محليًا.
    3. ادعم البرمجيات المفتوحة واستخدامها حول العالم.
    4. اعمل على توطين البرمجيات الحرة ونشرها في بلدك؛ عبر مبادرات ومنظمات ومؤسسات تعلّم الخبراء طريقة استخدامها.
    5. حارب الفساد في بلادك؛ وافضح أي مسؤول يقدّم مصلحته الشخصية على مصلحة بلاده.

    خاتمة

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

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

  • إطلاق حوسبة… المنصة العربية المعاصرة لعلوم الحاسوب

    إطلاق حوسبة… المنصة العربية المعاصرة لعلوم الحاسوب

    العملات الرقمية، شبكات اتصال الجيل الخامس، السيارات ذاتية القيادة، الخوارزميات والبرمجة، العمل الحر والعمل عن بعد، التحوّل الرقمي، الدروس عن بعد… أمورٌ لامست أو تكاد تلامس حياة الكثير منّا، بل وهي على وشك تغييرها للأبد.

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

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

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

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

    سلُوا اللهَ علمًا نافعًا، وتَعَوَّذُوا باللهِ منْ علمٍ لا ينفعُ

    الرسول صلى الله عليه وسلم، السيوطي في الجامع الصغير، 4686.

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

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

    حوسبة – وفي المرحلة الحالية – تركّز على صناعة محتوى مفيد للقارئ العربي في مجالات:

    • التحوّل الرقمي للمؤسسات والشركات وبناء المشاريع الرقمية.
    • العمل الحر والعمل عن بعد للأفراد.
    • التعليم الذاتي والتعليم التقني الحديث عن بعد.
    • البرمجة وكل التقنيات المتفرعة عنها والمتعلقة بها.
    • العملات الرقمية ومستقبلها كأداة تقنية بعيدًا عن التجارة والاستثمار.
    • الخدمات اللامركزية والخدمات ذاتية الاستضافة.
    • الأمان الرقمي والخصوصية والحماية للأفراد والشركات.
    • قضايا تعريب التقنية وصناعة الأفراد العرب المتميزين تقنيًا.

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

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

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

    نعمل كذلك على تطوير مجتمع نقاشي مثل Hacker News. لم ينتهي بعد وإلى ذلك الحين يمكنكم الانضمام إلى مجموعتنا على فيسبوك.

    هناك بعض المقالات المبدئية لـ”جسّ النبض” من الجمهور، وما نزال لم نبدأ كامل عملياتنا بعد. انتظرونا 🙂

    سائلين الله القبول.

  • ما هي الأتمتة؟ ولماذا على كل صاحب مشروع أن يستعملها؟

    ما هي الأتمتة؟ ولماذا على كل صاحب مشروع أن يستعملها؟

    الأتمتة (Automation) ليست علمًا جديدًا ولا اختراعًا واحدًا ظهر في سنة معيّنة، بل هي ببساطة أي نظام قادر على إتمام تشغيل نفسه أو مجموعة من المهام الأخرى دون الحاجة لتدخل بشري أثناء عمله الطبيعي.

    الأتمتة معروفة في أكثر من مجال، هناك مثلًا في المجال الزراعي مزارع مؤتمتة تُدار بسهولة عن طريق الآلات:

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

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

    أي أن جميع خدمات الإنترنت مثل Google Docs وTrello وDropbox وفيسبوك وتويتر وتلجرام وجيميل وShopify ووردبريس وجميعها تقريبًا… كلها قابلة للربط بين بعضها البعض لأتمتة أداء هذه المهام الروتينية التي تقوم بها.

    يمكنك مثلًا أن تستخدم الأتمتة لـ:

    • إرسال تنبيه أو إشعار معين إلى حاسوبك أو هاتفك أو بريدك الإلكتروني كل بضع ساعات يحمل رسالة معيّنة (أذكار مثلًا).
    • إنشاء بوت تلجرام بسيط، عند النشر عليه تُنشر نفس الرسالة على حساباتك على مواقع التواصل الاجتماعي مثل فيسبوك وتويتر وغيرها.
    • نشر صورة معينة من 500 صورة (اقتباسات مثلًا) كل يوم على مواقع التواصل إلى حين انتهاء نشرها.
    • إضافة جميع من يعبئ نموذجًا معيّنا على Google Forms إلى موقعك الإلكتروني أو قائمتك البريدية.
    • تقسيم كتاب ضخم من 700 صفحة مثلًا لحزم صغيرة من 10 صفحات، تُرسل لك كل يوم على تلجرام لتسهيل قراءة الكتاب عليك.
    • إرسال رسالة أو تعليق لكل من يعلق على صفحتك على فيسبوك.
    • نقل أي بيانات من Google Spreadsheet إلى أي موقع أو خدمة أخرى تستعملها.
    • وغيرها من الاستخدامات الكثيرة جدًا التي لا تعد ولا تحصى.

    فبدلًا عن نشر نفس المنشور على صفحتك على فيسبوك، ثم حسابك على تويتر، ثم حسابك على انستغرام، ثم حسابك على تلجرام… إلخ، يمكنك نشره في مكانٍ واحد فقط وسيتم نشره في جميع الأماكن الأخرى تلقائيًا مثلًا.

    الأتمتة مفيدة للغاية لأنها توفّر لك ما قد يغنيك عن توظيف عشرات الموظفين أو المستقلين في شركتك أو مؤسستك؛ بدلًا من توظيف موظفين بدوام كامل للقيام بهذه المهام الروتينية ودفع رواتب كبيرة لهم، يمكنك الاشتراك في خدمات الأتمتة وتعلّمها والقيام بكل ما تحتاجه بنفسك.

    تقوم فكرة الأتمتة على ما يُعرف بـ”السيناريوهات” (Scenarios) وفكرتها ببساطة “عندما يحصل هذا الأمر افعل كذا”؛ أي أنها تمثل المهمة التلقائية التي ستحصل عند حصول المنبّه (Trigger) المطلوب.

    هناك الكثير من خدمات الأتمتة على الشبكة، أبرزها:

    • IFTTT: خدمة بسيطة للربط بين الخدمات، سهلة الاستخدام على المبتدئين ونستحسنها كبداية للدخول إلى المجال، كما أنها مجانية لعددٍ محدود من السيناريوهات.
    • Zapier: خدمة احترافية للأتمتة كما أنها أكثر شهرةً واستعمالًا من قبل الشركات والمؤسسات، لكن عيبها هو أن الخطة المجانية فيها محدودة والاشتراكات المدفوعة فيها مكلفة جدًا.
    • Integromat: أفضل خيار أتمتة موجود على الساحة ونستعمله شخصيًا في حوسبة. الخطة المجانية جيدة والواجهة جميلة للغاية، لكن سيحتاج وقتًا للتعلّم والتمرّن إلى حين التمكّن من المنصة وأدواتها وطريقة عملها. الخطة المدفوعة أسعارها رخيصة جدًا مقارنةً بالبدائل الأخرى في السوق.

    دعنا مثلًا نأخذ السيناريو التالي الذي لدينا في Integromat:

    - 55
    مثال على سيناريو أتمتة في Integromat

    وظيفة هذا السيناريو هو أنه يراقب المشتركين الجدد لحملتنا على موقع Patreon (موقع جمع تبرعات واشتراكات من المستخدمين)، وبمجرد اشتراك مستخدم جديد سيقوم هذا السيناريو تلقائيًا بـ:

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

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

    لأجل هذا ننصح أصحاب المشاريع والشركات والمؤسسات بضراوة أن يتجهوا نحو الأتمتة ويستفيدوا منها في أعمالهم؛ إنها توفّر ساعاتٍ هائلة من العمل على موظفي تلك الشركات، وتقوم بنفس المهام بجودة أعلى وبتكاليف أقل بكثير جدًا.

    يمكنك الاشتراك في الخدمات التي ذكرناها مسبقًا والبدء ببعض التجارب لما يمكنك أن تفعله معها. نحن جاهزون من طرفنا ﻷي استفسار أو استشارة حول خدمة Integromat.

    يمكنكم أن تقرأوا المزيد عن الأتمتة من هذه التجربة الشخصية.

  • إليك ما تعلمناه من توظيف خبير SEO لتحسين محركات البحث

    إليك ما تعلمناه من توظيف خبير SEO لتحسين محركات البحث

    تحسين محركات البحث (Search Engine Optimization) أو تعرف اختصارًا بالـ”سيو” أو SEO؛ هي مجموعة من الممارسات التي تُطبق على محتوى مواقع الإنترنت بهدف تحسين ترتيبها في محركات البحث، وإظهار الصفحات منها في النتائج الأولى من تلك المحركات. وهو ما يجلب بدوره تدفّقًا (Traffic) كبيرًا من الزوار باستمرارية لهذه المواقع.

    أصبح السيو اليوم علمًا وتخصصًا مستقلًا بذاته أكثر مما كان في السابق، ولم يعد بالإمكان الاعتماد على استراتيجية “المحتوى هو الملك”، بل لا بد من استهداف كلمات مفتاحية معينة (Keywords) قبل الشروع في إنشاء المحتوى ونشره على الشبكة، كما من الضروري تطبيق مجموعة من الممارسات الأخرى على الموقع كذلك.

    كتجربة شخصية، أمتلك موقعًا باللغة الإنجليزية عن البرمجيات مفتوحة المصدر ونظام لينكس (تجده على fosspost.org). ننشر فيه باستمرارية مقالات عالية الجودة منذ 5 سنوات. لكنني – كصاحب الموقع – لاحظتُ أن مقالاتنا لا تتصدر نتائج البحث على الكلمات المفتاحية على الرغم من كل المجهود الذي نبذله والمحتوى الرائع الذي نصنعه، ولم أعرف سبب ذلك.

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

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

    أساسيات تحسين محركات البحث (SEO)

    إليك أهم ما تعلمناه من الأسئلة والأجوبة التي تناقشنا حولها بخصوص تحسين محركات البحث:

    1- نية البحث (Search Intent)

    أي مستخدم لمحركات البحث مثل جوجل، عندما يكتب كلمة مفتاحية في مربع البحث فهو لديه نية أو هدف معين يريد تحقيقه أو العثور عليه عبر البحث عن تلك الكلمة. مثلًا إذا كتبتُ في مربع بحث جوجل “فيرفكس 87” فهذا يعني غالبًا أنني أبحث عن روابط تحميل لهذا الإصدار من متصفح فيرفكس، ولا أبحث عن شيءٍ آخر؛ لا تظهر لي مميزاته ولا أخباره ولا النقاشات حوله… فقط أعطني رابط التحميل أولًا.

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

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

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

    بعد أن تعرف نية البحث، عليك الآن أن تكتب مقالك بالكامل ليلبّي تلك النية ولا تتجاهلها إن كنت تريد الظهور في الصفحات الأولى من جوجل.

    2- استهداف كلمات مفتاحية دون النشر العشوائي

    خُدعنا بجملة مسوّقي المحتوى الشهيرة: “المحتوى هو الملك” وظننا أنه لا حاجة لتطبيق كل هذه التقنيات والتعقيدات لتحسين محركات البحث، بل يكفي نشر محتوى عالي الجودة لم ينشره أحد من قبل على الشبكة حول المواضيع التي نريد تغطيتها وجوجل ستتكفل بالباقي.

    كنا ننظر في مقالات منافسينا على الكلمات المفتاحية ونقول:

    ما هذا الهراء؟ يمكننا بسهولة نشر محتوى أكثر قيمة منهم يفيد الزوار ويحوي معلوماتٍ أكثر، هيّا بنا نفعلها.

    فريق التدوين قبل أن يُصاب بصدمة العمر.

    صُدمنا عندما اكتشفنا عكس ذلك؛ كل مقالٍ جديدٍ ينشر لا بد أن تضع في بالك أنه يستهدف تحسين محركات البحث أساسًا. أي أنك تكتب بطريقة SEO-driven وليس العكس؛ أنت تكتب المقالات لتجلب لك تدفّق الزوار من محركات البحث ولا تكتب المقالات ثم تبحث عن طريقةٍ ما لجعلها تجلب الزيارات من محركات البحث.

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

    3- استهداف متعدد للكلمات المفتاحية

    - 58

    من المميزات الجديدة مؤخرًا في جوجل هو أنها لم تعد تجعل الصفحات الجيدة تتصدر على كلمة مفتاحية واحدة فقط؛ بل قد تجعل نفس الصفحة تتصدر النتائج على امتداد أكثر من كلمة مفتاحية.

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

    يمكن استهداف هذه الكلمات المفتاحية المتعددة عبر:

    • استخدام أكثر من شكل من الكلمة المفتاحية في العناوين الفرعية في المقال.
    • الإشارة للكلمات المفتاحية الرديفة للكلمة المفتاحية الأساسية متى ما أمكن جنبًا إلى جنب.
    • الحديث عن أكثر من كلمة مفتاحية في أجزاء منوعة من نصوص المقال.

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

    4- تنسيق المحتوى

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

    1- هيكلة المحتوى

    وجدنا أن أفضل هيكلة للمقالات الجديدة التي ننشرها يجب أن تكون كالتالي:

    1. (مقدمة بسيطة دون ترويسة).
    2. ترويسة 2: عنوان رئيسي يحوي الكلمة المفتاحية وتحته سطر أو سطران.
    3. ترويسة 3: شيء فرعي تريد الحديث عنه.
    4. ترويسة 3: شيء فرعي تريد الحديث عنه.
    5. ترويسة 3: شيء فرعي تريد الحديث عنه بصورة مطوّلة (مجرد عنوان دون محتوى، ربما سطر أو سطران تحته لا أكثر).
    6. ترويسة 4: القسم الأول من الترويسة 3 السابقة التي كنت تريد الحديث عنها بصورة مطوّلة.
    7. ترويسة 4: القسم الثاني من الترويسة 3 السابقة التي كنت تريد الحديث عنها بصورة مطوّلة.
    8. ترويسة 2: عنوان رئيسي يحوي الكلمة المفتاحية أو كلمة مفتاحية رديفة.
    9. … (تكرار البنية السابقة وفق الحاجة)
    10. خاتمة.

    الفكرة باختصار هي أنك بحاجة لتقسيم المحتوى إلى عناوين صغيرة لا يتجاوز عدد الكلمات تحت كلٍ منها 300 كلمة كحدٍ أقصى، وبما أنه في غالب الأحيان ستحتاج كتابة أكثر من ذلك في مقالاتك فالحل هو أن تقسّم العنوان الفرعي نفسه (ترويسة 3) إلى عناوين فرعية أصغر منها (ترويسة 4) بحيث تفصل بين المحتوى وتقسمه بصورة واضحة.

    فإن أمكنك كتابة 300 كلمة من المحتوى تحت الترويسة 3 فقط فهذا جيد، لكن إن كنت تريد الكتابة أكثر من ذلك فقسّم ذاك المحتوى (600 كلمة مثلًا) إلى ترويستين من المقاس 4 وتحت كلٍ منهما تضع 300 كلمة مثلًا.

    الترويسة (Heading): هي ببساطة عناوين فرعية تضعها داخل صفحات موقعك، ومن المتعارف على الإنترنت تقسيمها إلى 6 مستويات: ترويسة 1 وترويسة 2 وترويسة 3 وترويسة 4 وترويسة 5 وترويسة 6، وتعرف اختصارًا بـh1 وh2… إلى h6. لكن معظم – بل لربما جميع – مواقع الإنترنت تستخدم إلى حد ترويسة 4 كحد أقصى، كما تستخدم ترويسة 1 لعنوان المقال فقط مرة واحدة في الصفحة ولا تستخدمه لأي عنوان آخر. بينما الترويسات من حجم 2 و3 و4 يمكن أن تتكرر أكثر من مرة، وكلما ازداد الرقم (مثل ترويسة 4) كلما عنى ذلك أنه يمكنك زيادة تكرارها مراتٍ أكثر في الصفحة.

    يجب عليك استخدام اثنتين أو ثلاثة من ترويسات h2 كحد أقصى في المقال، لكن يمكنك تقسيم المحتوى أكثر من ذلك عبر ترويسات h3 أو h4.

    2- القوائم والروابط في المحتوى

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

    فوضع المحتوى على هذا الشكل:

    • يساعد الزائر على الحصول على المعلومات بسرعة.
    • يسهّل على جوجل معرفة النقاط المهمة في المقال.
    • يسمح لجوجل كذلك أن تعرض القائمة النقطية مباشرةً ضمن نتائج البحث.
    • يعين الزائر على عمل تصفّح سريع (Skimming) للمقال دون الحاجة لقراءته فعليًا بالكامل.

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

    لكننا أهملنا الروابط الداخلية؛ فبما أن محتوانا قليل (160 مقال فقط) فلم يكن لدينا الكثير من المقالات الداخلية لنشير إليها في المقالات الجديدة، وهذا اكتشفنا أنه خطأ. لأنه من الواجب كذلك إضافةٍ عددٍ كبير من الروابط الداخلية في كل مقال جديد حتى وإن كانت غير مرتبطة بنفس المحتوى.

    5- الإضافات ليست كل شيء

    - 60

    استعملنا عدة إضافات لإرشادات الـSEO على ووردبريس من قبل، مثل:

    1. Yoast SEO.
    2. RankMath SEO.
    3. All in One SEO.

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

    على الهامش وجدنا أن إضافة RankMath SEO هي الأفضل، فهي متطورة جدًا وعملاقة في المميزات وتوفر كثيرًا مما لا توفره الإضافات الأخرى، خصوصًا في التقاط صفحات الخطأ 404 وإعادة توجيه الزوار تلقائيًا وتتبع الكلمات المفتاحية.

    6- سلاسل المحتوى (Content Hubs)

    هناك طريقة متقدمة لدى المتخصصين في محركات البحث للتصدر على الكلمات المفتاحية الصعبة التي يكون عليها معدل منافسة (Keyword Difficulty) مرتفع، وهي استراتيجية نشر سلاسل المحتوى أو Content Hubs.

    الفكرة باختصار كالتالي:

    • انشر مقالة عملاقة رئيسية من 4000 كلمة على الأقل حول الكلمة المفتاحية الرئيسية.
    • انشر مقالة من 2000 كلمة على الأقل عن كلمة مفتاحية مرتبطة بالكلمة الرئيسية الأولى.
    • انشر مقالتين من 1500 كلمة على الأقل عن كلمات أخرى مرتبطة تريد استهدافها (مقالات قوائم مثلًا).

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

    هذه الطريقة مفيدة لعدة أسباب:

    1. صحيحٌ أنها استراتيجية قديمة ترجع إلى أيام محرك البحث ياهو وألتيفيستا، لكن عدد الكلمات عامل أساسي في ترتيب نتائج البحث في جوجل وما يزال إلى اليوم. المقالات العملاقة مرشّحة لتصدر نتائج البحث حتى على الكلمات المفتاحية الصعبة أكثر من غيرها.
    2. عبر ربط المقالات ببعضها بروابط داخلية، فأنت هنا توزّع نجاح المقال الرئيسي على المقالات الفرعية الأخرى، وهكذا ما سيحصل هو نوع من أن المقال الرئيسي سينجح – غالبًا – بتصدر نتائج البحث، وبفضل هذا، الروابط التي يشير إليها داخله ستكون ذات قيمة، وهو ما سيحمل المقالات الأخرى الأصغر على النجاح في تصدر الكلمات المفتاحية المرتبطة الجانبية بتلك الكلمة المفتاحية.
    3. هذا التقسيم عملي؛ أي أنه مفيد حتى للزوار، فهذا التقسيم يوضح للزوار أهم أركان هذا الموضوع الذي تتحدث عنه ويفصل المحتوى لمقالات مختلفة حسب كل زاوية تريد أن تتناول فيها هذا الموضوع.

    الطريقة تعرف أيضًا باسم SILO ويمكنك البحث عنها على الشبكة.

    يمكنك استخدام أي خدمات مدفوعة لجلب الكلمات المفتاحية المرتبطة ببعضها البعض، مثل SEMRush أو Google Keyword Planner. هناك أيضًا خدمة مدفوعة اسمها LSI Graph وهي تجلب لك بالضبط ما هي الكلمات المفتاحية المرتبطة ببعضها البعض ودرجة ترابطها في جوجل، وهذا مفيد لأنك تريد الحديث عن الكلمات المفتاحية الأكثر ترابطًا في مقالاتك وليس كلمات مفتاحية بعيدة عن بعضها البعض.

    من الحيل الجيدة لذلك أيضًا رؤية قسميّ “People Also Ask” و”Related Searches” في جوجل:

    حيث ستظهر لك عمليات بحث وأسئلة مرتبطة بالكلمة الحالية.

    7- تحديث وصيانة المحتوى

    جميعنا لا نريد نشر نفس المقال أكثر من مرة، لهذا من المهم أن تكتب المقالات بشكل دائم الخضرة (Evergreen)؛ أي أن المعلومات التي فيه محدّثة وصحيحة طوال الوقت وليست قديمة قبل أكثر من سنة.

    يمكنك تحديث المقالات عبر إزالة المعلومات القديمة منها وإضافة معلومات محدّثة، أو إن كانت مقالات قوائم (Lists) فيمكنك إضافة العناصر الجديدة في السوق إليها وإزالة المنتجات أو العناصر التي لم تعد متوفرة للزوار من القائمة.

    قِيل لنا أن جوجل تبحث عن محتوى لا يكون عمره أكثر من 6 أشهر كحد أقصى، أي أنه عليك تحديث مقالاتك المهمة التي تريدها أن تتصدر الكلمات المفتاحية كل 6 أشهر. يمكنك استعمال إضافة WP Last Updated Info لعمل ذلك بسهولة وإخبار جوجل عبر وسوم الميتا أنك قد حدثت المقال.

    من المهم كذلك أن يبقى الرابط الدائم (Permalink) الخاص بالمقال ثابتًا ولا يتغير مع التحديثات؛ فقط المحتوى وعنوان المقال هو ما يمكن أن يتغير.

    خاتمة

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

    ذكر محمد ذلك بوضوح عندما سألناه عن سبب انخفاض الزوار على مقالاتنا عالية الجودة، بينما المواقع المنافسة لا تنشر ربع ما ننشره من جودة ومع ذلك تتصدر نتائج البحث:

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

    محمد الأمين الشريك، متخصص سيو على مستقل.

    يمكنكم توظيف محمد، أو متخصصين سيو آخرين عبر موقع مستقل.

  • الدليل الشامل لتعلم البرمجة باستخدام المصادر العربية

    الدليل الشامل لتعلم البرمجة باستخدام المصادر العربية

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

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

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

    ماذا سنتعلم في هذا المقال؟

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

    إليك فهرس هذا المقال الشامل لتعلَمَ ما ينتظرك عند إكماله، سنعرج على جميع المواضيع التالية بالتفصيل:

    1. لماذا نتعلم البرمجة؟
    2. لماذا نتعلم البرمجة باللغة العربية؟
    3. قاموس المفاهيم والمصطلحات
    4. كيف سنستفيد من المراجع والمصادر في هذا المقال؟
    5. أساسيات علوم الحاسوب التي تحتاجها قبل تعلم البرمجة
    6. تعلم البرمجة مع بايثون
      1. لماذا نتعلم البرمجة مع بايثون؟
      2. تعلم أساسيات لغة البرمجة بايثون بالعربية
      3. تعلم الخوارزميات وهياكل البيانات
      4. تعلم تطوير الويب مع بايثون بالعربية
      5. تعلم علم البيانات مع بايثون بالعربية
    7. تعلم برمجة تطبيقات الهواتف
    8. تعلم تطوير تطبيقات سطح المكتب
    9. مجالات أخرى للبرمجة
    10. ما لا تغطيه المكتبة العربية عن تعلم البرمجة
    11. المهارات التقنية الإضافية لتعلم البرمجة
    12. ماذا بعد تعلم البرمجة؟
    13. خاتمة

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

    لماذا نتعلم البرمجة؟

    هذا أوّل سؤالٍ علينا التأصيل له في بداية هذا المقال؛ لماذا نتعلم البرمجة؟ وما الدافع لتعلم البرمجة من بين كل المهارات الأخرى كالتصميم أو التدوين أو الكتابة؟

    هناك الكثير من الدوافع العملية لتعلم البرمجة التي سنراها:

    بناء التطبيقات والأنظمة والمشاريع

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

    انظر مثلًا كيف غيّر مارك زوكيربيرغ مؤسس فيسبوك العالم عبر منصة التواصل الاجتماعي التي طوّرها، وانظر كيف غيّر مؤسسو شركة أوبر وسائل النقل في مختلف البلدان عبر مجرد تطبيق هواتف طوّروه. انظر من حولك وستجد التقنية هي من يصوغ أجزاءً كبيرة من الواقع حولك، والبرمجة هي أهم أداة لذلك.

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

    تسمح لك البرمجة بـ:

    1. بناء مواقع الويب مختلفة، سواءٌ لك أو لمدرستك أو جامعتك أو شركتك أو أقاربك ومعارفك أو نشاطك التجاري. بل يمكنك أن تبني مواقع هي تبني مواقع ويب للآخرين.
    2. بناء تطبيقات الهواتف الذكية للأندرويد وiOS، وهذه إما تكون تطبيقات مجانية تضع بها إعلانات لتربح منها أو قد تكون تطبيقات مدفوعة. بعض هذه التطبيقات قد لا يستهدف الاستفادة المادية أصلًا مثل تطبيقات القرآن الكريم أو السنة النبوية وما شابه ذلك.
    3. بناء تطبيقات سطح المكتب لأنظمة ويندوز وماك ولينكس، وهذه قد تكون برامج محاسبة، برامج هندسية، برامج خدمية، برامج للشركات والمؤسسات، برامج للأنظمة الحساسة، برامج بسيطة لأتمتة بعض المهام… إلخ.
    4. برامج مبنية على الذكاء الاصطناعي، فإن كان لديك يوميًا مثلًا مجموعة من القرارات التي عليك اتخاذها حول أمرٍ ما، فيمكنك تسليم المهمة لنظام ذكاء اصطناعي متطور تبنيه ليقوم بالمهمة نيابةً عنك.
    5. برامج وأنظمة مؤتمتة لأداء المهام الروتينية الطويلة التي كنت تعملها يدويًا؛ مثل إدارة حسابات التواصل الاجتماعي لأحد الشركات أو المؤسسات، أو تصحيح أوراق آلاف الطلاب أوتوماتيكيًا.
    6. برامج وسكربتات تحليل البيانات، حيث يكون لديك الآلاف من مُدخلات البيانات المختلفة وتريد تحليلها واستخراج معلومات قيّمة منها لتُلهمك أنت أو صنّاع القرار الآخرين في موضوعٍ معيّن.
    7. حل المشاكل اليومية للشركات والمؤسسات المختلفة؛ مثلًا يمكنك أن تبرمج برنامج وظيفته أن يري ساعي البريد أقصر دورة كاملة ليسلكها بدلًا من الذهاب عشوائيًا إلى الزبائن لتسليمهم طرود البريد الخاصة بهم.
    8. غيرها الكثير جدًا من التصنيفات المختلفة للبرامج؛ يمكنك عمل برامج لكل شيء.

    وأبسط استفادة من تعلم البرمجة هو أنها تسمح لك ببناء برامج وتطبيقات تساعدك أنت في حياتك اليومية؛ برامج أو سكربتات تسهّل عليك المهام الروتينية التي تفعلها أو تتيح لك بياناتٍ أو خدمات لم تكن قادرًا على بنائها من قبل.

    والأهم من ذلك هو أنّ البرمجة عملية منطقية تعتمد على المنطق في الكثير من أجزائها، وتعلّمها يفتّق الذهن ويبقيه متقدًا قادرًا على تعلّم أي مهارة جديدة، وينمّي من مهارات التفكير لدى من يتعلّمها.

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

    رواتب أعلى من المهن الأخرى

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

    في العديد من الدول العربية مثل مصر والسعودية يتقاضى المبرمجون رواتب وحوافز مرتفعة فوق الحد المتوسط للأجور في بلدانهم [1][2]، وهي مبالغ أكثر من كافية لضمان العيش الكريم لأسرة متوسطة، وفوق أرباح المهن الأخرى التقليدية كالتدريس أو الحرف المهنية وما شابه ذلك.

    المبالغ المادية التي يتقاضاها المبرمجون لا تتوقف عند الوظائف فقط، بل حتّى في مجال العمل الحر (Freelancing) فإنّ المبرمجين يتقاضون أرباحًا أكثر بكثير من مشاريع الكتابة أو التصميم أو التدوين وما شابه ذلك، وهذا جليٌ جدًا من مراجعة آخر المشاريع المتوفرة على منصة مستقل مثلًا. (وهي المنصة الأشهر للعمل الحر عربيًا).

    فإمّا أن يعمل المبرمجون كموظفين في الشركات ويتقاضون رواتب ثابتة لقاء عملهم، أو يعملوا كمستقلين في مواقع العمل الحر ويتاقضون الأرباح بناءً على المشاريع التي يكملونها لكل عميل.

    فرص أكبر للعمل عن بعد

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

    بسبب ذلك فإن البرمجة كمهنة تمتلك فرصًا أكبر في وظائف العمل عن بعد أو العمل الحر، حيث يمكنك ببساطة أن تعمل من منزلك أو من أي مكانٍ تريده حول العالم؛ بجانب جسر البوسفور أو على سور الصين العظيم أو من داخل غرفتك الصغيرة في أحد القرى النائية… طالما أنه لديك اتصال بالإنترنت فيمكنك ممارسة البرمجة بسهولة.

    ولهذا تجد الكثير من المبرمجين يلجؤون إلى العمل مع الشركات الأمريكية لكن عن بعد؛ حيث يتقاضون مبالغ أعلى من الأعمال المحلية كما يُدفع لهم بالدولار الأمريكي.

    متعة في العمل

    رواتب جيّدة وعمل من داخل منزلك، ما الذي قد يكون أفضل من ذلك؟

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

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

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

    لماذا نتعلم البرمجة باللغة العربية؟

    السؤال الثاني الذي نحتاج أن نجيب عنه في المقال: لماذا نتعلم باستخدام المصادر العربية فقط دونًا عن الأجنبية؟

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

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

    يجب ألا نسأل أنفسنا لماذا نريد أن نتعلم باللغة العربية؟ التعلم باللغة العربية هو الأصل، فنحن عرب ولغتنا عربية وكل من نتحدث معه عربي، فلماذا نتعلم باللغة الأجنبية؟ ذاك ينبغي أن يكون السؤال.

    تُعلّم الجامعات الغربية جميع طلابها بلغاتها الأم، ومن النادر أن تجد جامعاتٍ تعلم بلغاتٍ غير لغاتها الأم سوى في بلدان العالم المُتراجع. تعليم الطلاب أي شيء بلغتهم الأصلية هو مطلب فكري وأممي وديني وقومي ووطني، ببساطة لأن اللغة هي جزء من كل هؤلاء.

    الأمة التي تتعلم بلغة الآخرين لن تصل يومًا ما إلى مكانتهم.

    قاموس المفاهيم والمصطلحات

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

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

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

    لغة البرمجة (Programming Language) هي اللغة الخاصّة التي يكتب بها المبرمجون البرامج؛ فالحواسيب لا تفهم اللغة العادية التي نتحدث بها بل تفهم لغة الأصفار والواحدات فقط (Binary Language أو اللغة الثنائية) مثل 010101010، وبما أننا كبشر لا يمكننا أن نفهم هذه اللغة كذلك فنحن بحاجة إلى لغة وسيطة نكتب البرمجيات بها، ثمّ تُنقل هذه اللغة إلى اللغة الثنائية التي تفهمها الحواسيب.

    أي أن المبرمج يستعمل جُمَل وكلمات اللغة البرمجية لكتابة البرامج التي يريدها كشفرة مصدرية (Source Code)، ثم يحوّلها برنامج متخصص بهذه اللغة إلى لغة الآلة لتتمكن من القيام بالمطلوب.

    تبرز هنا عائلتان من لغات البرمجة؛ لغات البرمجة المفسَّرة (Interpreted Programming Languages) ولغات البرمجة المصرَّفة (Compiled Programming Languages). والفرق بينهما هو أن الأولى لا تتطلب عملية البناء من المصدر، بل يمكن للمبرمج إعطاء البرنامج مباشرةً للمستخدمين كملف نصي عادي وسيتمكنون من تنفيذه على أجهزتهم، بينما الثانية تحتاج استخدام برنامج مصرّف للبناء من المصدر أولًا لكل نظام تشغيل من المطلوب أن يعمل عليه البرنامج. الأولى غالبًا ما تكون أسهل للتعامل والتعلّم والاستعمال ولكن الثانية أسرع من ناحية الأداء وأكثر تحكمّا بموارد نظام التشغيل المطلوبة. بايثون وروبي وPHP هي لغات تفسيرية بينما سي وC++‎ وC#‎ هي لغات برمجة تجميعية.

    الخوارزميات (Algorithms) هي مجموعة من الإجراءات المنطقية المتسلسلة التي تهدف لتغيير مجموع من المُدخلات (Input) إلى مخرجات معيّنة (Output) مطلوب العثور عليها.

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

    هناك خوارزميات مختلفة لكل شيء؛ لترتيب المصفوفات أو البحث عن المحتوى أو حل المشكلات الرياضية أو العثور على أقصر مسار ممكن لموظف البريد …إلخ كل المهام المختلفة لها خوارزميات مختلفة لتحل المشاكل المرتبطة بها.

    تختلف الخوارزميات المتعددة في:

    • سرعتها وقدرتها على إيجاد الخرج المطلوب.
    • استهلاكها للموارد من مساحة تخزين وقوّة معالجة أثناء عملها.
    • سهولتها أو تعقيدها على المبرمج من أجل تضمينها.

    ولهذا بعض الخوارزميات أفضل من الأخرى في بعض النواحي.

    هياكل البيانات (Data Structures) هي أساليب التخزين والتعامل مع البيانات داخل الحواسيب. فالبيانات يمكنك أن تحفظها مثلًا على شكل قائمة (List) أو جدول أو شجرة (Tree) أو بأشكال أخرى مختلفة، وتفيدك هذه الهياكل المختلفة في العديد من الحالات، فقد تسهل عليك حل مشكلة معينة أو تجعل الخوارزميات المرتبطة بالمشكلة تعمل أسرع مما كانت تعمل عليه من قبل.

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

    مثلًا في مجال الخوارزميات، لدينا خوارزميات معروفة للبحث مثل البحث الثنائي (Binary Search) والعشرات غيرها. لدينا كذلك خوارزميات متكررة للبحث (Recursive Search Algorithms). الآن هل عليك تعلم جميع هذه الخوارزميات؟ لا، يكفيك تعلم اثنتين من كل تصنيف وبرمجتها بنفسك لتفهم المبدأ العام لتلك التصانيف من الخوارزميات، فقط.

    بعد أن صرت تفهم الآن ما هي الخوارزميات العادية للبحث وما هي الخوارزميات المتكررة للبحث وكيف تعمل فمستقبلًا سيكون من السهل عليك نسبيًا برمجتها مرة أخرى (أو حتى برمجة خوارزميات أخرى من نفس العائلة) متى طُلب منك ذلك في سوق العمل.

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

    السكربتات (Scripts) هي برمجيات صغيرة جدًا وظيفتها أداء مهمة معينة، تكون غالبًا في ملف واحد فقط. لا نسمي السكربتات برامج لأنه وإن كانت السكربتات عملاقة أو تقوم بعدة أعمال إلا أن الفرق بينها وبين البرامج هو أنها مصممة على عجالة وبطريقة مباشرة لأداء مهام محدودة فقط وليست متكاملة كالبرامج العادية، بل شيء سريع ليقوم بالمهمة المحددة فقط بأسهل وأسرع طريقة (Quick and dirty). أي أن السكربتات هي برامج سطر أوامر سريعة لأداء المطلوب فقط.

    الواجهة الأمامية (Frontend) هي ببساطة كل ما يتفاعل معه المستخدم الروتيني للبرمجيات من عناصر ورسوم وصور وأي محتوى بصري في الطرف المواجه للمستخدم.

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

    لنفرض أنك تتعامل مع موقع جوجل على Google.com، حينها الواجهة الأمامية هي ببساطة ما تراه أنت كمستخدم أمامك من مربع البحث وشعار جوجل والألوان المختلفة للترويسة وتصميم الصفحة عمومًا، بينما الواجهة الخلفية هي النظام الداخلي لموقع جوجل المصمم لعرض نتائج البحث لك بسرعة وسهولة من مختلف مواقع الويب عندما تبحث عن شيء معين. يمكن أن تشبه الواجهة الأمامية كذلك بواجهة ومنظر السيّارات التي تراها حولك، بينما الواجهة الخلفية ستكون شيئًا مثل محرّك السيارة الذي يقودها ويوجهها.

    تطوير الويب يشتمل على المبدأين، ونسمّي المطورين الذين يعملون على المجالين معًا بمطوري المكدّس الكامل (Full-Stack Developers).

    إطار العمل (Framework) هو مجموعة من الأدوات والمكتبات المحزّمة مع بعضها البعض لتسهيل تطوير البرمجيات بدلًا من إعادة اختراع العجلة في كل مرة. فمثلًا إذا كنت تبرمج العديد من البرمجيات فستلاحظ أنّك تكرر كتابة الكثير من الأجزاء في العديد من البرامج المختلفة، وأُطُر العمل هي ببساطة تجميعٌ لهذه الشِفرات البرمجية والأدوات والمكتبات والأساليب المستعملة في أكثر المشاريع لتسهيل بناء المشاريع المستقبلية. هناك أُطُر عمل مختلفة بمعظم لغات البرمجة المتوفرة.

    كيف سنستفيد من المراجع والمصادر في هذا المقال؟

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

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

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

    اعتمدنا منهجية صارمة في اختيار المواد التي سنرشّحها لك؛ مثل أن تكون:

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

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

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

    أساسيات علوم الحاسوب التي تحتاجها قبل تعلم البرمجة

    لتعلم البرمجة أنت بحاجة إلى بعض العلوم الأساسية التي عليك تعلّمها قبل الشروع بتعلم البرمجة. لا يمكنك تعلم البرمجة مثلًا وأنت لا تفهم كيف تعمل الحواسيب أو ما هي الشفرة الثنائية (Binary Code). وهناك عددٌ من العلوم الأخرى التي ستحتاجها قبل تعلم البرمجة.

    يمكننا أن نقسم هذه الأساسيات إلى:

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

    للبدء في ذلك هناك هذه الدورة الكاملة من طرف الإخوة في قناة “نقش” على يوتيوب، وهي ستعلّمك ما يتعلق بأساسيات علوم الحاسوب والمنطق والبوابات المنطقية والأنظمة العددية:

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

    مقالات للقراءة:

    يمكنك كذلك الانضمام إلى دورة علوم الحاسوب المقدمة من طرف أكاديمية حسوب، وهي تكلّف 160$ مع شهادة، لكن حاليًا مدتها 35 ساعة وهي شاملة جدًا لكل ما قد تحتاجه وأكثر. ميّزتها أنها تضمن لك استرداد المال خلال 6 أشهر من خلال العمل الحر كما أنه هناك متابعة وتحديث مستمر للدورة أثناء رحلة تعلمك.

    تعلم البرمجة مع بايثون

    سنشرح في هذا القسم كل ما يتعلق بلغة البرمجة ببايثون بصورة تفصيلية. ننصحك بقراءة المقالة التالية على ويكييبديا حول بايثون فيها مقدمة جيدة.

    لماذا سنتعلم البرمجة مع بايثون من بين كل اللغات؟

    لقد اخترنا لغة بايثون من بين كل اللغات الأخرى لتكون الأساس لنا في رحلتنا لتعلم البرمجة، وهذا راجعٌ لعدة أسباب:

    • لغة بايثون هي الثالثة من ناحية عدد المستودعات البرمجية المفتوحة على موقع GitHub المتخصص بإدارة المشاريع البرمجية [3]، كما تُدرّس لغة بايثون في معظم جامعات العالم التي تعلّم تخصص علوم الحاسوب، وبالتالي هي لغة رائدة ومشهورة.
    • إمكانية استخدام بايثون في مجالات واسعة على عكس اللغات الأخرى، مثلًا يمكنك استخدام بايثون لتحليل البيانات وتطوير برامج الويب وسطح المكتب وفي اختبارات الأمان (كسكربتات) والحوسبة العلمية وتطوير الألعاب والذكاء الاصطناعي وتعلّم الآلة… والكثير من الأشياء الأخرى، على عكس لغات مثل جافاسكربت أو جافا.
    • لغة سهلة التعلم جدًا، فالتعابير اللغوية الخاصّة بها واضحة ومرنة وليست صعبة على المبتدئين، أشبه بكتابة اللغة الإنجليزية.
    • وجود مجتمع هائل حولها من مستخدمين ومطورين وشركات ومؤسسات ومكتبات ومشاريع برمجية يمكنك الاستفادة منهم.
    • ببساطة بايثون هي اللغة البرمجية العصرية حاليًا ولذلك تعلّمها هو أفضل من تعلّم غيرها.

    يمكنك مع بايثون:

    • الدخول في مجال الذكاء الاصطناعي وفهمه، وتعلّم بعض أُطر العمل الشهيرة التي تعمل في هذا المجال مثل PyTorch.
    • الدخول في مجال تحليل البيانات وفهمها. ستُعطى غالبًا حجمًا كبيرًا من البيانات ووظيفتك أن تستخرج تقارير ومعلومات مهمة ومفيدة منها. ستتعامل هنا مع أشياء مثل Pandas, Numpy, DataBricks, Spark وغيرها.
    • الدخول في مجال تطوير الويب (مواقع الويب)، وهنا ستحتاج تعلم أحد إطاريّ العمل الشهيرين Django أو Flask. سيمكنك هذا من برمجة تطبيقات الويب كيفما تحب وتريد.
    • يمكنك كذلك تعلّم تطوير تطبيقات سطح المكتب إن كان هذا ما تحب (ويندوز، ماك أو لينكس) وستحتاج تعلم أحد المكتبات الرسومية مثل Qt أو GTK أو TK.
    • كتابة سكربتات صغيرة تساعدك في عمليات الأتمتة أو اختبار الاختراق.
    • عمل الكثير من الاستخدامات الأخرى.

    تعلم أساسيات لغة البرمجة بايثون بالعربية

    المكتبة العربية غنية بالمصادر التعليمية حول لغة بايثون (كأساسيات ومرحلة متوسطة على الأقل).

    إننا ننصح أولًا بقراءة كتاب “البرمجة بلغة بايثون” الصادر عن أكاديمية حسوب في 400 صفحة، وهو يغطي جميع الأساسيات المطلوبة – وأكثر – لتعلم البرمجة بلغة بايثون. الكتاب مجاني تمامًا ويمكنك تحميله من الرابط السابق. الكتاب يستعمل بايثون 3 بالفعل ولذلك لا حاجة لأن تقلق من موضوع إصدارات بايثون المختلفة.

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

    كمصدر إثرائي يمكنك الرجوع إلى موسوعة حسوب وتوثيقها الكامل عن بايثون، حيث أنه مترجم إلى العربية عن التوثيق الرسمي للغة بايثون.

    لا تصرف الكثير من الوقت على الأساسيات، شهران أو 3 أشهر من التعلم المستمر بالكثير ستكون كافية.

    تعلم الخوارزميات وهياكل البيانات

    لفهم الخوارزميات وهياكل البيانات فإننا نرشح الدورة التالية بلا منازع، وهي دورة من قناة “TheNewBaghdad” على يوتيوب تشرح بشكل تفصيلي كل ما تحتاجه (مجانية تمامًا). لكن لاحظ أنّ اللغة البرمجية المستعملة للأمثلة هي جافا، يمكنك تخطي الأمثلة العملية لتضمين تلك الخوارزميات بجافا والتركيز على الفيديوهات المتعلقة بالخوارزميات وهياكل البيانات تحديدًا.

    حاول برمجة ما تعلمته من الخوارزميات وهياكل البيانات باستخدام بايثون.

    كمحتوى إثرائي، هناك العديد من المقالات النصية على موقع “هرمش” حول الخوارزميات وهياكل البيانات. ننصح بقراءتها والاستفادة منها: الخوارزميات، تمارين عملية مختلفة.

    كمصادر إثرائية، يمكنك الرجوع إلى موسوعة حسوب فيما يتعلق بالخوارزميات وأنماط التصميم (Design Patterns)، وهي مصدر ثري موسوعي عن كل ما يتعلق بهما بشكل عالي الجودة: الخوارزميات، أنماط التصميم (لكن لاحظ أن المحتوى قد يستخدم لغات برمجة غير بايثون، فما يهمك أنت هو فهم الفكرة الأساسية بعيدًا عن لغة البرمجة بالتحديد).

    تعلم تطوير الويب مع بايثون

    لتطوير الواجهة الأمامية فأنت تحتاج إلى معرفة بلغات الويب؛ وهي جافاسكربت وHTML وCSS. لتطوير الواجهة الخلفية يمكنك استخدام لغة بايثون مع أي إطار عمل شهير مثل بايثون وDjango.

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

    بخصوص الواجهة الأمامية فعليك تعلم عدة أشياء:

    • HTML: عليك أن تفهم 5 HTML بصورة جيدة فهي أساس بناء مواقع وأنظمة الويب الجيدة، ولن تتمكن من بناء ما تريده إن لم تكن تفهمها. لكن لحسن حظّك أنّ تعلمها سهل ولن تحتاج لأكثر من بضع أساسيات فيها. ننصح بهذه القائمة من الفيديوهات على أكاديمية الزيرو حول HTML ففهي كل ما تحتاجه. كمحتوى إثرائي يمكنك قراءة كتاب “نحو فهم أعمق لتقنيات HTML5” الصادر عن أكاديمية حسوب، وهو كتابٌ مفصل للغاية من عدة مئات من الصفحات.
    • CSS: عليك طبعًا أن تمتلك معرفة جيدة في CSS كذلك من أجل تصميم صفحات جميلة للمستخدمين. لا تحتاج أن تفهم مبادئ التصميم الأخيرة فيها ولا آخر صيحات تصميم المواقع لكنك بحاجة إلى القدرة على تصميم صفحات ويب لا تبدو كموقع قادم من 1998م. هذه القائمة الطويلة من الفيديوهات على أكاديمية الزيرو عن CSS هي ما ننصح به. كمحتوى إثرائي يمكنك قراءة كتاب “التحريك عبر CSS” وهو كتاب مُترجم.
    • جافاسكربت: لا تحتاج الكثير من المعرفة في جافاسكربت، بل في الواقع يمكنك بناء الكثير من مواقع وأنظمة الويب دون استخدام سطرٍ واحد من جافاسكربت. لكنك ستحتاج استخدامها في الكثير من الأحيان، ولا تحتاج في ذلك إلى تعلم شيءٍ أكثر من الأساسيات فيها. أكاديمية الزيرو لديها سلسلة فيديوهات كاملة عن جافاسكربت وتعلّمها.

    بخصوص الواجهة الخلفية، هناك مساق كامل على قناة “CodingMirror” على يوتيوب لتعلم تطوير الويب مع بايثون وإطار العمل جانغو، ننصح بها. إن كنت ستبدأ مع فلاسك فهناك هذه السلسلة الطويلة عنه من أكاديمية الخوارزميات على يوتيوب، هناك أيضًا سلسلة من المقالات على أكاديمية حسوب حول إطار العمل فلاسك.

    مواد إثرائية للقراءة والاطلاع:

    جافاسكربت يمكن استخدامها لبناء الواجهة الأمامية والواجهة الخلفية كذلك، حيث أنه توجد لغات وأُطُر عمل وأدوات لاستخدام جافاسكربت لبناء تطبيقات الويب والهواتف، مثل Node.js وReact وReact Native. إن كنت مهتمًا بالمجال فيمكنك العروج على دورة أكاديمية حسوب حول جافاسكربت.

    تعلم تحليل البيانات مع بايثون

    تحليل البيانات (Data Analysis) هي من أكثر الوظائف الرائجة حاليًا، ومن أكثرها درًا للمدخول المادي كذلك. علم تحليل البيانات يشمل:

    • إنشاء وتوليد البيانات من مصادر مختلفة متوفرة حول موضوعٍ معين.
    • معالجة وتنظيم وتنظيف البيانات قبل إدخالها في مرحلة التحليل.
    • تحليل البيانات واستخراج أي معلومات أو تقارير أو معطيات مفيدة منها.
    • عرض البيانات على شكل تقارير تفاعلية مفيدة لصنّاع القرار.
    • تخزين البيانات ومشاركتها بهيئة مناسبة تتيح الاستفادة منها أو البناء فوقها مستقبلًا.

    كل ما سبق يمكن إنجازه ببايثون بالطبع، ولدينا مجموعة من الأدوات المناسبة لذلك:

    1. Jupyter: منصة إنشاء مستندات تفاعلية تحوي الشفرة البرمجية الكاملة بطريقة منظمة وجميلة وقابلة للتحرير والمشاركة تشبه مستندات جوجل. جوبيتر – على حد علمي – هو من أكثر الوسائط شيوعًا في الحوسبة العلمية.
    2. Pandas: مكتبة شهيرة لتحليل البيانات ببايثون، حيث يمكن استخدامها لأداء جميع الخطوات السابقة التي ذكرناها.
    3. Numpy: مكتبة شهيرة أخرى متخصصة بالحوسبة العلمية والعمليات الرياضية البسيطة والمعقّدة. قد تحتاج استخدامها بشكلٍ محدود من فينةٍ لأخرى في مشاريعك.
    4. Matplotlib: مكتبة معروفة للرسم البياني ببايثون، ستحتاجها لإنشاء رسوم بيانية من نتائجك بمجرد أن تنتهي من توليدها.
    5. Scikit-Learn: مكتبة للذكاء الاصطناعي وتعلم الآلة ببايثون.
    6. Apache Spark: نظام معالجة متوازي للبيانات الضخمة (Big data) والمعالجة التشاركية، ليس مجرد مكتبة بايثون بل هو مشروعٌ منفصل، لكن يمكن استخدامه مع بايثون كذلك.
    7. هناك مكتبات متعددة عديدة أخرى، سواءٌ لتعدين البيانات (Data Mining) أو لمعالجة البيانات أو توزيعها أو عرضها… إلخ، وستكتشفها بنفسك مع الوقت. (تعدين البيانات عملية متقدمة تنضوي على جمع البيانات وتنظيفها وتصنيفها وتحليلها ثم الخروج بمعلومات جديدة يمكن الاستفادة منها).

    أنصحك بمشاهدة هذا الفيديو السريع لترى ما يمكن لمكتبات بايثون أن تفعله:

    المصادر العربية حول بايثون وتحليل البيانات ليست بالكثيرة، لكنها موجودة. أبرزها هي فيديوهات الأخ حسام حوراني على يوتيوب، حيث أنه يشرح بالفعل معظم مواضيع تحليل البيانات والذكاء الاصطناعي على امتداد أكثر من 100 فيديو. عيب هذه السلسلة للأسف هو فقط أنها غير منظمة؛ فلا يوجد فصل واضح بين تحليل البيانات وعلم الآلة ومواضيع أخرى متشعبة (كل الفيديوهات مع بعضها في نفس القائمة)، لذلك ستحتاج أن تختار أنت أن تشاهد فقط الفيديوهات المتعلقة بتحليل البيانات. لكنها فيديوهات رائعة ذات قيمة مرتفعة فهي تشرح مواضيع متخصصة جدًا بأحدث أدوات المجال.

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

    مواد إثرائية أخرى للقراءة والاطلاع:

    بخصوص تعلم الآلة (Machine Learning) فلن نغطّيه في هذا المقال لأن تعلم الآلة يحتاج أكثر من مجرد فيديوهات أو كتاب لتعليمه؛ فأنت بحاجة إلى أخذ مساقات كاملة عن الجبر الخطّي (Linear Algebra) وعلم الإحصاء (Statistics) ونظرية الاحتمالية (Probability Theory) وفهم جيد للرياضيات (التفاضل والتكامل) قبل أن تفكر في ولوج مجال تعلّم الآلة، وحتى بعد أن تمتلك هذه الأساسيات فإن تعلم الآلة مع بايثون (أو غيرها) ليس بالأمر السهل والمصادر العربية حوله شحيحة حاليًا. لذلك فتعلم الآلة أمرٌ خارجٌ عن قدرة معظم قرّاء هذا المقال ولهذا لم نشمله. معظم من يمارسون هذا العلم يدرسونه أكاديميًا حصرًا.

    يمكنك عمومًا الاطلاع على كتاب الذكاء الاصطناعي من أكاديمية حسوب للحصول على فهم عام للمجال، وهو كتاب مجاني.

    تعلم برمجة تطبيقات الهواتف

    سنخرج الآن من عباءة بايثون ونلبس عباءاتٍ أخرى.

    ذلك أنّ بايثون ليست لغةً جيدة لبرمجة تطبيقات الهواتف الذكية (أندرويد وiOS)، فهي غير مصممة لهذا الهدف والأدوات التي تسمح بذلك غير عملية بنفس اللغات الأخرى مثل سويفت أو جافا أو لغات الويب. لا يوجد أي مصادر عربية متعلقة بهذا الموضوع حتّى.

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

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

    هناك لغات برمجية مدعومة على أنظمة تشغيل محددة وهذه التطبيقات تعمل بصورة أصيلة (Native Apps) على هذه الأنظمة دون الحاجة لطبقة محاكاة أو طبقة وسيطة أو ما شابه ذلك. مثلًا جافا لتطوير تطبيقات أندرويد وسويفت لتطوير تطبيقات iOS، فهذان النظامان يستخدمان هاتين اللغتين البرمجيتين أساسًا ضمنهما ويدعمانهما بصورة رسمية، وبالتالي أنت تتعلم الطريقة الأساسية لبرمجة التطبيقات على هذه الأنظمة. لكن بالطبع هناك مجهود أكبر للتعلم وستحتاج أن تحتفظ بمستودعين مختلفين للشفرة المصدرية.

    برمجة التطبيقات الهجينة أو ما يعرف بـHybird Applications، وهي تطبيقات مكتوبة بنفس الشفرة البرمجية لكن تعمل على جميع الأنظمة، ذلك أنها تستعمل لغات الويب (جافاسكربت وHTML وCSS) ولذلك من الأسهل فعليًا تشغيلها على مختلف أنظمة التشغيل فهي مجرد تطبيقات تعمل ضمن نافذة متصفح مضمّنة. لكن أداؤها أضعف كما أنها محدودة أكثر من التطبيقات المبرمجة خصيصًا لكل نظام تشغيل. تستعمل هذه التطبيقات طبقة وسيطة لتجعلها قابلة للعمل على أنظمة التشغيل المختلفة.

    يمكنك معرفة المزيد عن أنواع تطبيقات الهواتف والفروقات بينها من الفيديو التالي:

    ما هي التقنيات المتوفرة لتطوير تطبيقات الهواتف؟

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

    1. Flutter: هي في الواقع أداة تطوير برمجيات (Development Kit) لتطوير الواجهات الأمامية للتطبيقات، وصدر الإصدار 2.0 منها البارحة فقط (من تاريخ نشر هذا المقال) والذي صار يسمح باستخدامها على ويندوز وماك ولينكس والويب وأندرويد وiOS، وبالتالي فعليًا يمكنك استخدامها لبرمجة نفس واجهة التطبيق على مختلف هذه المنصات. فلاتُر ليست لغة برمجة بل هي أداة تطوير للواجهات الأمامية (Frontend) للتطبيقات، أي أنها تسمح لك ببرمجة جانب العميل (Client-side) بسهولة على مختلف أنظمة التشغيل، لكن لغة برمجة الواجهة الخلفية تكون بلغة برمجية أخرى تختارها أنت. ميزة فلاتُر هي أنها لا تستعمل طبقة وسيطة مع نظام التشغيل الذي تعمل عليه؛ وبالتالي الأداء متطابق جدًا مع التطبيقات الأصيلة التي بُرمجت خصيصًا لتعمل على نظام التشغيل ذاك، كما أن عملها على مختلف أنظمة التشغيل يسمح لك كمبرمج بكتابة شفرة برمجية واحدة بدلًا من التعامل مع أدوات عمل مختلفة.
    2. Cordova: بيئة تطوير تطبيقات هجينة مكتوبة بلغات الويب (HTML وجافاسكربت وCSS)، فإذا كنت متضلعًا بلغات الويب هذه فيمكنك بسهولة تعلم كوردوفا لبرمجة تطبيقات هواتف تعمل على أندرويد وiOS. يمكنك برمجة نفس التطبيق مرة واحدة فقط عبر كوردوفا وستجده يعمل على كافة أنظمة التشغيل، فهي مجرد تطبيقات ويب تعمل ضمن نافذة متصفح.
    3. Ionic: بيئة تطوير تطبيقات هجينة أخرى لتطوير تطبيقات تعمل على مختلف أنظمة التشغيل بلغات الويب، لكنها تركز أكثر على جافاسكربت وأُطُر العمل الخاصّة بها مثل Vue و React و Angular. فإذا كنت من محبي جافاسكربت وأدواتها فيمكنك استعمال Ionic لتطوير تطبيقات الهواتف الذكية. آيونيك مبني على node.js على شكل وحدة (Module) يمكنك تثبيتها.
    4. React Native: منصة تطوير تطبيقات بلغة جافاسكربت، لكن ميّزتها عن البقية هي أنّ التطبيقات التي تبرمجها بإطار العمل React مُترجمة إلى الواجهات البرمجية الأصيلة الخاصة بنظام التشغيل (Native APIs)، أي أنه لا يوجد هناك نافذة عرض ويب مضمّنة لتشغيل التطبيق أو طبقة وسيطة، بل مكتبات نظام التشغيل نفسها مباشرةً تعمل مع التطبيق، وهذه ميزة له فوق الخيارات الهجينة الأخرى. يعمل بسلاسة مع إطار React لبناء الواجهة الأمامية للتطبيقات.
    5. اللغات البرمجية الأصيلة: جافا على أنظمة أندرويد وسويفت (Swift) هما اللغتان الأكثر شيوعًا لتطوير التطبيقات الأصيلة (Native Apps). ستحتاج إلى تطوير إصدارين من تطبيقك لهذين النظامين وأن تتعلم اللغتين معًا إن أردت استهدافهما سويةً. لكن يمكنك إن أردت البدء بتعلم برمجة جافا مع الأندرويد فهو يسيطر على نحو 85% من سوق الهواتف الذكية وبالتالي أنت تتعلم الخيار الأكثر شيوعًا هنا. لكن هذه الموضة آخذة بالتلاشي تدريجيًا والبرمجة تنتقل للأدوات واللغات والبيئات متعددة المنصات (Cross-platform) بدلًا من برمجة التطبيقات الأصيلة لكل نظام تشغيل على حدى.
    6. أدوات أخرى: سوق الهواتف الذكية مربح جدًا لهذا تجد من هب ودب يدخل فيه ويعرض أداته البرمجية الجديدة للناس. هناك أدوات قادرة على استخدام حتى PHP لتطوير تطبيقات الهواتف، وهناك أدوات أخرى للبرمجة ببايثون وغيرها، لكن هذه الأدوات غير شائعة وليس مستحسنة بسبب الكم الكبير من الطبقات الوسيطة التي تضعها بين تطبيقك وبين نظام التشغيل، وبسبب أن مجتمعها صغير جدًا مقارنةً بّالأدوات الأخرى التي استعرضناها سابقًا. لا تنسى أن معظم الهواتف محدودة الموارد من معالج وذاكرة عشوائية ومساحة تخزين وليست كأجهزة الحواسيب أو سطح المكتب.

    كيف أختار بين هذه الأدوات والبيئات وما هو الأفضل؟

    لعل هذا هو السؤال الأهم، لكن الإجابة هي أنّ الأمر يعتمد عليك بالكامل، فلا يوجد أفضل مطلقًا. إذا كنت بالأساس مبرمج جافاسكربت وتستعمل React مثلًا على تطبيق الويب الخاص بك فحينها من المناسب جدًا أن تذهب إلى React Native، بينما إن كنت جديدًا على الساحة وتريد فقط تطوير تطبيق للأندرويد وiOS بسرعة بعيدًا عن جافاسكربت فحينها Flutter خيار مناسب لك لدخول المجال.

    المنصات الهجينة قد تكون مناسبة لك كذلك إن كانت فكرة تطبيقك بسيطة أو هي مكتوبة بالأساس بلغات الويب، حينها ستكون كوردوفا وآينويك مناسبتين لك.

    المقصود هو أنه عليك تحديد مسارك وما ترغب بفعله أنت في المستقبل؛ هل تريد فقط أن تنتج تطبيقات هاتف محمول مثلًا (دون أي نوع آخر من التطبيقات)؟ أم هل تريد أن تتعلم لغة واحدة تنتج بها تطبيقات خادوم وتطبيقات سطح مكتب وتطبيقات هواتف…؟ أم هل تبحث عن أقصر طريق لبرمجة تطبيق هاتف محمول يدر عليك ربحًا سريعًا؟ كل ذلك عائدٌ لك.

    المصادر العربية لتعلم برمجة تطبيقات الهواتف

    الآن وصولًا إلى المصادر العربية المتعلقة بتطوير تطبيقات الجوال، لدينا:

    1. سلسلة تطوير تطبيقات الهواتف مع Flutter من الأخ محمد سعودي على يوتيوب؛ وهي فيديوهات قيّمة مشروحة بصورة جيدة، لكن خذ بعين الاعتبار أنها مبنية على الإصدار 1.x من فلاتُر ولهذا قد يكون هناك اختلاف بينها وبين الإصدار 2.x الذي صدر هذا الأسبوع، لكنها مفيدة في كل حال فهي ستعلمك نفس الأساسيات وطريقة العمل. هناك فيديو آخر مدته 3 ساعات أنشأه الأخ أحمد أبو الذهب على يوتيوب ليشرح فيه فلاتُر كذلك.
    2. لأجل Ionic، هناك سلسلة على اليوتيوب من المهندس محمد عيسى تشرح تطوير تطبيقيّ أندرويد وiOS باستخدام المنصة من الألف إلى الياء، بالإضافة إلى استخدام Firebase كواجهة خلفية (Backend). هناك دورة أخرى من W3Coders بالعربية على يوتيوب يمكن الاطلاع عليها.
    3. لأجل كوردوفا، للأسف المصادر العربية شحيحة فيها والدورات المتوفرة قديمة جدًا. المادة الوحيدة التي يمكن الاعتماد عليها هي التوثيق كامل المترجم للعربية على موسوعة حسوب، لكنك لن تجد محتوى مرئي جيد بالعربية باستثناء دورة مدفوعة من أكاديمية حسوب عن تطوير تطبيقات الجوال باستخدام تقنيات الويب.
    4. لأجل React Native، للأسف كذلك ليس هناك دورة عربية مكتملة حولها، لكن هذه الدورة تغطي أساسياتها إلى حدٍ ما. أما React نفسه كإطار عمل فهناك العديد من الدورات له مثل دورة GoArabGo ودورة Unique Coderz Academy. هناك توثيق إثرائي بالعربية حول React على موسوعة حسوب.
    5. لأجل البرمجة الأصيلة على أندرويد، هناك دورة حديثة من محمد عيسى على يوتيوب حول استخدام جافا لتطوير تطبيقات أندرويد. كمحتوى إثرائي نصّي عن جافا هناك هذه المقالات على موقع هرمش.
    6. لأجل البرمجة الأصيلة على iOS، هناك دورة حديثة من أنس موماني على يوتيوب تشرح أساسيات استخدام سويفت لبناء تطبيقات iOS. وقد قدّم المهندس محمد عيسى كذلك دورة عن Swift وبرمجة تطبيقات iOS السنة الماضية.

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

    تطوير تطبيقات سطح المكتب

    تعلم البرمجة

    وصلنا الآن إلى واحدٍ من أكثر المجالات أهميةً ألا وهو مجال تطبيقات سطح المكتب (Desktop Applications).

    تطوير تطبيقات سطح المكتب يختلف باختلاف نظام التشغيل؛ فتطوير البرامج لتعمل على نظام لينكس مثلًا مختلف عن تطويرها لتعمل على أنظمة لينكس وماك، كما أنه هناك بعض التفاصيل التقنية الأخرى المتعلقة بالمكتبات والتحزيم (Packaging) والبناء (Building) والتهيئة لتثبيت هذه البرامج من قبل المستخدمين، أي أن لغة البرمجة وحدها ليست العامل الوحيد لبناء تطبيقات سطح المكتب.

    فمثلًا بايثون تعمل على جميع أنظمة سطح المكتب، لكنك ستحتاج مكتبة تطوير رسومية (Graphical Development Kit) لتتمكن من تطوير الواجهات الرسومية التفاعلية (كالنوافذ والأزرار وغيرها من العناصر الرسومية) وهذا مهم لأن بايثون – كلغة برمجة – لا تحتوي هذه المكتبات ضمنها، بل هي أمور خارجية. وهذه المكتبات مختلفة فيما بينها فمنها المجاني والمدفوع، ومنها السلس المُعاصر ومنها القديم العتيق.

    كذلك فيما يتعلق ببناء البرامج من المصدر لتصبح قابلة للتثبيت على أنظمة المستخدمين، الأمور تختلف باختلاف نظام التشغيل فصيغة ‎.exe مثلًا لا تعمل على لينكس وماك، وصيغة ‎DEB وصيغة RPM من لينكس لا تعملان على الأنظمة المختلفة، فعليك أن تتعلم طريقة تحزيم وبناء برنامجك لمختلف أنظمة التشغيل.

    هناك لغات وأدوات برمجية مختلفة لبناء تطبيقات سطح المكتب:

    • بايثون ويمكن استخدام مكتبات GTK وQt وTK معها، حيث أنه بمجرد تثبيتك لهذه المكتبات واستيرادها على مشروعك تصبح قادرًا على تطوير تطبيقات سطح مكتب رسومية متكاملة.
    • جافا مع مكتبة JavaFX، وهي مكتبة برمجية مضمّنة في جافا لبناء الواجهات الرسومية.
    • #C، وهذا حلٌ مناسب جدًا لتطوير تطبيقات سطح مكتب تعمل على أنظمة ويندوز بل هو الاختيار الأساسي، لكن هذه التطبيقات قد لا تعمل على الأنظمة الأخرى (أو على الأقل ستحتاج مجهودًا أكبر لجعلها تعمل من بقية اللغات والطرق).
    • يمكن استخدام لغة الـC كذلك لبناء تطبيقات رسومية باستخدام GTK أو Qt تعمل على مختلف الأنظمة (بعد البناء من المصدر لكل منصة)، لكن هذا صعبٌ قليلًا إن كان حجم البرنامج سيزداد مع مرور الوقت وتزداد المميزات، فالسي صعبة كلغة مقارنةً بالبقية على المبتدئين.
    • هناك لغات أخرى تدعم نفس المكتبات الرسومية التي ذكرناها مثل Perl و Rust و ++C.
    • يمكنك استخدام لغات الويب كذلك لتطوير تطبيقات سطح المكتب عن طريق إطار إلكترون (Electron)، وهو يسمح لك ببناء تطبيقات سطح مكتب تعمل على مختلف الأنظمة باستخدام جافاسكربت و HTML و CSS.

    الآن دعنا نعرج على المصادر العربية المتوفرة لتطوير تطبيقات سطح المكتب:

    مجالات أخرى للبرمجة

    البرمجة بحرٌ لا ساحل له.

    كل ما سبق هو فقط لتعليمك أساسيات البرمجة وتطوير الويب وتحليل البيانات وتطوير تطبيقات الهاتف، لكن المجالات البرمجية الأخرى المتوفرة كثيرة جدًا وهي أكثر من أن تحصى:

    • برمجة الواجهات البرمجية (APIs): وهذه تتم بلغات مختلفة مثل جافاسكربت وبايثون وPHP وRuby وأُطُر العمل الشهيرة بهذه اللغات مثل Ruby on Rails وLaraval. هذه الواجهات البرمجية غالبًا ما تكون مرتبطة بأنظمة قاعدة بيانات على منصات السحاب (Cloud) المختلفة، أو على الأقل مرتبطة بأنظمة أخرى.
    • أدوات إدارة العمليات (DevOps Tools): مثلًا المواقع العملاقة لديها ما يعرف بالعناقيد (Clusters) وهي مجموعة ضخمة من الخواديم (Servers) المرتبطة ببعضها البعض وبكامل الشبكة. هذه الخواديم والعناقيد بحاجة إلى أنظمة مختلفة للمراقبة والمعالجة والإدارة والنسخ الاحتياطي والتأمين وغيره الكثير… أشياء أخرى كثيرة. برمجة هذه الأدوات واختبارها وبيعها للمشتركين مجالٌ عملاق لوحده.
    • تطوير مواقع الويب: صحيحٌ أننا تعلمنا تطوير تطبيقات الويب باستخدام بايثون وأُطُر العمل مثل فلاسك وجانغو، لكن معظم الويب يعمل حاليًا بـPHP، كما أنه هناك العديد من أنظمة إدارة المحتوى (Content Management Systems) التي تشكّل نسبة لا بأس بها من مواقع الإنترنت. مثلًا نظام ووردبريس المكتوب بـPHP يسيطر لوحده على 33% من كامل مواقع الإنترنت، وبالتالي تعلم برمجة إضافات وقوالب ووردبريس يعتبر مجالًا برمجيًا عملاقًا لوحده. هناك أنظمة مختلفة لإنشاء مواقع الويكي أو مواقع التجارة الإلكترونية أو مواقع التسوق… إلخ.
    • برمجة السكربتات: وهذه تختلف باختلاف المجال، فمثلًا هناك سكربتات مصممة لاختبار وجود بعض الثغرات الأمنية على مواقع الويب، وهناك سكربتات لأتمتة بعض المهام وتسهيل عملها، وهناك سكربتات لأداء مهام تقطيع الفيديوهات ودمج الترجمات، وهناك سكربتات لاستخراج البيانات من الويب (Web Scraping) وهو المجال الأكثر شيوعًا.
    • البرمجة العلمية: هناك الكثير من البرامج المتخصصة بحل مسائل خاصة مثل Gurobi من أجل حل المشكلات الرياضية، والخوارزميات التطورية (Evolutionary Computing) لحل مشاكل متعددة في مختلف مجالات الحوسبة، والتعرف على الوجوه والأنماط (Face & Pattern Recognition) وبرامج محاكاة الشبكات (OMNeT++‎) ومحاكاة شبكات السيارات (Venis) وما شابه ذلك. كل هذه البرامج هي بدورها لها نظام إضافات ونظام برمجة فرعي يمكن تعلمها والتطوير فوقها.
    • المعالجة اللغوية: تدعى باللغة الإنجليزية Natural Language Processing، مجال مهم جدًا وتتوسع الحاجة له في محركات البحث واستخراج البيانات وتحليل النصوص والذكاء الاصطناعي وغير ذلك.
    • أنظمة الصوت والفيديو: أشياء مثل برنامج زووم (Zoom) وسكايب، تحتاج لمعرفة معمقة ببروتوكولات الشبكات مثل TCP وUDP بالإضافة إلى إطار الاتصال WebRTC.
    • غير ذلك الكثير مما ستكتشفه.

    كيف أختار المجال البرمجي الذي أريده؟

    استعرضنا معك هذه المجالات البرمجية الكثيرة المختلفة لنريك ما يمكن للبرمجة فعله، ولترى بنفسك أنه هناك الكثير من التخصصات التي قد تعجبك دونًا عن غيرها، وهذا لربما يصيبك بالتشتت ولا تعرف من أين تبدأ.

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

    استعرض هذه المصادر والمجالات وانظر إلى المجهود المطلوب للإبداع فيها، ثمّ انظر إلى وقتك وجهدك وقدراتك: هل أنت قادرٌ على الدخول في هذا المجال أم تريد اختيار مجالٍ آخر؟ 

    تابع البحث إلى أن تصل إلى ضالتك.

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

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

    اقرأ “دليلك الشامل لتعلم البرمجة” إن أردت الاستزادة حول المجالات البرمجية والاختيار والتفضيل بينها.

    المهارات التقنية الإضافية لتعلم البرمجة

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

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

    من المهارات الإضافية التي ستحتاجها مهارة الكتابة والتوثيق؛ ستمر عليك مشاكل برمجيات عويصة جدًا قد تستغرق أيامًا وأسابيع لحلها في البرمجة، ولكن لا تعيد اختراع العجلة كل مرة فسيكون من الممتاز أن تدوّنها في مستند أو موسوعة محلية أو برنامج على جهازك. من بين ما ننصح به برنامج Google Keep للملاحظات (دليل عنه هنا) و Joplin (مفتوح المصدر).

    جانب آخر متعلق بالكتابة هو توثيق الشفرة البرمجية؛ عليك إضافة تعليقات في مختلف أنحاء الشفرة البرمجية الخاصة ببرنامجك لتستفيد منها عندما تعود إليها أنت لاحقًا أو عندما يأتي مطور آخر ليساعدك في المشروع أو يحل مكانك في الشركة مثلًا.

    ستحتاج كذلك تعلم البحث على الإنترنت بصورة احترافية. أقول احترافية لأن الكثير من الناس لا يعرف بالضبط كيف يبحث وبجرد كتابته جملة مثل “برنامج البايثون لا يعمل مع مكتبة urllib أرجو المساعدة” على جوجل يظن أنه سيجد حلًا، وهذا خطأ. عليك أن تبحث بأكثر من لغة وأكثر من موقع وأكثر من جملة استعلام (Query) واحدة وأن تكون دقيقًا قدر الإمكان.

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

    ماذا بعد تعلم البرمجة؟

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

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

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

    يمكنك البحث عن هذه المجموعات والمواقع المهتمة على فيسبوك أو على الإنترنت عمومًا.

    يمكنك بعدها:

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

    خاتمة

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

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

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

    لأي سؤال أو فكرة أو تعليق من طرفكم (خارج مشاكل البرمجة العملية) يمكنكم أن تطرحوه من مربع التعليقات أدناه في أي وقت أو مراسلتي على البريد: mhsabbagh[at]outlook.com. تعرفوا على المزيد عن حوسبة من صفحة حول حوسبة.