Ahmed Aljaberi
Ahmed Aljaberi

@ahmed_aljabri

11 تغريدة 126 قراءة Sep 12, 2019
تصلني اسئلة عن كيف اصبح مبرمجاً محترفاً و ماذا علي ان اتعلم و ما ذا علي ان اقرأ , سؤال كهذا قد يكون له عشرات او مئات الاجابات تعتمد على الشخص و على مجاله البرمجي و ادواته من لغات و اطر عمل و على بيئته البرمجية ان كان يعمل ضمن فريق او يعمل منفرداً و محددات اخرى. ( سلسلة )
نبدأ بالسؤال الأزلي : هل البرمجة او الكمبيوتر بشكل عام علم أم مجرد فن ؟ العلم بالمجمل هو دراسة ظواهر طبيعية من حولنا نحاول ان نرصد قوانين و تعاليم للتعامل معها كونها ثابتة و لكن الكمبيوتر و ما يتعلق به من لغات في الاخير هي منتجات من ابتكار اشخاص يعكسون حتى شخصياتهم في ما انتجوا.
كنا نتحدث هذا اليوم عن شركة Borland التي كانت عملاق في فترة اخر الثمانينات الى اوائل الألفية الثانية و كان منتجها Delphi من اقوى ادوات التطوير ذلك الوقت و الذي اعتمد لغة Turbo Pascal و كان التطوير بقيادة Anders Hejlsberg
Anders Hejlsberg
نقل اسلوبه الى مايكروسوفت من خلال لغة ظهرت و اختفت سريعاً كان اسمها ++J ثم الى لغة سي شارب ثم الى TypeScript . من كان متابعاً ذلك الوقت سيميز الاسلوب كمن يستمع للحن موسيقي معين و يميز لمن هو دون ان يخبره احد.
هناك من يشبه البرمجة بالموسيقى التي لها نوتات و سلم موسيقي و مقامات و ادوات و مدارس مختلفة و مع هذا نبغ فيها اشخاص عاديون ابدعوا في العزف وفي تأليف الألحان دون ادنى معرفة بقراءة النوتات او تسميات السلم الموسيقي و كانت الممارسة و المحاكاة و المثابرة سلاحهم في ذلك.
ما يمكنك ان تتعلمه كمبرمج لا و لن ينتهي ابداً و ستشعر دائماً انك ما زلت تجهل الكثير و إن استسلمت لذلك الشعور فلن تنتج شيئاً ابداً. لذلك ابدأ بأي شيء بمتابعة دروس فيديو , مقال في مدونة , اشتراك في موقع تعليمي ,كتاب , معهد , تدريس مباشر
الشعور بالإحباط وارد و قد يصادفك في اول البدايات عندما لا تستطيع تثبيت اداة التطوير الخاصة بلغتك او تشغيل اول برنامج لك. هذا الشعور متلازمة عليك التعايش معها دائماً ولا يجب ان تثنيك . فمع الوقت يصبح اثرها عليك اضعف.
اعود للسؤال عن كيف اصبح مبرمجاً محترفاً .برأيي ليس هناك اجابة محددة. حيث يحتاج المبرمج إلى وضع هدف برمجي ممكن امامه ثم يحاول الوصول له. قد يحتاج إلى من يرشده في البداية إلى ما يحتاجه لبلوغ ذلك الهدف كتقنيات و مراجع و ربما اساليب برمجية.
ثم يحتاج إلى تقييم دوري لما تعلّمه خلال فترة معينة سواء ممن سبقه او ممن يرى انه افضل منه . تقييم يبين مكامن القوة المعرفية و المهارية و كذلك مكامن الضعف ثم ارشاد لكيفية سد الفجوات المعرفية و المهارية.
التقييم قد يكون بأحد امرين إما من خلال الكود الذي كتبه او بطلب تصميم و كتابة برنامج معين من المبرمج بأفضل ما يمكنه ( الكود يفضح ) او عن طريق مقابلة او اختبار بغرض التقييم و ليس الشهادة و لكن للمنفعة الذاتية ليطور الشخص نفسه لا اكثر.
بما اننا في عصر الCloud و الخدمات السحابية سواء ويب او تطبيقات اجهزة ذكية ففي التغريدات القادمة سأضع مثال عالي لنظام شبه حقيقي سأبدأ من معمارية الحل نزولاً الى طريقة برمجة مثل تلك الانظمة محاولاً رسم خارطة طريق لما قد نحتاج إلى معرفته بشكل عام او التعمق فيه. و دمتم بود.

جاري تحميل الاقتراحات...