16

بماذا تنصحني لأصل لمستوى احترافي بالبرمجة ؟

بدأت تعلم البرمجة ولكن من البداية، التحقت بدورة علوم الحاسوب بأكاديمية حسوب، لم أنجز الكثير من الدورة، لكن أصبحت متخوفة، وهذه مخاوفي:

ليس لدي أي خلفية فعليا عن هذا المجال، فأصبحت مترددة حيال صعوبته، ولكن ما زال لدي الرغبة في التعلم.

أخشى بعد الانتهاء ألا أستطيع إنشاء تطبيق أو أعمل على أكواد، وكيف سأتعامل معها؟

هل الأمر يحتاج للحفظ كثيرا؟ خاصة أني ليس لدي هذه المهارة؟

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

وأين تضعني هذه الدورة في طريق تعلم البرمجة؟


1- في البداية يجب ان تعلم ان البرمجة هي وسيلة وليست غاية في حد ذاتها. البرمجة قد تكون اداه لانشاء برامج الويب او سطح المكتب ولكن قد يكون البرنامج المستهدف متخصص في التعلم "e-learning" او علم البيانات"Data science" او المعلومات البيولوجية "Bioinformatics" او البرمجة المدمجة "embedded programming" او برمجة الالعاب "Game programming" . لذلك من المهم للغاية معرفة وظيفة البرامج التي تهتم بإنشائها منذ البداية لعدم تضيع الوقت والمجهود. فمثلا بالرغم من ان لغة ال C و ال ++C هي لغات مهمة لكن لاداعي لتعلمها في البداية اذا كنت مثلا مهتم ببرامج الويب ولكن تصبح مثلا لغة ال ++C وال #C مهمة جدا اذا كنت تهدف لتعلم برمجة الالعاب ولكن بشكل عام لغة ال ++C معقدة الى حد ما ولاينصح بتعلمها في البداية لانك لن تشعر بوجود انتاجية الا بعد وقت طويل من الممارسة الا اذا كنت تهتم كما ذكرت ببرمجة الالعاب او البرمجة المدمجة وفي هذه الحالة لايمكن تجنب ال ++C لوقت طويل . اما اذا كان هدفك علم البيانات فتأتي ال Python و R في المقام الاول في الاهمية.

2- في حالة عدم تحديد الهدف العام لتخصصك البرمجي يمكنك البدء بلغة Python 3 لانها ذات شعبية واسعة وسهلة التعلم وتستخدم في الكثير من البرامج " تطبيقات الويب "على الخادم back end" من خلال "python Django, Python Flask, Python Tornado Frameworks" - علم البيانات ويشمل الذكاء الاصطناعي و التحليل الاحصائي من خلال "Python Scikitlearn, python Pandas, python Numpy" - الاسكربت وهو مهم لعمل المهام الممله والمتكرره بسرعة مثل "Server optimization" - برامج سطح المكتب من خلال "Python pyQt". والكثير الكثير من التطبيقات. وذلك هو السبب الرئيس وراء شعبية بايثون. ولكن في نفس الوقت يجب تعلم اللغة الاساسية بدون تخصص ومن ثم تحديد الهدف المطلوب من البرمجة.

بعد تحديد الهدف سيتضح لك ما اذا كنت بحاجة للغات اخرى . ففي حالة برامج الويب يجب تعلم ال Javascript و SQL و ال HTML و CSS بالاضافة لل Python وهذا يوضح مدى خطورة البدأ في تعلم البرمجة بدون معرفة الهدف. تخيل بعد معرفة هدفك البرمجي سوف تكون مضطرا لكي تتعلم ثلاث لغات اضافية .

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

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

5- احتراف البرمجة ليس بالشئ السهل ولكن يعتبر المحفز الرئيس والضامن للتعلم هو الاهتمام او بشكل اكثر وضوحا ، الحب الجم للبرمجة والصبر على التعلم. في حالة عدم وجود الحافز فالنصيحة بالتأكيد هي عدم الاستمرار.