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