Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?

الدراسة الجامعية أم التعليم الذاتي لتعلم البرمجة؟

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

  • العلم ليس مرتبط بالمقاعد الدراسية، ولكن:

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

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

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

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

    دعني أوضح إجابتي.

  • ملاحظة البرمجة هي المجال التطبيقي للعلوم النظرية في علوم الحاسب، هناك بعض المغالطات عند المبتدئين بتسويتها بعلوم الحاسب، وهذا أمر يجب أن يُنتبه له.

  • البرمجة هي لغة تواصل كأي لغة تواصل أخرى:

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

    1. مبرمج:

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

    2. مهندس برمجيات:

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

    3. عالم وخبير برمجي:

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

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


  • هذه هي وجهة نظري وجوابي لهذا السؤال، إذا كان لديك رأي آخر، رجاءً شاركنا رأيك في التعليقات أو من خلال حسابي في توتير.

كتبها: عبدالعزيز سعد العبودي.

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

10 جمادى الأول

@saiko55

This comment has been minimized.

Copy link

commented Apr 5, 2019

"عاااش"

@AlBannaTechno

This comment has been minimized.

Copy link

commented Jun 11, 2019

جميل جدا

@barhouum7

This comment has been minimized.

Copy link

commented Jun 18, 2019

### شكرا

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.