تنفيذاً للوعد الذي قطعته في التدوينة السابقة والتي تحدثت فيها عن بعض المراحل الشخصية التي مريت بها في العامان الماضيان وبناء علي طلبات بعض الاصدقاء ها انا اقوم بكتابه تدوينة مفصلة عن المصادر التي اعتمدت عليها خلال ٤ سنوات من الدراسة في كلية الحاسبات والمعلومات بجامعة المنوفية.
سوف اقوم بتقسيم المصادر علي حسب السنة الدراسية حتي يسهل علي القارئ انتقاء المصادر على حسب مستواه الدراسي الحالي.
السنة الدراسية الاولى:
اذا كنت لا تعلم شيئاً عن علوم الحاسب او بالاخص كلية الحاسبات والمعلومات ودخلتها بسبب مجموع الثانوية العامة ونظام التنسيق ؛ فتكاد تكون هذه هي السنة الاسوء في حياتك خلال دراستك الجامعية، وذلك لعدة اسباب منها الحالة النفسية العامة لانك لم تدخل الكلية التي طالما حلمت بها وحطمت امال والديك ، ومن ثم تحاول تخطي هذه الحالة النفسيه مع الوقت وتحاول اثبات نفسك بالاجتهاد ، فتجد ان الموضوع شاق كلياً ، فانت بالكاد دخلت مجالاً جديداً ليس لديك اي معلومات مسبقه عن جدوى دراسته او مستقبله المهني ، ومن ثم تبدأ بدراسة مواد جديدة وتبدأ المعلومات الكثيفة بالتكدس في رأسك وفي نهاية كل معلومة مليون علامة تعجب.
في حالة دخولك الكلية بسبب حبك وشغفك بالتكنولوجيا او كنت علي دراية مسبقه بالدراسة في هذا المجال ، فانا متأكد يقينا انك حصلت علي اكبر صدمة مخالفه لتوقعاتك طوال حياتك
* لمحة شخصية عن بداياتي في هذه السنة ، عند دخولي الكلية كانت علاقتي بالبرمجة لا تتعدى كوني ” احمق صغير” لديه بعض المعلومات المتناثرة من المنتديات العربية وفيديوهات اليوتيوب ولكني كنت اجيد لغة الفيجوال بيسك بسبب انتشار المصادر التعليمية لها وقتها واقتنائي لبعض الكتب التي قمت بشراءها خلال المرحلة الثانوية ، ولكن صدقني عند دخولي الكلية في أول يوم لم اكن استوعب فعليا معاني كلمات هامة مثل Object , Class, Function.
كنت اتعامل معهم علي انهم كلمات مقدسه يجب كتابتها بشكل معين حتي يعمل الكود بشكل سليم ، في هذه الفترة ان كنت اريد ان تتم مكافأتي فسوف اطلب الحصول علي أوسكار افضل ناسخ/لاصق.
الشئ الوحيد الذي ساعدني علي ممارستي للبرمجة هو حب الاستطلاع وتجاربي العديدة بالعبث في نظام التشغيل ومعرفة اسراره وكيفية عمله “ فهلوياً “.
في هذه السنة كانت مشكلتي الحقيقية ليست البرمجة كحال اغلب الطلبة من زملائي بل كانت الرياضيات. فشلت في تخطي مادتي الرياضيات وكنت علي وشك اعادة السنة مرة اخرى اذا فشلت في تخطي اي مادة اخرى ولكن شاء رب العالمين بالنجاح.
نبدأ بسرد بعض المصادر التي اعتمدت عليها في هذه السنة :-
- نظراً لعدم اهتمامي بمواد الرياضيات فكل ما كنت اعرفه فقط في هذه المواد هي عناوين الدروس ، وكان مصدري الأول للفهم هو هذه القناة الرائعة : patrickJMT ، كل ما عليك فعله هو البحث عن عنوان اي نوع من المسائل او القوانين الرياضية وستجد العديد من الأمثلة المشروحة بطريقة سهله جداً ، وبالفعل كنت أجد بعض الأمثلة من هذه الشروحات في الامتحانات.
- بالنسبة للبرمجة فغالباً اللغة المستخدمة في أول سنة هي لغة “++C” ، اعتمدت على بعض المصادر لتعلمها مثل :
• C++ Language Tutorial ، يعتبر كتيب صغير جداً سيساعدك كثيراً في البداية مع اللغة وفهم أساسياتها
• وقطعاً بعض من فيديوهات thenewboston مثل : C++ Programming Tutorials Playlist - بالنسبة للخوارزميات يمكنك الاعتماد على شروحات قناة Code Masry ومشاهدة قوائم التشغيل الخاصة بالخوازميات.
* أنصحك بشده ان تبدأ بمشاهدة فيديوهات CS50 منذ بداية دراستك ، فانا أندم الأن على عدم اهتمامي بها حينما كان هناك متسع من الوقت لمتابعتها.
السنة الدراسية الثانية :
خلال هذه السنة سوف تبدأ تدريجياً ادراك الكثير من الاشياء لطالما كنت غافل عنها وسوف تشعر بسذاجة غريبة في تفكيرك في بعض الامور، وسوف تتأكد أن الجهد الأكبر سوف يكون عليك في مرحلة التعليم وان الجامعة لن تفيدك الا ببعض الفتات التي لا تسمن ولا تغني من جوع وان الجهد الذاتي الذي تبذله وتستثمره في نفسك هو سببك الوحيد للنجاح.
تعتبر هذه السنة في حياتي هي الخطوة الاولى لمرحلة بناء اساس سليم في علوم الكمبيوتر ، وذلك بفضل بعض المصادر التي اطلعت عليها في هذه السنة والتي غيرت في تفكيري ومستوايا التقني كثيراً جداً ، وهذه قائمة بمعظمهم :-
- أفضل كورس شاهدته في هذه السنة واستفدت منه بدرجة كبيرة جداً هو كورس Data Structure مقدم من جامعة Berkeley في خريف عام 2006 ، اسم الكورس حرفياً هو : Computer Science 61B – Fall 2006 ، الكورس في البداية سهل جداً ومع الوقت يتدرج في الصعوبة حتى مرحلة متقدمة جداً يمكنك ان تأخذ منه ما هو مقرر عليك فقط ، مع العلم الكورس يتطلب معرفة مسبقة بلغة جافا ، ويمكنك أيضاً الاستعانة بالشرح العربي الموجود في قناة Code Masry عن هذا الموضوع والذي تم شرحه ببساطة شديدة وأسلوب ممتاز.
- في أغلب الجامعات سوف تدرس لغة “Java” كلغة برمجة عالية المستوى لتساعدك في اتمام مشاريعك خلال باقي سنوات الدراسة ، ولحسن الحظ الانترنت ملئ بكثير من المصادر الرائعة في هذه اللغة ، سوف أعرض بعض مما ساعدني فيها:-
• سلاسل فيديوهات الأستاذ/عبدالله عيد : Java 101, Java 102, Java 103 ، تعتبر هذه الفيديوهات بداية جيدة لأي شخص لا يعرف شئ مسبقاً عن البرمجة وما زال لديه هاجس عدم الفهم من المصادر الأجنبية
• وسلسلة فيديوهات thenewboston أيضاً رائعة جداً في البداية : Java (Beginner) Programming Tutorials
• أيضاً يفضل الاعتماد على كتاب كمصدر او مرجع للمعلومات في أي لغة برمجة ، ويمكنك ان تختار العدد من الكتب سوف ارشح لك منها : Introduction to Java Programming ، Java: A Beginner’s Guide ، Java The Complete Reference - اذا كنت ستدرس لغة “#C” فسوف انصحك بشده ان تبدأ بكتاب NetBookZero. ثم كتاب C# 5.0 in a Nutshell
وما أكثر الفيديوهات والمقالات عن هذه اللغة لادعي لذكرها بسبب كثرتها فقط اخترت ما افادني جيداً في البداية - اذا لم تكن على علم بكنز طلبة علوم الكمبيوتر CS50 ، فأنصحك ان تشاهد هذا الكورس تحديداً اثناء دراستك CS50 Lectures 2013
السنة الدراسية الثالثة :
كانت هذه سنة التخصص الأولى في علوم الحاسب ، وكانت سنة مليئة بالمواد الرائعة التي استفدت منها كمية هائلة من المعلومات ساعدتني كثيراً في التطوير الذاتي لمهاراتي التقنية والبرمجية ، ومن الجدير بالذكر ان هذه هي افضل سنة حصلت بها على درجات خلال دراستي الجامعية ، وهذه بعض المصادر التي ساعدتني جداً في فهم تلك المواد :-
- مادة الشبكات من أروع المواد التي درستها في حياتي واستفدت منها كثيراً جداً بشكل لا يوصف ، وكان مصدرنا الأول في الدراسة هو منهج شركة Cisco والمحاضرات الرسمية الخاصة بها ، واليك بعض الفيديوهات العربية الرائعة التي ساعدتني كثيراً في فهم كثير من الأجزاء المعقدة مثل : CCNAX ، CCNA 200-120
- مادة قواعد البيانات استفدت منها على الجانب الشخصي كثيراً جداً في فهم بعض الاجزاء الاساسية ، وكان مصدري في البداية هو كورس رائع جداً للمبتدئين من شركة Lynda عن قواعد البيانات اسمه : Foundations of Programming: Databases هذا الكورس سوف يعطيك أساس قوي ومتين عن مفهوم قواعد البيانات بشكل عام.
- قمنا بدراسة تطوير التطبيقات على نظام تشغيل Android ، وكانت بدايتي مع ورشة عمل تطبيقات أندرويد ومن ثم كتاب Beginning Android 4 Application Development الكتاب رائع جداً وبسيط وبه العديد من الامثلة التطبيقية.
- مادة الذكاء الاصطناعي Artificial Intelligence ساعدني هذا الكورس الرائع في فهم بعض الاجزاء الهامة
- مادة نظم التشغيل كان مصدرنا الأول للمعلومات هو الكتاب والمرجع الرائع : Operating Systems: Internals and Design Principles (8th Edition) [William Stallings]
السنة الدراسية الرابعة :
للأسف لن تجد أي مصادر في هذه الفقرة فأنا ما زلت أدرس في هذه السنة ولا أريد ان اضع مصادر غير متأكد من صحتها حتى انتهي من دراستي لهذه السنة سوف اقوم بتحديث هذه التدوينة بإذن الله واضافة المصادر الجديدة.
في النهاية اتمنى ان اكون قدمت بعض المعلومات او المصادر التي لربما تنفع أحدكم في يوم من الايام اثناء دراسته لعلوم الحاسب في مصر ، وبالطبع هذه ليست كافة المصادر التي اعتمدت عليها ولكن حاولت قدر الامكان ان اتذكر بعضاً منها وتجميعها في تدوينة منفصله للاستفادة بهم او الرجوع اليهم في اي وقت.
في النهاية أيضاَ أوصي جداً بضرورة الاطلاع على القائمة التي وضعتها شركة جوجل للراغبين في تعلم علوم الحاسب عن طريق الانترنت مجاناً : يمكنك الاطلاع على القائمة من هنا : Guide for Technical Development سوف تجد بها الكثير من الروابط المفيدة والمصادر الممتعه ، أنصحك بشده بها.
اذا اعجبتك التدوينة لا تتردد في نشرها فلعل وعسى ينتفع بها أحد أصدقاءك.
واذا كان لديك اي استفسارات لاتتردد بالتعليق فسوف اكون سعيد جداً بالرد عليك.