نسيتني البرمجة أو نسيتها !

في البداية مرحباً ...

قصتي ببساطة أني طالب في السنة الثالثة للهندسة المدنية في إحدى الجامعات المصرية , كنت قد تقدمت بشكل كبير - خلال سنوات متتابعة من التعلم والتلقي والممارسة - في تطوير الويب Web Development بإستخدام لغة ال PHP وبالإستعانة باللغات الأخرى مثل Javascript كما بعض التقنيات مثل MVC Framework .

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

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

لا أعلم ما الحل ءأرجع إلى تطوير الويب كدراسة إضافية أو أنطلق لدراسة برمجة التطبيقات على منصة Android ؟ أم أتخلى عن البرمجة نهائياً ؟ وإذا تخليت عنها , فأنا أبغي وظيفة أضافية بجانب الدراسة أحصّل بها قوت يومي مع العلم أني متقدم باللغة الإنجليزية فهل من إقتراح !

أبغي مشورتكم الطيبة فلا تبخلوا علي برأي !


التعليق السابق

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

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

ذا كنتَ مهتمّاً بتطبيقات الجوال فأنصحك بتعلّم Flutter، فهي ستغنيك عن تعلّم Java و Objective-C، فمن خلال Flutter تقوم بإنشاء تطبيق واحد يعمل على منصّتَي Android و IOS. وهي framework سهلة وجميلة وممتعة جداً.

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

هل إطار العمل هذا ( Flutter ) قوية وجديرة بخوض التجربة ؟ وعلى أي لغة هو مبني - هذا الإطار - ؟

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

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

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

جميلة مشورتك أنت أخي وهذا ينُم على جمال روحك الطيبة.

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

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

ما شاء الله أخي. عسى الله أن يرزقك بالعمل الذي تحبه في المكان الذي تحبه.

عسى الله أن يرزقك بالعمل الذي تحبه في المكان الذي تحبه.

اللهمّ آمين ... جميعاً بإذن الله.

بخصوص Flutter: نعم، فهو إطار عمل قوي جداً، ويمكن اعتباره المسيطر حالياً على أطُر العمل الشبيهة به (مع أنّه جديد نوعاً ما)، ومبني على لغة Dart، وهي لغة بسيطة وسهلة ولستَ بحاجةٍ لتعلّمها بشكلٍ مستقل قبل أن تباشرَ بتعلّم Flutter، فمن خلال تعلّمك لـ Flutter تستطيع فهم وتعلّم Dart بشكلٍ سلس.

مبدأ Flutter ربما يكون مختلفاً بعض الشيء عن بقية أطُر العمل، فهي تعتمد على مفهوم الـ widgets بشكلٍ كامل، ولذلك ربما تجد صعوبة في بداية الأمر، لكن صدّقني -وعن تجربة- فبعد عدّة أيام من العمل عليها ستجدها أبسط ممّا كنتَ تتوقع.

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

إذا أردتَ الاطّلاع عليها قليلاً (بعد قراءة بعض المقالات التي تشرح مبدأ Flutter) فأنصحك بمشاهدة فيديوهات بعنوان Flutter: Widget of the day، وهي فيديوهات لا تتجاوز الدقيقتَين، ويتم من خلالها عرض widget من الـ widgets المتوفرة في Flutter بشرحٍ بسيط لفهم كيفية استخدامه ضمن التطبيق.

بعد التعرّف على الـ widgets وكيفية تنظيمها ضمن التطبيق سيسهُل عليك التفكير بكيفية إنشاء التطبيق الخاص بك من الصفر للوصول إلى ما تحتاجه.

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