نبذة تعريفية

رامى أحمد

الحمد لله الذي علَّم بالقلم، علَّم الإنسان ما لم يعلم، والصلاة والسلام على خير معلم الناس الخير سيدنا محمد - صلى الله عليه وسلم .. أما بعد ،،

اسمى رامى أحمد، بفضل الله - مؤسس منصة مرتكز

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

وفقنى الله وإياك إلى ما يحبه ويرضاه ،،

تابعنى على

م. أحمد الطبراني - حين تتحول البرمجة إلى مبادرة .. وحين تُضيء المشاريع العربية الطريق من جديد

صورة المقال - م. أحمد الطبراني - حين تتحول البرمجة إلى مبادرة .. وحين تُضيء المشاريع العربية الطريق من جديد

الحمد لله الذي علَّم بالقلم، علَّم الإنسان ما لم يعلم، والصلاة والسلام على خير معلِّم الناس الخير سيدنا محمد - صلَّى الله عليه وسلم … أما بعد ،،

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

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

في البداية، نود أن نعرف من هو أحمد الطبراني؟ كيف بدأت رحلتك في عالم البرمجة، وما الذي جذبك إلى هذا المجال؟

السلام عليكم يا باشمهندس رامي، يسعدني جدًا أن أكون ضيفًا على مدونتك المميزة.

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

بدأت رحلتي مع البرمجة منذ أيام الثانوية، وكانت بدايتي من خلال برمجة الألعاب.

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

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

لاحقًا، التحقت بكلية الحاسبات والمعلومات بجامعة قناة السويس، وتخرجت في قسم علوم الحاسب، ثم توجهت للتخصص في مجال الـ Backend.

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

مشروعك "Hadith Checker Extension" نال إعجاب الكثيرين على منصة مرتكز، ما الذي دفعك لتطوير هذه الإضافة؟ وكيف ترى أثرها في مواجهة الأحاديث المنتشرة دون تحقق؟

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

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

في البداية بحثت عن API يتيح التحقق من صحة الأحاديث، لكن أغلب الحلول لم تكن مرضية.

وجدت أن موقع الدرر السنية يوفر API بالفعل، لكنه يُرجع النتائج على شكل HTML داخل نص، وليس بصيغة JSON المنظمة التي كنت أحتاجها.

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

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

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

إضافة "Azkar Reminder" تحمل بُعدًا روحانيًا وتقنيًا في آن واحد، ما التحديات التي واجهتك أثناء تطويرها؟ وكيف نظّمت عملية التحديث والإشعارات داخل المتصفح؟

رغم أن إضافة "Azkar Reminder" قد تبدو بسيطة وسهلة من حيث التنفيذ، إلا أنها كشفت لي عن مشكلة أعمق في عالمنا التقني العربي.

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

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

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

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

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

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

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

مدونتك التقنية ثرية بالمقالات المفيدة، ما المواضيع التي تحرص على الكتابة عنها؟ وكيف تختار ما تشاركه مع متابعيك؟

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

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

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

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

عندها قررت إنشاء مدونة خاصة بي، وتعلمت القليل من HTML وCSS، ونجحت في بناء مدونة أنشر فيها ما أحب من موضوعات وأشاركها مع الجميع.

أغلب مقالاتي تركز على الأساسيات التي يحتاجها أي مبتدئ في البرمجة: مثل مفاهيم الـ OOP، والتعامل مع الـ API، وفهم الـ Git، وأعمل حاليًا على سلسلة عن أساسيات قواعد البيانات والـ SQL، وبعض مقالات الـ Design Patterns.

ولله الحمد، تصلني دائمًا تعليقات إيجابية تشجّعني على الاستمرار.

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

أضفت حتى الآن 3 مشاريع متنوعة على مرتكز، كيف وجدت تجربة النشر؟ ولو كنت ضمن فريق تطوير مرتكز، ما الميزة التي تحب إضافتها لخدمة المبدعين بشكل أكبر؟

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

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

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

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

هذا النوع من المبادرات يشجع على بناء أدوات عملية ومفيدة، تمامًا كما فعلت سابقًا عند تطوير أدوات مثل "Hadith Checker" و"Azkar Reminder" لحل مشكلات واجهتني وشاركتها بشكل مفتوح ليستفيد منها الجميع.

لاحظت تركيزك الكبير على تطوير الواجهات الخلفية (Backend)، ما أبرز التقنيات أو الأدوات التي تستخدمها؟ ولماذا اخترت هذا المسار تحديدًا؟

بالطبع قد يبدو أنني اخترت مجال الـ Backend عن قناعة وحب عميق... لكن في الحقيقة، الأمر لم يكن كذلك تمامًا!
البداية كانت مع مشروع تخرجي في الجامعة، حيث طُلب منا تنفيذ مشروع برمجي وتم تعييني مسؤولًا عن جزء الـ Backend.

ومن هنا بدأت رحلتي في هذا التخصص، ورغم صعوبة البدايات، بدأت تدريجيًا أستوعبه وأستمتع به، حتى وصلت إلى مرحلة كنت أعتقد فيها أن الـ Backend هو محور الكون! لكنني أدركت لاحقًا أن كلاً من الـ Backend و Frontend لهما أهميتهما، خاصة وأن أغلب مشاريعي مثل "Hadith Checker" و"Azkar Reminder" ومدونتي تعتمد كثيرًا على الجانب المرئي والتفاعلي أيضًا.

بدأت تعلّمي الفعلي باستخدام Node.js وExpress.js، ثم انتقلت لاحقًا إلى Nest.js وTypeScript، نظرًا لأن الشركة التي التحقت بها حينها كانت تعتمد عليهما.

مع الوقت تعمقت في مفاهيم مثل REST API وWebSockets وأنظمة المصادقة والصلاحيات وغيرها من الأساسيات المهمة في هذا المجال.

لاحقًا، انتقلت إلى استخدام PHP وLaravel بسبب طبيعة العمل في شركة أخرى.

ولأنني كنت قد رسّخت أساسيات الـ Backend سابقًا، لم أواجه صعوبة في التغيير.

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

بما أنك انتقلت من Nodejs و Nestjs إلى PHP وLaravel بسهولة ولم تعاني من صعوبة في ذلك، كيف كان هذا الانتقال؟ والفروقات التي وجدتها بين هذه التقنيات؟ وهل هناك نصائح تقدمها للمطورين الذين يرغبون في الانتقال بين لغات البرمجة المختلفة؟

بصراحة، الانتقال من Node.js وNestJS إلى PHP وLaravel كان أسهل مما توقعت، وأظن أن السبب الرئيسي هو إنني كنت مركز من البداية على فهم الأساسيات وليس على فهم تكنولوجيا معينة.

بمعنى أنني عندما تعلمت Node أو Nest كنت اتعلم مفاهيم الـ Backend من خلال Nodejs و NestJS، فالـ Backend هو تخصص يحتوى على مفاهيم وأساسيات مشتركة بين جميع اللغات والتقنيات، مثل REST API كيفية بناءها، وكيف تتعامل مع الـ Databases، وكيفية التعامل مع الـ Authentication و Authorization وغيرها من المفاهيم الأساسية.

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

لأنه في نهاية المطاف الـ Node.js و PHP و Go و Python وغيرها من اللغات، كلها لغات برمجة، وكلها يمكن استخدامها لبناء الـ Backend، لكن الاختلاف يكون في طريقة كتابة الكود والأدوات المتاحة لكل لغة.

أما المباديء الأساسية للـ Backend فهي نفسها في جميع اللغات.

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

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

في الحقيقة لقد نشرت مقالًا احكي عن هذه التجربة والانتقال من NestJS إلى Laravel وأعطيت بعض االنصائح

رابط المقال بعنوان (التركيز على الأساسيات طريق النجاح)

علمت أنك العضو السادس في اشتراكك بمنصة "قبيلة"، كيف وجدت هذه التجربة؟ وما الذي جذبك لتكون من أوائل المهتمين بها؟

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

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

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

والمعيار الأخير على ما اذكر كان أن هناك أشخاص كثر دخلوا قائمة الانتظار من رابط الدعوة التي نشرته.

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

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

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

أما بالنسبة للمطورين، فيمكنهم المساهمة من خلال إضافة مشاريعهم أو مشاريع يعرفونها إلى "التجميعة".

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

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

مثل ما حدث مع "Hadith Checker" و"Azkar Reminder"، حيث قمت بإنشاء أدوات بسيطة لحل مشكلة ما، ونشرها بشكل مفتوح ليستفيد منها الجميع.

مصطلح "vibe coding" يبدو غير مألوف للكثيرين، كيف تشرح لنا هذا المفهوم؟ وما علاقته بـ إنتاجية المطوّر وجودة الكود؟

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

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

لكن تجربتي الشخصية مع "vibe coding" كانت متباينة؛ ففي بعض الحالات، عندما أكون مدركًا تمامًا لما أريده وأعرف كيف يُفترض أن يُنفذ، أجد أن التفاعل مع الـ AI يكون فعّالًا جدًا، حيث أطلب ما أحتاجه وأراجع الناتج بعناية وأعدّله حسب رؤيتي.

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

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

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

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

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

خاتمة

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

مشاريع مثل "Hadith Checker" و"Azkar Reminder" ليست فقط أدوات تقنية، بل رسائل صغيرة تضيء الطريق.

فليكن هذا الحوار دعوة مفتوحة لكل مطوّر عربي: شارك مشروعك، ولو كان بسيطًا .. فقد يكون هو ما يبحث عنه كثيرون.

رابط منصة مرتكز

زائر مدونتي الكريم، وفقني الله وإياك إلى ما يحبه ويرضاه ،،