اذهب إلى المحتوى

لوحة المتصدرين

  1. Muhammad Saied

    Muhammad Saied

    الأعضاء


    • نقاط

      2

    • المساهمات

      5


  2. Hussam Barbour

    Hussam Barbour

    الأعضاء


    • نقاط

      1

    • المساهمات

      62


  3. ياسين الشريك

    ياسين الشريك

    الأعضاء


    • نقاط

      1

    • المساهمات

      32


  4. عماد الدين ايبو

    • نقاط

      1

    • المساهمات

      17


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 03/09/17 في كل الموقع

  1. في سلسلة المقالات هذه سنتعلم معًا أساسيات البرمجة بلغة Java، وأثناء ذلك سنتعلم أيضًا طرائق جديدة للتفكير، وتحليل المشكلات إلى أجزاء صغيرة، وكتابة خوارزميات وحلول منهجية لها. إن مهارة حل المشكلات هي أهم مهارة لأي طالب علوم حاسوب، وكما سنرى معًا، تعلم البرمجة سيفيد كثيرًا في تطوير هذه المهارة. ما هي البرمجة؟ البرنامج هو سلسلة من التعليمات التي تحدد كيفية تنفيذ عملية حسابية. قد تكون العملية الحسابية رياضية، مثل حل جملة معادلات أو إيجاد جذور كثير حدود. وقد تكون أيضًا معالجة رموز، مثل البحث عن نص واستبداله في مستند أو ترجمة برنامج آخر. تختلف التفاصيل بين لغة وأخرى، لكن بعض التعليمات الأساسية تظهر في جميع لغات البرمجة تقريبًا. الإدخال (input): تحصيل البيانات من لوحة المفاتيح، أو من ملف، أو من حساس، أو من جهاز آخر. الإخراج (output): عرض البيانات على الشاشة، أو إرسالها إلى ملف أو إلى جهاز آخر. الحساب (math): تنفيذ العمليات الحسابية الأساسية مثل الجمع والقسمة. اتخاذ القرارات (decisions): التحقق من شروط معينة وتنفيذ التعليمات المناسبة لكل حالة. التكرار (repetition): تنفيذ عمل ما بصورة متكررة، عادة مع وجود تغيير. صدق أو لا تصدق، هذا كل شيء تقريبًا. أيَّ برنامج استعملته من قبل، مهما كان معقدًا، بُنِيَ من تعليمات صغيرة تشبه هذه التعليمات. وهكذا يمكنك اعتبار البرمجةبأنها عملية تجزئة المهام الكبيرة والمعقدة إلى مهام جزئية أصغر وأصغر. وتستمر العملية حتى نصل إلى مهام جزئية بسيطة بما يكفي لتنفيذها بالتعليمات البسيطة التي يوفرها الحاسوب. ننصحك بالرجوع إلى مقال تعلم البرمجة لمزيد من التفاصيل حول البرمجة عمومًا وكيفية دخول المجال. ما هي علوم الحاسوب؟ أحد أهم نواحي كتابة البرامج هو تحديد طريقة حل مشكلة ما، خصوصًا إذا تعددت الحلول. مثلًا، هناك طرق عديدة لترتيب قائمة من الأرقام، ولكل طريقة مزاياها. حتى نحدد أي طريقة هي الأفضل في وضع معين، نحتاج لتقنيات لتوصيف وتحليل الحلول بشكل صيغ منتظمة. علوم الحاسوب هي علوم الخوارزميات، وتشمل تحليل الخوارزميات واكتشاف خوارزميات جديدة. الخوارزمية هي سلسلة خطوات تحدد طريقة حل مشكلة ما. بعض الخوارزميات أسرع من غيرها، وبعضها تستهلك مساحة أقل في ذاكرة الحاسوب. سوف تتعلم كيف تفكر كعالم حاسوب أثناء تعلمك كيفية تطوير خوارزميات لحل مشكلات لم تحلها من قبل. تصميم الخوارزميات وكتابة الشفرات البرمجية عمليتان صعبتان ومعرضتان للأخطاء. تدعى الأخطاء البرمجية bugs (عِلل برمجية)، وعملية تتبعها وتصحيحها تدعى debugging. ستطور مهارات جديدة في حل المشكلات أثناء تعلم تصحيح الأخطاء في البرامج التي تكتبها. عليك التفكير بإبداع عندما تواجهك أخطاء غير متوقعة. ورغم أن حل الأخطاء البرمجية قد يكون محبطًا، إلا أنه جزء مثير وفيه تحدٍ وذكاء. اكتشاف الأخطاء يشبه عمل التحري في بعض نواحيه. حيث تواجهك الأدلة، وعليك استنتاج العمليات والأحداث التي أدت إلى النتائج التي تراها. أحيانًا يقود التفكير بتصحيح البرامج وتحسين أدائها إلى اكتشاف خوارزميات جديدة. ننصح بقراءة مقال المدخل الشامل لتعلم علوم الحاسوب للمزيد من التفاصيل. لغات البرمجة إن لغة البرمجة التي ستتعلمها هي Java، وهي لغة عالية المستوى (High-level language). هناك لغات أخرى عالية المستوى لعلك سمعت بها مثل Python، أو C و C++‎، أو Ruby، أو Javascript. يجب ترجمة البرامج المكتوبة بلغات عالية المستوى إلى لغة منخفضة المستوى (low-level language) أو ما يدعى ”لغة الآلة“، قبل أن يستطيع الحاسوب تشغيلها. تحتاج هذه الترجمة وقتًا، لكن هذه سيئة بسيطة للغات عالية المستوى. في المقابل، للغات عالية المستوى حسنتين: كتابة البرامج بلغة عالية المستوى أسهل بكثير. كتابة البرامج تأخذ وقتًا أقل، وتكون البرامج أقصر وأسهل للقراءة، ومن المرجح أكثر أن تكون صحيحة. اللغات عالية المستوى محمولة (portable)، بمعنى أنه يمكن تنفيذ البرامج المكتوبة بها على أنواع مختلفة من الحواسيب دون أي تعديلات أو بعد عمل تعديلات قليلة. أما البرامج المكتوبة بلغة منخفضة المستوى فلا يمكنها العمل إلا على نوع واحد فقط من الحواسيب، ويجب إعادة كتابتها قبل أن نتمكن من تشغيلها على جهاز آخر. هناك نوعين من البرامج التي تترجم اللغات عالية المستوى إلى لغات منخفضة المستوى: المفسرات والمترجمات. يقرأ المفسر (interpreter) البرامج المكتوبة بلغات عالية المستوى وينفذها، أي أنه ينفذ التعليمات التي يمليها البرنامج. يعالج المفسر البرنامج في أجزاء صغيرة، حيث يقرأ بعض السطور ثم ينفذ التعليمات ويعود لقراءة سطور أخرى وهكذا. يبين الشكل 1.1 بنية المفسر. على صعيد آخر، يقرأ المترجم (compiler) البرنامج كله ويترجمه دفعة واحدة قبل بدء تنفيذ البرنامج. في هذه الحالة، يدعى البرنامج المكتوب بلغة عالية المستوىبالشفرة المصدرية (source code)، ويدعى البرنامج المترجم بالشفرة الهدف (object code) أو الملف التنفيذي (executable). بعد ترجمة البرنامج، يمكنك تنفيذه بشكل متكرر دون الحاجة لأي ترجمة أخرى. ونتيجة لذلك، تعمل البرامج المترجمة بصورة أسرع من البرامج المفسرة. لغة Java مجمّعة ومفسرة معًا. فبدلًا من ترجمة البرامج مباشرة إلى لغة الآلة، يولد مترجم Java بايت كود (byte code). شفرة بايت سهلة وسريعة التفسير مثل لغة الآلة، لكنها محمولة أيضًا، حيث يمكننا ترجمة برنامج Java على أحد الأجهزة، ثم ننقل شفرة بايت إلى جهاز آخر، ثم نشغل شفرة بايت على الجهاز الثاني. يدعى المفسر الذي ينفذ شفرة بايت "بآلة Java الافتراضية" (Java Virtual Machine أو اختصارًا JVM). يبين الشكل 1.2 مراحل هذه العملية. ورغم أن هذه العملية قد تبدو معقدة، إلا أن معظم بيئات البرمجة (أحيانًا تدعى بيئات التطوير)، تجري هذه الخطوات تلقائيًا بدلًا منك. سيكلفك الأمر عادة ضغطة زر واحدة أو طلب أمر واحد لترجمة برنامجك وتنفيذه. من جهة أخرى، من المهم أن تعرف الخطوات التي تجري وراء الستار، لكي تتمكن من معرفة سبب المشكلة في حال وقوع أي خطأ. ترجمة -وبتصرف- لجزء من الفصل الأول من كتاب Think Java: How to Think Like a Computer Scientist لكاتبيه Allen B. Downey و Chris Mayfield. اقرأ أيضًا تعلم البرمجة المدخل الشامل لتعلم علوم الحاسوب
    1 نقطة
  2. تختلف المهام والعمليات التي نقوم بتنفيذها على اكسل، وتتراوح من المهام الصغيرة البسيطة، إلى الكبيرة المعقّدة. وفي بعض الأحيان تكون هذه المهام روتينية، ويستغرق منّا تكرارها الكثير من الوقت. وهنا يمكن الاستفادة من أداة الماكرو الفعّالة التي يوفّرها اكسل لأتمتة المهام المتكررة. الماكرو هو في الحقيقة عبارة عن شيفرة VBA (Visual Basic for Applications) يتم تخزينها في مستند مستقل. لكن إنشاء الماكرو لا يتطلّب منك كتابة أيّة شيفرة، وإنّما هي خطوات سهلة سنوضّحها في هذا الدرس. كيفية تسجيل الماكرو واستخدامه باختصار، طريقة عمل الماكرو هي عبارة عن تسجيل لخطوات تنفيذ المهمة ومن ثم إعادة استخدامها مرارًا وتكرارًا عند الحاجة إليها، بحيث يتم تنفيذ المهمة بنقرة واحدة فقط. قبل أن نبدأ بتسجيل الماكرو، سنقوم بإضافة تبويب المطور Developer إلى تبويبات اكسل لنتمكّن من الوصول إلى كل الأوامر المتعلّقة بالماكرو. نذهب إلى ملف File> خيارات Options: ننقر على قسم Customize Ribbon ثم نؤشر مربّع الخيار Developer من مجموعة Main Tabs وننقر على OK: ملاحظة1: يمكن الوصول إلى أوامر الماكرو الأساسية من تبويب View أيضًا: ملاحظة2: خاصية الماكرو غير متوفرة في إصدارات أوفيس على الأجهزة التي تستخدم نظامWindows RT ولمعرفة إصدار أوفيس الذي تستخدمه اذهب إلى File> Account وستجد اسم الإصدار ورقمه تحت عبارة "معلومات المنتج" Product Information: مصدر الصورةالآن، لنفترض أننا نستخدم الجدول التالي مرات عديدة، وفي كل مرة نضطر إلى تكرار إنشائه من البداية. لذا سنقوم بتسجيل ماكرو لهذا الجدول: نذهب أولًا إلى تبويب Developer> Record Macro: نقوم بتسمية الماكرو من خلال مربع الحوار Record Macro بإدخال اسم دلالي في حقل Macro Name، علمًا أنّ اسم الماكرو لا يمكن أن يحتوي على مسافات space: سنلاحظ بعد النقر على OK تحول زر Record Macro إلى Stop Recording، وهذا يعني أنّه جاري التسجيل، عندها نبدأ بإنشاء الجدول وتنسيقه حسب الرغبة، وعند الانتهاء ننقر على Stop Recording لإيقاف التسجيل وحفظ الماكرو: في المرة القادمة التي نريد فيها إنشاء نفس الجدول، كل ما علينا فعله هو النقر على Macros لفتح قائمة الماكرو الذي قمنا بحفظه مسبقا: ثم تحديد الماكرو المرغوب والنقر على زر Run: وسيتم إنشاء جدولنا بلمحة: ربّما سنلاحظ أنّه في كل مرة نقوم فيها بتشغيل الماكرو يتم إنشاء الجدول في نفس نطاق الخلايا، مهما كان موقع الخلية التي قمنا بتحديدها قبل تشغيله. أي أنّه حتّى لو قمنا بتحديد الخلية L15 مثلا ثم تشغيل الماكرو، سيتم إنشاء الجدول في النطاق A1:G8: السبب في ذلك هو أنّه عند تسجيل الماكرو يتم استخدام المراجع المطلقة بشكل افتراضي. فإذا أردنا تسجيل ماكرو واستخدامه في مواضع مختلفة في الورقة وليس في موضع محدّد، يجب أن نستخدم المراجع النسبية قبل بدء التسجيل. في مثالنا هذا سنقوم بتسجيل الماكرو من جديد باستخدام المراجع النسبية. ننقر على زر Use Relative References ثم على زر Record Macro ونتبع نفس الخطوات السابقة: وبهذه الطريقة يمكننا تشغيل الماكرو وإنشاء الجدول في أي موضع نريده: تحرير الماكرو إنّ تحرير الماكرو يتم عبر محرر النصوص الخاص Visual Basic Editor، حيث أنّ كل ماكرو نقوم بتسجيله يخزن على شكل شيفرة برمجية، ولإجراء أي تغيير على الماكرو يجب أن نقوم بتعديل هذه الشيفرة. على سبيل المثال، إذا رغبنا في تعديل الماكرو الذي قمنا بتسجيله في المثال أعلاه، وتغيير عناوين الصفوف من "الحصة 1" إلى "الدرس 1"، نتبع الخطوات التالية: ننقر على زر Macros من تبويب Developer، ثم نحدد الماكرو الذي نريد تحريره وننقر على Edit: سيُفتح محرر Visual Basic في نافذة مستقلة تحتوي على شفرات كل ماكرو قمنا بتسجيله، وسنلاحظ أنّ شيفرة الماكرو تبدأ بعبارة "Sub" متبوعة باسم الماكرو، وتنتهي بعبارة "End Sub": نبحث عن "الحصة 1" في الشيفرة، ونستبدلها بـ "الدرس 1": وبما أننا استخدمنا التعبئة التلقائية عند إنشاء الجدول لن نضطر إلى تغيير عنوان كل صف على حدة، يكفينا تغيير عنوان الصف الأول فقط. بعد ذلك نغلق نافذة محرر الشفرات لحفظ التغيير ثم نختبر الماكرو بعد التعديل: مثال آخر، قمنا بتعبئة نطاق الخلايا B2:B13 بأسماء الأشهر باستخدام التعبئة التلقائية أثناء تسجيل الماكرو، ونريد أن نعدّل الماكرو بتحويل العمود إلى صف: نفتح شيفرة الماكرو بنفس الطريقة المذكورة أعلاه، ونستبدل نطاق التعبئة التلقائية B2:B13 في الشيفرة بالنطاق B2:M2: ثم نختبر الماكرو بعد التعديل: حفظ الماكرو بإمكاننا حفظ الماكرو في مصنّف شخصي مخفي Personal Workbook واستخدامه عند الحاجة في جميع المصنفات التي نقوم بإنشائها من على نفس جهاز الحاسوب. لحفظ الماكرو في المصنف الشخصي نحدد الخيار Personal Macro Workbook من قائمة Store macro in عند البدء بتسجيل الماكرو: لكن إذا كنّا نريد حفظ ماكرو قمنا بتسجيله بالفعل في المصنف الشخصي نتبع الخطوات التالية: نقوم بتسجيل ماكرو جديد فارغ بنفس اسم الماكرو الذي نريد حفظه في الملف الشخصي، مع الأخذ في الاعتبار تحديد الخيار Personal Macro Workbook عند تخصيص خيارات التخزين: بمجرّد بدء تسجيل الماكرو ننقر على Stop Recording، فكما ذكرنا نريده فارغًا لأننا سنسخ شيفرة الماكرو الأصلي عليه. ننقر على Macros ثم نحدد الماكرو الأصلي وننقر على Edit لتحريره: ننسخ الشيفرة برمّتها (من Sub إلى End Sub) ثم نغلق نافذة محرر الشيفرة: بعد ذلك ننقر على الماكرو الفارغ المحفوظ في المصنف الشخصي وننقر على Edit، لكن في هذه المرة سيظهر تنبيه على الشاشة يخبرنا أنّه يجب إظهار المصنف الشخصي أولًا لكي نتمكّن من تحريره: في هذه الحالة نلغي عملية التحرير ونذهب إلى تبويب عرض View، ثم ننقر على زر Unhide: نحدد المصنّف الشخصي PERSONAL ثم ننقر على OK لإظهاره: نرجع إلى Macros> نحدد الماكرو الفارغ وننقر على Edit. عند فتح نافذة تحرير الشيفرة، نحذف كل محتوياتها ثم نلصق الشيفرة التي قمنا بنسخها سابقًا: نغلق نافذة المحرّر، ثم نخفي المصنّف الشخصي من جديد. نذهب إلى تبويب View ونختار PERSONAL من قائمة Switch Windows: ثم ننقر على زر Hide لإخفائه: أصبح الآن بإمكاننا استخدام الماكرو في كل المصنفات التي نقوم بإنشائها على نفس جهاز الحاسوب الذي قمنا بحفظ الماكرو عليه. عند إغلاق المصنّف الذي نعمل عليه، ستنبثق نافذة تسألنا فيما إذا كنّا نرغب في حفظ التغييرات التي قمنا بإجرائها على المصنف الشخصي، ننقر على Yes للتأكيد: إضافة أزرار لتشغيل الماكرو إذا كنّا نستخدم الماكرو بكثرة، بإمكاننا توفير بعض الوقت وإضافة أزرار مخصصة لتشغيل الماكرو بسرعة عند الحاجة. يمكن إضافة زر لكل ماكرو في تبويب Developer أو على شريط أدوات الوصول السريع. إضافة زر للماكرو في تبويب Developer نذهب إلى تبويب File> Options> Customize Ribbon ثم نحدد تبويب Developer: ننقر على New Group لإضافة مجموعة جديدة خاصة بالماكرو الذي نستخدمه: ننقر على Rename لتسمية المجموعة ونختار اسمًا دلاليًا: بعد ذلك نحدد الخيار Macros من القائمة المنسدلة Choose commands from: نحدد الماكرو الذي نريد إضافة زر له، ثم ننقر على زر Add: بإمكاننا إعادة تسمية الماكرو وتخصيص أيقونة له بالنقر على زر Rename: بعد الانتهاء ننقر على OK وستتم إضافة زر للماكرو في مجموعة جديدة في تبويب Developer: إضافة زر للماكرو في شريط أدوات الوصول السريع نذهب إلى File> Options> Quick Access Toolbar. ومن قائمة Choose command from نختار Macros: نحدد الماكرو الذي نريد إضافة زر له ثم ننقر على Add: وبنفس الطريقة يمكننا إعادة تسمية الماكرو وتخصيص أيقونة له بالنقر على زر Modify: بعد الانتهاء ننقر على OK لإضافة زر الماكرو إلى شريط أدوات الوصول السريع: الآن، لتشغيل الماكرو، كل ما علينا فعله هو النقر على الزر الذي قمنا بإضافته سواء كان على تبويب Developer أو على شريط أدوات الوصول السريع.
    1 نقطة
  3. تقليديًا، البرنامج الأول الذي يكتبه الناس عندما يتعلمون لغة برمجة جديدة يسمى برنامج hello world (مرحبًا بالعالم). كل ما يفعله هذا البرنامج هو طباعة العبارة "!Hello, World" على الشاشة. في لغة Java، يبدو هذا البرنامج كما يلي: public class Hello { public static void main(String[] args) { // generate some simple output System.out.println("Hello, World!"); } } عند تشغيل هذا البرنامج سيعرض ما يلي: Hello, World! لاحظ أن الخرج لا يحوي علامات الاقتباس. تتكون برامج Java من صنف (class) وتعريفات توابع (methods)، وتتكون التوابع منتعليمات (statements). التعليمة هي سطر من الكود ينفذ عملية بسيطة. في برنامج hello world، هذا السطر هو تعليمة طباعة التي تعرض رسالة على الشاشة: System.out.println("Hello, World!"); يعرض تابع System.out.println النتائج على الشاشة؛ يرمز اسم التّابع println للعبارة "print line" (اطبع سطرًا). من المحيّر أن كلمة اطبع قد تعني "اعرضها على الشاشة" وقد تعني "أرسلها إلى الطابعة". في سلسلتنا هذه، سنحاول عندما نقصد الإخراج على الشاشة أن نقول: "عرض". تنتهي تعليمة الطباعة بفاصلة منقوطة (;) مثل معظم التعليمات. لغة Java "حساسة لحالة الأحرف" (case-sensitive)، وهذا يعني أن الحروف الكبيرة تعتبر مختلفة عن الحروف الصغيرة. في هذا المثال، يجب أن تبدأ كلمة System بحرف كبير؛ وإذا كتبت system أو SYSTEM فلن يعمل. التّابع (method) هو سلسلة تعليمات تحمل اسمًا. هذا البرنامج يعرف تابعًا وحيدًا اسمه main: public static void main(String[] args) اسم التّابع main وشكله خاصين: عند تشغيل البرنامج، يبدأ التنفيذ عند أول تعليمة في main وينتهي عند إنهاء آخر تعليمة فيها. سنرى لاحقًا برامج تعرف فيها أكثر من تابع واحد. الصنف (class) هو مجموعة عمليات. يعرف هذا البرنامج صنفًا اسمه Hello. يمكنك تسمية الصنف بأي اسم تشاء، لكن جرت العادة أن يبدأ اسم الصنف بحرف كبير. يجب أن يطابق اسم الصنف اسم الملف الذي يحويه، ولذلك يجب أن تحفظ هذا الصنف في ملف اسمه Hello.java. تستخدم Java الحاضنات ( { و } ) لتجميع الأشياء مع بعضها. في ملف Hello.java: تضم الحاضنات الخارجية تعريف الصنف، أما الحاضنات الداخلية فتضم تعريف التّابع. السطر الذي يبدأ بشرطتين مائلتين (//) هو تعليق (comment)، وهو عبارة عن نص يوضع لتوضيح الشفرة المصدرية. عندما يرى المترجم علامة // يتجاهل كل شي يليها حتى نهاية السطر. لا تؤثر التعليقات على تنفيذ البرنامج، لكنها تسهل فهم المقصود من التعليمات للمبرمجين الآخرين (ولك أنت في الأوقات اللاحقة). دورة تطوير التطبيقات باستخدام لغة Python احترف تطوير التطبيقات مع أكاديمية حسوب والتحق بسوق العمل فور انتهائك من الدورة اشترك الآن عرض السلاسل المحرفية يمكنك وضع أي عدد من التعليمات داخل main. مثلًا، حتى تعرض أكثر من سطر واحد على الخرج: public class Hello { public static void main(String[] args) { // generate some simple output System.out.println("Hello, World!"); // first line System.out.println("How are you?"); // another line } } كما يبين هذا المثال، يمكنك وضع التعليقات في نهاية السطور كما يمكنك وضعها على سطور كاملة وحدها. تدعى العبارات التي تحيط بها علامات الاقتباس بالسلاسل المحرفية (strings)، لأنها تحوي سلسلة من "المحارف" (characters) المتتابعة. قد يكون المحرف رقمًا، أو حرفًا، أو علامة ترقيم، أو رمزًا، أو فراغًا (space)، أو علامة جدولة (tab)، الخ. تلحق تعليمة System.out.println محرفًا خاصًا بالسلسلة المحرفية، وهو محرف السطر الجديد (newline)، الذي يحرك مؤشر الطباعة إلى بداية السطر التالي. إذا لم ترغب بمحرف السطر الجديد في نهاية العبارة، يمكنك استخدام print بدلًا من println. public class Goodbye { public static void main(String[] args) { System.out.print("Goodbye, "); System.out.println("cruel world"); } } في هذا المثال، لا تضيف التعليمة الأولى محرف السطر الجديد، لذلك يظهر الخرج على سطر واحد كالتالي: Goodbye, cruel world. لاحظ أن هناك فراغًا في نهاية السلسلة المحرفية الأولى، والذي يظهر في خرج البرنامج. سلاسل الهروب يمكنك أن تعرض عدة سطور على الخرج بسطر كود واحد. عليك فقط أن تخبر Java بمواضع فواصل السطور. public class Hello { public static void main(String[] args) { System.out.print("Hello!\nHow are you doing?\n"); } } الخرج هنا سطرين، وكل منهما ينتهي بمحرف السطر الجديد: Hello! How are you doing? المحرفين n\ هما سلسلة هروب (escape sequence)، وهذه السلاسل عبارة عن عدة محارف تعبر عن محرف خاص واحد. تسمح لك الشرطة الخلفية (\) بالهروب من التفسير الحرفي للسلسلة. لاحظ عدم وجود فراغ يفصل بين n\ وبين How. إذا أضفت فراغًا بينهما، سيظهر الفراغ في بداية السطر الثاني. تستخدم سلاسل الهروب أيضًا لطباعة علامات الاقتباس داخل السلاسل المحرفية. بما أن علامات الاقتباس تحدد بدايات السلاسل المحرفية ونهاياتها، فلا يمكنك وضعها في نص السلسلة دون استخدام علامة الشرطة الخلفية. System.out.println("She said \"Hello!\" to me."); سلسلة الهروب المحرف الناتج n\ سطر جديد t\ علامة جدولة؛ تعادل ثمانية فراغات أفقية عادة "\ علامة اقتباس \\ شرطة مائلة خلفية الجدول 1.1: بعض سلاسل الهروب الشائعة الناتج هو: She said "Hello!" to me. تنسيق الكود بعض الفراغات إلزامية في برامج Java. فلا بد، على سبيل المثال، من فصل الكلمات عن بعضها بفراغ واحد على الأقل؛ أي أن البرنامج التالي غير صالح: publicclassGoodbye{ publicstaticvoidmain(String[] args) { System.out.print("Goodbye, "); System.out.println("cruel world"); } } لكن معظم الفراغات الأخرى اختيارية. مثلًا، هذا البرنامج صالح: public class Goodbye { public static void main(String[] args) { System.out.print("Goodbye, "); System.out.println("cruel world"); } } كما أن فصل التعليمات على سطور مختلفة اختياري أيضًا. بالتالي يمكننا كتابة البرنامج السابق هكذا: public class Goodbye{public static void main(String[] args){System.out.print("Goodbye, "); System.out.println("cruel world");}} سيعمل البرنامج، لكن قراءته ازدادت صعوبة في كل مرة. استخدام الفراغات وتوزيع التعليمات على سطور منفصلة مهمان جدًا لتنظيم برنامجك بصريًا، لتسهيل فهمه وتسهيل العثور على الأخطاء فيه عند حدوثها. في العادة، تجد في المنظمات التي تعمل كثيرًا في تطوير البرمجيات شروطًا صارمة تحدد طريقة ترتيب الشفرات المصدرية. مثلًا، تنشر Google معاييرها الخاصة حول كتابة أكواد Java للاستخدام في المشاريع مفتوحة المصدر:http://google.github.io/styleguide/javaguide.html. قد لا تستوعب هذه المعايير الآن، لأنها تذكر بعض مزايا لغة Java التي لما تتعرف عليها. لكنك قد ترغب بزيارتها بين الحين والآخر أثناء قراءة هذه السلسلة. تنقيح الكود كلما أردت اختبار ميزة جديدة، عليك تجربة ارتكاب بعض الأخطاء عن عمد. على سبيل المثال، في برنامج hello world، ماذا يحدث لو أسقطت إحدى علامات الاقتباس؟ ماذا لو أسقطت العلامتين معًا؟ وماذا لو أخطأت بكتابة println؟ هذه التجارب تساعدك على تذكر ما تقرؤه. كما تساعدك في تنقيح الكود، لأنك تتعلم معنى رسائل الأخطاء المختلفة. من الأفضل أن ترتكب الأخطاء الآن عمدًا بدلًا من أن تقع بها لاحقًا دون قصد. تصحيح الأخطاء يشبه العلوم التجريبية أيضًا: بمجرد أن تظن أنك عرفت ما هو الخطأ، تعدل برنامجك وتجرب ثانية. إذا كانت فرضيتك صحيحة، عندئذ ستتمكن من التنبؤ بنتيجة التعديل، وتقترب خطوة من البرنامج الصحيح المطلوب. أما إذا كانت فرضيتك خاطئة، عليك أن تجد حلًا آخر. يجب أن تتلازم البرمجة مع تنقيح الكود من الأخطاء. لا تكتب سطورًا كثيرة وبعدها تنتقل إلى عملية تصحيح معتمدًا على التجربة والخطأ حتى تصل للنتيجة المطلوبة. بل عليك أن تبدأ ببرنامج يعمل قادر على تنفيذ شيء ما، ثم عمل تعديلات صغيرة، وتنقيحها أولًا بأول، حتى تصل إلى برنامج يعطيك النتيجة المطلوبة. بهذا الأسلوب، سيبقى برنامجك يعمل دائمًا، وسيسهل عليك عزل الأخطاء. من الأمثلة الممتازة على هذا المبدأ نظام التشغيل لينكس (Linux)، الذي يحوي ملايين السطور البرمجية. بدأ لينكس كبرنامج بسيط استعمله لينوس تورفالدز (Linus Torvalds) ليستكشف رقاقة إنتل 80386. وعلى حد قول لاري غرينفيلد (Larry Greenfield) في دليل مستخدم لينكس (The Linux Users’ Guide)، ”أحد أولى مشاريع لينوس كان برنامجًا يبدل بين طباعة AAAA و BBBB. ثم تطور هذا إلى لينكس“. أخيرًا، قد تثير البرمجة أحاسيس قوية. إذا كنت تسارع علة صعبة، قد تشعر بالغضب، أو القنوط، أو الحرج. تذكر أنك لست وحدك، وإن جُلّ المبرمجين إن لم يكن كلهم عانوا من حالات مشابهة. لا تتردد في طرح الأسئلة على أحد الأصدقاء! أدوات التطوير تعتمد خطوات ترجمة وتنفيذ وتنقيح أكواد Java على بيئة التطوير لديك ونظام التشغيل الذي تستخدمه. الجزء التّالي هو مقدمة مختصرة لبيئة DrJava وهي بيئة تطوير متكاملة (Integrated Development Environment أو IDE اختصارًا) مناسبة للمبتدئين. تثبيت DrJava أسهل طريقة لبدء البرمجة بلغة Java هي استخدام موقع يترجم لك شفرات Java وينفذها في المتصفح. هناك على سبيل المثال jdoodle.com، و compilejava.net، و tutorialspoint.com، وغيرها. إذا لم تكن قادرًا على تثبيت برامج جديدة على حاسوبك (وهذه هي الحال غالبًا في المدارس العامة ومقاهي الإنترنت)، يمكنك استخدام بيئات التطوير هذه المتاحة عبر الإنترنت لتنفيذ معظم البرامج في هذا الكتاب. لكن إذا أردت ترجمة وتشغيل برامج Java على حاسوبك، سوف تحتاج: عدة تطوير Java‏ (Java Development Kit أو JDK)، التي تتضمن المترجم، وآلة Java الافتراضية (Java Virtual Machine أو JVM) التي تفسر شفرات بايت الناتجة عن الترجمة، وغيرها من الأدوات مثل Javadoc. محرر نصوص بسيط مثل Notepad++‎ أو Sublime Text، أو بيئة تطوير مثل DrJava، أو Eclipse، أو jGrasp، أو NetBeans. بالنسبة لعدة التطوير (JDK) ننصحك باستخدام Java SE (النسخة القياسية Standard Edition)، التي توفرها Oracle مجانًا. ننصحك أيضًا باستخدام DrJava، وهي بيئة تطوير متكاملة (IDE) مفتوحة المصدر ومكتوبة بلغة Java (انظر الشكل أ.1). لتثبيت JDK، ابحث في الوب عن "download JDK" ويجب أن توصلك النتائج إلى موقع Oracle. انزل لأسفل حتى تصل إلى"Java Platform, Standard Edition" وانقر زر تنزيل JDK. ثم اقبل اتفاقية الترخيص واختر المثبت المناسب لنظام تشغيلك. لا تنسَ تشغيل برنامج التثبيت بعد تنزيله! لثبيت DrJava، اذهب إلى http://drjava.org ونزّل ملف JAR. ننصحك بحفظه على سطح المكتب أو مكان مناسب آخر. فقط انقر على ملف JAR نقرة مزدوجة لتشغيل DrJava. ننصحك عند تشغيل DrJava أول مرة بتغيير ثلاثة خيارات يمكنك الوصول إليها من قائمة: Edit > Preferences في قسم Miscellaneous: عدل Indent Level (المسافة البادئة) إلى 4، وفعّل خيار Automatically Close Block Comments، وألغِ تفعيل خيار Keep Emacs-style Backup Files. الوضع التفاعلي في DrJava إحدى أهم ميزات DrJava هي "لوحة التفاعل" أسفل النافذة. يمكنك تجربة الشفرات فيها بسرعة، دون كتابة تعريف صنف ودون المرور بمراحل حفظ وترجمة وتنفيذ البرنامج. يظهر الشكل التالي مثالًا. هناك ملاحظة دقيقة وحيدة عليك الانتباه لها عند استخدام ميزة التفاعل. إذا لم تضع فاصلة منقوطة في نهاية التعبير الحسابي أو التعليمة، سوف يعرض DrJava النتيجة تلقائيًا. لاحظ في الشكل السابق إنهاء سطور التصريح عن المتغيرات بفواصل منقوطة، بينما لا توجد فواصل في نهايات التعابير المنطقية في السطور التي تليها. توفر عليك هذه الميزة طباعة System.out.println كل مرة. الجميل في هذه الميزة هو أنك لا تحتاج لتعريف صنف جديد، ثم تعريف عملية main، ثم كتابة تعابير عشوائية ضمن تعليمات System.out.println، ثم حفظ الملف المصدري، وبعدها ترجمة الشفرات المصدرية كلها بشكل سليم قبل رؤية النتائج. كما يمكنك أيضًا استخدام السهمين العلوي والسفلي من لوحة المفاتيح لتكرار الأوامر السابقة وتجربة اختلافات متعددة. ترجمة -وبتصرف- لجزء من الفصل الأول من كتاب Think Java: How to Think Like a Computer Scientist لكاتبيه Allen B. Downey و Chris Mayfield.
    1 نقطة
  4. تحياتي، يجب أولاً تحديد المجال المطلوب بالبرمجة "تطبيقات موبايل، مواقع ويب، برمجة تطبيقات حاسوبية، ... ألخ" لكن إليك بعض النصائح: برمجة الويب: ابدأ بتعلم مبادئ HTML & CSS تفيدك في إنشاء بعض صفحات الويب بعدها عليك أن تتعلم JS لتضيف بعض الوظائف لموقعك في المراحل المتقدمة يمكنك البدء بلغات المعالجة الخاصة بالسيرفر ومنها PHP, ASP برمجة تطبيقات الموبايل: ابدأ بتعلم لغة Java يمكن بعدها الانتقال إلى استخدام Android Studio لتصميم تطبيقات Android برمجة تطبيقات الحاسب: للبدئ يجب تعلم ++C، وذلك لتعلم الأساسيات انتقل بعدها للغة #C أو Java يمكن احتراف اللغات السابقة والبدء بالتعامل مع لغات معالجة بنى المعطيات مثل MySQL في النهاية، مجال البرمجة واسع ويجب إعطاءه الوقت والصبر اللازمين، لذلك حدد هدفك من البداية، ثم اطلب المساعدة في المجال المطلوب. بالتوفيق.
    1 نقطة
  5. إذا أردت إنشاء موقع بتصاميم جيدة يمكنك استخدام ووردبرس فهي لا تحتاج إلى مبرمج مبدئيا
    1 نقطة
  6. تسبب تحديث جوجل Penguin في خسارتي لحوالي 80% من زيارات أحد مواقعي منذ ما يناهز السنة، وبقدر ما رغبت في لوم Google إلا أنني للأسف كنت المسؤول عما حدث. ما هي أخطاء SEO التي اقترفتها؟ وكيف يمكن تجنب حدوث نفس الشيء لك؟ بعض المعلومات الضروريةبدأت أوّل مشروع تجارة إلكترونية لي سنة 2008 حيث أطلقت عليه اسم Right Channel Radios، وكمؤسّس وحيد حريص على نفقاته، أعددت كل شيء بنفسي بما في ذلك SEO. تواصلت مع مدوّنات، كتبت مقالات وأنشأت علاقات شخصية، باختصار، لقد خصّصت وقتًا كثيرًا للتّواصل مع الآخرين، الكتابة كمدوّن ضيف وإنشاء مصادر قيّمة، وقد نجح الأمر، حيث بنيت خلال عام واحد سمعة راسخة وكان عملي ينمو بشكل واسع بفضل الزيارات. قررت متردّدًا إطلاق موقعي الثاني trollingmotors حيث اعتقدت أنّه من الجيّد استثمار عائدات موقعي الأول المادّية لتنمية موقعي الجديد بسرعة عبر الاستعانة بشركة للإشراف على SEO الموقع الجديد، لذا وظّفت شركة لتحسين تصنيف الموقع معتقدًا أن هذا سيمنحني وقتًا أكثر للتّركيز على جوانب أخرى من العمل، فلا داعيَ لأرهق نفسي بهذا العمل العسير لأزيد زيارات موقعي، سوف آخذ الأمور بروية هذه المرة. كنت أنوي مراقبة تقدم العمل على الموقع لكن مع مرور الوقت توقّفت عن المتابعة، فقد كنت منهمكا في العمل على جوانب أخرى من العمل، وافترضت أن كلّ شيء يجري على ما يرام بما أنني كنت على معرفة شخصية بصاحب شركة SEO. بعدها وقبل أشهر كنت أتحقّق من ترتيب بعض نتائج التصّنيف في جوجل فإذا بي ألاحظ أنّ ترتيبي نزل من المركز الثّاني إلى العاشر عند البحث عن trolling motors، غير أنّني اعتقدت حينها أن الأمر لا يعدو عن كونه تعديلا مؤقتا أو مشكلة ضمن مركز البيانات، قبل أن أتحقق من إحصائيّات موقعي لأصاب بالذعر عند اكتشافي بأنّ زيارات الموقع قد انخفضت بنسبة 80% خلال الأيّام القليلة الماضية، أدركت بعد بحث مكثّف المتسبب بذلك: تحديث خوارزميات جوجل Penguin الذّي استهدف المواقع التي تم تحسينها بكثافة وعدد الـBacklinks : وكشفت تحليلات متأخّرة أثر روابط محسّنة بشكل مكثّف باحتواء صفحة على 14 رابطا من أصل 15 رابطًا يحملون نفس العنوان، ومع علمي بأن شركة SEO لم تستخدم تقنيات ربط غير مخالفة 100%، اكتشفت استراتيجيات ربط مزعجة ومحرجة بكلّ ما تحمله الكلمة من معنى، حيث أنه كان من المفاجئ عدم تعرضي لعقوبة من قبل. ولم يكن عدم تأثير تحديث Penguin على موقعيَ الأولِّ مفاجئًا بالنسبة لي، كونه العمل الذي أشرفت شخصيّا على متابعة كافّة أمور SEO والتسّويق بنفسي، بل إنّني لاحظت زيادة بسيطة على مستوى الزّيارات نتيجة إشرافي عليه. إذا ما الذّي تعلّمته بفضل Penguin وكارثة توظيفي لتلك الشركة ؟ الحذر الحذر من توظيف شركات SEOأنا متأكّد أن هذا الأمر مفروغ منه بالنّسبة لمعظم الأشخاص، لكنّك تحتاج أحيانا لسلوك الطريق الوعِر لتعلم الدرس، فعندما توظّف شركة SEO تكون بالتّالي قد استأمنت شخصا ما على مستقبل عملك، وأنت ملزم بمراقبة أداء الشّركة بعناية، خصوصًا إذا كنت تعمل في مجال التّسويق والبيع بالعمولة، فبسبب هوامش الربح الضَّئِيلة نجد أنّ بناء عمل في هذا المجال بالاعتماد على زيارات مدفوعة يعتبر أصعب بكثير مقارنة بالزّيارات المجّانية. لقد كان من السّهل تبرير عدم مراقبتي لعمل شركة SEO بالعلاقة الشخصية التي تربطني بصاحب الشركة، وقد علمت بأنّه كان يستخدم نفس الطّرق لجلب زيارات إلى أعماله الخاصة، لقد اقترفت خطأ كبيرًا، حيث كنت لِأُلاحظ وأصحّح عددا من المشاكل التي حدثت بسبب التّحسين المفرط لو كنت راقبت تقدّم عمل الشركة بحرص. لكن حتّى بافتراض أنّك التزمت بالمراقبة الدّقيقة للشّركة التي وظّفتها، فإنّ ذلك سيتسبّب في تفويتك لملاحظات بالغة الأهميّة من طرف الآخرين، حيث أنّ التّفاعل مع الآخرين أثناء التّسويق يمنحك فرصة التعرّف على مشاكلهم ونقاط ضعفهم، ما يساهم في المقابل في توفيرك لحلول ومنتجات أفضل، ويساعد على زيادة رصيدك المعرفي وخبرتك. بتوظيفك لشركة SEO فأنت بالتّالي تضيّع على نفسك كلّ ما سبق، خصوصًا عند إطلاق مشروع جديد. لذا كن حذرًا وتعلّم من خطئي، فتوظيف شركة SEO قد تبدو وكأنّها طريقة ممتازة للحصول على مزيد من الشهرة عبر مجهوداتك التسويقية وSEO، إلا أنّ ذلك يأتي مصحوبًا بإضافات غير مرغوب بها. أفضل استراتيجية تسويق وSEO تتمّ عبر فريق ملتزم ينتمي لمشروعك الخاص ويبني علاقات مع الآخرين ضمن تخصّصاتهم، وإذا كنت تسوّق موقعك الأول فإني أنصحك بشدّة أن تعمل على التسويق وSEO بنفسك لتتعلّم أساسيّات المجال وتكتسب الخبرة. إذا قرّرت يوما أن توظّف شركة SEO أو تنشئ فريقك الخاص فإنّ المعرفة والخبرة التي اكتسبتها من القيام بهذا العمل بنفسك ستكون ذات أهمّية كبيرة لإدارة هذه العملية بشكل سليم. إذا وظّفت شركة SEO مستقبلا فأضعف الإيمان أن تتأكّد من مراقبة العمليّات والنّتائج بعناية. تنويع الزياراتعلى الرّغم من أنّني كنت المتسبّب في المشاكل التي أحدثها تحديث Penguin بسبب إهمالي، إلا أنه قد أوضح مدى خطورة اعتمادي على جوجل لجلب معظم عملائي: يعتبر جوجل بالتّأكيد أفضل مصدر للزّيارات المستمرّة عند التزامك بالقوانين، لكن اصطداميَ بجدار Penguin جعلني أدرك مدى أهمية الاستثمار ضمن مصادر تحويل زيارات أخرى حتى لا تعتمد مشاريعي على جوجل فحسب، وعليه، فهكذا أخطط لتنويع تدفق الزيارات: استخدام التسويق عبر البريد الإلكترونيلم يسبق لي أبدًا اعتماد التسويق عبر البريد الإلكتروني كأولوية على الرّغم من امتلاكي لقاعدة بيانات مليئة بالعملاء، امتلاكك لقائمة بريدية قيّمة تمنحك القدرة على جلب زيارات تحت الطّلب. الاستثمار في بناء علامتك التجاريةتطرّقت في حديثي مع أحد خبراء SEO حول كون الطّريقة الوحيدة لضمان نجاح على المدى الطويل في مجال التّجارة الإلكترونيّة هي بناء علامتك التّجارية. فالناس يزورون المواقع، يتحدّثون عنها، يوصون بها ولديهم حسّ الوفاء تجاه العلامات التجارية، وكلّما كانت هذه الأخيرة معروفة، كلما سعى النّاس بشغف للاستفادة من خدماتك، لتكون بذلك قد حصلت على زيارات لا تعتمد على جوجل. لذا فإنّنا سنعمل من الآن فصاعدًا على رعاية مزيد من الأحداث، إهداء ملصقات، إجراء مسابقات ومواصلة التّركيز على خدمة عملاء ممتازة من أجل زيادة تمييز علامتنا التجارية. التركيز على SEO الذي يجلب الزيارات المباشرةيعتبر اتّباع استراتيجيّات تزيد الزّيارات والرّوابط المحوّلة للزّوار طريقة ممتازة لتحسين تدفّق الزّيارات وتنويع مصادرك بدلا من الاعتماد على جوجل فقط، لذا سأركّز على فرص SEO التي تولّد الزّيارات والرّوابط المحوّلة للزّيارات. نظرة على بعض العقوباتعلى الرّغم من تركيزي على الدّروس التي تعلّمتها على نطاق واسع إلا أنّني أودّ مشاركة بعض النقاط حول البيانات التّقنية المتعلّقة بعدد من الكلمات المفتاحية التي تضرّرت بشدّة وأخرى لم تتأثّر بنفس الشّدة. يظهر الجدول أدناه الكلمات المفتاحية التي تأثّرت بتحديث Penguin والتي تمّ تجميعها حسب شدّة تضرّر ترتيبها. وتعود خانة On-Page Fix Improvement على كيفيّة تغيّر ترتيب الكلمة المفتاحيّة بعد أن أزَلت التحسينات -التي تسبّبت في العقوبة في المقام الأوّل- من الصّفحة لكلمة مفتاحية معيّنة، في حين تشير خانة Anchor إلى عناوين الرّوابط ضمن الرّوابط التي تشير إلى الصّفحة التي اكتسبت الكلمة المفتاحيّة ترتيبها منها. تعتبر هذه مجرّد عينة بسيطة للغاية، لذا فإنّ هذه النتائج لا تعني أنها مُثبَتة علميا، إلا أن ذلك لن يمنعني من التّفكير في عدّة فرضيّات بخصوص بضعة أشياء. تركيز العقوبات على مشاكل الروابط الخارجيةبعد مراجعة الصفحات التي تلقّت الضّرر الأكبر، أدركت أن SEO صفحاتي الداخليّة مليء بالتّحسينات المفرطة، حيث ظهرت عبارات كلماتيَ المفتاحيّة بشكل مبالغ فيه داخل الصّفحات وبشكل بارز للغاية، ما دفعني للإسراع في إحداث تغييرات من أجل معالجة هذه المشاكل. لسوء الحظّ لم ينجح ذلك في حلّ المشكلة ونتجت عنه المزيد من الانخفاضات – كما هو واضح في صفحة On-Page Fix Improvement – يمكنك أن تفترض أن محتوى الصّفحات الداخلية لم يكن المتسبب في عقوبة Penguin في المقام الأوّل، حيث أنّ تخفيض SEO الصّفحات الدّاخلية زاد الطّين بَلّة، في حين يبدو أن السّبب الرّئيس في هذه العقوبة هو التّحسين المبالغ فيه لعناوين الرّوابط. تبقى هذه الفرضيّة أضعف من غيرها إذ يعتقد الكثيرون أنّ عقوبة Penguin يتمّ تحديثها من حين لآخر بدلا من تحديثها على أساس يومي أو أسبوعي مثل خوارزمية جوجل الشّاملة، لذا ربّما كانت التّعديلات التي أجريتها على الصّفحات لتكون مفيدة في حال تركتها لفترة أطول حتى يتعرف عليها تحديث Penguin. مع ذلك، فإن عصارة كافّة أبحاثيَ الأخرى التي أجريتها أَفضَت إلى أنّ عناوين الرّوابط المحسّنة بإفراط هي أحد أكبر محفّزات عقوبة Penguin إن لم تكن أكبرها بالفعل. الصفحات المشهورة تشهد عقوبات أشد بكثيركانت نسبة 100% من عناوين روابط صفحة "minn kota riptide" هي نفسها "minn kota riptide" والتي يمكن الافتراض أنّها ستحصل على عقوبة، وهو بالفعل ما حدث، حيث نزل ترتيبها من المركز الأول إلى السادس. مع ذلك لم تتراجع الصفحة مثل تراجع ترتيب صفحة "minn kota" على الرّغم من كون كثافة عنوان الرّابط أقل تركيزًا من صفحة "minn kota riptide" حيث تراجعت الصفحة 42 مركزًا من الترتيب السابع إلى التاسع والأربعين، ولعلّ أبرز اختلاف هنا هو عدد نطاقات الروابط الفريدة حيث ضمّت الصفحة "minn kota riptide" أربع نطاقات، في حين ضمّت صفحة "minn kota" خمسة عشر 15 نطاقًا. من المرجّح أن تكون عقوبات Penguin أشدّ على الصّفحات التي تمتلك روابط تحويلية أكثر، فإذا كان نطاقان يحوّلان لصفحة بنفس عنوان الرّابط، لا يعني ذلك بالضّرورة أن هنالك تحسينا مفرطًا، لكن إذا كان عدد هذه الرّوابط المحوّلة يبلغ 150 رابطًا من أصل 300 رابط مثلا، فإن ذلك سيدل غالبا على حملة SEO مدبّرة. إذا كنت تحاول التّعافي من عقوبة Penguin، فقد يكون من المنطقي أن تبدأ بأفضل الصّفحات من حيث التّرتيب ذات روابط محوّلة أقل، ما قد تحتاج إليه فقط هو بضعة تغييرات على عناوين الروّابط من أجل رفع العقوبة واستعادة ترتيبك. التعافي والآثار الدائمة أحد الجوانب الأكثر إيلاما في توظيف شركة SEO بشكل غير مسؤول هي الفوضى الكبيرة التي سيبقى على عاتقك تنظيفها، فمحاولة تنظيف الرّوابط المزعجة والمحسنّة بإفراط هي عملية شاقّة، مربكة ومعقّدة. تواصلنا خلال العام الماضي مع ملاك مواقع في محاولة لحذف الرّوابط التي تشير إلى موقعنا، كما أعدنا فحص التّحسينات ضمن عدّة صفحات وحذفنا روابط كلمات مفتاحيّة محسّنة في الفوتر داخل الموقع، إلى جانب بنائنا لعدد من روابط High-Authority في محاولة لدعم موثوقيتنا لدى جوجل وإضعاف نسبة الرّوابط المحسّنة بإفراط. ومع تبقي عدّة طرق أخرى، فقد رأينا بالفعل بعض التّقدم المشجّع، بارتفاع الزّيارات بنسبة 45% لمستوى الزيارات قبل عقوبة Penguin، والتي تسببت في تخفيض نسبة الزّيارات إلى 20% قبل تنفيذ خطوات التّعافي، مازال أمامنا طريق طويل نقطعه، لكنّه يبقى تقدّما، كما أنّ إعادة إطلاق الموقع مؤخرًا ضاعفت الدخل المترتّب عن كلّ زيارة، الشّيء الذي يساعد على تعويض خسارة زيارات كثيرة. مازالت هنالك حقيقة مؤلمة على الرغم من هذه التّحسينات، فنحن مازلنا تحت عقوبة ستتطلّب المزيد من الوقت والموارد من أجل رفعها، وعندما تنظر إلى كلفة توظيف شركة SEO، خسارة المبيعات وكلفة محاولة إصلاح الفوضى، فستجد أن الأمر كان ليكون أرخص بكثير لو تمّ فعل ذلك منذ البداية بكلّ بساطة. يقول المثل: تجنب الوقوع في نفس المصيدةحاول الاستفادة من هذه التجربة لتتمكّن من تفادِ اقتراف نفس الأخطاء، صحيح أنّ اختصار الطريق في التسويق وSEO يبدو مغريا، إلا أنّك ستدفع الثّمن غاليا في نهاية المطاف، سواء كان ذلك الآن أو في المستقبل. ترجمة -وبتصرّف- للمقال The SEO Mistake That Wiped Out 80% of My Traffic لصاحبه Andrew. حقوق الصورة البارزة: Designed by Freepik.
    1 نقطة
×
×
  • أضف...