Professional Documents
Culture Documents
https://www.learn-barmaga.com
https://www.facebook.com/barmej.dz2/
1 كيف يتعلم المبرمج بشكل صحيح؟ ||
www.learn-barmaga.com
2 كيف يتعلم المبرمج بشكل صحيح؟ ||
إعداد
محتويات الكتاب
ُمقدمة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 ................................................................................................................................ كيف تصبح
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
4 كيف يتعلم المبرمج بشكل صحيح؟ ||
F
ُمقدمة
نعيش اليوم في عالم تتوفر فيه المعلومات في كل مكان بعدة أشكال
(مقاالت ،دروس ،كتب ،دورات تعليمية) وأصبح الوصول اليها غير مكلف وفي وقت
سريع ،فبمجرد بحث بسيط تستطيع الوصول الى ماليين من المعلومات ،سواء كان
لديك سؤال وتبحث عن إجابة أو مشكلة برمجية تحتاج لحل ،أو طريقة إلعداد برنامج ما
أو حتى تريد الحصول على خدمات من مواقع العمل الحر فكل ذلك يمكن الوصول اليه
بدون تكلفة أو بتكلفة بسيطة في غالب األحيان.
ليس هذا فقط ،بل حتى األدوات Toolsوالبرمجيات أصبحت كذلك رخيصة أو
مجانية وهناك الخيارات البديلة للبرمجيات المغلقة المدفوعة في عالم ال Open
Sourceوقد يكون بعضها مساو أو أفضل من المدفوعة .وحتى األجهزة والمعالجات
Hardwareأصبحت أقل تكلفة وأكثر مقدرة ،بعكس ما كان عليه قبل سنوات حيث
كانت المراجع شحيحة والمعلومات غير متوفرة بسهولة واألجهزة الجيدة يصعب
امتالكها.
" فإذا كانت المعرفة والمعلومات واألدوات رخيصة فالمتبقي هو المهارات " Skills
المجتمع لم يبقى مجتمع معرفي knowledge Based Societyبل أصبح قائم
على المهارات Skill Based Societyفالمعرفة موجودة في كل مكان حولنا ،وفي
السابق أي درجة علمية من الجامعة كانت تكفي لكي تحصل على وظيفة مرموقة،
أما االن ال فال أحد يهتم بما تعرف ومن أين حصلت على شهادتك ،بل بما تستطيع عمله
ً
كافيا بل معرفة كيفية استخدامها "مهاراتك ."Your Skillsفامتالك المعرفة ليس
سواء كانت هي معرفتك أو معرفة غيرك فهو األهم.
في هذا الكتيب سوف نركز على موضوع التعليم وعلى المهارات واكتسابها،
وتعرف كيف تستخدم معرفتك أو معرفة غيرك ،وسوف نحاول أن نغير نظرتك في
كيفية تعلم التقنيات واختيار الطريقة المناسبة في التعلم باإلضافة الى تحفيزك لبناء
خطة تعلم تتناسب معك وتستطيع من خاللها تحقيق كل اهدافك التي ترغب بها.
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
5 كيف يتعلم المبرمج بشكل صحيح؟ ||
ً
مليا في أخر تقنية (لغة برمجة ،إطار عمل ...Framework قبل أن نبدأ عليك التفكر
الخ) تعلمتها ولماذا تعلمتها؟
وقم باإلجابة على هذه األسئلة قبل االنتقال لما يلي:
ً
مليا بأنه هل سيفيدك تعلم هل استحقت منك ذلك التعب والمجهود (هل فكرت
هذه التقنية واستثمار الوقت فيها)؟
هل كان تعلمك بناء على خطة Strategyواضحة المعالم أم أنها كانت بشكل
عشوائي من أي مصدر تجده أمامك سواء كتاب أو موقع او كورس وتأخذ من هنا
وهناك
هل وصلت للمرحلة التي تمنيت الوصول اليها (مبتدئ ،متوسط ،خبير)؟ أم فقط
قمت بالدراسة بدون أي هدف محدد وتوقفت فور ما شعرت بالملل؟
هل هناك مخرج Outputلما قمت بتعلمه كمشروع قمت بتطبيق ما تعلمته من
خالله
هذا الكتيب هو خالصة للكورس Learning Technology in the Information
Ageمن موقع pluralsightوهو موقع يحتوي على كورسات صغيرة من خبراء في
التقنية
وقد استفدت من هذا الكورس ،ورأيت أن انقل خالصته للناطقين بالعربية حتى
يتحصلوا على الفائدة فيه ،وقراءتك له يعني اإللمام بكل ما جاء فيه باإلضافة الى
نقاط أخرى وجدتها مفيدة وفي نفس السياق قمت بجمعها من مصادر أخرى وبعضها
األخر كان بناء على خبرة تحصلت عليها في العمل منذ أكثر من 1سنوات في تطوير
البرمجيات.
الكتيب ال يحتاج الى أي خبرة على االطالق ،وسواء كنت مبتدئ في المجال أو
لديك عدة سنوات فسوف يفيدك.
ً
سعيدا. ً
وقتا أتمنى لك
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
6 كيف يتعلم المبرمج بشكل صحيح؟ ||
الطريقة التقليدية التي نعرفها عند تعلم أي موضوع وهي أن هناك مستويات
في ذلك الموضوع ،وستجد أن رحلة التعلم تبدأ من المستوى المبتدئ الى المستوى
ً
شيئا في ً
وأخيرا الى مستوى الخبير ،فتبدأ من أول نقطة وانت ال تعرف المتوسط
المجال وتنتقل مع الوقت الى ان تصل لمرحلة الخبير.
لذلك يجب أن تنظر الى التعلم على أنه عبارة عن 4مسارات مختلفة ،كل منها له
دوره الحيوي:
)1األساسيات Fundamentals
)2المعلومات Information
)3المهارات Skills
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
7 كيف يتعلم المبرمج بشكل صحيح؟ ||
هذه المسارات المختلفة سوف تسهل علينا فهم طريقة التعلم بشكل أفضل
وتعرف خصائص وأنواع المعرفة المختلفة.
)1األساسيات :Fundamentals
ً
مثال تريد أن تتعلم وهنا سوف تتعلم األساسيات في التقنية التي تريد تعلمها
البرمجة وتود أن تصبح مبرمج فسوف تتعلم المصفوفات وأنواع البيانات Data Types
ً
مثال تريد تعلم وتمثيلها ومفاهيم الـ OOPوغيرها من األساسيات في ذلك المجال،
ً
مثال إدارة وبرمجة الشبكات هنا سوف تتعلم بروتوكوالت الشبكة وتتعلم األساسيات
DNS، UDP،TCPوالخ ...وتتعلم المصطلحات في ذلك المجال.
هناك ميزتين في األساسيات والتي تستطيع من خاللها تصنيف أي معلومة تجدها
هل من األساسيات أم ال:
األساسيات تطبق على العديد من األمور المتعلقة Widely Applicableوال تختص
ً
مثال بروتكوالت الشبكات تطبق بتقنية أو برنامج أو حتى Implementationمعين
على أي Hardwareللشبكة ،وكذلك ال OOPتطبق ألي لغة تعمل بهذا المفهوم.
ً
نادرا ما تكون عديمة الفائدة وليس لها وقت صالحية تنتهي فيه وهي األساسيات
ً
حصرا على تقنية تكون حجر األساس Foundationللمعلومات األخرى التي تكون
معينة أو Implementationمعين.
ً
جيدا من عدة وفي الغالب تحتاج األساسيات ان تتعلمها في 3مرات حتى تفهمها
مصادر مختلفة وسوف تكون معك لألبد
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
8 كيف يتعلم المبرمج بشكل صحيح؟ ||
)2المعلومات Information
لكي تعمل في مجال التقنية والبرمجة عليك بمعرفة المعلومات العامة األساسية
Fundamentalsباإلضافة الى المعلومات التي تختص بتقنية معينة أو المنتج المعين،
وهذه المعلومات المتعلقة بشيء معين سنسميها مرحلة المعلومات Information
(فقط المهم أن تفرق بين هذه المعلومات واألساسيات Fundamentalsبغض النظر
عن األسماء).
فاألساسيات تغطي ما هو الروترات Routersوماذا تفعل أما مرحلة المعلومات
سوف تعطيك كافة المعلومات حول نوع معين منه وخصائصه وكيف تتعامل معه،
في البرمجة األساسيات سوف تعلمك ما هو ال integerوكيف يخزن وتتعامل معه،
في مرحلة اكتساب المعلومات سوف تقوم بمعرفة كيف تتعامل معه في سي#
ومجال االعداد المسموح بها في هذه اللغة ،وكل ما تتقدم في التعلم في معلومات
ً
مثال ال Boxingوال Unboxingأو استخدام ال اللغة سوف تتعلم األمور أكثر صعوبة
Reflectionوالخ.
ً
اوال قبل أن تستخدم أو المنطق يقول تعلم األساسيات
تفهم أي معلومات حصرية لمنتج أو تقنية معينة ،وفي
الكثير من األحيان قد تجد شخص لديه معلومات كثيرة حول
موضوع ولكن بدون اساسيات جيدة حوله ،وهذا الخلل قد
يجعل الشخص يقدم حلول ليست مناسبة وبعض االحيان
تجعله يجرب في الحلول الى ان يصدف الحل معه بدون
معرفة كيف تم حل هذه المشكلة وما هو السبب من
ورائها.
مثال :مبرمج ال يعرف الفرق بين تخزين الرقم 4في متغير Integerمع تخزين الحرف
” “4في متغير characterويظن أنهم نفس القيمة .مثال أخر مبرمج يريد تحويل صورة
الى stringوقام بأخذ ال Bytesلها واستخدم Text Encodingمثل UTF-8لكي
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
9 كيف يتعلم المبرمج بشكل صحيح؟ ||
من خصائص المعلومات والتي تستطيع التفرقة بينها وبين االساسيات هي انها:
ً
مثال معرفتك بكيفية إدارة نوع معين تنتهي صالحيتها بسرعه :become obsolete
ً
مثال IIS 6قد تذهب بمجرد تغيير البرنامج لطريقة عمله بعد التحديثات من البرامج
وصدور نسخ جديدة مختلفة عن السابق ،وهكذا في البرمجة أو في الشبكات،
ولذلك يجب أن تتعلم هذه المعلومات فقط عندما تحتاجها وليس أن تتعلم هذه
المعلومات على أمل انها قد تفيدك في يوم من األيام وأنت تعرف أن وقت
صالحيتها قد ينتهي.
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
10 كيف يتعلم المبرمج بشكل صحيح؟ ||
ً
مجانا وسهل الحصول عليها ولذلك يشد انتباهك ،ألن المعلومات واالساسيات متوفرة
فسوف تزيد قيمة المهارات وهذا هو الحاصل االن.
في أغلب األحيان المهارات هي التي تزيد من قيمتك وتدر عليك الــدخـل الـجـيــد
Generate Incomeفالشركات تدفع لك لكي تقوم باألشياء ولـيـس لـمـعـرفـتـك
باألشياء .وكلما تتقدم خبرتك
سوف المهارات، في
تستطيع تقديم حلول بسرعه
بدون أخطاء وأكثر كفائه من
الشخص المبتدئ.
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
11 كيف يتعلم المبرمج بشكل صحيح؟ ||
مثال عمل في منصة جديدة واحتاج لبناء chartولم يجد مكتبة مناسبة ً يقوم بعمله،
فسوف يقوم بكتابه ال charting & graphicsبنفسه).
الخبير هو الذي يؤلف الكتب والمقاالت ويبدع في انشاء معرفة جديدة ،بعباره .2
اخرى هو من ينشئ المعرفة ،Create knowledgeويوجد الحلول الجديدة ويقوم
بكتابة أفضل الممارسات للتقنية أو اللغة.
خبيرا في األساسيات أو يمكن أن خــبــيــ ًرا فــي
ً لذلك الخبير يمكن أن يكون
خبيرا في الــمــهــارات ،ولذلك سوف نحذف مرحلة ً المعلومات أو يمكن أن يكون
لدينا ويكون االبـداع
الـتـعــلـــم عـلـى 3مسارات
ولكن اخر نقطة في كل
منهم تكون بداية الخبرة.
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
12 كيف يتعلم المبرمج بشكل صحيح؟ ||
ً
كثيرا وللنظر للموضوع بشكل أوضح من منظور لذلك الوصول للخبرة قد ال يفيدك
الشركات:
فاذا كانت لديها أشخاص متمرسين كفاية ويستطيعوا حل المشاكل فلماذا يتم
جلب الخبير ودفع المزيد من األموال؟ فقط يتم جلب الخبير في حالة لم يكن هناك من
يستطيع حل المشكلة المعينة ،لذلك في الغالب توظف الشركات األشخاص
المتمرسين الذين لديهم المعرفة والمهارة الكافية طالما انهم يستطيعوا العمل وحل
ً
مثال للعمل في أمور المشاكل ،ربما فقط في حاالت قليلة يتم جلب خبير للعمل
أساسية في المشروع أو شيء حساس يحتاج لخبرة كبيرة ،وعلى أي حالة لن تحتاج
الشركة فريق من الخبراء حتى لو كانت تستطيع ايجادهم.
أ ً
يضا كونك خبير فقد ال تأخذ عائدا أكبر في بعض األحيان عن الشخص المتمرس،
باإلضافة الى انه عليك العمل بشكل أصعب لكي تحافظ على خبرتك Hard to stay
،Expertان تكون خبير هو عمل صعب Hard Jobففهم المعلومات الموجودة
ودراستها وتطبيقها أمر سهل بالمقارنة مع عمل التجارب Research & Experiment
واستحداث المعرفة والمعلومات الجديدة والقيام بالبحث والمالحظة ،فالوقت الذي
ستقضيه للوصول الى الخبرة قد تستطيع فيه ان تتمرس على تقنية أخرى.
هناك حاالت قد تود الوصول الى
مرحلة الخبرة حتى تعود الى بعائد أفضل
ً
مثال إذا كنت تود ان تصبح مؤلف Author
أو متحدث Speakerأو حتى مستشار
Consultantفكونك خبير هو وسيلة
جيدة لكي تحصل هذه األعمال وبالطبع
ً
أحيانا الشركات تحتاج لخبير للقيام بشيء
معين وتدفع الكثير لكي يقوموا بهذا
العمل.
ً
بعيدا عن التمرس الى مرحلة الخبرة بدون وجود سبب، المهم هو انه ال تذهب
ألن كونك متمرس في التقنية فيمكنك بعد الوصول لهذه المرحلة ان تنتقل لتقنية
ً
بدال من اكمال الطريق الى الخبرة وبالتالي يكون لديك معرفة جيدة بأكثر من أخرى
ً
خصوصا بداية عملك. تقنية وهذا مفيد لك
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
13 كيف يتعلم المبرمج بشكل صحيح؟ ||
لنطرح مثال على ذلك ونرى كيف يكون عمل المبتدئ Careerودوره حياته،
وبعبار ة أخرى الحصول على أكبر فائدة من الجهد الذي سوف تضعه في عملية تعلمك
للتقنية
كونك مبتدئا فعليك الوصول لمرحلة االلمام
الكافي competentوقد تكون لديك اساسيات
ومعلومات ومهارة قليله ،وعليك بإيجاد وظيفة
كخريج جديد أو تدريب فهناك شركات لديها استعداد
لذلك وقد يوظفوا شخص بدون المهارات التي
يطلبوها ولكن يكون الشخص لديه أشياء أخرى
يهتموا بها وهذا الشيء يقوموا به خاصه عندما ال تجد الشركة اشخاص ملمين بشكل
كافي فتلجأ لهذا الخيار
هناك شركات توظف خريجين جدد ليس لديهم
المهارات المطلوبة للعمل ولكن لديهم اساسيات
قوية على أساس انهم سوف يتعلموا بسرعه وهذا
ما تفعله الشركات الكبيرة مثل قوقل
ومايكروسفت
المرحلة األخيرة االلمام الكافي والتمرس
competentإذا كانت لديك معرفة قوية
باألساسيات والقدرة على فهم المعلومات بسرعه
ومهارات متعددة فأنت تستطيع حل المشاكل
بكفائه باستخدام مجموعه متعددة من األدوات
التقنيات
وهذا األمر مطلوب هذه األيام ألن غالب المشاريع تحتاج ال Integrationمع
ً
وايضا تعطيك األمان الوظيفي ألن مهاراتك قد توظفك عدة تقنيات وأدوات أخرى،
في أمكان مختلفة ،بعباره أخرى الوصول الى مرحلة االلمام الكافي في األساسيات
والمعلومات والمهارات في عدة تقنيات سوف يفيدك بشكل كبير.
ً
فكثيرا ما ً
أخيرا يجدر بنا اإلشارة الى موضوع التسميات والقاب Titlesالمبرمجين،
نجد القاب كثيرة على سبيل المثال ال الحصر:
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
14 كيف يتعلم المبرمج بشكل صحيح؟ ||
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
15 كيف يتعلم المبرمج بشكل صحيح؟ ||
هناك جانبين مهمين عندما تتعلم أي موضوع وعليك بمعرفتهم قبل البدء في
عملية التعلم ،الجانب األول وهو التكلفة أو الضريبة التي سوف تدفعها عند تعلمك
للموضوع ،أما الجانب الثاني فهي قيمة ما تعلمته مع الوقت وهل سوف ينتهي
ً
سريعا أم أنه سيبقى معك وهذا جانب يفيد أن تعرفه قبل البدء في التعلم وفهم
صالحية المعلومات هي من األمور التي بسببها تم تقسيم عملية التعليم الى
المسارات التي سبق ذكرها.
ً
أوال :ضريبة التعلم عند تحديدك لما تريد أن
تتعلمه
هناك ضربيه مقابل التعلم وهذه
الضريبة من المهم معرفتها عند اختيار المجال
الذي تود تعلمه ،والضريبة الحقيقية في
التعلم هي ليست في األدوات أو المصادر
والكتب وانما هو الوقت ،حيث التعلم يأخذ
وقتا منك ،وألنه ال يوجد وقت لتعلم كل ً
شيء فيجب معرفه فائدة كل ما تريد تعلمه
فكر باألمر كأنك ذهبت للسوق وتريد شراء شيء ما ولنقل سيارة ،فسوف تريد
معرفة ما الذي سوف تفيدك هذه السيارة مقارنه باألخرى ولماذا اخترتها وما هي
مواصفاتها.
تعلم التقنيات الجديدة مثل عملية الشراء هذه ،حيث المبلغ المدفوع هو وقتك،
لذلك اعرف ماذا تفيدك فيه والعائد الراجع لك ،وفي الغالب للمبرمجين يكون العائد
Job المطلوب هو في زيادة الدخل Incomeوالحصول على فرص عمل
Opportunitiesأفضل وأكثر ،أو بعض الحاالت العائد ال دخل له بالمادة ،وإنما يكون
للسمعة ،Reputationأو بمجرد الهواية وحب العمل For Funعلى هذه التقنية فقط.
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
16 كيف يتعلم المبرمج بشكل صحيح؟ ||
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
17 كيف يتعلم المبرمج بشكل صحيح؟ ||
ً
معا ما هي ال Data Typesبها ،هل هي Interpretedأم Compiledأم االثنان
وهكذا.
عندما تعرف خصائص اللغات سوف تستطيع تعلم اللغة األخرى بسهولة طالما
ً
مسبقا في لغة أخرى ،وسوف يكون عليك التعود فقط على ال أنك تعرف الخصائص
Syntaxومن ثم الدخول في ال Librariesوالمكتبات المستخدمة في هذه اللغة
لكي تستطيع ان تنجز بها.
هذه الخصائص Characteristicsللغات باإلمكان ان تعتبرها أساسيات يجب تعلمها،
ولذلك تجد أغلب الجامعات لديها كورس اسمه Programming Languagesيتم فيه
دراسة أربعه لغات على األقل ،الهدف منها هو ليس أن تصبح خبير بهذه اللغات األربعة
وانما التعرف على أكثر من Paradigmمختلف في البرمجة فهذه النظرة سوف تفيدك
جدا في المستقبل ،فاحرص ان تقرأ في كتاب أو تتبع دورة في مفاهيم ال ً
Programming Languagesفهي سوف تفيدك.
كيف تعرف أن ما تتعلمه له قيمة وسوف يفيدك سواء في الحصول على دخل
أفضل أو فرص عمل أكثر؟
أسهل طريقة وهي النظر للحاجة Demandفي سوق العمل في بلدك وانظر
للوظائف وفرص العمل ،فاذا وجدت طلب كثير وبدخل جيد فهذا اشاره جيدة على أن
هناك حاجة لهذه التقنية ،وقم بتعلم شيء يقل المتمرسين فيه لكي تحصل على نقاط
ً
مثال تعمل على ال Web Servicesفقم بتعلمها باإلضافة الى عادات قوة اضافية،
وممارسات ال Securityبها.
ً
ثانيا :قيمة المعلومات مع الوقت
بعد أن تختار ما سوف تتعلمه عليك بتحديد كم من الوقت سوف تكون هذه
المعلومات لها قيمة فاذا كانت هذه المعلومات سوف تصبح عديمة فائدة في وقت
سريع فعليك أن تقضي وقت وجهد اقل في تعلمها بعكس فيما إذا كانت سوف
تبقى معك وتفيدك بشكل مستمر.
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
18 كيف يتعلم المبرمج بشكل صحيح؟ ||
ً
وحاليا كل األجهزة تستخدم USBوتحويل المعلومات اليها سوف تكون سهله ،لذلك
ينصح بدفع وقتك وجهدك للحصول على شهادة من جامعه ألن الدراسة الجامعة تركز
على األساسيات والعائد سوف يكون معك لعدة سنوات،
ً
تماما ،فسوف تنتهي بسرعه ،مثل البرامج أو مسار المعلومات :هو العكس
ً
خصوصا هذه األيام مع مفاهيم ال Agileوال Continues اللغات يحدث بها تغييرات،
Deliveryفكل شيء متعلق بتقنية أو منصة ما يتغير بسرعه ،ويحتاج أن تواكب ذلك
ً
مثال salesforce.comتحدث تطورات بها كل اربعه أشهر هذا مع الوقت بدون توقف.
يعني باإلضافة الى ما ستقضيه من الوقت في األول للتعلم فعليك أن تضع جهد جديد
ً
وايضا الكثير من كل اربعه أشهر لكي تتعلم األمور الجديدة لكي تكون ،Up to date
الشهادات التقنية تتطلب ان تقوم بتحديث الشهادة بعد فترة وتنتهي صالحية األولى،
وهذه من أصعب التحديات في المجال التقني.
مسار المهارات :هو الوسط ،ألنه هو القدرة على تطبيق المعرفة ،فاألشياء التي
بنيت على أساس األساسيات فقد تبقى أما التي بنيت على أساس المعلومات فقد
تنتهي .على سبيل المثال عندما تدرس علوم الحاسوب فسوف تدرس عدة طرق لترتيب
مصفوفة من األرقام باستخدام خوارزميات مختلفة ،وسوف تعرف كيف تقوم بتقييم
evaluateخوارزمية معينة ،المهارة التي تجعلك تقوم بعمل دالة ترتيب هي طويلة
المدى ،لكن عندما تواجه مشكلة تحتاج للترتيب فهناك أشياء عليك القيام بها قبل
مثال هل توجد دالة جاهزة ،هل هناك limitationعلى الذاكرة أو ً استخدام المهارة،
المعالج وحجم البيانات التي سوف تريد ترتيبها ،كل هذه األشياء هي معلومات قد
تتغير بناء على تغير األداة او المكتبة التي تستخدمها.
واألساسيات التي تجعلك تقيم دالة ترتيب ومن تختار في حالتك سوف تفيدك
في هذه المرحلة
ً
ايضا للمسارات المختلفة ،فإذا كنت خبير مرحلة الخبرة أو االبتكار :وهي تكون
في األساسيات وبناء واكتشاف األساسيات مثل الدكاترة والبروفسورات فسوف
ً
ايضا .أما المعلومات في تقنية معينة أو برنامج سوف ينتهي تكون طويلة المدى
سريعا ويحتاج مجهود أكثر من ان تكون متمرس في المعلومة فقط.ً
ً
واضحا أحيانا ،ولكن اسأل نفسك كم من الوقت ً
أخيرا قد يكون الفاصل ليس
سوف يظل ما تتعلمه يفيدك فاذا كان طويل المدى فهذه اساسيات واال فهي
معلومات سوف تتغير مع تغير النسخة او اإلصدار القادم.
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
19 كيف يتعلم المبرمج بشكل صحيح؟ ||
الجامعات:
في الجامعة تدرس األساسيات بشكل جيد ولكن التطبيق العملي واكتساب
ً
وأحيانا يكون بعيد كل البعد عن المهارات ال يؤهل بالشكل المطلوب لسوق العمل
المهارات الصحيحة ،وهناك أسباب لهذا منها أن الدكاترة في تلك الجامعات وظيفتهم
هي البحث واالبتكار في تدريس
األساسيات وحل المشاكالت األساسية
في المجال ،وبعبارة أخرى هم خبراء
األساسيات مرحلة في ومبدعين
Fundamentalsولذلك هم يدرسوه
وحتى االن الدراسة في الجامعة هي
أفضل طريقة للحصول على أساس قوي في األساسيات.
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
20 كيف يتعلم المبرمج بشكل صحيح؟ ||
وال يفترض أن تقلق من ناحية فلترة المعلومات وما هو المهم بالنسبة للطالب
ً
ايضا الجامعات توفر الدعم وما هو غير المهم فالجامعة وظيفتها ان تقوم بذلك،
Supportلك حيث هناك طالب مثلك يمكنكم التعاون في القراءة وحل المشاكل،
باإلضافة الى األساتذة والمساعدين الذين يستطيعوا مساعدك ان طلبك ذلك واإلجابة
على اسئلتك.
ً
مثال Algorithms Analysis وهذا ضروري فالكثير من المراجع العلمية والمواد
ً
وايضا ما يميز الجامعة هو في يصعب ان يفهمها الطالب بدون مدرس أو مساعد ،
االختبارات المتكررة التي تحفز الطالب على الدراسة والتعب ،باإلضافة الى الحصول
على الشهادة في األخير بعد التخرج والتي سوف تستفيد منها وقت العمل في
ايضا بعض الجامعات توفر الفرصة لكي تحصل على خبرة حقيقية في بعض ً التوظيف،
المجاالت مثل المشاريع البحثية ، Research Projectsالدراسات العليا Advanced
Degreeو Graduate Studiesوهذه سوف تدخلك في مرحلة الخبرة لألساسيات.
الجامعة تعطيك كل هذه األمور السبعة الموضحة على الصورة أدناه
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
21 كيف يتعلم المبرمج بشكل صحيح؟ ||
ً
ايضا ً
حاليا العالم تغير ،وهناك بدائل
اوال المعلومات ً ً
ايضا وأسرع، أقل تكلفة
واالساسيات كما ذكرنا في البداية انها االن
أصبحت مجانية ،في السابق المعدات
واألجهزة كانت ال تتوفر اال في الجامعات
اما اليوم فالجميع يستطيع اقتنائها ،في
الطالب مالقاه تستطيع الجامعات
ايضا من خاللً والحصول على الدعم واليوم
الشبكات االجتماعية تستطيع التواصل مع
ً
وايضا الجامعة ليست الوسيلة الوحيدة للحصول على أي طالب في مكان في العالم،
المنهج Curationوهناك مواقع الكورسات open online courseتستطيع الدراسة
وايضا أماكن أخرى تستطيع الحصول على منهج محدد مثل مناهج الشهادات ً منها،
التقنية.
ما سنوضحه اآلن البديل وكيف يمكن ان تحصل على جميع هذه االوجه Aspects
من خالل البدائل المتوفرة.
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
22 كيف يتعلم المبرمج بشكل صحيح؟ ||
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
23 كيف يتعلم المبرمج بشكل صحيح؟ ||
مواقع الجامعات:
ويمكنك الدخول اليها والنظر لالئحة الكورسات والمنهج المتسلسل لكي تحصل
ايضا على ال ،Curationحيث هناك جامعات تضع قائمة الكورسات والكتب المطلوبة ً
ً
وأحيانا تجد خطة الكورسات كاملة ،واالختبارات والواجبات. لكل كورس،
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
24 كيف يتعلم المبرمج بشكل صحيح؟ ||
الكتب التقنية تنتهي بسرعه ،Obsolete Quicklyوقد تكون مدتها سنة واحدة
ً
حاليا خيارات الكتب EBooksوالطباعة عند إذا كنت محظوظ ،لحسن الحظ هناك
ً
بدال من شراء الكتب التي سوف تنتهي بعد فترة ،على الطلب توفر لك حلول اخرى
كل ما زالت الكتب هي من أفضل الطرق للتعلم.
الكورسات والفيديو:
ومواقع الكورسات على االنترنت وهي مشابه للكتب وهي لمن يفضل الفيديو
على الكتب.
المواقع والمدونات والبحث:
هناك الكثير من المعلومات الممتازة واألسئلة واالجابات الموجودة وقد تكون
بواسطة خبراء في المجال ،وهي مفيدة بال شكل ،ولكن اغلب الدروس تكون بدون
منهجية متكاملة Curationلذلك يصعب إيجاد الترتيب والمواضيع المتعلقة بالنسبة
للمتعلم
أن تتعلم تقنية أو مجال من
االنترنت فقط كأنك تقوم بأخذ عدة كتب
في المجال ممزقة الى صفحات تم
دمجها مع بعضها كل صفحة بها
keywordتميزها ومن ثم اختيار كل
صفحة بناء على الكلمة التي تريدها
لكن األمر ليس بذلك السوء فهناك
مواقع تقدم لك curationلمحتواها ،روابط للمقاالت المتعلقة ،وإذا كنت تريد تعلم
تقنية معينة فقد يكون هناك لها Documentationوهو يكون يحتوي على معلومات
موثوقة محدثة للمنتج .up to date
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
25 كيف يتعلم المبرمج بشكل صحيح؟ ||
و من خالل التدريب تحصل على المهارات ،ولذلك تضع الجامعات الواجبات حتى
تتمرن بها .ويمكنك قرائه كل كتب البرمجة ومشاهدة كل الكورسات ولكنك لم تبقى
مبرمج اال بعد أن تكتب بنفسك وتحل المشاكل بها وتبني بها البرامج.
في مجاالت أخرى كالطب فالجامعة هي الوسيلة للحصول على المهارة الالزمة
تحت االشراف ،ولكن في المجال التقني االن (يمكنك الحصول على المعدات
واألجهزة بسهوله) والعمل عليها.
هناك الكثير من الكتب والدورات
تعطيك امثلة walkthroughخطوة
بخطوة ولكنها ليست كافية وعليك
حل مشاكل بنفسك ،الطريقة الجيدة
هي باللعب playبالكود ،إذا لم تكن
هناك مشاكل تجدها لحلها ،فقط بحل
مشاكل االخرين في مواقع البرمجة
مثل .SOF
أ ً
يضا المشاركة في open source projectsوقم بالعمل في أحد المشاريع التي
تشد انتباهك وابحث عمن هم أكثر خبرة منك واستفد منهم ومن تجاربهم وحاول أن
تحصل على مراجعه ألكوادك متى ما استطعت.
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
26 كيف يتعلم المبرمج بشكل صحيح؟ ||
أ ً
يضا يمكنك مشاهدة كورسات من االنترنت والتعلم عليها وعمل مجتمع دراسي
Study Groupلكي تدرس كورس ما ،وهناك مجتمعات للنقاش لكل كورس في
مواقع الكورسات على االنترنت وسوف تحصل على الدعم بعكس الكتب والتي قلما
تحصل على دعم بها.
فيما تفعله.
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
27 كيف يتعلم المبرمج بشكل صحيح؟ ||
"حتى يتم إعطاء النصيحة الجيدة ،فالسؤال هو ما هو المسار الذي تريد التركيز عليه،
وما هو المستوى الذي تريد الوصول اليه؟ بعباره أخرى حدد أهدافك؟"
ً
خصوصا إذا ً
أوال باألساسيات إذا كنت تريد أن تتعلم تقنية أو مجال جديد فعليك
كنت ستقضي فترة في العمل عليه ،على سبيل المثال إذا كنت تريد ان تعمل وتطور
في WordPressفاألساسيات هي ال PHP، Apache، HTML، MySQLوالخ.
في مرحلة ال informationعليك بالــنــظــر إلـــــــــــى WordPressمـــــــــن
الداخل ،أما في مرحلة المهارات عليك بتطبيق موقع كامل وانشاء pluginأو التعديل
على احداهم (اقرأ المتطلبات لكل مرحلة في الصورة أدناه).
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
28 كيف يتعلم المبرمج بشكل صحيح؟ ||
لكن إذا كنت تود أن تحل مشكلة ما فقط وليست لديك النية على العمل بهذا
اإلطار ،فسوف تتجاهل األساسيات وتبحث
عن حل للمشكلة التي تريدها مباشرة وقد
تجد حل جاهز للمشكلة بدون الحاجة لفهم
ماذا يحدث بالضبط ،وكلما كانت لديك
األساسيات كلما استطعت حل المشكلة
بشكل أسرع وأفضل.
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
29 كيف يتعلم المبرمج بشكل صحيح؟ ||
ً
ودائما اطلع على أكثر من مصدر
عندما تتعلم التقنية ،فربما كتاب جيد
ولكن لم يجدي معك وربما ينفع معك
مصدر اخر أو أن الكتاب األخر قام بشرح
معلومة بشكل أفضل وأيسر من االول،
لذلك احرص استخدام أكثر من مصدر في
التعلم
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
30 كيف يتعلم المبرمج بشكل صحيح؟ ||
ً
وغالبا المعلومــــــات ســـــــوف تكتشفها عندمــــــا تكـــون في مرحلة لالختبارات بها،
اكتساب المهارات
عندما تطبق األمثلة حاول تغيرها بالتغير والتالعب بها وبهذه الطريقة سوف
تكتسب المهارات ،اتباع األمثلة يعطيك فهم لها وهذا ال يعطيك مهارات وانما هي
ً
تطبيقا للمنهج ال ، curationوعليك التطوير وبناء األشياء األخرى غير الموجودة مجرد
مثال حل الواجبات إذا كانت هناك ،أو ابحث عن ً في األمثلة لكل تكتسب المهارات،
(مثال في ال ) stack overflowوقم بحلها وال تحاول ً مشاكل في مواقع البرمجة
النظر للحلول بل قم بتطبيق حلك وانظر لها بعد ذلك.
حل المشاكل الحقيقية هو السبيل الوحيد لكي تحصل على مهارة حقيقة في
ً
واحيانا تضطر للتعلم أو مراجعة حل المشاكل ألنك سوف تحتاج للبحث عن المعلومات
األساسيات ،وإذا كان لديك الوقت يمكنك العمل في مواقع الفري النسر وحل
مشاريع حقيقة سوف تفيدك ،أو المشاركة في مشروع مفتوح المصدر.
ً
خبيرا؟ كيف تصبح
ً
واضحا Visibleكلما تأتيك الفرص أكثر ،تذكر ان تصبح خبير في كلما تكون
موضوع ما هو عمل شاق وقد ال يكون هناك افضليه على شخص متمرس بها ،ولكي
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
31 كيف يتعلم المبرمج بشكل صحيح؟ ||
تستطيع الحصول على عائد من خبرتك عليك اكتساب مهارات اخرى مثل ادارة المشاريع
والفرق وتوزيع المهام والخ من مهام مديري المشاريع.
ً
أخيرا هذه قائمة بالمواقع الكورسات على االنترنت ،سواء المختصة بعلوم
الحاسب أم التي تختص البرمجة وتقنية معينة ،وهي ليست مرتبة أو شاملة ولكن
هذا هو األشهر وبعضها ليس مجاني ولكن معظمها كذلك:
/http://www.rwaq.orgبالعربية
/https://edraak.orgبالعربية
/http://aldarayn.comبالعربية
/http://codemasry.comبالعربية
/http://tahriracademy.orgبالعربية
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
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
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
33 كيف يتعلم المبرمج بشكل صحيح؟ ||
النهاية
وقتك أهم شيء لديك ،أرجوا أن يكون موضوع هذا الكتيب قد بين لك ما األشياء التي
سوف تتعلمها وبأي طريقة وأن نكون نجحنا في إيصال هذه المادة وان تكون قد
ً
شيئا في وقتك الذي قضيته في هذا الكتيب. كسبت
كما الحظت في هذا الكتاب ركزنا على نقطة التعلم ومساراته ولم يكن التركيز عن
ماهية األمور الواجب أن يتعلمها المبرمج في وقته الحالي ،ألن التعليم إذا نُ ظر له
بالطريقة الصحيحة فسوف يستطيع المبرمج بعد ذلك أن يتعلم بالطريقة الصحيحة.
في إصدارات قادمة بإذن اهلل سوف نعمل في مؤلفات في إصدار مؤلفات تقنية
ً
ايضا في حال كنت متخصصة في مسار األساسيات والمهارات وحتى المعلومات.
مؤلف أو لديك النية في اصدار المؤلفات االلكترونية فباب المشاركة مفتوح للجميع.
ً
متواصال معنا بأرائك واستفساراتك أو إذا وجدت أي أخطاء ما أو لديك أي فكن
مالحظات ،عبر موقع مؤلفات وموقع انفورماتيك أو عبر بريدي الموضح أدناه وصفحاتنا
االجتماعية يوجد روابطها على تلك المواقع ،فقم بالتسجيل بهم ومشاهدة المقاالت
فعاال حتى نعرف مكامن الحوجة أو النقص والتقصير ونصلح ذلك فيً والمؤلفات وكن
المستقبل باذن اهلل.
وتذكر أن الكتاب قد يتم تحديثه لذلك قم بالدخول لموقع مؤلفات وحمل الكتاب حتى
يصلك اشعارات التحديث متى ما حصل ذلك.
ً
شكرا لوصول لهذه النقطة
ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ
www.learn-barmaga.com
ﺗم ﺗﺣﻣﯾل اﻟﻛﺗﺎب ﻣن ﻣوﻗﻊ ﺗﻌﻠم اﻟﺑرﻣﺟﺔ ﻟﻠﻣزﯾد ﻣن اﻟﻛﺗب واﻟدروس ﺗﻔﺿل ﺑزﯾﺎرة ﻣوﻗﻌﻧﺎ
https://www.learn-barmaga.com
https://www.facebook.com/barmej.dz2/