مفهوم – تعلم البرمجة يعتبر حاليًا من أبرز إهتمامات الكثيرين في علوم الحاسب، ومع بداية البعض في تعلم البرمجة نجد هناك كثيرًا من الأقوال والمفاهيم المنتشرة قبل وأثناء التعلم، فهل هذه المفاهيم صحيحة وستساعدك على تعلم البرمجة حقًا؟
فهناك الكثير من المفاهيم الخاطئة والأساطير المحيطة بمجال البرمجة والتكويد، فهناك من ينظر إلى البرمجة على أنها وظيفة للموهوبين فقط ومسار مهني فقط للمهتمين ومن لديهم موهبة وذكاء خارق في كل ما يتعلق بالأرقام، ووظيفة الخطأ فيها ممنوع.
حسنًا سنقوم في هذا المقال باستكشاف وتصحيح هذه المفاهيم الخاطئة حول هذا المجال التعليمي والمهني وربما تكون مصدرًا للراحة لأولئك الذين يتساءلون إن كانت البرمجة هي المسار الوظيفي المناسب لهم.
مفاهيم غير حقيقية عن تعلم البرمجة:
يجب أن أتقن الرياضيات لتعلم لغات البرمجة
يخلط الناس بين العلاقة بين علم الرياضيات والبرمجة لأنهم يريدون الحصول على إجابة قاطعة “نعم” أو “لا” في الواقع فإن الجواب هو أكثرمن ذلك “ربما نعم ولكن في الغالب لا“. كمبرمج فأنت تقضي معظم وقتك في كتابة التعليمات البرمجية وليس صيغ رياضية ومعرفتك بالرياضيات لا تتناسب طرديًا مع مهارتك في البرمجة.
هنا لا نلغي معرفتك بالرياضيات بشكل كُلي بل العكس هو الصحيح لا زلت بحاجة لفهم علم الرياضيات وما يدور حولها فهو جيد لك ويساعدك في تعلم البرمجة لا شك في ذلك، ولكن في البرمجة بشكل أساسي هناك مكتبات ومكونات إضافية والتي يمكنك تطبيقها مباشرة في التعليمات البرمجية لمساعدتك في حل المشاكل الرياضية والحسابية.
ومع ذلك إذا كنت تحاول إنشاء أشياء تتطلب حسابات حسابية متقدمة أو فيزياء أو رسومات حاسوبية فأنت بالتأكيد بحاجة إلى إتقان بعض المهارات والخبرة في الرياضيات لكن لا تقلق فهناك العديد من الحلول التي يمكنك أن تجدها في طريقك لتعلم البرمجة يمكن أن يساعدك في هذه الإتجاه.
يجب أن أكون عبقريًا (مع معدل ذكاء 160)
لا يهم إذا كان معدل ذكاءك هو 160 أو 90 إتقان لغات البرمجة المختلفة لا يرتبط بالعوامل البيولوجية ولكن اهتمامك وشغفك وحُبك لهذا المجال هو مفتاحك الأساسي للانطلاق وإذا كنت قد أجريت اختبارات لتحديد درجة ذكائك فاعرف أنك لن تفعل شيئًا في حياتك وتحديد ما تحب عمله أو إلى أي مدى يمكنك الحصول عليه استنادًا إلى نتيجة اختبار.
تعلم البرمجة يأتي بشكل خبرات متراكمة بالإضافة للإهتمام والشغف الفشل وأنت تحاول تعلم لغة ما هو الأساس في النجاح لاحقًا، فالكثير من عباقرة البرمجة لم ينجحوا بين يوم وليلة بل واجهو الفشل تلو الفشل لينجحوا أخيرًا.
ولتخفيف الأمر عنك فإن أي شخص يعرف كيفية التواصل يمكن أن يتعلم البرمجة، نظرًا لكونها عميقة في جوهرها فإن البرمجة هي “لغة” لها قواعدها ومفرداتها ووجودها هو مجرد أداة لمساعدتك على التواصل مع الآلة لإكمال غرض أو عمل معين تمامًا مثلما نتواصل مع اي إنسان.
يجب أن أذهب إلى الجامعة لتعلم كتابة الأكواد
يقولون من أجل أن تصل إلى الحد الأقصى الخاص بك تحتاج إلى أعلى درجة علمية ممكنة لتقنع الجميع بأنك بارع فيما تفعله، ربما كان هذا المفهوم صحيحًا قبل عشر أو سبعة سنوات سابقة ولكن بالنظر لواقعنا حاليًا وبفضل الإنترنت يمكنك تعلم البرمجة من المبرمجين الطيبين و المتحمسين المنتشرين في جميع أرجائها دون أي تدخل من المحاضرين الجامعيين.
اختر دورة للمبتدئين في مواقع التعلم التفاعلية مثل Codecademy أو تابع مواقع تعليمية مثل Nettuts + التي تحتوي على تفسيرات ومحاضرات واضحة بالصورة والصوت والمحتوى المكتوب ايضًا، هل لديك مشكلة وتريد إجابة مباشرة؟ إن منصات مثل Stack Overflow Stackexchange مفتوحة لك للتعلم ويمكن أن تساعدك بعض عمليات البحث في محرك البحث جوجل في الوصول لبعض الكنوز الحقيقية.
مرة أخرى نحن لا نقول أن الجامعات والمعاهد المتخصصة لا يمكنها تعليمك أي شيء، يمكن للأستاذ أو المحاضر أن يسرع من فهمك للنظريات وبعض المفاهيم التي تحتاج إلى شرح مباشر في الوقت الحقيقي مع بعض المزايا الهامة التي يجب أن تأخذها في الاعتبار أيضًا.
ولكن بغض النظر عن المسار الذي تختاره فمن الأفضل لك أن تتقن قدرتك على التعلم الذاتي لأنه على عكس معظم المجالات الأخرى تتطور البرمجة دائمًا بوتيرة سريعة جدًا ويمكنك وحدك تحديد ما إذا كنت تستطيع المتابعة أم لا.
يجب أن أكون شخصًا بالغًا لتعلم لغات البرمجة
المفهوم الخاطيء الذي كثيرًا ما يحدث خاصة في المجتمعات النامية هو عمر الشخص كرادع له لتعلم لغات البرمجة، وهذا ليس رأيي الشخصي فقط في Code.org هناك عريضة للمطالبة بإدخال البرمجة كموضوع دراسي إجباري بحيث يمكن للأطفال تعلم التفكير بطريقة تحليلية.
ومع ذلك هناك اختلاف في نموذج التعلم بين الأطفال والبالغين، من الأفضل للأطفال التعلم بطريقة أكثر وضوحًا نظرًا لأن إدراكهم البصري أكثر تطوّرًا، لذلك فإن منصات مثل سكراتش scratch و أليس alice هما الحل الأمثل للأطفال ليقوموا بالبرمجة بشكل مرئي وهي طريقة أفضل من كتب البرمجة القديمة.
وإذا كانوا يفضلون بيئة تفاعلية فإن مجتمع البرمجة مثل Khan Academy هو المكان المناسب لينموا مواهبهم وتطويرها، يمكن أيضًا للآباء المساعدة في رحلة تعلمهم عن طريق البقاء على إطلاع بشكل مستمر مع تقدم أطفالهم وتوجيههم مع الشرح والنصائح والموارد بالإضافة إلى الدعم المعنوى الذي يعزز التعلم النشط.
يجب أن أتعلم فقط أفضل لغة
“أفضل” لغة البرمجة؟ هذا أمر مضلل وشائك بعض الشيء لأن أفضل لغة لتعلمها هي اللغة التي تناسب غرضك الحالي إما للعمل أو الدراسة، بمعنى آخر لا توجد لغة برمجة أفضل يعتمد ذلك على ما تريد أن تفعله به.
هناك لغات برمجة رائعة للمبتدئين مع ذلك فإن لغة مثل بايثون Python هي بداية جيدة بسبب بساطتها وسهولة القراءة والمرونة التي توفرها، من السهل تعلم لغة مثل جافا Java أكثر من أي شيء فهي تحتوي على مصادر شاملة ومتوفرة بكثرة ومجتمع متشدد أو يمكنك الغوص لتعلم لغة C # بعد ذلك يرجع الأمر إليك لتحديد الأدوات التي تختارها استنادًا إلى سرعة اللغة والميزات الحصرية والتوافق وإمكانية الصيانة وما إلى ذلك.
يستغرق فقط أسابيع لتعلم أي لغة برمجة
لا تصدق هذا الشعار! الأمر المحزن هو أن نرى معظم الشباب الطموحين يحاولون تعلم لغة برمجة ما لفترة قصيرة من الوقت ليكتشفوا أنه لا يمكنهم إنشاء أو تطوير أي شيء في غضون هذه الأسابيع، ليتسرب لديهم الإحباط ويقومون بسحب القابس وتسمية أنفسهم “غير موهوبين” ثم التخلي عن احلام أن يصبح مبرمج لعبة ما.
في الحقيقة يمكنك قضاء أسابيع لتعلم البرمجة ولكن الأمر يستغرق سنوات لإتقان البرمجة، فهي مثلها مثل الرسم تتطلب البرمجة اهتمامًا والتحلى بالصبر وقد تكون معظم الأشياء التي تنشئها في البداية قليلة الاستخدام ولكن إذا واصلت المضي قدمًا فعليك فقط أن تأخذها خطوة خطوة في كل مرة لتصبح مبرمجًا جيدًا ويجب أن تشعر بالحماس والنشاط في كل مرة تفشل فيها لأن هذه هي الطريقة الوحيدة التي تتقدم بها للأمام.
يجب أن أحفظ جميع التراكيب وتجنب المساعدة
عقلك الباطن سيخبرك بأنك إذا قمت بالبرمجة دون توجيه خارجي فسوف تحفظ كل شيء وتصبح محترفًا حقيقيًا يمكنك بناء أي شيء من الصفر، ولكن الحقيقة هي أنه لا داعي للقلق بشأن حفظ بنية الجمل حيث أنك ستكتب الشفرة نفسها لآلاف المرات قبل أن تتمكن من قلب الطاولة وإنشاء إطار عمل بنفسك.
مواقع مثل بحث جوجل و تطبيق IDE يمكن أن تكون أفضل رفيق لك في رحلتك فهي مصممة خصيصًا لمساعدتك على التقاط البرامج بشكل أسرع، وأفضل ممارسة لك هي استخدام IDE مع توصية بناء الجملة مع التشاور مع العم جوجل كلما واجهت المتاعب.
يساعدك استخدام أطر العمل frameworks على فهم ما تقوم به لغة البرمجة وما هي الحدود التي يمكنك الوصول إليها وعندما تتقدم بشكل كافٍ قم بتجربة ميزات برمجة محددة واستكشاف لتفجير شيء ما.
أنا فقط لا أستطيع كتابة هذا الكود
ربما تكون واحد من أولئك الأشخاص الذين يخافون ويرتعبون عند مشاهدة مصدر برمجي لصفحة ويب للمرة الأولى لأنه يمكنك أن تراهن على أن 4000 سطر من الكود يمكن أن يكون مربكًا وصعبًا لا يقوم به إلا العباقرة وأصحاب الخيال.
ولكن على الرغم من أن HTML ليست لغة برمجة إلا أن محتواها يعكس إلى حد كبير ما يحتويه كل ملف برمجي بشكل عام، إذا دققت النظر قليلًا ستجد أنها مجرد أكوام من الاكود تتكون من عبارات متكررة وطرق وحلقات.
بكل بساطة يستخدم المبرمجون في الغالب نفس الأشياء التي تتعلمها في رحلتك لتعلم البرمجة للقيام بكل من الحلول البسيطة والمعقدة، وعندما تعتاد على ذلك وتكتسب الخبرة مع مرور الأيام والسنوات ستشعر أن 10000 سطر من الأكواد البرمجية تمثل لك مجرد لعبة أطفال يمكنك أن تُدمن كتابة مثل هذه الكمية الكبيرة من الأسطر البرمجية بسرعة كبيرة.
أنا أمرأة لا استطيع تعلم أو كتابة التعليمات البرمجية
هنا نحن ندخل للمناطق الشائكة وبدون تحيز فإن المرأة عندما تفعل أمرًا ما فهي دائمًا تُبدع فيه، لقد كانت النساء دائمًا على رأس قائمة المبرمجين المؤثرين وإليك بعضهن لنثبت القول بالفعل:
Ada Lovelace أول مبرمج في العالم
طورت Grace Murray Hopper أول مترجم للغة البرمجة
ساعدت Adele Goldstine في إنشاء أول كمبيوتر رقمي إلكتروني في العالم
طورت Jean E. Sammet لغة البرمجة FORMAC وهو أول لغة كمبيوتر مستخدمة على نطاق واسع لمعالجة رموز الصيغ الرياضية
كانت ماريسا ماير Marissa Mayer واحدة من أوائل المبرمجين في شركة جوجل
نجد إن تأثير المرأة في مجال البرمجة واضح ولكن مثله مثل عدم اجتذاب معظم الرجال إلى مجال صناعة العطور فإن انخفاض نسبة النساء إلى الرجال المبرمجين في هذا المجال ربما يرجع الأمر إلى عوامل أخرى مثل الضغوط الاجتماعية والاقتصادية ووجهات النظر والاهتمامات المختلفة في الحياة وما إلى ذلك.
يمكنني فقط البدء في كسب المال بمجرد أن أتقن البرمجة
عليك بإلقاء نظرة على معظم الوظائف الشاغرة في مجالات البرمجة المختلفة ويمكنك أن ترى جميع الباحثين عن مبرمجين تقريبًا يطلب إمتيازات مثل عدة سنوات من الخبرة مع الكثير من لغات البرمجة الأخرى، لكن الواقع ليس بهذه القسوة يمكنك دائمًا الحصول على وظيفة برمجة تعادل تجربة برمجتك ولكن لا يمكنك الجلوس والانتظار.
إذا كان مهاراتك المباشرة لا تعمل فإن التدريب الذاتي هو وسيلة مساعدة لاكتساب الخبرة في العمل والتقدم للحصول على فرصة للتوظيف الدائم ولكن عليك أن تعتني بمحفظة عملك مع واجهات عرض رائعة تبين قدراتك حيث يريد معظم القائمون على المقابلات التحقق من ذلك، لذلك فإن السمعة الجيدة تساعد لذلك ابدأ مشروع مفتوح المصدر اليوم.
كما أن العمل الحر Freelance هو أيضًا مكان رائع للبدء لأن معظم العملاء هنا أكثر تسامحًا فقط احذر العملاء المخادعين في كلتا الحالتين هناك دائمًا مجال للنقاش ويجب أن يبدأ الجميع في مكان ما ولكن يجب عليك القيام بشيء ما.
وأخيرًا:
مرحبًا بك في عالم البرمجة، البرمجة هي مثل أي مجال مهني أخر حيث العمل الجاد والتصميم هي أصولك للنجاح، لذا مع إزالة كل هذه الشكوك والخرافات والأساطير لما لا تبدأ بإتخاذ خطوتك الأولى والبدء لتعلم أول درس في البرمجة اليوم.