You are on page 1of 33

‫‪https://www.facebook.

com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪1‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫ﺗﻢ‬
‫اﻟﺘ‬
‫ﺤﻤ‬
‫ﯿﻞ‬
‫ﻣﻦ‬
‫ﻣﻮﻗ‬
‫ﻊ اﻟ‬
‫ﺠﺎﻧ‬
‫ﺐا‬
‫ﻟﻤﺒ‬
‫ﺪع‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪2‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫ﺗﻢ‬
‫اﻟﺘ‬
‫ﺤﻤ‬
‫ﯿﻞ‬
‫ﻣﻦ‬
‫ﻣﻮﻗ‬
‫ﻊ اﻟ‬

‫إعداد‬
‫ﺠﺎﻧ‬

‫وجدي عصام عبد الرحيم‬


‫ﺐا‬

‫‪wajdyessam@hotmail.com‬‬
‫‪@WajdyEssam‬‬
‫ﻟﻤﺒ‬
‫ﺪع‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪3‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫محتويات الكتاب‬
‫ُمقدمة‪4 .................................................................................................................................................................‬‬
‫الفصل األول‪ :‬طريقة التعلم ‪6 .................................................................... Learning Path‬‬
‫‪ -1‬األساسيات ‪7 .................................................................................................................:Fundamentals‬‬
‫‪ -2‬المعلومات ‪8 ...................................................................................................................... Information‬‬
‫‪ -3‬اكتساب المهارات ‪9 ........................................................................................................................ Skills‬‬
‫خالصة للفرق بين األساسيات والمعلومات والمهارات‪11 ............................................................. :‬‬
‫‪ -4‬مسار اإلبداع واالبتكار ‪11 .................................................................................................. :Innovation‬‬
‫الفصل الثاني‪ :‬قيمة وصالحية ما سوف تتعلمه ‪11 .............................................................‬‬

‫ﺗﻢ‬
‫ً‬
‫أوال‪ :‬ضريبة التعلم عند تحديدك لما تريد أن تتعلمه ‪11 ..........................................................................‬‬

‫اﻟﺘ‬
‫ﺤﻤ‬
‫ً‬
‫ثانيا‪ :‬قيمة المعلومات مع الوقت ‪17 ......................................................................................................‬‬
‫الفصل الثالث‪ :‬كيف يتعلم المبرمج بشكل ذاتي؟ ‪19 ...........................................................‬‬

‫ﯿﻞ‬
‫الجامعات‪19 .............................................................................................................................................:‬‬
‫ﻣﻦ‬
‫‪ -1‬من أين تحصل على المنهج المتسلسل ‪Curation‬؟ ‪22 .........................................................................‬‬
‫ﻣﻮﻗ‬

‫الكتب‪22 ...................................................................................................................................................:‬‬
‫مواقع الكورسات على االنترنت‪23 ......................................................................................................:‬‬
‫ﻊ اﻟ‬

‫مواقع الجامعات‪23 ............................................................................................................................... :‬‬


‫ﺠﺎﻧ‬

‫‪ -2‬من أين تحصل على المعرفة ‪ Knowledge‬سواء األساسيات او المعلومات؟ ‪23 ...........................‬‬
‫ﺐا‬

‫الكتب‪23 ...................................................................................................................................................:‬‬
‫الكورسات والفيديو‪24 .......................................................................................................................... :‬‬
‫ﻟﻤﺒ‬

‫المواقع والمدونات والبحث‪24 ............................................................................................................ :‬‬


‫ﺪع‬

‫‪ -3‬من أين تحصل على المهارات؟ ‪24 ...........................................................................................................‬‬


‫‪ -4‬من أين تحصل على الدعم واالنضباط ‪21 ................................................................................................‬‬
‫‪ -1‬من اين تحصل على الخبرة؟ ‪26 .................................................................................................................‬‬
‫‪ -6‬من أين تحصل على الشهادات التقنية؟ ‪26 ............................................................................................‬‬
‫الفصل الرابع‪ :‬أريد أن أتعلم كيف أبدأ؟ ‪27 ..........................................................................................‬‬
‫كيف تتعلم األساسيات؟‪28 ....................................................................................................................‬‬
‫كيف تجد المعلومات؟ ‪29 .......................................................................................................................‬‬
‫كيف تكتسب المهارات؟ ‪31 ...................................................................................................................‬‬
‫ً‬
‫خبيرا؟ ‪31 ................................................................................................................................‬‬ ‫كيف تصبح‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪4‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫‪F‬‬
‫ُمقدمة‬
‫نعيش اليوم في عالم تتوفر فيه المعلومات في كل مكان بعدة أشكال‬
‫(مقاالت‪ ،‬دروس‪ ،‬كتب‪ ،‬دورات تعليمية) وأصبح الوصول اليها غير مكلف وفي وقت‬
‫سريع‪ ،‬فبمجرد بحث بسيط تستطيع الوصول الى ماليين من المعلومات‪ ،‬سواء كان‬

‫ﺗﻢ‬
‫لديك سؤال وتبحث عن إجابة أو مشكلة برمجية تحتاج لحل‪ ،‬أو طريقة إلعداد برنامج ما‬

‫اﻟﺘ‬
‫أو حتى تريد الحصول على خدمات من مواقع العمل الحر فكل ذلك يمكن الوصول اليه‬

‫ﺤﻤ‬
‫بدون تكلفة أو بتكلفة بسيطة في غالب األحيان‪.‬‬

‫ﯿﻞ‬
‫ليس هذا فقط‪ ،‬بل حتى األدوات ‪ Tools‬والبرمجيات أصبحت كذلك رخيصة أو‬
‫ﻣﻦ‬
‫مجانية وهناك الخيارات البديلة للبرمجيات المغلقة المدفوعة في عالم ال ‪Open‬‬
‫‪ Source‬وقد يكون بعضها مساو أو أفضل من المدفوعة‪ .‬وحتى األجهزة والمعالجات‬
‫ﻣﻮﻗ‬

‫‪ Hardware‬أصبحت أقل تكلفة وأكثر مقدرة‪ ،‬بعكس ما كان عليه قبل سنوات حيث‬
‫ﻊ اﻟ‬

‫كانت المراجع شحيحة والمعلومات غير متوفرة بسهولة واألجهزة الجيدة يصعب‬
‫ﺠﺎﻧ‬

‫امتالكها‪.‬‬
‫ﺐا‬

‫" فإذا كانت المعرفة والمعلومات واألدوات رخيصة فالمتبقي هو المهارات ‪" Skills‬‬
‫ﻟﻤﺒ‬

‫المجتمع لم يبقى مجتمع معرفي ‪ knowledge Based Society‬بل أصبح قائم‬


‫ﺪع‬

‫على المهارات ‪ Skill Based Society‬فالمعرفة موجودة في كل مكان حولنا‪ ،‬وفي‬


‫السابق أي درجة علمية من الجامعة كانت تكفي لكي تحصل على وظيفة مرموقة‪،‬‬
‫أما االن ال فال أحد يهتم بما تعرف ومن أين حصلت على شهادتك‪ ،‬بل بما تستطيع عمله‬
‫ً‬
‫كافيا بل معرفة كيفية استخدامها‬ ‫"مهاراتك ‪ ."Your Skills‬فامتالك المعرفة ليس‬
‫سواء كانت هي معرفتك أو معرفة غيرك فهو األهم‪.‬‬
‫في هذا الكتيب سوف نركز على موضوع التعليم وعلى المهارات واكتسابها‪،‬‬
‫وتعرف كيف تستخدم معرفتك أو معرفة غيرك‪ ،‬وسوف نحاول أن نغير نظرتك في‬
‫كيفية تعلم التقنيات واختيار الطريقة المناسبة في التعلم باإلضافة الى تحفيزك لبناء‬
‫خطة تعلم تتناسب معك وتستطيع من خاللها تحقيق كل اهدافك التي ترغب بها‪.‬‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪5‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫ً‬
‫مليا في أخر تقنية (لغة برمجة‪ ،‬إطار عمل ‪...Framework‬‬ ‫قبل أن نبدأ عليك التفكر‬
‫الخ) تعلمتها ولماذا تعلمتها؟‬
‫وقم باإلجابة على هذه األسئلة قبل االنتقال لما يلي‪:‬‬
‫ً‬
‫مليا بأنه هل سيفيدك تعلم‬ ‫هل استحقت منك ذلك التعب والمجهود (هل فكرت‬ ‫‪‬‬
‫هذه التقنية واستثمار الوقت فيها)؟‬
‫هل كان تعلمك بناء على خطة ‪ Strategy‬واضحة المعالم أم أنها كانت بشكل‬ ‫‪‬‬
‫عشوائي من أي مصدر تجده أمامك سواء كتاب أو موقع او كورس وتأخذ من هنا‬
‫وهناك‬

‫ﺗﻢ‬
‫هل وصلت للمرحلة التي تمنيت الوصول اليها (مبتدئ‪ ،‬متوسط‪ ،‬خبير)؟ أم فقط‬ ‫‪‬‬

‫اﻟﺘ‬
‫قمت بالدراسة بدون أي هدف محدد وتوقفت فور ما شعرت بالملل؟‬

‫ﺤﻤ‬
‫هل هناك مخرج ‪ Output‬لما قمت بتعلمه كمشروع قمت بتطبيق ما تعلمته من‬ ‫‪‬‬

‫ﯿﻞ‬
‫خالله‬
‫ﻣﻦ‬
‫هذا الكتيب هو خالصة للكورس ‪Learning Technology in the Information‬‬
‫ﻣﻮﻗ‬

‫‪ Age‬من موقع ‪ pluralsight‬وهو موقع يحتوي على كورسات صغيرة من خبراء في‬
‫التقنية‬
‫ﻊ اﻟ‬
‫ﺠﺎﻧ‬
‫ﺐا‬
‫ﻟﻤﺒ‬
‫ﺪع‬

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

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪6‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫الفصل األول‪ :‬طريقة التعلم ‪Learning Path‬‬

‫الطريقة التقليدية التي نعرفها عند تعلم أي موضوع وهي أن هناك مستويات‬
‫في ذلك الموضوع‪ ،‬وستجد أن رحلة التعلم تبدأ من المستوى المبتدئ الى المستوى‬
‫ً‬
‫شيئا في‬ ‫ً‬
‫وأخيرا الى مستوى الخبير‪ ،‬فتبدأ من أول نقطة وانت ال تعرف‬ ‫المتوسط‬
‫المجال وتنتقل مع الوقت الى ان تصل لمرحلة الخبير‪.‬‬

‫ﺗﻢ‬
‫لكن التقنية في تطور مستمر وهي لن تتوقف‬

‫اﻟﺘ‬
‫وستجد أن نقطة النهاية تتباعد كلما قاربت منها‪ ،‬وحتى‬

‫ﺤﻤ‬
‫ً‬
‫مستقيما‪،‬‬ ‫لو كانت الرحلة لها نهاية فلن يكون المسار‬

‫ﯿﻞ‬
‫شيئا بطريقة خاطئة أو تواجهك العديد من‬ ‫ً‬ ‫فقد تتعلم‬
‫ﻣﻦ‬
‫المصاعب خالل تعلمك لها‪ ،‬لذلك النظرة أن التعلم عبارة‬
‫ﻣﻮﻗ‬

‫عن رحلة لها بداية ونهاية كانت تصلح في الماضي ولكن‬


‫األن فهي ال تنفع في هذا العصر‪ ،‬عصر المعلومات‬
‫ﻊ اﻟ‬

‫‪.Information Age‬‬
‫ﺠﺎﻧ‬
‫ﺐا‬

‫لذلك يجب أن تنظر الى التعلم على أنه عبارة عن ‪ 4‬مسارات مختلفة‪ ،‬كل منها له‬
‫ﻟﻤﺒ‬

‫دوره الحيوي‪:‬‬
‫ﺪع‬

‫‪ )1‬األساسيات ‪Fundamentals‬‬

‫‪ )2‬المعلومات ‪Information‬‬

‫‪ )3‬المهارات ‪Skills‬‬

‫‪ )4‬االبداع واالبتكار ‪Innovation‬‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪7‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫هذه المسارات المختلفة سوف تسهل علينا فهم طريقة التعلم بشكل أفضل‬
‫وتعرف خصائص وأنواع المعرفة المختلفة‪.‬‬
‫‪ )1‬األساسيات ‪:Fundamentals‬‬
‫ً‬
‫مثال تريد أن تتعلم‬ ‫وهنا سوف تتعلم األساسيات في التقنية التي تريد تعلمها‬
‫البرمجة وتود أن تصبح مبرمج فسوف تتعلم المصفوفات وأنواع البيانات ‪Data Types‬‬
‫ً‬
‫مثال تريد تعلم‬ ‫وتمثيلها ومفاهيم الـ ‪ OOP‬وغيرها من األساسيات في ذلك المجال‪،‬‬
‫ً‬
‫مثال‬ ‫إدارة وبرمجة الشبكات هنا سوف تتعلم بروتوكوالت الشبكة وتتعلم األساسيات‬
‫‪ DNS، UDP،TCP‬والخ‪ ...‬وتتعلم المصطلحات في ذلك المجال‪.‬‬

‫ﺗﻢ‬
‫هناك ميزتين في األساسيات والتي تستطيع من خاللها تصنيف أي معلومة تجدها‬

‫اﻟﺘ‬
‫هل من األساسيات أم ال‪:‬‬

‫ﺤﻤ‬
‫ﯿﻞ‬
‫األساسيات تطبق على العديد من األمور المتعلقة ‪ Widely Applicable‬وال تختص‬
‫ﻣﻦ‬ ‫‪‬‬
‫ً‬
‫مثال بروتكوالت الشبكات تطبق‬ ‫بتقنية أو برنامج أو حتى ‪ Implementation‬معين‬
‫على أي ‪ Hardware‬للشبكة‪ ،‬وكذلك ال ‪ OOP‬تطبق ألي لغة تعمل بهذا المفهوم‪.‬‬
‫ﻣﻮﻗ‬
‫ﻊ اﻟ‬

‫ً‬
‫نادرا ما تكون عديمة الفائدة وليس لها وقت صالحية تنتهي فيه وهي‬ ‫األساسيات‬ ‫‪‬‬
‫ً‬
‫حصرا على تقنية‬ ‫تكون حجر األساس ‪ Foundation‬للمعلومات األخرى التي تكون‬
‫ﺠﺎﻧ‬

‫معينة أو ‪ Implementation‬معين‪.‬‬
‫ﺐا‬
‫ﻟﻤﺒ‬

‫مالحظة‪ :‬مرحلة تعلم األساسيات‬


‫ﺪع‬

‫هي ليست مرحلة للمبتدئين كما قد‬


‫يظن البعض‪ ،‬لكن يمكنك ان تنظر‬
‫اليها على انها تبدأ من ابسط‬
‫األساسيات الى اعقد األساسيات‬
‫والتي يصعب تعلمها حتى على المتقدمين‪.‬‬

‫ً‬
‫جيدا من عدة‬ ‫وفي الغالب تحتاج األساسيات ان تتعلمها في ‪ 3‬مرات حتى تفهمها‬
‫مصادر مختلفة وسوف تكون معك لألبد‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪8‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫‪ )2‬المعلومات ‪Information‬‬
‫لكي تعمل في مجال التقنية والبرمجة عليك بمعرفة المعلومات العامة األساسية‬
‫‪ Fundamentals‬باإلضافة الى المعلومات التي تختص بتقنية معينة أو المنتج المعين‪،‬‬
‫وهذه المعلومات المتعلقة بشيء معين سنسميها مرحلة المعلومات ‪Information‬‬
‫(فقط المهم أن تفرق بين هذه المعلومات واألساسيات ‪ Fundamentals‬بغض النظر‬
‫عن األسماء)‪.‬‬
‫فاألساسيات تغطي ما هو الروترات ‪ Routers‬وماذا تفعل أما مرحلة المعلومات‬
‫سوف تعطيك كافة المعلومات حول نوع معين منه وخصائصه وكيف تتعامل معه‪،‬‬

‫ﺗﻢ‬
‫في البرمجة األساسيات سوف تعلمك ما هو ال ‪ integer‬وكيف يخزن وتتعامل معه‪،‬‬

‫اﻟﺘ‬
‫في مرحلة اكتساب المعلومات سوف تقوم بمعرفة كيف تتعامل معه في سي‪#‬‬

‫ﺤﻤ‬
‫ومجال االعداد المسموح بها في هذه اللغة‪ ،‬وكل ما تتقدم في التعلم في معلومات‬

‫ﯿﻞ‬
‫ً‬
‫مثال ال ‪ Boxing‬وال ‪ Unboxing‬أو استخدام ال‬ ‫اللغة سوف تتعلم األمور أكثر صعوبة‬
‫ﻣﻦ‬
‫‪ Reflection‬والخ‪.‬‬
‫ﻣﻮﻗ‬
‫ﻊ اﻟ‬
‫ﺠﺎﻧ‬

‫ً‬
‫اوال قبل أن تستخدم أو‬ ‫المنطق يقول تعلم األساسيات‬
‫ﺐا‬

‫تفهم أي معلومات حصرية لمنتج أو تقنية معينة‪ ،‬وفي‬


‫ﻟﻤﺒ‬

‫الكثير من األحيان قد تجد شخص لديه معلومات كثيرة حول‬


‫ﺪع‬

‫موضوع ولكن بدون اساسيات جيدة حوله‪ ،‬وهذا الخلل قد‬


‫يجعل الشخص يقدم حلول ليست مناسبة وبعض االحيان‬
‫تجعله يجرب في الحلول الى ان يصدف الحل معه بدون‬
‫معرفة كيف تم حل هذه المشكلة وما هو السبب من‬
‫ورائها‪.‬‬
‫مثال‪ :‬مبرمج ال يعرف الفرق بين تخزين الرقم ‪ 4‬في متغير ‪ Integer‬مع تخزين الحرف‬
‫”‪ “4‬في متغير ‪ character‬ويظن أنهم نفس القيمة‪ .‬مثال أخر مبرمج يريد تحويل صورة‬
‫الى ‪ string‬وقام بأخذ ال‪ Bytes‬لها واستخدم ‪ Text Encoding‬مثل ‪ UTF-8‬لكي‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪9‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫يقوم بعملية التحويل ‪ ،UTF-8 Decoding‬والصواب استخدام ‪Base64 Encoding‬‬


‫للملفات الثنائية ‪( Binary‬اقرأ المزيد حول الموضوع)‬
‫وقد يكون السبب للخطأ في هذه األمور هي عدم معرفته للفرق بين الرقم‬
‫‪ Number‬وتمثيله كحرف ‪ ،text representation‬وهذا يعني أنه ال يفهم موضوع ال‬
‫ً‬
‫وايضا عدم فهم ال ‪ character encoding‬وهذه‬ ‫ً‬
‫جيدا والتحويالت بينهم‪،‬‬ ‫‪data types‬‬
‫اساسيات يجب امتالكها قبل ان تمتلك المعلومة‬
‫" المعرفة القوية لألساسيات ‪ Fundamentals‬تعطيك نقاط قوة كثيرة وتسهل لك‬
‫ً‬
‫كثيرا في فهم أي ‪ Implementation‬أخر بسهولة "‪.‬‬

‫ﺗﻢ‬
‫الناس الذين يذهبوا للمعلومات مباشرة قبل األساسيات قد يستطيعوا العمل ولكن‬

‫اﻟﺘ‬
‫سوف تكون هناك حفر كثيرة في معرفتهم‪ ،‬ولسوء الحظ أغلب الدورات والدروس –‬

‫ﺤﻤ‬
‫ً‬
‫خصوصا العربية منها‪-‬تكون حول تعلم المعلومات ‪ Information‬لتقنية معينة أو لغة‬

‫ﯿﻞ‬
‫معينة‪ ،‬والمبتدئين الذين يدرسوا هذه الدورات سوف يكون لديهم خلل كثير في‬
‫ﻣﻦ‬
‫األساسيات وقد ال يعرفوا ما الذي ينقصهم‬
‫ﻣﻮﻗ‬
‫ﻊ اﻟ‬
‫ﺠﺎﻧ‬

‫من خصائص المعلومات والتي تستطيع التفرقة بينها وبين االساسيات هي انها‪:‬‬
‫ﺐا‬

‫ً‬
‫مثال معرفتك بكيفية إدارة نوع معين‬ ‫تنتهي صالحيتها بسرعه ‪:become obsolete‬‬ ‫‪‬‬
‫ً‬
‫مثال ‪ IIS 6‬قد تذهب بمجرد تغيير البرنامج لطريقة عمله بعد التحديثات‬ ‫من البرامج‬
‫ﻟﻤﺒ‬

‫وصدور نسخ جديدة مختلفة عن السابق‪ ،‬وهكذا في البرمجة أو في الشبكات‪،‬‬


‫ﺪع‬

‫ولذلك يجب أن تتعلم هذه المعلومات فقط عندما تحتاجها وليس أن تتعلم هذه‬
‫المعلومات على أمل انها قد تفيدك في يوم من األيام وأنت تعرف أن وقت‬
‫صالحيتها قد ينتهي‪.‬‬

‫‪ )3‬اكتساب المهارات ‪Skills‬‬


‫هل واجهت مبرمج يعرف الكثير من األمور النظرية ولكن ال يستطيع فعل أي شيء‬
‫على ارض الواقع‪ ،‬تعلم فعل األشياء هو ما هو يوجد في هذا المسار وهو ما يجب أن‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪10‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫ً‬
‫مجانا وسهل الحصول عليها ولذلك‬ ‫يشد انتباهك‪ ،‬ألن المعلومات واالساسيات متوفرة‬
‫فسوف تزيد قيمة المهارات وهذا هو الحاصل االن‪.‬‬
‫في أغلب األحيان المهارات هي التي تزيد من قيمتك وتدر عليك الــدخـل الـجـيــد‬
‫‪ Generate Income‬فالشركات تدفع لك لكي تقوم باألشياء ولـيـس لـمـعـرفـتـك‬
‫باألشياء‪ .‬وكلما تتقدم خبرتك‬
‫سوف‬ ‫المهارات‪،‬‬ ‫في‬
‫تستطيع تقديم حلول بسرعه‬
‫بدون أخطاء وأكثر كفائه من‬

‫ﺗﻢ‬
‫الشخص المبتدئ‪.‬‬

‫اﻟﺘ‬
‫ﺤﻤ‬
‫خالصة للفرق بين األساسيات والمعلومات والمهارات‪:‬‬ ‫‪‬‬
‫ً‬
‫نادرا ما تتغير والتي‬
‫ﯿﻞ‬
‫‪ ‬األساسيات ‪ :Fundamentals‬هي األساسيات في المجال التي‬
‫ﻣﻦ‬
‫تسهل لك وتمهد لك فهم المعلومات المتخصصة‪.‬‬
‫ﻣﻮﻗ‬

‫‪ ‬المعلومات ‪ :Information‬هي معرفة معينة تستخدمها لحل المشاكل‪.‬‬


‫ﻊ اﻟ‬

‫‪ ‬المهارات ‪ :Skills‬إمكانية استخدام معرفتك في حل المشاكل‪.‬‬


‫ﺠﺎﻧ‬
‫ﺐا‬

‫‪ )4‬مسار اإلبداع واالبتكار ‪:Innovation‬‬


‫ﻟﻤﺒ‬
‫ﺪع‬

‫من المفترض أن نسمى هذه المرحلة باالسم مرحلة الخبرة‪ ،‬ولكن من هو الخبير‪ ،‬هل‬
‫هو الشخص الذي يملك األساسيات الجيدة؟ أو الذي يعرف معلومات كثيرة؟ أو الذي‬
‫لديه مهارات متعددة؟‬
‫بشكل عام في التقنية الخبير هو‪:‬‬
‫الشخص الذي يحل أي مشكلة لها حل ويعرف ما هي المشاكل التي ال توجد لها‬ ‫‪.1‬‬
‫حلول ومعرفة لماذا ال يمكن حلها‪ .‬الخبير هو الذي يستطيع الوصول ‪Access‬‬
‫لألساسيات‪ ،‬المعلومات‪ ،‬المهارات الالزمة للقيام بالمهمة (الوصول كلمة اشمل من‬
‫كلمه "يعرف" أو انه "يستطيع البحث" بحيث إذا لم يجد ما يبحث عنه الخبير فانه‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪11‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫مثال عمل في منصة جديدة واحتاج لبناء ‪ chart‬ولم يجد مكتبة مناسبة‬ ‫ً‬ ‫يقوم بعمله‪،‬‬
‫فسوف يقوم بكتابه ال ‪ charting & graphics‬بنفسه)‪.‬‬
‫الخبير هو الذي يؤلف الكتب والمقاالت ويبدع في انشاء معرفة جديدة‪ ،‬بعباره‬ ‫‪.2‬‬
‫اخرى هو من ينشئ المعرفة ‪ ،Create knowledge‬ويوجد الحلول الجديدة ويقوم‬
‫بكتابة أفضل الممارسات للتقنية أو اللغة‪.‬‬
‫خبيرا في األساسيات أو يمكن أن خــبــيــ ًرا فــي‬
‫ً‬ ‫لذلك الخبير يمكن أن يكون‬
‫خبيرا في الــمــهــارات‪ ،‬ولذلك سوف نحذف مرحلة‬ ‫ً‬ ‫المعلومات أو يمكن أن يكون‬
‫لدينا‬ ‫ويكون‬ ‫االبـداع‬

‫ﺗﻢ‬
‫الـتـعــلـــم عـلـى ‪ 3‬مسارات‬
‫ولكن اخر نقطة في كل‬

‫اﻟﺘ‬
‫ﺤﻤ‬
‫منهم تكون بداية الخبرة‪.‬‬

‫ﯿﻞ‬
‫ﻣﻦ‬
‫ﻣﻮﻗ‬

‫يضا مع الوقت‪ ،‬فالمؤلف ‪Dan‬‬‫مشكلة الخبرة في المجال التقني أنها قد تزول أ ً‬


‫ﻊ اﻟ‬

‫خبيرا في فيجول بيسك ‪ 6‬في ‪ 1991‬ولكنه اآلن‬ ‫ً‬ ‫‪ Appleman‬صاحب الكورس‪ ،‬كان‬
‫ً‬
‫حاليا‪،‬‬ ‫ليس كذلك‪ ،‬وقد ال يهم إذا كانت لديه تلك الخبرة ألنه ال يوجد من يستخدمها‬
‫ﺠﺎﻧ‬

‫حاليا ليس كذلك بل متمرس بها وله معرفة‬‫ً‬ ‫في ‪ 2111‬كان خبير في ‪ VB.NET‬ولكن‬
‫ﺐا‬

‫حاليا خبير في برمجة بلغه ‪ apex‬على منصة‬ ‫ً‬ ‫ً‬


‫خبيرا‪ ،‬وهو‬ ‫كافية بها ولكن ليس‬
‫‪( SalesForce.com‬ولكن لديه معرفة كافية ‪ competent‬في العديد من اللغات‬
‫ﻟﻤﺒ‬

‫والتقنيات والمنصات المختلفة ويستخدمها بشكل يومي)‪.‬‬


‫ﺪع‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪12‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫ً‬
‫كثيرا وللنظر للموضوع بشكل أوضح من منظور‬ ‫لذلك الوصول للخبرة قد ال يفيدك‬
‫الشركات‪:‬‬
‫فاذا كانت لديها أشخاص متمرسين كفاية ويستطيعوا حل المشاكل فلماذا يتم‬
‫جلب الخبير ودفع المزيد من األموال؟ فقط يتم جلب الخبير في حالة لم يكن هناك من‬
‫يستطيع حل المشكلة المعينة‪ ،‬لذلك في الغالب توظف الشركات األشخاص‬
‫المتمرسين الذين لديهم المعرفة والمهارة الكافية طالما انهم يستطيعوا العمل وحل‬
‫ً‬
‫مثال للعمل في أمور‬ ‫المشاكل‪ ،‬ربما فقط في حاالت قليلة يتم جلب خبير للعمل‬
‫أساسية في المشروع أو شيء حساس يحتاج لخبرة كبيرة‪ ،‬وعلى أي حالة لن تحتاج‬

‫ﺗﻢ‬
‫الشركة فريق من الخبراء حتى لو كانت تستطيع ايجادهم‪.‬‬

‫اﻟﺘ‬
‫أ ً‬
‫يضا كونك خبير فقد ال تأخذ عائدا أكبر في بعض األحيان عن الشخص المتمرس‪،‬‬

‫ﺤﻤ‬
‫باإلضافة الى انه عليك العمل بشكل أصعب لكي تحافظ على خبرتك ‪Hard to stay‬‬

‫ﯿﻞ‬
‫‪ ،Expert‬ان تكون خبير هو عمل صعب ‪ Hard Job‬ففهم المعلومات الموجودة‬
‫ﻣﻦ‬
‫ودراستها وتطبيقها أمر سهل بالمقارنة مع عمل التجارب ‪Research & Experiment‬‬
‫واستحداث المعرفة والمعلومات الجديدة والقيام بالبحث والمالحظة‪ ،‬فالوقت الذي‬
‫ﻣﻮﻗ‬

‫ستقضيه للوصول الى الخبرة قد تستطيع فيه ان تتمرس على تقنية أخرى‪.‬‬
‫ﻊ اﻟ‬

‫هناك حاالت قد تود الوصول الى‬


‫ﺠﺎﻧ‬

‫مرحلة الخبرة حتى تعود الى بعائد أفضل‬


‫ﺐا‬

‫ً‬
‫مثال إذا كنت تود ان تصبح مؤلف ‪Author‬‬
‫أو متحدث ‪ Speaker‬أو حتى مستشار‬
‫ﻟﻤﺒ‬

‫‪ Consultant‬فكونك خبير هو وسيلة‬


‫ﺪع‬

‫جيدة لكي تحصل هذه األعمال وبالطبع‬


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

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪13‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫لنطرح مثال على ذلك ونرى كيف يكون عمل المبتدئ ‪ Career‬ودوره حياته‪،‬‬
‫وبعبار ة أخرى الحصول على أكبر فائدة من الجهد الذي سوف تضعه في عملية تعلمك‬
‫للتقنية‬
‫كونك مبتدئا فعليك الوصول لمرحلة االلمام‬
‫الكافي ‪ competent‬وقد تكون لديك اساسيات‬
‫ومعلومات ومهارة قليله‪ ،‬وعليك بإيجاد وظيفة‬
‫كخريج جديد أو تدريب فهناك شركات لديها استعداد‬
‫لذلك وقد يوظفوا شخص بدون المهارات التي‬

‫ﺗﻢ‬
‫يطلبوها ولكن يكون الشخص لديه أشياء أخرى‬
‫يهتموا بها وهذا الشيء يقوموا به خاصه عندما ال تجد الشركة اشخاص ملمين بشكل‬

‫اﻟﺘ‬
‫ﺤﻤ‬
‫كافي فتلجأ لهذا الخيار‬

‫ﯿﻞ‬
‫هناك شركات توظف خريجين جدد ليس لديهم‬
‫ﻣﻦ‬
‫المهارات المطلوبة للعمل ولكن لديهم اساسيات‬
‫قوية على أساس انهم سوف يتعلموا بسرعه وهذا‬
‫ﻣﻮﻗ‬

‫ما تفعله الشركات الكبيرة مثل قوقل‬


‫ﻊ اﻟ‬

‫ومايكروسفت‬
‫ﺠﺎﻧ‬

‫المرحلة األخيرة االلمام الكافي والتمرس‬


‫ﺐا‬

‫‪ competent‬إذا كانت لديك معرفة قوية‬


‫باألساسيات والقدرة على فهم المعلومات بسرعه‬
‫ﻟﻤﺒ‬

‫ومهارات متعددة فأنت تستطيع حل المشاكل‬


‫ﺪع‬

‫بكفائه باستخدام مجموعه متعددة من األدوات‬


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

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪14‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫مبرمج ‪Programmer‬‬ ‫‪.1‬‬


‫مطور برمجيات ‪Software Developer‬‬ ‫‪.2‬‬
‫مهندس برمجيات ‪Software Engineer‬‬ ‫‪.3‬‬
‫معماري أنظمة ‪Software Architecture‬‬ ‫‪.4‬‬
‫عالم حاسب ‪Computer Scientist‬‬ ‫‪.1‬‬
‫هناك فرق بينهم ولكن المشكلة هي عدم وجود تعريف موحد لكل منهم‪ ،‬وكل‬
‫ً‬
‫فمثال في ‪ Google‬تجد أن اللقب المستخدم‬ ‫شركة أو جهة لديها مسمياتها الخاصة‪،‬‬
‫هو ‪ Software Engineer‬بينما في شركة أخرى تجدها تستخدم ‪Software‬‬

‫ﺗﻢ‬
‫‪ Developer‬وهكذا أقسام الموارد البشرية ‪HR‬في الشركات هي في الغالب من‬
‫تقوم بوضع تلك التسميات‪.‬‬

‫اﻟﺘ‬
‫ﺤﻤ‬
‫الذي يهمك هو أن هذه األلقاب سوف تصل لها مع القراءة والممارسة والخبرة‪،‬‬

‫ﯿﻞ‬
‫ً‬
‫فمثال في الصور السابقة كنت مبتدئ وفي أول المجال وخبرتك ليست كافية‪ ،‬فاذا‬
‫ﻣﻦ‬
‫جيدا فسوف‬‫ً‬ ‫طلب منك كود سوف تقوم بكتابته وتسلمه كما طلب وربما ان كنت‬
‫تسلمه بدون أخطاء ويعمل بكفاءة جيدة‪ ،‬بعكس الشخص األكثر خبرة منك فاذا طلب‬
‫ﻣﻮﻗ‬

‫ً‬
‫مثال‪:‬‬ ‫منه كود فلن يعطي كود بل سوف يطرح ً‬
‫أوال أسئلة كثيرة‬
‫ﻊ اﻟ‬

‫كيف سيحل هذا الكود مشكلة ال ‪Business‬؟‬ ‫‪‬‬


‫ﺠﺎﻧ‬

‫من سيقوم بعمل ‪ Support‬له فيما بعد؟‬ ‫‪‬‬


‫‪‬‬
‫ﺐا‬

‫ما مقدر ال ‪ Diagnostics‬وال ‪ Logging‬فيه؟‬


‫ما طبيعة المشروع هل هو ‪ Prototype‬أم أنه سوف يتم العمل عليه‬ ‫‪‬‬
‫ﻟﻤﺒ‬

‫للمستقبل (وهكذا المعمارية سوف تختلف)؟‬


‫ﺪع‬

‫هل سيتعامل مع ‪ Services‬أخرى أم ال؟‬ ‫‪‬‬


‫ما هي ال ‪Platform‬الذي سوف يعمل عليه؟‬ ‫‪‬‬
‫هل يمكن شراء شيء جاهز لحل المشكلة؟‬ ‫‪‬‬
‫هكذا‪:‬‬
‫ً‬
‫سيئا‪ ،‬بينما الشخص‬ ‫ً‬
‫جيدا أم‬ ‫الشخص المبتدئ يعطي كود فقط سواء كان كود‬
‫جيدا ومن ثم يعطي حل ‪ Solution‬متكامل‪ .‬سواء كانت‬ ‫ً‬ ‫األكثر خبرة يفهم المشكلة‬
‫تسمية المبتدئ ب ‪ Programmer‬أو الخبير ب ‪ Developer‬أو ‪ Engineer‬فالتسمية ال‬
‫ً‬
‫كثيرا‪.‬‬ ‫تهم‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪15‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫الفصل الثاني‪ :‬قيمة وصالحية ما سوف تتعلمه‬

‫هناك جانبين مهمين عندما تتعلم أي موضوع وعليك بمعرفتهم قبل البدء في‬
‫عملية التعلم‪ ،‬الجانب األول وهو التكلفة أو الضريبة التي سوف تدفعها عند تعلمك‬
‫للموضوع‪ ،‬أما الجانب الثاني فهي قيمة ما تعلمته مع الوقت وهل سوف ينتهي‬
‫ً‬
‫سريعا أم أنه سيبقى معك وهذا جانب يفيد أن تعرفه قبل البدء في التعلم وفهم‬
‫صالحية المعلومات هي من األمور التي بسببها تم تقسيم عملية التعليم الى‬
‫المسارات التي سبق ذكرها‪.‬‬

‫ﺗﻢ‬
‫اﻟﺘ‬
‫ﺤﻤ‬
‫ً‬
‫أوال‪ :‬ضريبة التعلم عند تحديدك لما تريد أن‬ ‫‪‬‬

‫ﯿﻞ‬ ‫تتعلمه‬
‫ﻣﻦ‬
‫هناك ضربيه مقابل التعلم وهذه‬
‫ﻣﻮﻗ‬

‫الضريبة من المهم معرفتها عند اختيار المجال‬


‫الذي تود تعلمه‪ ،‬والضريبة الحقيقية في‬
‫ﻊ اﻟ‬

‫التعلم هي ليست في األدوات أو المصادر‬


‫ﺠﺎﻧ‬

‫والكتب وانما هو الوقت‪ ،‬حيث التعلم يأخذ‬


‫ﺐا‬

‫وقتا منك‪ ،‬وألنه ال يوجد وقت لتعلم كل‬ ‫ً‬


‫شيء فيجب معرفه فائدة كل ما تريد تعلمه‬
‫ﻟﻤﺒ‬
‫ﺪع‬

‫فكر باألمر كأنك ذهبت للسوق وتريد شراء شيء ما ولنقل سيارة‪ ،‬فسوف تريد‬
‫معرفة ما الذي سوف تفيدك هذه السيارة مقارنه باألخرى ولماذا اخترتها وما هي‬
‫مواصفاتها‪.‬‬
‫تعلم التقنيات الجديدة مثل عملية الشراء هذه‪ ،‬حيث المبلغ المدفوع هو وقتك‪،‬‬
‫لذلك اعرف ماذا تفيدك فيه والعائد الراجع لك‪ ،‬وفي الغالب للمبرمجين يكون العائد‬
‫‪Job‬‬ ‫المطلوب هو في زيادة الدخل ‪ Income‬والحصول على فرص عمل‬
‫‪ Opportunities‬أفضل وأكثر‪ ،‬أو بعض الحاالت العائد ال دخل له بالمادة‪ ،‬وإنما يكون‬
‫للسمعة ‪ ،Reputation‬أو بمجرد الهواية وحب العمل ‪ For Fun‬على هذه التقنية فقط‪.‬‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪16‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫الضريبة تعتمد على نوع التقنية وعلى‬


‫أي مكان تريد الوصول في تلك التقنية‪ ،‬مثال‬
‫ً‬
‫صعبا إذا‬ ‫اريد تعلم سي‪ #‬فتعلم اللغة ليس‬
‫كنت تعرف اساسيات لغات البرمجة‬
‫‪ Programming Languages‬ولديك معرفة ب‬
‫‪ OOP‬وسوف تصبح متمرس بها في عدة أيام‪،‬‬
‫ولكن الضريبة الحقيقة هي ليست في اللغة‬
‫انما في ال ‪ platform‬حيث عليك تعلم ال‬
‫‪ Framework‬وال‪ Libraries‬وهي على سبيل المثال‪Web Form، MVC، WCF،WPF :‬‬

‫ﺗﻢ‬
‫تعلم ‪ Visual Studio‬تعلم ‪ Databases‬والتقنيات بها ‪، Linq to SQL،ADO.NET‬‬

‫اﻟﺘ‬
‫‪ Entity Framework‬والخ‪ .‬وقد تأخذ منك عدة شهور حتى للمبرمجين ذوي الخبرة‬

‫ﺤﻤ‬
‫ً‬
‫مثال ‪.Java Ecosystem‬‬ ‫بتقنيات أخرى‬

‫ﯿﻞ‬
‫ﻣﻦ‬
‫فتعلم الـ ‪ Platform‬هو أكثر كلفة‬
‫ﻣﻮﻗ‬

‫من تعلم اللغة‪ ،‬لذلك اختيار الـ ‪Platform‬‬


‫ﻊ اﻟ‬

‫‪Critical‬‬ ‫هو قرار مهم يجب اتخاذه‬


‫‪.Decision‬‬
‫ﺠﺎﻧ‬
‫ﺐا‬

‫والـ ‪ Platform‬أو الـ ‪ Ecosystem‬حقيقة هي ما ستقضيه (وتكلفك الوقت والجهد)‬


‫ً‬
‫متمكنا من االنتاج بشكل صحيح (وليس لغة البرمجة)‪ ،‬وتذكر أنها تتطور‬ ‫حتى تصبح‬
‫ﻟﻤﺒ‬

‫وتتغير وتحتاج أن تحدث نفسك باستمرار‪ ،‬بعكس اللغة والتي تتحدث بشكل ابطئ بكثير‬
‫ﺪع‬

‫من المكتبات‬
‫ً‬
‫مرغوبا به‪ ،‬فلن يتم توظيف شخص‬ ‫أخيرا هذه ال ‪ Ecosystem‬هي ما تجعل المبرمج‬ ‫ً‬
‫يعرف ‪ PHP‬أو سي‪ ++‬فقط‪ ،‬ولكن سيتم توظيف شخص يكتب تطبيقات ‪Facebook‬‬
‫ويستخدم ال ‪ Twitter API‬ويعرف ال ‪ Windows Internal & API‬ويستطيع استخدام‬
‫ال‪ ، Azure‬ويستخدم ال ‪ Spring‬وله خبرة بها‪ ،‬والخ من التقنيات‪.‬‬
‫تذكر أنه‪ :‬عندما تريد أن تتعلم لغات البرمجة فانظر لها من خالل خصائصها حتى‬
‫مثال هل هي ‪ ،Strong/Loose Type‬هل هي ‪Case‬‬ ‫ً‬ ‫تستطيع التفريق بينهم‪،‬‬
‫‪ Sensitive‬أم ال‪ ،‬هل تدعم ‪ ،OOP‬تدعم الوراثة المتعددة أم ال‪ ،‬هل هي ‪،Functional‬‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪17‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫ً‬
‫معا‬ ‫ما هي ال ‪ Data Types‬بها‪ ،‬هل هي ‪Interpreted‬أم ‪ Compiled‬أم االثنان‬
‫وهكذا‪.‬‬
‫عندما تعرف خصائص اللغات سوف تستطيع تعلم اللغة األخرى بسهولة طالما‬
‫ً‬
‫مسبقا في لغة أخرى‪ ،‬وسوف يكون عليك التعود فقط على ال‬ ‫أنك تعرف الخصائص‬
‫‪ Syntax‬ومن ثم الدخول في ال‪ Libraries‬والمكتبات المستخدمة في هذه اللغة‬
‫لكي تستطيع ان تنجز بها‪.‬‬
‫هذه الخصائص ‪ Characteristics‬للغات باإلمكان ان تعتبرها أساسيات يجب تعلمها‪،‬‬
‫ولذلك تجد أغلب الجامعات لديها كورس اسمه ‪ Programming Languages‬يتم فيه‬

‫ﺗﻢ‬
‫دراسة أربعه لغات على األقل‪ ،‬الهدف منها هو ليس أن تصبح خبير بهذه اللغات األربعة‬

‫اﻟﺘ‬
‫وانما التعرف على أكثر من ‪ Paradigm‬مختلف في البرمجة فهذه النظرة سوف تفيدك‬

‫ﺤﻤ‬
‫جدا في المستقبل‪ ،‬فاحرص ان تقرأ في كتاب أو تتبع دورة في مفاهيم ال‬ ‫ً‬

‫ﯿﻞ‬
‫‪ Programming Languages‬فهي سوف تفيدك‪.‬‬
‫ﻣﻦ‬
‫‪ ‬كيف تعرف أن ما تتعلمه له قيمة وسوف يفيدك سواء في الحصول على دخل‬
‫ﻣﻮﻗ‬

‫أفضل أو فرص عمل أكثر؟‬


‫ﻊ اﻟ‬

‫أسهل طريقة وهي النظر للحاجة ‪ Demand‬في سوق العمل في بلدك وانظر‬
‫للوظائف وفرص العمل‪ ،‬فاذا وجدت طلب كثير وبدخل جيد فهذا اشاره جيدة على أن‬
‫ﺠﺎﻧ‬

‫هناك حاجة لهذه التقنية‪ ،‬وقم بتعلم شيء يقل المتمرسين فيه لكي تحصل على نقاط‬
‫ﺐا‬

‫ً‬
‫مثال تعمل على ال ‪ Web Services‬فقم بتعلمها باإلضافة الى عادات‬ ‫قوة اضافية‪،‬‬
‫وممارسات ال ‪ Security‬بها‪.‬‬
‫ﻟﻤﺒ‬
‫ﺪع‬

‫ً‬
‫ثانيا‪ :‬قيمة المعلومات مع الوقت‬ ‫‪‬‬
‫بعد أن تختار ما سوف تتعلمه عليك بتحديد كم من الوقت سوف تكون هذه‬
‫المعلومات لها قيمة فاذا كانت هذه المعلومات سوف تصبح عديمة فائدة في وقت‬
‫سريع فعليك أن تقضي وقت وجهد اقل في تعلمها بعكس فيما إذا كانت سوف‬
‫تبقى معك وتفيدك بشكل مستمر‪.‬‬

‫للنظر لعمر المعلومات في كل من المسارات األربعة في التعلم‪:‬‬


‫دائما وحتى لو انتهت صالحيتها فسوف يسهل‬‫ً‬ ‫األساسيات سوف تبقى معك‬
‫ً‬
‫مثال في السابق كان يتم استخدام ال ‪Serial Port‬‬ ‫االستفادة منها في شيء اخر‪،‬‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪18‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫ً‬
‫وحاليا كل األجهزة تستخدم ‪ USB‬وتحويل المعلومات اليها سوف تكون سهله‪ ،‬لذلك‬
‫ينصح بدفع وقتك وجهدك للحصول على شهادة من جامعه ألن الدراسة الجامعة تركز‬
‫على األساسيات والعائد سوف يكون معك لعدة سنوات‪،‬‬
‫ً‬
‫تماما‪ ،‬فسوف تنتهي بسرعه‪ ،‬مثل البرامج أو‬ ‫مسار المعلومات‪ :‬هو العكس‬
‫ً‬
‫خصوصا هذه األيام مع مفاهيم ال‪ Agile‬وال ‪Continues‬‬ ‫اللغات يحدث بها تغييرات‪،‬‬
‫‪ Delivery‬فكل شيء متعلق بتقنية أو منصة ما يتغير بسرعه‪ ،‬ويحتاج أن تواكب ذلك‬
‫ً‬
‫مثال ‪ salesforce.com‬تحدث تطورات بها كل اربعه أشهر هذا‬ ‫مع الوقت بدون توقف‪.‬‬
‫يعني باإلضافة الى ما ستقضيه من الوقت في األول للتعلم فعليك أن تضع جهد جديد‬
‫ً‬

‫ﺗﻢ‬
‫وايضا الكثير من‬ ‫كل اربعه أشهر لكي تتعلم األمور الجديدة لكي تكون ‪،Up to date‬‬
‫الشهادات التقنية تتطلب ان تقوم بتحديث الشهادة بعد فترة وتنتهي صالحية األولى‪،‬‬

‫اﻟﺘ‬
‫ﺤﻤ‬
‫وهذه من أصعب التحديات في المجال التقني‪.‬‬

‫ﯿﻞ‬
‫مسار المهارات‪ :‬هو الوسط‪ ،‬ألنه هو القدرة على تطبيق المعرفة‪ ،‬فاألشياء التي‬
‫ﻣﻦ‬
‫بنيت على أساس األساسيات فقد تبقى أما التي بنيت على أساس المعلومات فقد‬
‫تنتهي‪ .‬على سبيل المثال عندما تدرس علوم الحاسوب فسوف تدرس عدة طرق لترتيب‬
‫ﻣﻮﻗ‬

‫مصفوفة من األرقام باستخدام خوارزميات مختلفة‪ ،‬وسوف تعرف كيف تقوم بتقييم‬
‫ﻊ اﻟ‬

‫‪evaluate‬خوارزمية معينة‪ ،‬المهارة التي تجعلك تقوم بعمل دالة ترتيب هي طويلة‬
‫المدى‪ ،‬لكن عندما تواجه مشكلة تحتاج للترتيب فهناك أشياء عليك القيام بها قبل‬
‫ﺠﺎﻧ‬

‫مثال هل توجد دالة جاهزة‪ ،‬هل هناك ‪ limitation‬على الذاكرة أو‬ ‫ً‬ ‫استخدام المهارة‪،‬‬
‫ﺐا‬

‫المعالج وحجم البيانات التي سوف تريد ترتيبها‪ ،‬كل هذه األشياء هي معلومات قد‬
‫ﻟﻤﺒ‬

‫تتغير بناء على تغير األداة او المكتبة التي تستخدمها‪.‬‬


‫ﺪع‬

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

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪19‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫الفصل الثالث‪ :‬كيف يتعلم المبرمج بشكل ذاتي؟‬

‫واحدة من اهم مميزات عصر المعلومات ‪Information Age‬هو أن المعلومات‬


‫منتشرة في كل مكان ‪ ،Widely Available‬حيث هناك الكثير من الدورات والدروس‬
‫في كل مكان (مواقع االنترنت‪ ،‬شبكات التواصل االجتماعي‪ ،‬البريد‪ ،‬المدونات‪ ،‬الخ)‪،‬‬
‫فالمشكلة اليوم ليست في إيجاد المعلومات لكن في تلخيص ‪ Filtering‬هذه‬
‫المعلومات وايجاد المحتوى المهم والمفيد بالنسبة لك‪.‬‬

‫ﺗﻢ‬
‫لذلك عليك أن تستخدم منهجية معينة في التعلم ال سيما في األساسيات‬

‫اﻟﺘ‬
‫وأفضل طريقة لذلك هي محاكاة ما يتم تطبيقه في الجامعات وسوف نتعرف على‬

‫ﺤﻤ‬
‫ماذا تقدم الجامعات لك في عملية التعليم‪.‬‬

‫ﯿﻞ‬
‫ﻣﻦ‬
‫‪ ‬الجامعات‪:‬‬
‫ﻣﻮﻗ‬

‫في الجامعة تدرس األساسيات بشكل جيد ولكن التطبيق العملي واكتساب‬
‫ﻊ اﻟ‬

‫ً‬
‫وأحيانا يكون بعيد كل البعد عن‬ ‫المهارات ال يؤهل بالشكل المطلوب لسوق العمل‬
‫ﺠﺎﻧ‬

‫المهارات الصحيحة‪ ،‬وهناك أسباب لهذا منها أن الدكاترة في تلك الجامعات وظيفتهم‬
‫ﺐا‬

‫هي البحث واالبتكار في تدريس‬


‫ﻟﻤﺒ‬

‫األساسيات وحل المشاكالت األساسية‬


‫ﺪع‬

‫في المجال‪ ،‬وبعبارة أخرى هم خبراء‬


‫األساسيات‬ ‫مرحلة‬ ‫في‬ ‫ومبدعين‬
‫‪ Fundamentals‬ولذلك هم يدرسوه‬
‫وحتى االن الدراسة في الجامعة هي‬
‫أفضل طريقة للحصول على أساس قوي في األساسيات‪.‬‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪20‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫إضافة الى أن الجامعات في السابق كانت‬


‫تتوفر لديها معدات وأجهزة ال توجد لدى األفراد‬
‫وهذا ما يجعلها مناسبة في التعليم عن غيرها‪،‬‬
‫باإلضافة الى وجود المناهج ‪ Curation‬الموضوعة‬
‫بشكل مدروس‪ ،‬فعندما تدخل فهناك منهج محدد‬
‫واضح يجب عليك أن تنهيه حتى تحصل على الدرجة‬
‫وتتخرج من الجامعة‬

‫ﺗﻢ‬
‫وال يفترض أن تقلق من ناحية فلترة المعلومات وما هو المهم بالنسبة للطالب‬

‫اﻟﺘ‬
‫ً‬
‫ايضا الجامعات توفر الدعم‬ ‫وما هو غير المهم فالجامعة وظيفتها ان تقوم بذلك‪،‬‬

‫ﺤﻤ‬
‫‪ Support‬لك حيث هناك طالب مثلك يمكنكم التعاون في القراءة وحل المشاكل‪،‬‬

‫ﯿﻞ‬
‫باإلضافة الى األساتذة والمساعدين الذين يستطيعوا مساعدك ان طلبك ذلك واإلجابة‬
‫ﻣﻦ‬
‫على اسئلتك‪.‬‬
‫ﻣﻮﻗ‬

‫ً‬
‫مثال ‪Algorithms Analysis‬‬ ‫وهذا ضروري فالكثير من المراجع العلمية والمواد‬
‫ً‬
‫وايضا ما يميز الجامعة هو في‬ ‫يصعب ان يفهمها الطالب بدون مدرس أو مساعد ‪،‬‬
‫ﻊ اﻟ‬

‫االختبارات المتكررة التي تحفز الطالب على الدراسة والتعب ‪ ،‬باإلضافة الى الحصول‬
‫ﺠﺎﻧ‬

‫على الشهادة في األخير بعد التخرج والتي سوف تستفيد منها وقت العمل في‬
‫ً‬
‫ﺐا‬

‫ايضا بعض الجامعات توفر الفرصة لكي تحصل على خبرة حقيقية في بعض‬ ‫التوظيف‪،‬‬
‫المجاالت مثل المشاريع البحثية ‪ ، Research Projects‬الدراسات العليا ‪Advanced‬‬
‫ﻟﻤﺒ‬

‫‪ Degree‬و ‪ Graduate Studies‬وهذه سوف تدخلك في مرحلة الخبرة لألساسيات‪.‬‬


‫ﺪع‬

‫الجامعة تعطيك كل هذه األمور السبعة الموضحة على الصورة أدناه‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪21‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫ً‬
‫ايضا‬ ‫ً‬
‫حاليا العالم تغير‪ ،‬وهناك بدائل‬
‫اوال المعلومات‬ ‫ً‬ ‫ً‬
‫ايضا وأسرع‪،‬‬ ‫أقل تكلفة‬
‫واالساسيات كما ذكرنا في البداية انها االن‬
‫أصبحت مجانية‪ ،‬في السابق المعدات‬
‫واألجهزة كانت ال تتوفر اال في الجامعات‬
‫اما اليوم فالجميع يستطيع اقتنائها‪ ،‬في‬
‫الطالب‬ ‫مالقاه‬ ‫تستطيع‬ ‫الجامعات‬
‫ايضا من خالل‬‫ً‬ ‫والحصول على الدعم واليوم‬
‫الشبكات االجتماعية تستطيع التواصل مع‬

‫ﺗﻢ‬
‫ً‬
‫وايضا الجامعة ليست الوسيلة الوحيدة للحصول على‬ ‫أي طالب في مكان في العالم‪،‬‬

‫اﻟﺘ‬
‫المنهج ‪ Curation‬وهناك مواقع الكورسات ‪ open online course‬تستطيع الدراسة‬

‫ﺤﻤ‬
‫وايضا أماكن أخرى تستطيع الحصول على منهج محدد مثل مناهج الشهادات‬ ‫ً‬ ‫منها‪،‬‬

‫ﯿﻞ‬
‫التقنية‪.‬‬
‫ﻣﻦ‬
‫ﻣﻮﻗ‬

‫الذي يخطئ به الكثير عندما ينظر‬


‫ﻊ اﻟ‬

‫لبديل أو مكمل للتعلم من االنترنت هو‬


‫اهمال هذه األوجه التي تعطيها لك‬
‫ﺠﺎﻧ‬

‫ً‬
‫مثال‬ ‫الجامعة‪ ،‬واالكتفاء بوجه واحد فقط‪،‬‬
‫ﺐا‬

‫االعتقاد بأنه لوحده يستطيع قرائه مجموعه‬


‫ﻟﻤﺒ‬

‫من المواقع لكي يكتسب بعض المعلومات‬


‫ﺪع‬

‫ولكنه نسى أن هناك أوجه أخرى ضرورية‬


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

‫ما سنوضحه اآلن البديل وكيف يمكن ان تحصل على جميع هذه االوجه ‪Aspects‬‬
‫من خالل البدائل المتوفرة‪.‬‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪22‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫‪ )1‬من أين تحصل على المنهج المتسلسل ‪Curation‬؟‬


‫ً‬
‫دائما ما هي‬ ‫األسئلة التي نجدها‬
‫الكتب الجيدة للمبتدئين؟ في عالم تكون‬
‫فيه المعلومات منتشرة بدون تكلفة‬
‫فالتوجيهات والمناهج المتسلسلة تكون‬
‫جدا‪ ،‬فمن أين تبدأ وما هي‬ ‫ً‬ ‫مهمه‬
‫المعلومات المهمة لكي تتعلمها وما‬
‫هو الترتيب الذي يجب ان تمشي عليه‬

‫ﺗﻢ‬
‫اﻟﺘ‬
‫إذا لم تستطيع اإلجابة على هذه‬

‫ﺤﻤ‬
‫األسئلة فتعلم التقنية سوف يكون‬

‫ﯿﻞ‬
‫أصعب مما هو عليه‪ ،‬فسوف تضيع‬
‫ﻣﻦ‬
‫وقتك في تعلم أشياء ليست مهمه‪،‬‬
‫ﻣﻮﻗ‬

‫وقد تتعلم بدون أي ترتيب منطقي‪،‬‬


‫وفي كثير من األحيان لن تستطيع تعلم‬
‫ﻊ اﻟ‬

‫موضوع ما ألن هناك متطلبات أساسية‬


‫ﺠﺎﻧ‬

‫له ‪Prerequisites‬‬
‫ﺐا‬

‫لذلك التوجيه والمنهج الخاطئ أو غير المكتمل ‪ Poor Curation‬سوف يصعب عملية‬
‫تعلمك ويكلفك وقت أكثر ومال أكثر‬
‫ﻟﻤﺒ‬
‫ﺪع‬

‫وللحصول على منهج واضح ومتسلسل انظر الى‪:‬‬


‫‪ ‬الكتب‪:‬‬
‫ألنها تزودك بالمعلومات بطريقة مرتبة ‪ ،‬حيث كل مفهوم يبنى على السابق‪،‬‬
‫والمحتوى موجه ‪ Curated‬بواسطة المؤلف والذي يقرر ما هو المحتوى المهم أو‬
‫غير المهم‪ ،‬وهذا ال ‪ Curation‬ما يجعل للكتب قيمة ويجعلها أرخص طريقة لكي تحصل‬
‫ً‬
‫وايضا‬ ‫على توجيه موثوق‪ ،‬بينما المواقع والمدونات في الغالب تفشل في ذلك‬
‫ً‬
‫واضحا ‪ ،‬و اختيار الكتاب عادة امر سهل‬ ‫ً‬
‫منهجا‬ ‫البحث في محركات البحث ال يقدم لك‬
‫فقط عليك ان تنظر لتقييمات القراء وسوف تعرف المناسب لك‪ ،‬أو يمكنك اقتناء اكثر‬
‫من كتاب للموضوع لكي تحصل على عدة وجهات نظر‪ ،‬فاذا لم تستطيع الفهم من‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪23‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫األول ربما تجد المؤلف الثاني قام بعمل‬


‫افضل في توضيحه‪ ،‬لذلك اذا كنت تريد ان‬
‫تتعلم موضوع ما فقم بجلب كتاب أو اثنين‬
‫في ذلك الموضوع وهي تمثل لك األساس‬
‫الذي سوف تبنى كل شيء اخر حولهما‬

‫‪ ‬مواقع الكورسات على االنترنت‪:‬‬


‫مثل موقع ‪ www.pluralsight.com‬وغيرها من المواقع والتي سيتم عرضها‬

‫ﺗﻢ‬
‫ً‬
‫وأحيانا‬ ‫في أخر الكتيب‪ ،‬تلعب نفس الدور في إيجاد المنهج المتسلسل الواضح‪،‬‬

‫اﻟﺘ‬
‫الكورس في مواقع الكورسات يكون مجرد عرض فيديو للمحتوى الذي يوجد على‬

‫ﺤﻤ‬
‫الكتب‪.‬‬

‫ﯿﻞ‬
‫ﻣﻦ‬
‫‪ ‬مواقع الجامعات‪:‬‬
‫ﻣﻮﻗ‬

‫ويمكنك الدخول اليها والنظر لالئحة الكورسات والمنهج المتسلسل لكي تحصل‬
‫ﻊ اﻟ‬

‫ايضا على ال ‪ ،Curation‬حيث هناك جامعات تضع قائمة الكورسات والكتب المطلوبة‬ ‫ً‬
‫ﺠﺎﻧ‬

‫ً‬
‫وأحيانا تجد خطة الكورسات كاملة‪ ،‬واالختبارات والواجبات‪.‬‬ ‫لكل كورس‪،‬‬
‫ﺐا‬
‫ﻟﻤﺒ‬

‫‪ )2‬من أين تحصل على المعرفة ‪ Knowledge‬سواء األساسيات او المعلومات؟‬


‫ﺪع‬

‫عندما تريد أن تنشئ خطتك الخاصة في التعلم‪ ،‬فعليك باختيار الطريقة المناسبة لك‪،‬‬
‫فالبعض تجدي الكتب معهم‪ ،‬والبعض األخر يفضلوا الفيديو‪ ،‬ومن المصادر للحصول‬
‫على المعرفة‪:‬‬
‫‪ ‬الكتب‪:‬‬
‫هي ليست مجانية ولكنها رخيصة بمقارنه مع الطرق األخرى‪ ،‬والجودة تختلف‬
‫ً‬
‫وجهدا‪ ،‬لذلك كل المؤلفين يبذلوا‬ ‫بينهم لكن بشكل عام تكون جيدة‪ ،‬ألنها تكلف وقتا‬
‫جهدهم لكي يخرجوا شيء عالي المستوى حتى يحصلوا على أرباح منها‪ ،‬والكتب‬
‫‪ Curated‬وتوفر لك الوقت والجهد في اختيار المهم وفلترة المواضيع الموجودة‪.‬‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪24‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫الكتب التقنية تنتهي بسرعه ‪ ،Obsolete Quickly‬وقد تكون مدتها سنة واحدة‬
‫ً‬
‫حاليا خيارات الكتب ‪ EBooks‬والطباعة عند‬ ‫إذا كنت محظوظ‪ ،‬لحسن الحظ هناك‬
‫ً‬
‫بدال من شراء الكتب التي سوف تنتهي بعد فترة‪ ،‬على‬ ‫الطلب توفر لك حلول اخرى‬
‫كل ما زالت الكتب هي من أفضل الطرق للتعلم‪.‬‬
‫‪ ‬الكورسات والفيديو‪:‬‬
‫ومواقع الكورسات على االنترنت وهي مشابه للكتب وهي لمن يفضل الفيديو‬
‫على الكتب‪.‬‬
‫‪ ‬المواقع والمدونات والبحث‪:‬‬

‫ﺗﻢ‬
‫اﻟﺘ‬
‫هناك الكثير من المعلومات الممتازة واألسئلة واالجابات الموجودة وقد تكون‬

‫ﺤﻤ‬
‫بواسطة خبراء في المجال‪ ،‬وهي مفيدة بال شكل‪ ،‬ولكن اغلب الدروس تكون بدون‬

‫ﯿﻞ‬
‫منهجية متكاملة ‪ Curation‬لذلك يصعب إيجاد الترتيب والمواضيع المتعلقة بالنسبة‬
‫للمتعلم‬
‫ﻣﻦ‬
‫أن تتعلم تقنية أو مجال من‬
‫ﻣﻮﻗ‬

‫االنترنت فقط كأنك تقوم بأخذ عدة كتب‬


‫ﻊ اﻟ‬

‫في المجال ممزقة الى صفحات تم‬


‫ﺠﺎﻧ‬

‫دمجها مع بعضها كل صفحة بها‬


‫‪ keyword‬تميزها ومن ثم اختيار كل‬
‫ﺐا‬

‫صفحة بناء على الكلمة التي تريدها‬


‫ﻟﻤﺒ‬

‫لكن األمر ليس بذلك السوء فهناك‬


‫ﺪع‬

‫مواقع تقدم لك ‪ curation‬لمحتواها‪ ،‬روابط للمقاالت المتعلقة‪ ،‬وإذا كنت تريد تعلم‬
‫تقنية معينة فقد يكون هناك لها ‪ Documentation‬وهو يكون يحتوي على معلومات‬
‫موثوقة محدثة للمنتج ‪.up to date‬‬

‫‪ )3‬من أين تحصل على المهارات؟‬


‫ً‬
‫مميزا عن غيرك‪ ،‬وهو الذي يقيمك من األخرين‬ ‫المهارات هي الشيء الذي يجعلك‬
‫ً‬
‫بدال من الكورسات التي درستها‬ ‫ولذلك تقوم بكتابة مهاراتك وانجازاتك في السيرة‬
‫وهذا عادة أفضل بكثير‪.‬‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪25‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫و من خالل التدريب تحصل على المهارات‪ ،‬ولذلك تضع الجامعات الواجبات حتى‬
‫تتمرن بها‪ .‬ويمكنك قرائه كل كتب البرمجة ومشاهدة كل الكورسات ولكنك لم تبقى‬
‫مبرمج اال بعد أن تكتب بنفسك وتحل المشاكل بها وتبني بها البرامج‪.‬‬
‫في مجاالت أخرى كالطب فالجامعة هي الوسيلة للحصول على المهارة الالزمة‬
‫تحت االشراف‪ ،‬ولكن في المجال التقني االن (يمكنك الحصول على المعدات‬
‫واألجهزة بسهوله) والعمل عليها‪.‬‬
‫هناك الكثير من الكتب والدورات‬
‫تعطيك امثلة ‪ walkthrough‬خطوة‬

‫ﺗﻢ‬
‫بخطوة ولكنها ليست كافية وعليك‬

‫اﻟﺘ‬
‫حل مشاكل بنفسك‪ ،‬الطريقة الجيدة‬

‫ﺤﻤ‬
‫هي باللعب ‪ play‬بالكود‪ ،‬إذا لم تكن‬

‫ﯿﻞ‬
‫ﻣﻦ‬ ‫هناك مشاكل تجدها لحلها‪ ،‬فقط بحل‬
‫مشاكل االخرين في مواقع البرمجة‬
‫مثل ‪.SOF‬‬
‫ﻣﻮﻗ‬
‫ﻊ اﻟ‬

‫أ ً‬
‫يضا المشاركة في ‪ open source projects‬وقم بالعمل في أحد المشاريع التي‬
‫ﺠﺎﻧ‬

‫تشد انتباهك وابحث عمن هم أكثر خبرة منك واستفد منهم ومن تجاربهم وحاول أن‬
‫ﺐا‬

‫تحصل على مراجعه ألكوادك متى ما استطعت‪.‬‬


‫ﻟﻤﺒ‬
‫ﺪع‬

‫‪ )4‬من أين تحصل على الدعم واالنضباط‬


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

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪26‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫أ ً‬
‫يضا يمكنك مشاهدة كورسات من االنترنت والتعلم عليها وعمل مجتمع دراسي‬
‫‪ Study Group‬لكي تدرس كورس ما‪ ،‬وهناك مجتمعات للنقاش لكل كورس في‬
‫مواقع الكورسات على االنترنت وسوف تحصل على الدعم بعكس الكتب والتي قلما‬
‫تحصل على دعم بها‪.‬‬

‫‪ )1‬من اين تحصل على الخبرة؟‬


‫سوف تحصل على الخبرة من العمل وحل المشاكل وتطبيق الحلول‪ ،‬ومع الوقت‬
‫سوف تصبح لديك معرفة جيدة‪ ،‬ويمكنك حينها النظر لألسئلة التي ال يوجد لديها حلول‬

‫ﺗﻢ‬
‫ألنك خبير وتقوم بإيجاد حلول جديدة لذلك إذا كنت تود ان تصبح خبير عليك حل‬

‫اﻟﺘ‬
‫المشاكل وسوف تحصل عليها مع الوقت‪ ،‬وتصبح تحل المشاكل بدون جهد كبير‬

‫ﺤﻤ‬
‫ﯿﻞ‬
‫ﻣﻦ‬
‫‪ )6‬من أين تحصل على الشهادات التقنية؟‬
‫ﻣﻮﻗ‬

‫الشهادات التقنية تنص على ان لديك معرفة بتقنية ما وهي معلومات حول منتج‬
‫أو تقنية معينة في اصدار معين‪ ،‬وأنك انجزت المتطلبات لكي تحصل عليها‪ ،‬بعباره‬
‫ﻊ اﻟ‬

‫أخرى تمرست على التقنية‪ ،‬وقيمة الشهادة تعتمد على طبيعة االختبارات والغالب‬
‫ﺠﺎﻧ‬

‫منها يعتمد على الحفظ‪ ،‬وأهميتها على حسب سوق العمل المتواجد فيه‪ ،‬بالبعض‬
‫ﺐا‬

‫يطلبها والبعض األخر ال يطلبها‪.‬‬


‫ﻟﻤﺒ‬
‫ﺪع‬

‫تذكر أن الشهادات التقنية لن تعطيك‬

‫اساسيات او حتى مهارات‪ ،‬وهي تعتمد‬

‫على الحفظ أكثر من الفهم‪ ،‬لذلك ال تعتمد‬

‫عليها فقط‪ ،‬ألنه يمكن ان تكون لديك‬

‫المعلومات لكن بدون اساسيات أو مهارات‬

‫فيما تفعله‪.‬‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪27‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫الفصل الرابع‪ :‬أريد أن أتعلم كيف أبدأ؟‬

‫تذكر أن الكتب والدورات على االنترنت هي‬


‫جيدة لألساسيات والمعلومات والمنهج‬
‫ولكنها ليست جيدة الكتساب‬ ‫الواضح‬

‫ﺗﻢ‬
‫المهارات الحقيقية وال يوجد فيها دعم أو‬

‫اﻟﺘ‬
‫تحفيز وانضباط ألنهائها‪.‬‬

‫ﺤﻤ‬
‫ﯿﻞ‬
‫ﻣﻦ‬
‫"حتى يتم إعطاء النصيحة الجيدة‪ ،‬فالسؤال هو ما هو المسار الذي تريد التركيز عليه‪،‬‬
‫وما هو المستوى الذي تريد الوصول اليه؟ بعباره أخرى حدد أهدافك؟"‬
‫ﻣﻮﻗ‬

‫ً‬
‫خصوصا إذا‬ ‫ً‬
‫أوال باألساسيات‬ ‫إذا كنت تريد أن تتعلم تقنية أو مجال جديد فعليك‬
‫ﻊ اﻟ‬

‫كنت ستقضي فترة في العمل عليه‪ ،‬على سبيل المثال إذا كنت تريد ان تعمل وتطور‬
‫ﺠﺎﻧ‬

‫في ‪ WordPress‬فاألساسيات هي ال‪ PHP، Apache، HTML، MySQL‬والخ‪.‬‬


‫ﺐا‬

‫في مرحلة ال‪ information‬عليك بالــنــظــر إلـــــــــــى ‪ WordPress‬مـــــــــن‬


‫ﻟﻤﺒ‬

‫الداخل‪ ،‬أما في مرحلة المهارات عليك بتطبيق موقع كامل وانشاء ‪ plugin‬أو التعديل‬
‫ﺪع‬

‫على احداهم (اقرأ المتطلبات لكل مرحلة في الصورة أدناه)‪.‬‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪28‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

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

‫ﺗﻢ‬
‫‪ ‬كيف تتعلم األساسيات؟‬

‫اﻟﺘ‬
‫أحد الصعوبات في تعلم األساسيات هي في ال ‪ ،curation‬عندما تبدأ بتقنية‬

‫ﺤﻤ‬
‫جديدة فأنت ال تعرف الحدود بها والتوجيهات تكون‬

‫ﯿﻞ‬
‫على حسب التقنية التي تريد ان تتعلمها وعلى حسب‬
‫ﻣﻦ‬
‫ً‬
‫مثال في مثال ال‪ WordPress‬فال‬ ‫مستواك الحالي‪،‬‬
‫ﻣﻮﻗ‬

‫‪ PHP/MySQL‬تعتبر األساس لها‪ .‬وحتى ال ‪،PHP‬‬


‫‪ MYSQL‬قد تكون هي في ال‪information track‬‬
‫ﻊ اﻟ‬

‫للمبتدئ في البرمجة‪ ،‬ويحتاج الى اساسيات البرمجة‬


‫ﺠﺎﻧ‬

‫قبل الدخول بها‪.‬‬


‫ﺐا‬
‫ﻟﻤﺒ‬

‫تعلم التقنية كالهرم‪ ،‬فأنت تتعلم األساسيات‬


‫ﺪع‬

‫حتى تنتقل للمعلومات‪ ،‬وهذه المعلومات تكون‬


‫اساسيات للمرحلة التالية‪ ،‬وللحصول على‬
‫‪ curation‬في تقنية معينة‪ ،‬فانظر للجامعات‬
‫وخطط التدريس وانظر الى المتطلبات في كل‬
‫مادة ‪ prerequisites‬ألنها سوف تكون هي‬
‫األساس لما تود أن تتعلمه‪.‬‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪29‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫إذا كانت التقنية التي تود تعلمها ال‬


‫يوجد بها شهادات أو حتى خطط واضحة‪،‬‬
‫فانظر للكتب والكورسات على االنترنت‪،‬‬
‫فانظر لفهرس تلك الكتب أو الكورسات‬
‫للتقنية أو مواقع الدورات التي تريد تعلمها‬
‫وانظر للمتشابه من المواضيع التي وجدتها‬
‫وهي سوف تمثل األساسيات التي يجب‬
‫عليك أن تتعلمها‬

‫ﺗﻢ‬
‫اﻟﺘ‬
‫ً‬
‫ودائما اطلع على أكثر من مصدر‬

‫ﺤﻤ‬
‫عندما تتعلم التقنية‪ ،‬فربما كتاب جيد‬
‫ولكن لم يجدي معك وربما ينفع معك‬
‫ﯿﻞ‬
‫ﻣﻦ‬
‫مصدر اخر أو أن الكتاب األخر قام بشرح‬
‫معلومة بشكل أفضل وأيسر من االول‪،‬‬
‫ﻣﻮﻗ‬

‫لذلك احرص استخدام أكثر من مصدر في‬


‫ﻊ اﻟ‬

‫التعلم‬
‫ﺠﺎﻧ‬
‫ﺐا‬

‫‪ ‬كيف تجد المعلومات؟‬


‫ﻟﻤﺒ‬

‫التحدي هنا في هذا المسار هو في انتهاء صالحية المعلومات بسرعه‪ ،‬لذلك‬


‫ﺪع‬

‫ً‬
‫مثال إجابات على األسئلة والحلول لمشاكل‬ ‫االنترنت هو أفضل مرجع للمعلومات‪،‬‬
‫ً‬
‫جيدا في ال ‪ ،curation‬وحتى لو وجدت مصدر فقد ينتهي بسرعه‬ ‫معينة ولكنه ليس‬
‫مع الوقت‪ ،‬وتذكر استخدام ال ‪ date filter‬عند‬
‫البحث حتى تحصل على أحدث اإلجابات وانظر‬
‫لتاريخ كل موضوع ألنه إذا زاد الوقت عن سنة‬
‫فقد يجدي هذا الحل وقد ال يجدي‪.‬‬

‫إذا كــــانت التقنية لديها شهادات فانظر‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪30‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫ً‬
‫وغالبا المعلومــــــات ســـــــوف تكتشفها عندمــــــا تكـــون في مرحلة‬ ‫لالختبارات بها‪،‬‬
‫اكتساب المهارات‬

‫‪ ‬كيف تكتسب المهارات؟‬


‫اول خطوة هي تنزيل األدوات‬
‫واالشياء المطلوبة للعمل‪ ،‬سواء‬
‫‪ development environment‬أو‬
‫‪ database‬على حسب التقنية التي‬

‫ﺗﻢ‬
‫تريد ان تعمل عليها‪ ،‬تذكر اتباع الدروس‬

‫اﻟﺘ‬
‫ً‬
‫كافيا الكتساب مهارات حقيقية‬ ‫ليس‬

‫ﺤﻤ‬
‫(وابحث أكثر عن كل شيء غير واضح)‬

‫ﯿﻞ‬
‫ﻣﻦ‬
‫عندما تطبق األمثلة حاول تغيرها بالتغير والتالعب بها وبهذه الطريقة سوف‬
‫ﻣﻮﻗ‬

‫تكتسب المهارات‪ ،‬اتباع األمثلة يعطيك فهم لها وهذا ال يعطيك مهارات وانما هي‬
‫ﻊ اﻟ‬

‫ً‬
‫تطبيقا للمنهج ال‪ ، curation‬وعليك التطوير وبناء األشياء األخرى غير الموجودة‬ ‫مجرد‬
‫ﺠﺎﻧ‬

‫مثال حل الواجبات إذا كانت هناك‪ ،‬أو ابحث عن‬ ‫ً‬ ‫في األمثلة لكل تكتسب المهارات‪،‬‬
‫(مثال في ال‪ ) stack overflow‬وقم بحلها وال تحاول‬ ‫ً‬ ‫مشاكل في مواقع البرمجة‬
‫ﺐا‬

‫النظر للحلول بل قم بتطبيق حلك وانظر لها بعد ذلك‪.‬‬


‫ﻟﻤﺒ‬

‫حل المشاكل الحقيقية هو السبيل الوحيد لكي تحصل على مهارة حقيقة في‬
‫ﺪع‬

‫ً‬
‫واحيانا تضطر للتعلم أو مراجعة‬ ‫حل المشاكل ألنك سوف تحتاج للبحث عن المعلومات‬
‫األساسيات‪ ،‬وإذا كان لديك الوقت يمكنك العمل في مواقع الفري النسر وحل‬
‫مشاريع حقيقة سوف تفيدك‪ ،‬أو المشاركة في مشروع مفتوح المصدر‪.‬‬

‫ً‬
‫خبيرا؟‬ ‫‪ ‬كيف تصبح‬
‫ً‬
‫واضحا ‪ Visible‬كلما تأتيك الفرص أكثر‪ ،‬تذكر ان تصبح خبير في‬ ‫كلما تكون‬
‫موضوع ما هو عمل شاق وقد ال يكون هناك افضليه على شخص متمرس بها‪ ،‬ولكي‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪31‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

‫تستطيع الحصول على عائد من خبرتك عليك اكتساب مهارات اخرى مثل ادارة المشاريع‬
‫والفرق وتوزيع المهام والخ من مهام مديري المشاريع‪.‬‬

‫تنفيذ خطتك في التعلم‪:‬‬


‫عندما تبدأ في التعلم فال تبدأ بشكل افقي‪ ،‬ولكن عليك ان تأخذ من هنا وهناك‪،‬‬
‫فعندما تتعلم معلومة أساسية يمكنك ان تنظر كيف يمكن ان تستخدم وتقوم‬
‫ً‬
‫مسارا متعة ‪ fun‬لذلك هو الذي يقود الخطة‪ ،‬نفذ شيء‬ ‫بتطبيقها‪ ،‬والمهارات هو أكثر‬
‫ً‬
‫جيدا‪ ،‬أو تعلم‬ ‫وإذا لم تستطيع فقم بتعلم األساسيات فيها وال تتوقف حتى تتعلمها‬

‫ﺗﻢ‬
‫ً‬
‫جيدا مع معلومات ما ثم طبقها‪.‬‬ ‫األساسيات‬

‫اﻟﺘ‬
‫ﺤﻤ‬
‫لذلك الخطة مثل الجراف ‪ Graph‬وال يجب ان يكون لها ترتيب معين‪ ،‬والمهم في‬

‫ﯿﻞ‬
‫خطة التعلم هو ال‪ scope‬وأنك تعلمت ما تحتاجه لكي تصل ألهدافك‬
‫ﻣﻦ‬
‫ﻣﻮﻗ‬
‫ﻊ اﻟ‬
‫ﺠﺎﻧ‬
‫ﺐا‬
‫ﻟﻤﺒ‬
‫ﺪع‬

‫ً‬
‫أخيرا هذه قائمة بالمواقع الكورسات على االنترنت‪ ،‬سواء المختصة بعلوم‬
‫الحاسب أم التي تختص البرمجة وتقنية معينة‪ ،‬وهي ليست مرتبة أو شاملة ولكن‬
‫هذا هو األشهر وبعضها ليس مجاني ولكن معظمها كذلك‪:‬‬
‫‪ /http://www.rwaq.org‬بالعربية‬ ‫‪‬‬
‫‪ /https://edraak.org‬بالعربية‬ ‫‪‬‬
‫‪ /http://aldarayn.com‬بالعربية‬ ‫‪‬‬
‫‪ /http://codemasry.com‬بالعربية‬ ‫‪‬‬
‫‪ /http://tahriracademy.org‬بالعربية‬ ‫‪‬‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


https://www.facebook.com/groups/1300363670024580/ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

32 ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ||

‫ بالعربية‬/http://www.nafham.com 
‫ بالعربية‬/http://www.waqfonline.com 
‫ بالعربية‬/http://abdullaheid.net 
‫ بالعربية‬/https://moalfat.com 
/https://www.udacity.com 
/https://www.class-central.com 
/http://freevideolectures.com 
/http://academicearth.org 

‫ﺗﻢ‬
http://nptel.ac.in/courses.php?disciplineId=106 

‫اﻟﺘ‬
/https://www.khanacademy.org 

‫ﺤﻤ‬
/https://www.udemy.com 

‫ﯿﻞ‬
/https://www.edx.org 
‫ﻣﻦ‬
https://www.coursera.org/courses 
http://ocw.mit.edu/index.htm 
‫ﻣﻮﻗ‬

/http://videolectures.net 
‫ﻊ اﻟ‬

/http://channel9.msdn.com 
‫ﺠﺎﻧ‬

http://online.stanford.edu/courses 
‫ﺐا‬

http://www.lynda.com/default.aspx 
/http://www.microsoftvirtualacademy.com 
‫ﻟﻤﺒ‬

/http://www.pluralsight.com 
‫ﺪع‬

/https://university.mongodb.com 
/https://www.openlearning.com/courses 

http://collateral-beaut.hostkda.com ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬


‫‪https://www.facebook.com/groups/1300363670024580/‬‬ ‫إﻧﻀﻢ إﻟﯿﻨﺎ ﻟﯿﺼﻠﻚ ﻛﻞ ﻣﺎ ھﻮ ﺟﺪﯾﺪ ﺑﺎﻟﺒﺮﻣﺠﮫ ﻣﻊ ﻣﺠﻤﻮﻋﺔ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﮫ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻹﺣﺘﺮاف‬

‫‪33‬‬ ‫كيف يتعلم المبرمج بشكل صحيح؟‬ ‫||‬

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

‫ﺗﻢ‬
‫ً‬
‫ايضا في حال كنت‬ ‫متخصصة في مسار األساسيات والمهارات وحتى المعلومات‪.‬‬

‫اﻟﺘ‬
‫مؤلف أو لديك النية في اصدار المؤلفات االلكترونية فباب المشاركة مفتوح للجميع‪.‬‬

‫ﺤﻤ‬
‫ﯿﻞ‬
‫ً‬
‫متواصال معنا بأرائك واستفساراتك أو إذا وجدت أي أخطاء ما أو لديك أي‬ ‫فكن‬
‫ﻣﻦ‬
‫مالحظات‪ ،‬عبر موقع مؤلفات وموقع انفورماتيك أو عبر بريدي الموضح أدناه وصفحاتنا‬
‫االجتماعية يوجد روابطها على تلك المواقع‪ ،‬فقم بالتسجيل بهم ومشاهدة المقاالت‬
‫ﻣﻮﻗ‬

‫فعاال حتى نعرف مكامن الحوجة أو النقص والتقصير ونصلح ذلك في‬‫ً‬ ‫والمؤلفات وكن‬
‫ﻊ اﻟ‬

‫المستقبل باذن اهلل‪.‬‬


‫ﺠﺎﻧ‬

‫وتذكر أن الكتاب قد يتم تحديثه لذلك قم بالدخول لموقع مؤلفات وحمل الكتاب حتى‬
‫يصلك اشعارات التحديث متى ما حصل ذلك‪.‬‬
‫ﺐا‬
‫ﻟﻤﺒ‬

‫ً‬
‫ﺪع‬

‫شكرا لوصول لهذه النقطة‬

‫وجدي عصام عبد الرحيم‬


‫‪wajdyessam@hotmail.com‬‬
‫‪2114/7/31‬‬

‫‪http://collateral-beaut.hostkda.com‬‬ ‫ﻟﻠﻤﺰﯾﺪ ﻣﻦ اﻟﻜﺘﺐ زوروا ﻣﻮﻗﻌﻨﺎ‬

You might also like