كثير من الاشخاص يسئلون انفسهم هل الدراسة الجامعية او التعلم من الانترنت افضل لتعلم البرمجة في هذا المقال سوف اوضح لكم دراسة البرمجة في الجامعات و دراسة البرمجة عبر الانترنت وايهما افضل لتعلم البرمجة!!!
يوجد فرق شاسع بين المبرمج الذي تعلم البرمجة دون دراسة علوم الحاسوب، والمبرمج الذي درس علوم الحاسوب.
كلنا سمعنا الرأي القائل بأن دراسة علوم الحاسوب لا داعي لها، فكل شخص يستطيع تعلم البرمجة خلال بضعة شهور. فلماذا يضيع أحدهم 4 سنوات ويصل إلى نفس الهدف!!
تبدو وجهة نظر منطقية. ولكنها ملأى بالفخاخ. لماذأ؟ سوف نتعرف سويا لماذا هذه النظرية هي فخ .
كيف تتعلم البرمجة
لا يختلف اثنان على أهمية البرمجة في هذا الزمن! مفهوم أفضل الوظائف وأعلى المرتبات وحتى المكانة الإجتماعية بدأت تتحول شيئاً فشيئاً من “طب و هندسة” إلى مجالات الحاسوب.
مثلك مثل أي شخص أراد تعلم البرمجة -اياً كان تخصصك- تمتلك خيارين:
دورات عبر الإنترنت: إذا بحثت في الإنترنت فستجد أن هناك كثيراً من الدورات الخاصة بتعليم البرمجة. لا تزيد مدة هذه الدورات في العادة عن 4 أشهر، وبعضها تكون مدته شهر أو حتى أقل.
دورات فيزيائية: هي الدورات التي تقام في المعاهد. لا تختلف مدتها عادةً كذلك عن مدة الدورات الافتراضية “أونلاين”.
كشخص يرغب بتعلم البرمجة، هذه الدورات كافية تماماً لتعلم البرمجة. عندما تكملها يجب أن تصبح مبرمجاً يستطيع التحدث مع الحاسوب.
وهنا ربما تعتقد أن وجهة النظر الأولى صحيحة. 4 أشهر أفضل من 4 سنوات.
تمهّل قليلاً.. قبل أن تطلق حكمك دعنى أحدثك عن البرمجة قليلاً
ماذا يعني أن تكون مبرمجاً؟ وما الذي تستطيع فعله بعد إكمالك لدورة تعلم البرمجة
بعد أن تكمل دورة تعلم البرمجة بلغة ما، تصبح قادراً على توجيه الأوامر للحاسوب.
ولأن مفهوم لغات البرمجة مقاربٌ لمفهوم اللغات البشرية من حيث أن الهدف من لغات البرمجة ولغات البشر هو القدرة على التواصل مع كائن آخر لا يتحدث لغتك أخبرك بما تعلمته ضارباً مثالاً باللغة العربية.
افترض أن مارك لا يتحدث العربية و أراد تعلمها أتى بمعجم كلمات اللغة العربية وحفظ وفهم كلماتها جميعاً وطريقة استخدام كل كلمة ومعناها.
عندما يجلس هذا الشخص بين مجموعة من العرب فإنه يستطيع بكل تأكيد أن يطلب منهم تنفيذ ما يرغب به بناءً على مخزونه من الكلمات.
زائداً أو ناقصاً قليلاً يكون هذا وضعُ من يتعلم لغة برمجةٍ ما.
فلنعد إلى صديقنا مارك..
ماذا إذا سألنا مارك أسئلة من النوع،
ما هي الجملة الإسمية والجملة الفعلية؟
متى تستخدم كلاً من الكلمات “تعال، هلم، أقبل” والتي تشترك في المعنى وقد تستخدم في مواضع مختلفة بصورة أفضل؟
هل تعلم شيئاً عن البلاغة؟
ما هو تاريخ اللغة العربية وكيف تطورت؟
هل تستطيع تكوين وكتابة الشعر؟
لماذا كان الموصوف مرفوعاً في جملةٍ محددة؟
سيلتفت مارك يُمنة ويسرة ثم يرفع كتفيه مشيراً بأن لا أدري.
هل تعلم لماذا؟
لأنه تعلم لغة البرمجة… ولم يتعلم علوم الحاسوب.
هذا وضعك الآن، تستطيع أن تتحدث مع الحاسوب وتأمره بما تريد، وسينفذ حلولك وأفكارك مهما كانت.
ولكن هنالك أسئلة أخرى مثل: هل هذه الحلول صحيحة؟ هل هي فعالة؟ هل هي الأفضل؟ لماذا اخترت هذا الحل دون الآخر؟ ما هي معايير اختيار الحلول؟ والكثير من الأسئلة المشابهة!!
حسناً! ماذا ستفيدك دراسة علوم الحاسوب؟!!
تضيف علوم الحاسوب أبعاداً أخرى للمبرمج، تحسينٌ كبير في قدراته ومعارفه تؤثر بشكل مباشر وكبير على قدرته على اقتراح الحلول -وهو الجزء الأهم في البرمجة- وحل المشاكل كذلك.
توجد أقسامٌ مختلفة في كليات علوم الحاسوب، وكل قسم منهم يؤهل الدارس ليكون أكثر تخصصاً في أحد الاتجاهات العامة من علوم الحاسوب.
أما هنا فسأعرض لك مثالاً واحداً وهو قسم علوم الحاسوب بكلية علوم الحاسوب، لا لشيء إلا لأنه الأكثر مناسبةً لمن يرغب بالتخصص بالبرمجة.
لاحظ أن جميع المواد التالية لا تعتني بـ “تعلّم البرمجة” بل تطرق جوانبها بعدّة طرق
مواد يدرسها طالب علوم الحاسوب:
1-مقدمة للبرمجة.
2-هياكل البيانات.
3-الرياضيات المتقطعة.
5-4-نظم قواعد البيانات.
6-تحليل وتصميم الخوارزميات.
7-مبادئ الذكاء الاصطناعي.
8-بناء المترجمات.
9-التفاعل بين الإنسان والحاسب.
10التنقيب عن البيانات.
11-تصميم وإدارة الشبكات.
12-مبادئ التشفير.
هذه المواد عبارة عن أمثلة فقط لبعض المواد التي يدرسها طالب علوم الحاسب بالإضافة إلى تعلم لغات البرمجة بصورة مباشرة، في العادة يتعلم أكثر من لغة برمجة أثناء الدراسة.
كما ترى يا صديقي فإن دارس علوم الحاسب يتحصل على العديد من العلوم التي تحيط بالبرمجة، ولكن…
فلنذهب إلى بُعدٍ آخر.. هل هناك فائدةٌ حقيقية من هذه المواد والمعلومات؟ أم أنها مضيعةٌ للوقت فقط؟!!
تعلّمتُ كل هذه العلوم، ماذا أفعل بها؟!!
من وجهة نظر المستخدم النهائي (أي الشخص الذي يستخدم البرنامج) يستطيع المبرمج أن يطور برنامجاً متكاملاً يؤدي إلى حل مشكلة ما مثلما يستطيع دارس علوم الحاسوب فعله.
كلاهما يطور برنامجاً يعمل بالتأكيد. ولكن دارس علوم الحاسوب يستخدم معلومات أخرى تحصل عليها أثناء دراسته تعينه على تطوير برنامج أفضل.
مثلاً، بناءً على المعلومات العلمية التي تحصل عليها من دراسة التفاعل بين الإنسان والحاسوب يصمم شاشات أفضل، وبناءً على علم الخوارزميات يستطيع تصميم حلول أفضل، وبناءً على التشفير وأمن المعلومات يستطيع تصميم برامج أكثر أمناً … وهكذا..
لذا فإنني أرى أن تسميه خريج علوم الحاسوب بـ “مبرمج” تظلمه، فالعلوم التي تحصل عليها تتعدى مسمى مبرمج وتجمع مجالات مختلفة.
وبرغم عدم التفرقة بينهما في المسمى، إلا أنه من السهل جداً التفريق بينهما أثناء المعاينات الوظيفية بطرح الأسئلة التي تدور حول البرمجة والأسئلة الأكثر تخصصية دون السؤال عن المؤهل حتى.
هذه المعلومات التي تملكتها حول البرمجة تؤهلك إلى حد بعيد لأن تكون قادراً على التطور السريع في عالم البرمجة، ليس تطوراً وظيفياً فقط بل من ناحية كفاءة مخرجات. فشفراتك البرمجة تُكتب بناءً على أسباب علمية وليس اعتباطاً.
تعامل سوق العمل مع خريج علوم الحاسوب وطالب البرمجة
إلى وقت قريب كانت وظائف البرمجة ترتبط بطلب شهادة البكالريوس. ولكن الأمر آخذٌ في التحول باستمرار.
أصبح من الطبيعي جداً أن تجد في الشركات مبرمجين يحملون شهادات لا علاقة لها بالمجال التقني إطلاقاً أو حتى لم يحملوا شهادات من قبل.
البرمجة وظيفة تعتمد على الإنتاج، طالما تستطيع أن تبرمج فإنك تستطيع الحصول على وظيفة.. فقط تحتاج إلى إثبات أنك تستطيع البرمجة.
ولكن من زاوية الوظائف المتاحة واحتمالية الاختيار. إذا كنتُ في موقع من يختار المبرمج سأختار وفقاً للوظيفة المطلوبة.
مثالين لحالتين للمفاضلة بين خريج البكالريوس والمبرمج بلا بكالريوس:
إذا كان لدي فريق متكامل متخصص للعمل على نظام كبير بحيث أن النظام محلل و مصمم بطريقة ممتازة والمطلوب توظيف مبرمج مهمته تقتصر على تحويل الأفكار إلى شفرة مصدرية أفضل أن يكون المبرمج صاحب خبرة أطول (تتوفر عادةً في المبرمج بلا بكالريوس بصورة أكثر).
إذا كان لدي مشروع ناشئ، والميزانية لا تحتمل توفير متخصصين عندها قد يؤدي المبرمج دور المحلل والمصمم والمبرمج. في هذه الحالة أفضّل أن يكون حاصلاً على شهادة بكالريوس.
فوفقاً لحالة المشروع والوصف الوظيفي المتاح وعوامل أخرى مثل القدرة على الإقناع و العرض المادي وغيرها يختار صاحب العمل المبرمج المناسب للوظيفة.
وفي كل الأحوال، ما زالت الحاجة إلى المبرمجين ماسةٌ جداً.
والآن، السؤال الذي يدور في عقلك.. أدرس علوم الحاسب أم أتعلم البرمجة من الانترنت؟
السؤال الدائم: ما هو الأفضل؟ أن أصبح مبرمج بدون دراسة نظامية أم أتعلم البرمجة وهذا يكفي؟
البرمجة لغة العصر، والتقنية أصبحت محيطةً بك من كل جانب، تعلم البرمجة كمهارة ومعرفة ستتسع آفاقك المعرفية التقنيّة كثيراً.
بعد أن تتعلم البرمجة ستعلم كيف تعمل التطبيقات والبرامج من حولك، تفهم لماذا وضع هذه الخاصية في هذا التطبيق بهذه الطريقة وما هي الحلول الممكنة.
بعد أن تتعلم البرمجة ستستطيع توقع حل لمشاكل التطبيقات والبرامج بصورة أكبر وأفضل.
وربما تصبح مبرمجاً فذاً كذلك.
دراستك لعلوم الحاسوب ستجعل منك مبرمجاً أفضل وأكثر احترافية بالتأكيد، مع القدرة على العمل في مجالات متعددة أخرى مثل تحليل البيانات وتصميم قواعد البيانات وإدارتها و أمن المعلومات وغيرها من المجالات المتعددة.
أرى أن الأمر بهذه البساطة:
إذا كان هدفك البرمجة فقط لا غير، تستطيع تعلمها من خلال الدورات دون الإلتحاق بالجامعة.
إذا كان هدفك تعلم علوم الحاسوب، تستطيع البدء بتعلم البرمجة الآن أو الانتظار حتى الالتحاق بكلية علوم حاسوب وستتعلمها حتماً ضمن منهجك.
وفي النهاية
أهم ما في الأمر، يجب أن تتعلم البرمجة ولا تنتظر. أن تكون مبرمجاً يفتحُ لك آفاقاً أرحب. ستستطيع تنفيذ الأفكار التي تطرأ على ذهنك بين الفينة والأخرى فتصبح لك تطبيقات في متاجر الجوال أو مواقع على الانترنت.
وقد ينتهي بك الأمر إلى التحوّل إلى هذا المجال تماماً!
تعليقات
إرسال تعليق