أزاى تبدأ تتعلم برمجة ؟ الجزأ التانى

ده الجزأ التانى من 3 مواضيع عن أزاى تبدأ برمجة , ممكن تقرأ الجزأ الأول من هنا

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


هل فعلا ممكن أكون مبرمج ؟

لازم الأول تحدد يعنى أيه مبرمج , هل تعريفك للمبرمج هو الشخص الى بيشتغل فى الشركات التقنية زيى جوجل و مايكروسوفت و ابل و غيرهم أم تعريفك له انه الشخص الى بيعرف أساسيات لغة برمجية زيى الجافاسكربت أو بايثون . تعريف المبرمج بالنسبة لى و بالنسبة للأغلبية هو الشخص القادر على حل المشاكل التقنية أو القادر على أبتكار تكنولوجيا جديدة بأستخدام البرمجة , مثلا عندك فكرة جديدة خاصة ببيع منتجات معينة أونلاين و عملت موقع او برنامج على الموبايل يخدم الفكرة ديه فأنت فعلا مبرمج و غالبا قبل ما توصل للمرحلة ديه فأنت هتكون مبرمج لأن علشان توصل لمرحلة البناء الكاملة ديه هتكون عديت على مراحل كتير خلتك تكون مبرمج من غير ما تكون عرفت كده فعلا . أجابة السؤال هو بالتأكيد و من غير أى شك ممكن تكون مبرمج لكنه طريق صعب و طويل , لكن فيه شىء أكيد وهو انه سنة 2020 على حسب بعض الأحصائيات فان عدد الوظائف الى هتكون متاحة ومطلوبة فى مجال البرمجة أكثر من 3 اضعاف خريجى كليات علوم الحاسب الالى . الأحصائية ديه غالبا خاصة بأمريكا لكن بشكل عام هى مقبولة على مستوى العالم كله ففعلا الأعداد المطلوبة لوظيفة مبرمج هتكون أكبر من أعداد متخرجى كلية علوم الحاسب الالى . لكن فى النهاية هل فعلا وظيفة داخل شركة هى السبيل الوحيد ؟ ممكن تكون مستقل , ممكن تبنى شركة ناشئة خاصة بيك او حتى تبدأ بانك تبنى فكرة على شكل موقع او برنامج على الموبايل و تكبره . البرمجة بتديلك قوة كبيرة جدا ممكن تستغلها فى حاجات كتير


ليه تعلم الأساسيات أسهل كثيرا من البناء ؟

لو حبيت تتعلم برمجة كفاية تكتب فى جوجل تعلم برمجة أو تكتب 
LEARN TO CODE
و تشوف المصادر الى باللغة الانجليزية و تقريبا هتلاقى 654 مليون نتيجة بحث و منهم فعلا مئات المواقع المحترمة جدا و الى هتساعدك فعلا تتعلم اساسيات لغات البرمجة . المواقع ديه أو الفيديوهات التعليمية بتاخد بأيدك خطوة بخطوة فى كل حرف بيعلمهولك كانك طفل صغير لسه بيمشى أول خطواته و والده ماسك أيده , وأنت بتتعلم غالبا هيجيلك أحساس ان البرمجة سهلة و أنك خلاص فهمت كل الاساسيات و انه بعد الكورس الى بتشوفه أو الدرس الى متابعه هتقدر تبنى فعلا موقع أو برنامج أو لعبة على حسب أهتمامك و بيخلص الكورس و تبدأ لوحدك تماما تبنى لكن مابتعرفش كأن فجأه انت لاقيت نفسك فى صحرا محدش هيقولك الحل أيه محدش هيساعدك أوهيقولك تعمل ايه كل حاجه من النقطة ديه هتبنيها لوحدك و فى اللحظة ديه البعض بيجلهم أحساس يأس و البعض بيظن ان البرمجة فى النهاية صعبة و انه مش هيوصل لنهاية الطريق ده و ان ده كله كان مجرد وهم . لكن هل ده فى النهاية وهم فعلا ؟

هناك أحتمال اخر لتتويج مسعانا بغير الهزيمة , مادمنا قررنا أننا لن نموت قبل ان نحاول أن نحيا 
رضوى عاشور

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


تعليم نفسك بنفسك مش طريق سهل

ده مش سؤال , ده نصيحة من واقع خبرة بسيطة . أنا بقالى سنتين و نص فى الطريق ده انى بعلم نفسى أونلاين البرمجة . انك تعلم نفسك بالتأكيد هو طريق صعب جدا . لما بتكون فى الجامعة بيكون فيه مسار تعليمى متحدد ليك فى كل سنواتك داخل الجامعة و كل مادة متحدد كتابها وموضوعها و كل شىء , انت مش هتختار أى شىء و فى بعض الكليات لازم تحضر و فى تطبيق مستمر و امتحانات باستمرار , لكن التعليم الاونلاين مختلف شوية لان انت الى بتختار كل شىء , بتختار انت هتدرس ايه و تدرسه منين و هتذاكره أمتى بجانب أنك ممكن تبدأ كورس و ماتكملوش و تبدا واحد غيره او تختار كورس و ماتبداش فيه اصلا وتفضل تاخد كورسات و ماتبداش فيها لكنها محفوظة عندك و ديه ابشع حاجه ممكن تعملها فى حق نفسك و بعد سنة أو اتنين هتلاقى عندك 100 كورس مابدأتش ولا أنجزت أى كورس فيهم . فكرة عدم الالتزام و التأجيل رغم انها بتديلك حرية كبيرة جدا لكنها فى الغالب هتبعدك تماما عن أى أنجاز . ماتختارش كورس وتأجله , أبدأ فيه مباشرة و ماتخترش كورس الا لو كنت متحمس له , لو كورس مش متحمس له هتلاقى صعوبة كبيرة جدا انك تكمل فى الطريق ده , طريق تعليم نفسك أونلاين لوحده صعب جدا ولو ماكنتش متحمس للشىء الى انت بتدرسه هيكون مستحيل عليك تكمل . الحاجه التانية هو انك عموما ماتشغلش بالك غير بالمهم بالنسبة لك , عالم البرمجة بيتغير باستمرار و كل يوم فيه جديد و ممكن فى اثناء بحثك عن شىء معين تلاقى ناس بتشتم اللغة الى بتدرسها او شيفاها خلاص هتموت و مالهاش أهميه و ناس تانية بتمدح تكنولوجيا جديده لسه ظاهرة أمبارح , ده كله تشتيت هيضيع مجهود و طاقة منك , مش مطلوب منك انك تعرف كل لغات البرمجة لكن مطلوب انك تكون كويس جدا فى الى تعرفه و مش مطلوب منك انك تكون ممتاز فى كل تكنولوجيا جديده تظهر لكن خليك مطلع على أى جديد . أدخل كورس انت مهتم بيه و كمله أفضل من انك تدخل 100 كورس ماتكملش أى حاجه فيهم , أبدأ كتاب و خلصه لو عجبك و ماتأجلوش علشان فيه صور جديده لأصحابك على انستجرام او الفيس فأنت تدخل تضيع من حياتك 4 ساعات يوميا فى لا شىء غير حديث نفسك مع نفسك و مقارنة بينك و بين حياة أصحابك المثالية الى بتشوفها فى الصور و مش عارف حياتهم فيها أيه أصلا, مواقع التواصل الاجتماعى فعلا مهمه لو حطيتها فى مكانها الصح انها تساعدك تنجز شىء مش انها تكون هى الحياة , بعدنا شوية عن النقطة الاساسية المهم أنه فى النهاية تكون أنجزت تكون خلصت كورس و عرفت تستخدم لغة جديده او تكون قريت كتاب أو تكون أنجزت أى شىء انت بدأته . أنهى البدايات فده السبيل الوحيد للتقدم .و لازم تتقبل انك مش هتاخد كل الكورسات الموجوده عن البرمجة او عن لغة معينة اخترتها ولا مطلوب منك انك تاخد كل الكورسات او كورسات كتير فى حاجه معينة . أنا مريت بالطريق ده و كنت بدرس لغة برمجة أسمها البايثون و فى فترة ما كنت بحفظ أى كورس خاص بالبايثون لكن الحقيقة ان كورس واحد جيد كافى جدا ولوكورسين هيبقى كويس جدا لكن أكتر من كده فأنت هتكون بتلف فى دايرة من تعلم الاساسيات من غير اى تقدم فعلى . أختار بعناية , خد وقتك فى التخطيط و خد وقتك فى الاختيار و لما تلاقى شىء متحمس له ابدأ فيه و ماتدخلش حاجه جديده غير لما تخلصها و تكون بنيت اثناء دراستك بعض المشاريع ولو حاجات صغيرة جدا ولو مجرد كود من 5 اسطر برمجية .
تعلم البرمجة بالتأكيد طريق طويل لازم تمشى فيه كله مفيش طريق مختصر , اليوم 24 ساعة ولازم هتعدى عليك ال 24 ساعة مش هتختصره ل 14 ساعه ممكن تنام طول اليوم او تنجز أى شىء فيه لكن عدد الساعات واحد ,هتمر عليك فترات تحس ان البرمجة حاجه سهلة و فترات تحس انك مستحيل تتعلم برمجة وان كل الكورسات الموجوده وهم , أستمرو أتغلب على الأحساس ده , أنا كنت فى الطريق ده وأحيانا بيجيلى الاحساس ده حتى بعد ما بنيت أول موقع ليا وهو عباره عن موقع شخصى بسيط ممكن تزوره من هنا
أنا بكره بعض عبارات التنمية البشرية المستهلكة و الى بقت بتتقال على الفاضى و المليان على أى شىء لكن لو جربت و فشلت مرة واتنين و قررت تيأس أو تحبط هل هتنجح و هتوصل للى انت عاوزه ؟
بشكل أكيد لا لان رغم احتمالات الهزيمة والاحباط و اليأس فان أحتمالات وصولك للشىء الى انت عاوزه قائمة فقط لو قررت انك تفضل تحاول و تحاول 
مش لازم تمشى فى الطريق ده لوحدك , ممكن تبعتلى مسج على الفيس او لينكد ان او الميل و هحط لينكان الاكونتات بتاعتى فى الاخر او لو تعرف حد عاوز يتعلم برمجة زيك ساعدوا بعض و ديه تأثيرها قوى جدا لو لو فيه حد عارفه بيشتغل مبرمج او علم نفسه برمجة ممكن يكون مستشار/ ناصح / مرشد ليك و ده هيسهل عليك كتير جدا .