في أيام دراستي لمجال البرمجة و المعلوميات عامة، أخبرني صديق لي ان تعلم البرمجة سهل و صعب في نفس الوقت، لم أقاطعه إطلاقا و تركته يردف قائلا ان البرمجة حبكة جميلة، ما إن تعرف أسسها و قواعدها و ألغازها، فقد قمت بتشفير نصف لغاتها و تقنياتها، و صرت قادرا على التعامل مع البرمجة بشكل سلس و إحترافي. اتذكر حينها و أتذكر جيدا انه قد دعاني للتمشي قليلا في أرجاء المنطقة، و ظل يخبرني طيلة الممشى أشياء مذهلة عن البرمجة، لم أكف إطلاقا عن الإنصات له و الصمت كذلك مستمعا لكل حرف يخرج من شفاهه، لقد لمح للبرمجة بالعديد من التلميحات، فقد لقبها بلعبة " Poker " ما إن تجيد قواعد اللعبة فستفوز دائما، و لقبها كذلك انها " عجين " ما إن تجيد صناعته و تدليكه يمكنك صناعة خبز منه، او رغيف، او حلوى او اي شيئ تريد.

للبرمجة أيضا أسرار التعلم ... 9 نصائح تجعلك قادرا على إكتساب أي لغة برمجة في ظرف وجيز


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


1 - ليس الـ Php و ليس الـ Java ... بل الـ DSA : 

" مرحبا ... انا جديد في المجال، اي اللغات البرمجية تنصحوني بتعلمها ؟ "، كم مرة واجهت هذا السؤال في مجموعات فيسبوكية ؟ او مواقع مثل Quora ؟ او صفحتك على الفيسبوك كما نتوصل بها نحن دائما، ان السر ليس في لغة البرمجة، فتعلمك للجافا قد يأخذ منك وقتا طويلا لشساعتها و كبرها و إستخداماتها العديدة، فإن اردت تعلم الجافا عليك ان تتعلم الجافا الإختصاصية، فجافا الأندرويد ليست جافا المواقع و ليست جافا تطبيقات سطح المكتب و ليست جافا الذكاء الإصطناعي، مما سيضعك في حيرة من أمرك امام لغة ضخمة كهذه، و نفس المثال عن الـ Php , Python و غيرها من لغات البرمجة . 
إن السر يا صديقي لا يكمن في لغة البرمجة، يكمن في الأساسيات الهيكيلية للبرمجة، و هنا نتحدث عن الـ DSA، و هي إختصار لعبارة Data Stricture and Algorithm، هيكلة البيانات و الخوارزميات، تسمح لك الخوارزميات بتعلم العديد من الأشياء على رأسها الـ Problem Solving او حل المشاكل البرمجية و طريقة التخطيط لأي مشروع برمجي، الى جانب ان قواعدها مُطبقة في كل لغات البرمجة مع إختلاف الـ Syntax فقط، فإن تعلم أساسيات الخوارزميات و كيفية كتابة خوارزمية نظيفة و سليمة، فأنت قادر على كتابة سطر برمجي بأي لغة برمجة بإحترافية و بشكل سليم، الإختلاف يبقى فقط في الـ Syntax . 
ثم وجد لاحقا خبراء في المجال ان الخوارزميات جيدة، لكن يمكن لشخص كتابة خوارزمية بشكل عادي، و يمكن لشخص آخر ان يكتبها بذكاء، بإختصار للكود البرمجي، ليس هذا فقط، بل إبتكر طريقة أسهل و أيسر و أكثر حماية و فعالية، خصوصا حين يتعلق الأمر بالديناميكية او التعامل مع البيانات، فعلى سبيل المثال كيف نستطيع تسجيل عدد من البيانات غير معروف ؟ فنحن يمكننا فقط تسجيل Array مثلا بعدد من الخانات المحددة، ماذا لو كان عدد الخانات صغير جدا مقارنة مع حجم البيانات ؟ ماذا نقوم بوضع عدد كبير من الخانات نملأ بعضها و نترك بعضها فارغا ؟ هذا سيأخذ الكثير من المساحة، فكيف يمكن جعل المصفوفة ديناميكية قادرة على التقلص و التمدد حسب نوع البيانات ؟ 
او بمنطق آخر لنتحدث عن الفسيبوك، الفيسبوك لديها أزيد من 4 مليار مستخدم تقريبا، ماذا لو اراد شخص ما الدخول لحسابه ؟ هل سيتوجب علينا المرور على كل سطر من المستخدمين و مقارنة اليوزر و الباسوورد الى حين إيجاده ثم الدخول ؟ قد يستغرق الأمر أياما، ربما قرونا لو كان الفيسبوك موجودا سنة 1980 ... هنا تتدخل هيكلة البيانات التي تساعدنا في التعامل الدقيق و القوي مع البيانات بمختلف أنواعها . 
إذن الـ DSA هي البداية، إتقانك للـ DSA يعني تقليص حجم كبير من المعاناة في تعلم أي لغة برمجة مستقبلا . 


2 - تعلم الـبرمجة كائنية التوجه او الـ OOP :


البرمجة كائنية التوجه او الـ Object Oriented Programming هي الملاذ، و هي ثاني شيئ يجب عليك ان تتقنه كثيرا بعد ان تتعلم كتابة الـ Syntax في لغة برمجة معينة، فبعد ان تتعلم الطباعة و كتابة الـ if Else و الـ For , While , Switch و غيرها، عليك ان تبدأ في إتقان الـ OOP من أسفله لأعلاه، يوجد إختلاف طفيف في كيفية إستخدام تقنيات الـ OOP في اللغات البرمجية، لكن عموما يوجد مبادئ أساسية تتمتع بها البرمجة كائنية التوجه من الأساسي و الضروري فهمها بشكل عميق على رأسها الرباعي الذي يشكل أسس الـ OOP و هي الـ : Encapsulation , Inheritance, Abstratction و الـ Polymorphisme، هذه القواعد الأربعة تشكل تقريبا الـ OOP بأكمله، و ننصحك نصحاََ شديدا بتعلمها و فهمها و التعمق الكبير فيها، فهي أساس كل برنامج حي اليوم كيفما كان، او اي منصة او موقع في العالم كذلك . 


3 - إكتساب البرمجة يأتي بكثرة المشاريع لا بكثرة الكورسات : 

لطالما كررنا هذه الجملة في العديد من مقالاتنا و العديد من منشوراتنا كذلك، و ذلك لأنها حقيقة فذة لا يمكن إنكارها، ان تنوي البدئ في تطوير تطبيقات الأندرويد لا يعني ان تشاهد دورة على الفيسبوك مكونة من 186 فيديو لن تستفيد من معظمها، بل حتى انك ستقوم فقط بنسخ ما يقوم مقدم الدورة بكتابته و تعتقد انك قد تعلمت تلك اللغة او التقنية البرمجية، و هو خطأ شائع يقع فيه العديد من المطورين و المبرمجين خصوصا المبتدئين في المجال .
إن الطريقة الصحيحة للتعلم هي مواجهة الكود وجها لوجه و قبضة لقبضة، تريد تعلم تطوير تطبيقات الأندرويد بإستخدام الجافا ؟ الأمر سهل، قم بالبحث عن فكرة لتطبيق تريد إنشاءه، او قم بوضع هدف محاكاة تطبيق معين في هاتفك او تطبيق مشهور مثلا ( لا مشكلة في المحاكاة فالهدف هو التعلم أولا )، ثم حاول تجسيد كل جزء من التطبيق من الصفحة الرئيسية التي تتطلب الدخول الى تصدير البيانات ثم جلبها ثم التعامل معها، هنا ستواجه العديد من المشاكل مما سيجعلك تبحث أكثر و أكثر، تستغل قدراتك أيضا في الخوارزميات من أجل معرفة الطريقة الصحيحة لتحقيق كود ما في التطبيق، ستبحث عن تقنيات أخرى تدمجها مع التطبيق مثلا Firebase، شيئ لن يخبرك إياه مقدم الدورة، لأنها ببساطة دورة ممنهجة الهدف منها تعلم كتابة الكود، لا إستخدامه . 


4 - أو إقرأ أكواد برمجية لمبرمجين و مشاريع أخرى : 


سأخبرك بشيئ أخبرني به نفس الصديق ذو المحادثة أعلاه، لا احد في هذا العالم يجيد لغة البرمجة كاملة، حتى و إن كان مختصا فيها، بل ربما حتى صاحبها و مطورها لا يجيدها كاملة، لأنها ببساطة شاسعة الإستخدام و ليس نفس الكود البرمجي يُعاد إستخدامه في كل مشروع او كل مجال، لذلك ستتعلم أنت البرمجة او اللغة البرمجة حسب نوع الإستهلاك الذي تريد تطبيقه عليها، فإن كنت تريد تعلم برمجة تطبيقات الأندرويد ( و سنأخذ هذا كمثال لبقية هذا المقال ) فأنت ستتوجه مباشرة لتعلم الجافا المختصة في تطبيقات الأندرويد . 
لكن هذا بحد ذاته يخلق تفرعا كبيرا، فتطبيق للشات يتطلب أكوادا مختصة مختلفة كليا عن تطبيق موقع اجتماعي و عن تطبيق رفع للملفات و عن تطبيق للتعديل على الصور ...، و لتوسيع مداركك في الأندرويد بشكل عام، نقترح عليك نصيحة قوية، إقرأ أكواد المبرمجين الآخرين، توجه الى منصة مثل Github و تصفح مشاريع الآخرين الخاصة بالأندرويد، إطلع على الكود الخاص بكلاس معينة، تمعن في كيفية تسمية المعطيات مثل الـ Functions و الـ Variables، إقتبس منه طريقة كتابة الكود، تنظيم الكلاس، و تابع معه الكود البرمجي و كيف إستغله من أجل تحقيق غايته، حتى انه يمكنك إستغلال ذلك السطر أيضا في تحقيق نفس النتيجة، او ربما أفضل تطويره بشكل أفضل . 
ليس فقط قراءة الأكواد البرمجية، إن كنت ضمن مجموعات فيسبوك برمجية، فستجد ان الكثيرين يسعون للحصول على بعض الإجابات حول أكوادهم البرمجية، او أكوادهم البرمجية لا تشتغل بكفاءة، تطوع يا صديقي و حاول حل المشكل، سيساعدك هذا على تنمية مهاراتك و تعلم اللعاة البرمجية التي تريد في ظرف وجيز جدا و بإحترافية .

5 - إعتمد على مواقع الأحاجي في التعلم : 



في أيام دراستي أيضا، كنت أستعد للإمتحانات بطريقة مختلفة قليلا، إذ كنت ألج الى موقع HackerRank، ثم أختار اللغة البرمجية التي انا بصدد ان امتحن فيها، مثلا الـ SQL، ثم أبدأ في حل مجموعة من المشاكل التي يوفرها لي الموقع، أبدأ في تنفيذ أوامر و إستعلامات الـ SQL و أشغل بعض البديهة في حل المعقدة منها، حين أتواجه و الإمتحان، أجد نفسي قادرا على تحليل المسائل و قادر على كتابة إستعلام صحيح منطقيا . 
ما أحاول ان اخبرك به هنا، ان مواقع مثل HackerRank هي مواقع تسمح لك بتطوير قدراتك في مجال البرمجة، اشرنا سابقا إلى ان العمل على مشروع برمجي خير لك من مشاهدة كورس برمجي، لكن أحيانا مشروع برمجي قد يتطلب أشهر، و وقتك محدود في التعلم، لذلك يمكنك الإعتماد كليا على حل المشاكل البرمجية المقدمة لك من طرف مواقع مثل HackerRank . 



6 - إكتساب لغات التحليل تُساعدك أيضا على تعلم البرمجة في ظرف وجيز :


يُعتبر المبرمج الدرجة الأخيرة في سلم الـ IT، إذ يعلوه العديد من الأشخاص الآخرين المحترفين في المجال مثل الـ Project Manager و الـ Analysis و غيرها، و يعتبر المبرمج مجرد شخص يقوم بترجمة الأفكار و المعطيات و التحليلات الى كود برمجي لا أقل و لا أكثر، لكن من يعلوه في هذا السلم قد كان مبرمجا من قبل، بل يعرف كل جوانب البرمجة و ملم بكل تقنياتها كذلك، لكنه قرر ان يأخذ منحى آخر، قرر ان يمارس التحليل و حل المشاكل و توفير المشروع بشكل مبسط للمبرمجين من أجل تطويره، فإن لم يفعل ذلك، قد يقضي المبرمج أشهرا محاولا تفسير ذلك المشروع و تفكيكه.
يعتمد المحلل على تقنيات و لغات أخرى في التحليل مثل الـ UML او Merise، هذه التقنيات تساعد على تحليل المشروع البرمجي و تفكيكه، و لا يمكنك إطلاقا تفكيك مشروع برمجي إن لم تكن لديك خلفية قوية على البرمجة، فالـ UML على سبيل المثال يسمح لنا بتفكيك المشروع البرمجي او فكرته الى Diagrams مختلفة، بعض هذه الـ Diagrams و لنقل مثلا Class Diagram يسمح لك بتحديد الكلاسات و الـ Objects او الكائنات التي ستستخدمها في مشروعك البرمجي، و دورة حياتها (Object Lifecycle) و كذلك خصائصها و كيف تتحرك وسط مشروع برمجي ( هل ستكون عبارة عن Abstraction و لديها قيم أعلى او مجرد كلاسات عادية ... ). 
إتقانك لمهارات التحليل أشبه بإتقان الخوارزميات بشكل نظري، بحيث تستطيع حينها التعامل مع أي مشروع برمجي و برمجته كاملا في بضعة أسابيع بشكل نظيف و صحيح، بدل قضاء جل الوقت في مشاهدة كورس بسيط لمشروع يعتمد على كلاس واحدة و تطبيق عمليات الـ CRUD على الكائن الخاص بها . 

إقرأ أيضا : دورة تحليل و بناء مشروع متكامل على الويب [ الدرس الخامس] : الـ Merise ام الـ UML ؟

7 - لا تحاول تعلم الكثير في وقت واحد : 

سيخبرونك انه لبرمجة تطبيقات الأندرويد ( و كما أشرنا في الأعلى سنأخذ برمجة تطبيقات الأندرويد كمثال حي في هذا المقال ) سيتوجب عليك تعلم الجافا، ثم تعلم أساسيات الـ XML من أجل تطوير الواجهات، و إن اردت ربط التطبيق بقواعد بيانات عليك تعلم أساسيات الـ Php و الـ JSON، او يمكنك إستخدام الـ Firebase، او إستخدم قاعدة بيانات محلية SQLite و تعلم الـ SQL . 
قد تُطبق نصيحتنا أعلاه و تبدأ في برمجة مشروع برمجي بسيط قد يتطلب منك خبرة في كل التقنيات السابقة او بعضها، ثم تشاهد فيديو للـ XML و تقرأ توثيق الـ Firebase لتعلمها أيضا، و تراجع في نفس الوقت تقنية الجافا للأندرويد، النتيجة النهائية هي : لا مشروع حي + لم تكتسب أي شيئ . 
أولا، بما انها خطواتك الأولى في المجال، إختر مشروعا برمجيا بسيطا جدا لا يعتمد على قواعد البيانات إطلاقا، بالطريقة التالية قد ازحت العديد من الخيارات، ثم إبدأ بالأساسي او الرئيسي ( و هي الجافا ) ثم الثانوي ( الـ XML )، إستعن بالنصائح السابقة من أجل تعلم الجافا الخاصة بالأندرويد من أجل تطوير التطبيق الذي تريده، لا تعر للواجهة أي إهتمام في الوقت الراهن، فقط تأكد من معرفتك اليقينية للأكواد و تلاعب بها كما تريد، بعد إنتهائك من هذه الخطوات، لك الحرية في تطوير مهاراتك في اللغات الثانوية الأخرى حسب الحاجة، فإن اردت تطوير واجهات بأنيميشن إحترافية و جرافيك مثالي، إستعن بالـ XML و أساسياته، و تعلمها كذلك الى حد الإتقان ثم إنتقل للمهارة الأخرى مثل Firebase و هكذا دواليك.
عدم تركيزك على لغة برمجة محددة يعني ضياع وقت أطول في تعلمها و عدم إكتسابها بشكل يقيني . 

8 - لماذا تبرمج ؟ 

توقف لوهلة و أجب على السؤال التالي : لماذا تبرمج ؟ هل لأن جزء من مقررك التعليمي ؟ هل لأنك مولوع بالمعلوميات و تريد التخصص أكثر في مجال البرمجة ؟ هل لأن البرمجة مربحة الى حد قول البعض ؟ هل لأنك تعشق الأكواد ؟ او لأنك تريد فهم النكات البرمجية ؟ 
نحن نحكومون بقواعد السببية، فلكل سَبَبِِ هناك مُسَبِّب، و لكل فعل رد فعل، و هذين الفعلين يساعداننا على تحديد فترة التعلم و تقليصها أيضا إن كانت كبيرة، إنها أشبه بتحفيز او Motivation بالنسبة للمتعلم، إن لم يكن هناك سبب لتتعلم فلما نتعلم البرمجة من أساسه ؟ 
حدد أهدافك قبل كل شيئ، ضع نصب عينيك هدف عليك تحقيقه في فترة معينة او وجيزة، ثم اجرد كل مقتضياته من لغات برمجية او تقنيات تسويق و غيرها، ثم إبدأ في التعلم البرمجة، عليك ان تتعلم من أجل تحقيق الهدف X ، و من أجل تحقيقه وجب تعلم اللغة  Y و اللغة Z في المدة T . 

إقرأ أيضا : مجموعات عربية رائعة على الفيسبوك مخصصة للمبرمجين عليك الإنضمام اليها الآن !

9 - إنضم لمجتمعات برمجية لها نفس الإهتمامات : 

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



شاركه على :


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

قائمة لأهم اللغات البرمجية المستخدمة في مجال الـ Data Science عليك تعلمها إن كنت مهتما بالمجال


فلو كانت لغة برمجية  واحدة في العالم هي الأفضل، لما نشأ تعددها، و لما تواجدت تطويرات دائمة للغات البرمجة، إن الهدف من تعدد لغات البرمجة هو خدمة أهداف مختلفة  لا نفس الهدف، فبعض اللغات تخصصت في صناعة برمجيات سطح المكتب، و بعضها تخصص في صناعة تطبيقات الويب، و تخصصت الأخرى في صناعة و إبتكار تطبيقات الموبايل، بينما تخصص البعض في الذكاء الإصطناعي و البعض الآخر في عالم البيانات الضخمة Big Data و بعضها تزعم عالم الـ Data Science او علوم البيانات، و بقيتها قد إستغلت فرصة العمل في مجال الروبوتيك Robotics و غيرها، إن السؤال السليم هو : أي تقنية برمجية قوية  و جيدة لمشروعي في مجال X ؟ و ليس : ما هي أفضل لغة برمجة .
بتعويض المتغير X بعبارة " علوم البيانات - Data Sciences " سنطرح على أنفسنا سؤال : ما هي أفضل التقنيات و اللغات البرمجية المستخدمة في مجال علوم البيانات ؟ و حتى نعينك على شقائك في البحث و طرح أسئلتك و إستفساراتك، فقد شكلنا لك هذا المقال، مقال على منصة أكوا ويب التي لطالما إعتنت باللغات البرمجية و قامت بشرحها لك و تصنيفها حسب مجالات العمل . 


- أول الأشياء أولا : الـ Data Science و الـ Data Scientist : 

قبل ان تبدأ اولا بقراءة هذا المقال و الإطلاع على اللغات البرمجية المستخدمة في هذا المجال، توجب علينا توضيح هذا المجال قبل كل شيئ، الـ Data Science او " علم البيانات " و هو بإختصار غير ويكيبيدي ( بعيد عن تعريفات ويكيبيديا ) هو إمكانية إستخراج عدد كبير جدا من البيانات ثم دراسة هذه البيانات و إستخراج معلومات نستطيع الإستفادة منها لاحقا بشتى الأشكال، تعتمد الشركات التقنية الرائدة اليوم على البيانات كجزء أساسي في تحقيق عائدات لشركتها، إذ تقوم مثلا شركة فيسبوك على إنتزاع و إستخراج جميع أنواع المعلومات من المستخدمين من منشورات و صور و رغبات و مشاعر و مكنونات خاصة بهم، أي معلومة تافهة كانت او مفيدة يتم تخزينها و تُسمى بالـ Big Data او البيانات الضخمة و هو مجال من خلاله يتم تجميع البيانات ثم تصنيفها حسب نوعها و العودة لها حين تحتاجها الشركة ( إليك كل ما تحتاج معرفته عن البيانات الضخمة و الـ Big Data )، عموما، بعد تجميع هذه البيانات و أصنافها، يأتي مختص في عالم البيانات او Data Scientist الذي طور نفسه و أجاد اللغات و التقنيات الخاصة بعلم البيانات، ثم يقوم بإستخراج أي نوع من الإحصائيات يحتاجها او تحتاجها الشركة، فإن ارادت الشركة معرفة أفضل أيام الأسبوع بالنسبة للمستخدمين على الفيسبوك ( على سبيل المثال نعلم انه مثال ضعيف ) سيقوم مختص البيانات بدراسة كل تلك البيانات و إستخراج إحصائية تقول ان يوم " السبت " هو اليوم الأفضل في حياة 78% من مستخدمي منصة فيسبوك، بينما " الإثنين " هو الأسوأ بالنسبة لـ 95% من مستخدمي المنصة، لذلك تستطيع لاحقا الفسيبوك الإرتكاز على هذه الإحصائية من أجل إطلاق حملة ما او منتج ما في شركتها لزيادة أرباحها إعتمادا على إحصائيات تم إستخراجها علميا من كم هائل من البيانات التي تم تجميعها . 

و ها قد عرفت الآن دور الـ Data Science و دور الـ Data Scientist كذلك، هذا المجال أصبح مطلوبا و بكثرة بين الشركات التقنية، و تتهافت الشركات اليوم على الـ Data Scientist، و لربما تريد تتبيث قدمك في هذا المجال، و نقترح عليك تعلم اللغات التالية لتحقيق ذلك . 

- لغة البرمجة بايثون Python : 

دعونا نتفق ان البايثون بنت اللعيبة أصبحت من اللغات التي تُدرج نفسها في كل المجالات تقريبا، تريد تصميم برمجيات سطح المكتب ؟ يمكنك إستخدام البايثون، موبايل ؟ مواقع ؟ ذكاء إصطناعي ؟ علوم البيانات ؟ البايثون موجودة لا محالة، ما يميز البايثون هو سهولة كتابتها و قراءة السطر البرمجي الخاص بها كذلك، و إمكانية تطوير برمجيات مختلفة كليا بعدد قليل من الأسطر البرمجية على عكس الجافا مثلا ( التي سنطرحها أيضا في هذا المقال -  Spoiler Alert ) التي يستلزمك 10 اسطر برمجية من أجل المناداة على الـ Packages ثم إنشاء الكلاس و كتابة عبارة Hello World، بينما يمكن تنفيذ نفس الأمر في سطر واحد في البايثون . 
عودة بنا الى عالم علم البيانات، تستخدم البايثون مجموعة من المكتبات القوية الخاصة بلغة البايثون في هذا المجال على رأسها Pandas و كذلك SciPy، و هما من أشهر المكتبات في البايثون المختصتين في علوم البيانات، إذ تسمح لك هذين المكتبتين بإنشاء Data Visualization بالإعتماد على المعلومات التي تم تجميعها من قبل، كما يمكن كذلك إستخدام مكتبة NumPy الخاصة بالإحصائيات من أجل إستخراج إحصائيات دقيقة بالإعتماد على البيانات السابقة.
البايثون و مكتباتها تُمثل بيئة خصبة لكل Data Scientist مستقبلي يطمح لتمجيد قدراته في هذا المجال . 



- الـ SQL و الـ NoSQL : 

الـ SQL ليست لغة برمجة في حد ذاتها و إنما Structured Query Language أي لغة إستعلام في الأصل تسمح لنا بإدارة البيانات الموجودة في قواعد البيانات عن طريق مجموعة من الأوامر / إستعلامات او Queries، حين تتعامل مع الـ Data فأنت تلقائيا تتعامل مع قواعد البيانات و الجداول، فتلك البيانات مخزنة و محفوظة في قواعد البيانات، إن كان نوع قواعد البيانات علائقيا او RDBMS، فأنت تلقائيا ستتعامل مع الـ SQL و الإستعلامات لا محالة من أجل جلب تلك البيانات او إحصائياتها او اي شيئ يتعلق بها، بل حتى صناعة برمجيات إحصائية بالإعتماد على تلك البيانات المخزنة سيتطلب منك بعض أوامر الـ SQL رغما عن أنفك . 
لكن ماذا لو كان التخزين في قواعد بيانات غير علائقية ؟ فالشركات التقنية مثل الفيسبوك و غيرها لا تعتمد على الـ RDBMS إطلاقا، و ذلك لأنها محدودة في الأصل و بطيئة كذلك، بل تعتمد على قواعد بيانات تعتمد على الـ NoSQL مثل MongoDB، إذ تتمتع أكثر بالمرونة و السرعة و تخزين أفضل لكل أنواع البيانات، و توجب عليك كذلك من طرفك ان تتقن التعامل مع الـ NoSQL و قواعد بياناته و طرق الإستعلام و التخزين التي تعتمد في الغالب على تقنيات مثل JSON و غيرها . 



- لغة البرمجة R : 

هل أنت أحد المتابعين لصفحتنا على الفيسبوك؟ إن كنت كذلك فقد نشرنا قبل يومين تقريبا منشورا عن لغة البرمجة R، و إن لم تكن متابعا لصفحتنا فقد حان الوقت لمتابعتها من هنا ، لغة البرمجة R من اللغات المتصدرة لقوائم أفضل اللغات البرمجية لسنة 2018، فهي لغة برمجة إحصائية تعتمد على الـ Statistical Programming من أجل إبراز النتائج، تقوم هذه اللغة بإستخراج إحصائيات دقيقة بالأعتماد على بيانات مدخلة، كما يمكنها التنبؤ كذلك ببعض الإحصائيات المستقبلية إن كانت البيانات المتوافرة كافية، يتم إستخدامها بشكل كبير حين يتعلق الأمر بالبيانات الضخمة جدا، او البيانات المعقدة صعبة التفكيك، و تتناسب إضطرادا مع لغة البرمجة بايثون حين يتعلق الأمر بمكنوناتها المخصصة للـ Data Science، عوضت كذلك R بعض التقنيات البرمجية الخاصة بالإحصائيات أيضا مثل Matlab بشكل جزئي و ليس كلي.
عموما، تعتبر لغة البرمجة R مثالا و خيارا قويا من أجل الولوج لعالم الـ Data Science و الغوص فيه . 


- لغة البرمجة Java : 

بتعددها و إستخداماتها الضخمة في كل المجالات تقريبا، تعتمد الشركات التقنية كذلك على مطوري الجافا في علوم البيانات، تأتي لغة الجافا بعدة  مكتبات كذلك تستطيع الإعتماد عليها في تقنيات الـ Machine Learning و الـ Data Science على التوازي من أجل إستخراج اي نوع من البيانات او إحصائيات بالإعتماد على البيانات الموجودة مسبقا، من بين هذه المكتبات يوجد الأشهر و هي Weka، كذلك Massive Online Analysis و لا ننسى كذلك مكتبة MLlib المتوفرة كذلك في كل من Scala و Python، تعتمد هذه المكتبات على خوارزميات قوية جدا في التحليل و التنسيق، قادرة على التعلم ذاتيا و توقع أي نوع من الإحصائيات بناءا على بيانات مسبقة، او استخراج بيانات معينة بين كم هائل من البيانات الضخمة، بتعدديتها و قدراتها المتطورة و مرونتها، الجافا مطلوبة و بكثرة في هذا المجال . 
لا ننسى ان الجافا معشوقة الجماهير، و يفضلها العديدون في بناء تطبيقات الموبايل او تطبيقات سطح المكتب، مما زاد شعبيتها و شهرتها بين المستخدمين حول العالم . 



- لغة البرمجة Julia : 

لغة البرمجة " جوليا - Julia " هي لغة ديناميكية كائنية التوجه، تم إبتكارها في الأساس من أجل التحليل و التعامل مع البيانات الرقمية بشكل خاص، و هما العاملين الأساسيين اللذان نحتاجهما بكثرة حيت يتعلق الأمر بالـ Data Science، بالرغب من قدراتها في هذا المجال، إلا ان إستخدامها لازال شبه مضمحل، فالبايثون و الجافا قد عوضتا الهدف من هذه اللغة في الأساس، لكن ببعض التحديثات في هذه اللغة، يمكننا الحصول على منصة مبنية بواسطتها قادرة على توفير اللازم حين يتعلق الأمر بتحليل البيانات و إستخراج الإحصائيات و التعامل الستاتيستيكي مع الأرقام و الداتا بشكل قياسي، لا يمكن ان ننكر فضل Julia في تطور العديد من الشركات التقنية اليوم التي إستغلتها لصالحها في تجميع البيانات و التعامل معها بهذه اللغة، و لا يمكن ان ننكر انها لغة قوية حقا في هذا المجال، لكن هل ستستطيع الصمود في ظل قريناتها ؟ سؤال لفلاسفة البرمجة ! 


- تقنيات أخرى مفيدة في مجال الـ Data Science : 

اللغات البرمجية ليست كل شيئ حين يتعلق الأمر بالـ Data Science، يوجد أيضا تقنيات و خصائص أخرى يجب ان يتمتع بها الـ Data Scientist الى جانب إتقان مهارات اللغات البرمجيات أعلاه كذلك على رأسها ان يجيد التعامل رياضيا و إحصائيا مع البيانات، أن تكون لديه قدرات في مجال الـ Machine Learning و الـ Data Modeling من أجل إستعراض البيانات بشكل فعال، ان تكون قادرا على حل المشاكل او Problem Solver، ان تجيد التعامل مع تقنيات الشبكات و قواعد البيانات مثل AWS او Microsoft Azur، ان تتمتع بالعديد من الخواص الموجودة في هذا الأنفوجرافيك البسيط الجانبي.
و لنسهل عليك خوض غمار تجربة الـ Data Science، نقترح عليك تجربة هذا الكورس التفاعلي من منصة CodeCademy المخصص للـ Data Science .



شاركه على :


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


مجموعة ادوات إختراق و حماية جديدة عليك الإطلاع عليها لهذا الشهر ( أكتوبر / تشرين الأول )


قبل ان نلج معك مباشرة في مقالنا لهذا الشهر، إليك بعض التفاصيل حول إختراق هذا الشهر، إذ صرحت شركة فيسبوك انه قد تم فعلا إختراقها، و قد قام المخترق أيضا بسحب بيانات 50 مليون مستخدم لمنصة الفسيبوك، إستخدم المُخترق ثغرة معينة في الفيسبوك تعتمد على غيار View As في الموقع، من أجل التأكد من سلامة كل المستخدمين أيضا، قامت الفيسبوك بتفعيل خروج كل المستخدمين Logout و إعادة إدخال كلمات السر مجددا من أجل التأكد من سلامتهم، تعرضت شركة الفيسبوك لدعوتين قضائيتين من إمرأتين الأولى من كولورادو في أمريكا و الثانية من شيكاغو من نفس البلد مفادها ان الشركة لم تقم بحماية بيانتهما و على الفيسبوك ان تعوضهما عن ذلك، إعتذرت الفيسبوك عن الإختراق أيضا . 

إطلع على مقالاتنا السابقة من نفس الصنف : 

  1. مجموعة ادوات إختراق و حماية جديدة عليك الإطلاع عليها لهذا الشهر ( سبتمبر / أيلول )
  2. مجموعة ادوات إختراق و حماية جديدة عليك الإطلاع عليها لهذا الشهر ( اغسطس )
  3. مجموعة ادوات إختراق و حماية جديدة عليك الإطلاع عليها لهذا الشهر ( يوليو / آب )

 أداة OWASP Zed : أداة لكشف و إختراق تطبيقات الويب : 

أداة مخصصة لإختبار الإختراق لتطبيقات الويب و المواقع، ليست بالأداة الجديدة حقا، بل شهرتها كبيرة بين جل المستخدمين في العالم، لكن قد لا تكون بتلك الشهرة بالنسبة لمتابعي موقع أكوا ويب، فنحن لم نتحدث عنها في أي من مقالاتنا السابقة إطلاقا، تعتبر أداة مُستخدمة بكثرة في عالم الـ Cyber security لما توفره من سهولة في الإستخدام واجهة جرافيكية بسيطة تساعدك على كشف المواقع و تطبيقات الويب و إستخراج كل المعلومات التي تحتاجها عنها، و ربما إستغلالها كذلك إن وجدت اي أخطاء أمنية في الموقع، يمكن للجميع إستخدام الأداة فهي بسيطة من ناحية المبدأ و متاحة على مختلف الأنظمة كذلك . 


 أداة EnumDB : أداة مفتوحة المصدر لإستخراج بيانات قواعد بيانات Mysql : 

أداة متوفرة على Github مبنية على لغة البرمجة بايثون، تسمح لك هذه الأداة بإستخراج قواعد البيانات على شكل قائمة xlsx من خلال قواعد بيانات MySQL ثم القيام بعليات Bruteforce أيضا على كلمات السر من أجل إستخراجها، الأداة تشتغل فقط بسطر الأوامر و تتوفر على مجموعة متعددة من الأوامر التي يمكنك استخدامها للتحكم الكامل في قواعد البيانات و إستخراج أي نوع من البيانات بشكل إحترافي أيضا، الأداة سهلة الإستخدام ففور سحبها الى جهازك يمكنك تشغيلها و توفير رابط قاعدة البيانات ( او عنوان السيرفر )  للأداة، ستقوم بعدها بتحميل قاعدة البيانات كاملة و القيام بأي نوع من العمليات تريد عليها . 


 أداة Habu : أداة بايثون لكشف و إختراق الشبكات : 


هي في الأصل اداة تعليمية تساعد المستجدين في عالم البايثون الى إكتشاف الشبكات و البيانات حولها  و كيفية صناعة أسطر برمجية تساعدك على كشف الشبكات و تحليلها و حتى إختراقها، الا انه تم تحديثها و تحديثها بالمزيد من الأسطر البرمجية حتى صارت أداة متكاملة قادرة على مساعدة المستخدم على تحليل كامل للشبكة و إستخراج كل متعلقاتها، تتضمن الأداة الآن العديد من التقنيات المفيدة مثل ARP Poisining , Arp sniffing, LAND Attack و العديد من التقنيات الأخرى التي تساعدك على التحكم الكامل في الشبكة و متصليها أيضا . 


- أداة BYOB : اداة مخصصة لصناعة Botnet خاص بك : 


تذكر ان مثل هذه الادوات مخصصة لأصحاب الإختصاص، و يُفضل إستخدامها لأغراض هادفة او تعليمية، أداة BYOB و هي إختصار لعبارة Build Your Own Botnet، تسمح لك هذه الاداة بصناعة Botnet خاص بك بإستخدام لغة البرمجة بايثون، الأداة مخصصة بالفعل و لا يحتاج منك الأمر لأي سطر برمجي سوى سطر الأوامر لتوفير المعلومات و الخصائص التي يحتاجها الـ Botnet الخاص بك، و لمن لا يعرف الـ Botnet فهو واحد من أخطر الفيروسات الذي يصيب الجهاز او الحاسوب ثم يحوله الى جهاز إختراق بحد ذاته ليصيب أي جهاز مرتبط به أيضا، ببساطة يمكن لهذا الفيروس ان ينتشر في الشبكة و يصيب كل الحواسيب دفعة واحدة، فإحذر من إستخدامه.
اداة BYOB مبنية على البايثون و مفتوحة المصدر كذلك، اما الـ Botnet الخاص بك فيمكن التحكم به عن بعد للقيام بالعديد من الأمور مثل كشف كلمات السر المخزنة في الجهاز المصاب، تحميل البيانات او رفعها على الحاسوب، إستخراج الملفات، إستخدام Keylogger لمعرفة ما يكتبه المستخدم، أخذ Screenshots للحاسوب و غيرها من الأمور الأخرى التي يستطيع أي Botnet فعلها و أكثر أيضا.


أداة Leaked : للتحقق من الإيميلات و كلمات السر المسربة : 


لربما تسمع دائما عن إخترقات و تسريب للبيانات في كل مكان و في خدمات معينة، مثل فيسبوك على سبيل المثال في حدثها الأخير الذي تمت الإشارة إليه أعلاه، لنفترض ان تلك البيانات قد تم تسريبها و بيعها، فهل بياناتك من ضمنها ؟ 
تُساعدك أداة Leaked على البحث و تقصي البريد الإلكتروني و حتى كلمة السر ( رغم اننا لا ننصحك بكتابة كلمة السر بالطبع ) و البحث عنها في مجموعة من المواقع المختلفة منها الإجتماعية و منها العادية و منها المواقع التي تفصح عن المعلومات المسربة، ثُم يُرجع البرنامج نتيجة محددة، فإن كان البريد الإلكتروني مستخدم او تم تسريبه في احد المواقع تظهر لك الأداة كل الخدمات و المنصات التي تستخدم بريدك، إن قمت بالتشكيك في احد الخدمات الغير مسجل فيها ظاهرة لك، ففي الغالب تم تسريبه بالفعل، إن لم يكن فأنت في أمان، يمكنك إستخدام الأداة للتحقق من أي نوع من البريد الإلكتروني .

- أداة CyberChef : منصة كاملة للتشفير و فك التشفير و تحليل البيانات : 

أداة CyberChef أداة بسيطة بواجهة جرافيكية يمكنك إستخدامها من أجل فك تشفير كلمات السر او اي نوع تشفيرات آخر، علاوة على ذلك يمكنك أيضا تشفير أي نوع من البيانات بشتفير قوي او بإختيارك أنت لنوع التشفير من خلال الأداة، كما انه يوفر لك خاصية ضغط البيانات و الملفات، الى جانب بعض الأدوات من أجل تحليل تلك البيانات او تقسيمها و تفريقها بشكل يسهل عليك قرائته، تطبيق CyberChef يساعدك في طبخ أي نوع من التشفيرات و تجهيزه للهضم السريع ! 



- أداة Ettercap : أداة MITM إحترافية للحاسوب : 

لطالما إستعرضنا تطبيق Zanti في موقعن ( ستجد شرحا للتطبيق في الرابط أعلاه )، يتيح لك التطبيق القيام بعمليات MITM او Man in The Middle و هي تقنية تنفذها على الشبكة بحيث تصبح كل الإتصالات بين الجهاز المتصل بالشبكة و الراوتر او نقطة الإتصال تمر من خلالك مما يسمح لك بتقصي كل شيئ يُرسله المتصل بالشبكة او يستقبله من مواقع و صور و فيديوهات و كل شيئ تقريبا، حتى انه يمكنك أنت أيضا ان تتحكم في المحتوى  المُرسل للضحية و توجيهه لمواقع محددة و ما الى ذلك، لكن ماذا لو اردنا نقل كل ذلك للحاسوب ؟ 
في هذه الحالة سنقترح عليك أداة Ettercap، و هي أداة مشهورة أيضا تسمح لك بالقيام بعمليات MITM بإستخدام حاسوبك، و تقصي كل البيانات الجارية بينك و بين المتصلين معك في نفس الشبكة و تمكين الوصول لبياناتهم المرسلة او المستقبلة بينهم و بين نقطة الإتصال.


- أداة SMBetray : أداة MITM أخرى تعتمد على سط الأوامر : 

أداة SMBetray أداة MITM أخرى قادرة على تقصي كل ما يمر في الشبكة بين الضحية و نقطة الإتصال و إستخراج كل المعلومات وا لبيانات، هذه الاداة مفتوحة المصدر و مبنية على البايثون أيضا، لا تتضمن أي واجهة جرافيكية و تشتغل بسطر الأوامر، بسيطة في أوامرها فلا داعي للقلق، تسمح لك كذلك هذه الأداة " بتسميم " الشبكة و إرسالة ملفات و توجه للروابط من خلالها و تطبيقها على المستخدم، بحيث يستطيع المستخدم تحميل ملفات لم يكن يرغب فيها، او تجيه نطاق الولوج لأي موقع تريده أنت، يوجد توثيق كامل للاداة يمكنك إستغلاله . 

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

شاركه على :


الشركات التقنية حول العالم وفرت لنا و لازالت توفر و ستوفر دائما العديد من البرمجيات و التقنيات الجديدة التي تساعد المستخدمين على انجاز مهامهم اليومية مهما كان نوعها سواء العملية او الترفيهية او في إطار الدراسة بالنسبة للطلبة و التلاميذ، و تحصل هي الأخرى على عائد كبير مقابل الخدمات التي توفر، فأحيانا من خلال الإعلانات، و أحيانا أخرى من خلال شراء حسابات VIP او Premium في تلك الخدمات من أجل الحصول على خدمات أفضل و أقوى، و أحيانا فقط من أجل سحب بياناتك و إعادة بيعها و إستغلالها، فقد شرحنا ذلك في مقال مخصص بعنوان : كيف تحقق شركات الألعاب و الشركات ذات الخدمات المجانية أرباحها إطلع عليه إن اردت إلقاء نظرة أقرب عن عالم الأرباح الخفي الذي تحاول الشركات التقنية تغطيته بزي كاشف عليك . 


سبوتيفاي 101 : ما هو سبوتيفاي؟ كيف تفتح حسابا؟ كيف تستخدمه و كل ما تحتاج معرفته عن Spotify


من بين الخدمات المثيرة و التي إجتاحت العالم في السنوات الأخيرة، هي خدمة Spotify التي قضت تماما على خدمة Soundcloud و إن كان التشابه بينهما طفيف الى حد ما، فخدمة Spotify أصبحت في حواسيب و هواتف الجميع تقريبا و يستفيد منها الكل، و ربما لا دراية لك أنت حول هذه الخدمة و الهدف منها و أساسياتها و كيفية تحصيلها و الإستفادة منها كسائر المستخدمين الآخرين على هذه الشبكة العنكبوتية، هنا يأتي " سوبر أكوا ويب " ليساعدك في أحد مقالات الـ 101 ( الـ 101 يُعنى بها الأساسيات ) التي نقدمها لك على الدوام من أجل مساعدتك في فهم هذه الخدمة و كل ما يتعلق بها، المقال مقسم لأقسام يمكنك إختيار الفقرة التي تريد من أجل الإطلاع على محتواها و لست مضطرا لقراءة المقال كاملا إن كنت على دراية مسبقا بخدمة سبوتيفاي.


- ما هي خدمة سبوتيفاي - Spotify ؟ 




لدينا جميعا تلك الرغبة في الإستماع للموسيقى بإستخدام هواتفنا او حواسيبنا، تكوين قائمة تشغيل Playlist خاصة بنا، الحصول على آخر المستجدات أغاني مغنينا المفضلين و الإطلاع على جديدهم و قديمهم و غيرها، سابقا كان الأمر أشبه باليدوي، بحيث توجب عليك إما الإستماع لها مباشرة على اليوتيوب، او تحميلها من اليوتيوب على شكل موسيقى أيضا و إدراجها في هاتفك او حاسوبك، او شراء الألبوم إن اردت، او الولوج لأحد المواقع الخاصة بالموسيقى مثل Soundcloud او Myspace ( اه يا جيل الإنترنت القديم ) و الإستماع للموسيقى، لكن ذلك لم يكن كافيا، فانا اريد ان اتوصل بجديد اغاني ذلك المغني دائما، ان استمع كذلك لأغاني من صنف معين مثل البوب او الروك او حتى الميتال، اود ان استكشف الجديد في عالم الموسيقى و ليس فقط ما اعرفه.
من هذا المبدأ ظهرت خدمة Spotify، منصة متوافرة على الحاسوب و الموبايل تقوم من خلالها بتسجيل حساب، و تعيين موسيقاك المفضلة للإستماع إليها، إختيار كذلك مغنيك المفضلين و متابعتهم للتوصل بجديد ألبوماتهم أولا بأول، كما يمكنك البحث عن اي صنف أغاني تريد و الإستماع له، ليس هذا فقط، بل يمكنك البحث عن أغانيك المفضلة او مغنيك المفضلين، إضافتهم الى Playlist و الإستماع لموسيقاهم، و إن لم تكن لديك إنترنت، فيمكنك تحميل تلك الموسيقى للإستماع أوفلاين، كل هذا من خلال خدمة سبوتيفاي يا صديقي. 

- كيف تفتح حسابا في خدمة سبوتيفاي ؟ 


مادمت تقرأ هذا المقال باللغة العربية، فيؤسفني أن اخبرك ان منصة سبوتيفاي غير متاحة للعديد من الدول العربية في الوقت الراهن، لكن أبشر، لازال بإمكانك صناعة حساب و الإستفادة منه بشكل عادي بكل المنافع و الميزات حتى و إن كان محظورا في بلدك، فقط إتبع الخطوات التالية عزيزي القارئ : 
1- أولا ستحتاج الى VPN، لا تقلق فإستخدامه مؤقت و لست مضطرا للحصول عليه مدفوعا او اي شيئ من أجل الإستفادة من الخدمة، لنسهل عليك الأمر ننصحك بإضافة Betternet على متصفح كروم، إضافة تسمح لك بتغيير الـ IP بسهولة و بشكل مجاني، او يمكنك إستخدام احد برامج الـ VPN المجانية التي يمكنك الإطلاع عليها من هنا ، بعد ان تقوم بتنصيب إحداها قم بتشغيلها من أجل تغيير IP جهازك و تحويله الى IP لأحد البلدان الأجنبية لا يهم أي بلد، مادام ليس عربيا . 
2 - بعد تغيير الـ IP نلج مباشرة لصفحة Spotify الرسمية من هنا  من أجل تسجيل حساب في الخدمة، نقوم بملأ كل البيانات الخاصة بالتسجيل ( يُفضل عدم إستخدام التسجيل عبر فيسبوك او احد الخدمات الأخرى لأنها ستعيقك لاحقا في الدخول بدون VPN ) لذلك تسجل بطريقة عادية عن طريق البريد الإلكتروني، و أتمم بقية المعلومات . 
3 - ستتوصل بعدها برسالة تفعيل للحساب على البريد المسجل، قم بتفعيل حسابك و تنشيطه، و بعدها مباشرة نمر لتحميل البرنامج، البرنامج متوفر على كل الأنظمة من لينكس و ماك و ويندوز، يمكنك إستخدام تطبيق Spotify على الويندوز أيضا من خلال متجر المايكروسوفت، بالنسبة للهاتف فالتطبيق لن يظهر لك في المتجر كونه محظور في بلدك، الحل البديل هو الحصول على VPN في الهاتف و البحث عنه، او تحميله من مصدر خارجي من أحد المواقع البديلة لمتجر جوجل بلاي
4 - يمكننا التخلص من الـ VPN الآن و إستخدام سبوتيفاي بشكل عادي، بعد الولوج للبرنامج او التطبيق، قم بالولوج بحسابك الذي قمت بتسجيله، لتظهر لك واجهة البرنامج و كل خدماته التي يمكنك الإستفادة منها بشكل عادي و طبيعي بدون VPN، و لا تقلق لن ينتهي الأمر او يتم غلق حسابك، صدقني فأنا استخدم الخدمة الآن لما يقارب السنة و قمت بالأمر كما شرحته لك . 


- كيف تستخدم خدمة سبوتيفاي ؟ 

فور الولوج للبرنامج او التطبيق الخاص بسبوتيفاي، ستظهر لك واجهة شبيهة بالصورة أعلاه التي تستعرض عليك في الواجهة بعض الإقتراحات لبعض الأغاني و الموسيقى الأكثر رواجا للأسبوع او أجددها أيضا . 
- يمكنك البحث عن ألبوم معين، مغني معين، فرقة معينة او أغنية معينة عبر عملية البحث أعلاه كما في الصور و ذلك عن طريق كتابة الإسم، في حالة البحث عن مغني، يمكنك النقر على إسمه لتجد كل الألبومات و الاغاني الخاصة به، قد تجد أيضا بعض الـ Playlist او قوائم التشغيل التي قد تظهر مع البحث و تتضمن تلك الاغنية التي بحثت عنها، قوائم التشغيل في الغالب تتضمن أغاني مماثلة لها . 
- يمكنك أيضا الإنضمام و متابعة مغنيك المفضلين من أجل التوصل في الصفحة الرئيسية بكل جديدهم من ألبومات و أغاني . 
- يمكنك الإنتقال في القائمة الجانبية أيضا الى تبويب Discover من أجل الإطلاع على أجدد قوائم التشغيل المناسبة لك او قوائم تشغيل مناسبة لمزاجك، مثل قوائم تشغيل لأغاني الخريف و غيرها .


- او يمكنك الإنتقال لتبويبات أخرى مثل Genre للبحث عن لونك المناسب في الموسيقى و الأغاني، او New Releases من أجل الإطلاع على أجدد الأغاني الموسيقية حاليا .
في التبويبات الجانبية، سيمكنك الإنتقال بين العديد من الخيارات الأخرى المفيدة أيضا مثل Recently Played للإطلاع على آخر ما إستمعت إليه أيضا، او الاغاني التي قمت بحفظها و ذلك عن طريق خيار Songs، بل حتى انه يمكنك حفظ الأغاني التي تريد في قوائم تشغيل من صناعتك و ستجدها في الجانب أيضا في الأسفل من اجل الإطلاع عليها في أي وقت.
يوجد الكثير من الخيارات الأخرى التي ستستكشفها مع الوقت .

- كيف تضيف موسيقاك الأصلية في حاسوبك و الإستماع لها من سبوتيفاي ؟ 

احد الأسئلة الأكثر شيوعا بين المستخدمين هي كيفية إضافة الموسيقى المحملة مسبقا في الجهاز الحاسوب و الإستماع لها من خلال سبوتيفاي، الحل سهل جدا، يكفي أولا ان تتوجه الى التعديلات في الأعلى في اليسار ( رمزه ثلاث نقاط . . . ) ثم إختر خيار Edit ثم Preferences، اهبط قليلا الى ان تجد خيار Local files، سيخبرك البرنامج إن اردت إضافة مصدر اخر او مجلد من حاسوبك و قراءة الملفات الموسيقية منه، نقوم بفعل ذلك و نختار مجلدا ثم نحفظ التحديثات.
نذهب الآن الى التبويبات الجانبية، و نبحث عن خيار Local Files و ستجد ان موسيقاك من الحاسوب قد تم تحميلها الى البرنامج و يمكنك الإستماع لها من خلال البرنامج .


- تحميل أغاني Spotify الى حاسوبك : 

كما ذكرنا في المقدمة، فلكل خدمة فيه هذا العالم طريقة خاصة بها للربح منها ما يستعرض الإعلانات ( كما يوجد كذلك في سبوتيفاي ) و منها ما يوفر لك بعض الخدمات على شكل Premium توجب عليك الدفع من أجل الحصول عليها . 
للأسف خاصية تحميل الأغاني من سبوتيفاي الى حاسوبك غير ممكنة للحسابات المجانية، و توجب عليك الحصول على حساب Premium من الخدمة من أجل تمكين التحميل و تمكين الحصول على بعض الخدمات المدفوعة الأخرى أيضا.
عموما، لازال بإمكانك الإستمتاع بالاغاني في وضع الأونلاين او في العمل بكل سهولة . 

نرحب دائما بإستفساراتك حول خدمة سبوتيفاي و كل ما يتعلق بها، و سنحاول أن نجيبك عنها بدقة قدر الإمكان .

شاركه على :


لربما سمعت عنها من قريب او بعيد، و لم تعرف ماهيتها، و ما دورها و كيف ستغير العالم التقني، و إن لم تكن مركز حديث الساعة حاليا، فلا يمكننا إنكار ان الحواسيب الكمومية، او الحواسيب الكمية كما يسميها البعض ستغير العالم التكنولوجي لما توفره من تقنيات و تكنولوجيات جديدة.
فالتقنية اليوم في تسارع، تتقدم كل يوم و تنشر الجديد في عالم التقنية، فعليك مواكبتها و إستعابها و لو نظريا دون الأخذ في تطبيقها، فتطبيق تلك التكنولوجيات في أرض الواقع قد يكون صعبا، لكن إسيتعابها أسهل و أفضل، من أنترنت الأشياء IoT الى تقنية البلوكتشين مرورا بالسيارات ذاتية القيادة و تطبيقات الذكاء الإصطناعي و عوالم الـ Big Data و جديد عالم الروبوتيك و أشباه الروبوت " صوفيا " و غيرها من التكنولوجيات باتت تشاطرنا هذا العالم، و توجب علينا ان نعرف أي شيئ و كل شيئ عن هذه التقنيات. 
و من شأن هذا المقال اليوم ان يعرفك و يوفر لك دليلا للتعرف على الحواسيب الكمومية و معرفة الغاية منها و فوائدها و ذلك عن طريق تقديم 25 معلومة فذة حول الحواسيب الكمومية ستقوم بتعريفها لك و تساعدك على فهمها و فهم الغاية منها أيضا . 


7 معلومات مذهلة لتعريفك بالحواسيب الكمومية / الكمية او الـ Quantum Computers


- ما هي الحواسيب الكمومية Quantum Computers : 


الحواسيب الكمومية ليست حواسيب صالحة للإستخدام الشخصي، ليست بالحواسيب التي يمكنك تنصيب لعبة Call of Duty عليها، او التحقق من بريدك الإلكتروني او الولوج للفيسبوك من خلالها، بل عملها أعقد بكثير من هذا، فنحن نعلم سرعة الحاسوب العادي اليوم و كيف يستطيع إجراء العديد من العمليات الحسابية المعقدة و إستخراج النتائج في رمشة عين، لكن حين يتعلق الأمر بالقيام بعمليات حسابية متراكبة و كثيرة في وقت وجيز، فالإعتماد على الحاسوب العادي قد يكون أسوأ فكرة على الإطلاق، يسمح لنا الحاسوب الكمومي المجهز بالـ Qubits بدل bits بحيث تسمح هذه الـ Qubits بتسجيل أزيد من حالة بدل الحالتين المعروفتين و هما 0 و 1، الحاسوب الكمومي تتكون أجزاء أجزائه من جسيمات صغيرة ميكانيكية كمية نستطيع التحكم بها من أجل تخزين و معالجة البيانات بسرعة و حجم فائقين، بدأت عملية التفكير في صناعة حواسيب كمية منذ نشأة آلة تورينغ ( إن شاهدت فلم The Imitation Game فعليك مشاهدته لأنه يشرح هذا الأمر )، لا وجود حاليا لحاسوب كمي فيزيائي صحيح و عملي، لكن العمل عليه جاري من طرف كبرى الشركات التقنية مثل IBM و Google و مايكروسوفت، يوجد كتاب خاص يشرح لك كل ما تحتاج معرفته حول الحواسيب الكمومية قمنا بنشرها في مقال خاص يمكنك الإطلاع عليه من هنا .

فإليك إذن بعض الحقائق الجميلة و المذهلة التي ستساعدك أكثر على التعرف على الحواسيب الكمومية و آلية عملها . 

1 - نوع آخر من الحماية الغير القابل للكسر : 

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


إقرأ أيضا : كيف تحقق شركات الألعاب و المواقع الإجتماعية و الخدمات المجانية أرباحها ؟

2 - ربما نهاية الخوارزميات المعقدة ... و العمليات الرياضية بدون حل ! 

هل درست المعلوميات في الجامعة او مدارس مخصصة  لها او في كليات الحاسبات ؟ إن فعلت فلا بد انك قد درست مادة " الخوارزميات " و كيف انها تساعدنا في حل بعض المشاكل البرمجية Problem Solving بشكل أساسي، إن تعمقت كذلك أكثر في الخوارزميات، ستجد انه يوجد عدد لا بأس به من الخوارزميات بدون حل، او صعبة الحل او صعبة التنفيذ، بل أن بعض الشركات توفر لك مبالغ مالية مقابل حل تلك الخوارزميات او تبسيطها، نعم إنها كذلك، و السبب في عدم إيجاد حل لها في الأساس قائم على صعوبة تنفيذ المهمة. 
لأشرح لك الأمر بشكل أبسط، لنأخذ خوارزمية بسيطة ( ذات حل مسبق فقط من أجل التوضيح ) لنفترض انه لدينا موقع مثل فيسبوك يرتاده تقريبا 3 مليار مستخدم، المعضلة امامنا هي دخول المستخدم، فالخوارزمية المقترحة لولوج المستخدم هي ان يضع بريده الإلكتروني ثم نقوم بالبحث في قاعدة البيانات واحدا تلو الواحد عن الشخص الذي يملك نفس البريد الإلكتروني ثم إستخراج كلمة السر المسجلة ثم مقارنتها مع كلمة سر التي ادخلها المستخدم. جيد حتى الآن، تخيل معي انه لإيجاد البريد الإلكتروني يجب المرور و مقارنة البريد مع أزيد من 3 مليار سطر او بيانات، في الغالب ستلج الى الفسيبوك بعد 4 أيام من البحث او أكثر، هنا يجب ان يتدخل احد الأذكياء من اجل توفير حل أبسط، كتقسيم البحث مثلا او القيام بعمليات معينة، هذا الحل الأبسط غير متوافر في بغض الخوارزميات مما يجعل العديد من الشركات تدفع مبالغ طائلة من أجل حل عملي.
الحواسيب الكمومية ستساعدنا على حل هذه المشكلة إطلاقا، فهي قادرة على القيام بأي انواع العمليات بشكل سريع جدا و كبير أيضا، مما سيسمح لنا أخيرا بحل الخوارزميات المعقدة و تحليلها و تبسيطها، و كذا المسائل الرياضية بدون حل أيضا . 

3 - اثناء كتابة هذه الأسطر ... لا يوجد حواسيب كمومية فيزيائية إطلاقا : 

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

4 - رغم ذلك، فقد إستطاعت بعض الشركات التقنية من صناعة الشرائح الكمومية Quantum Chips : 

يتكون أي حاسوب من مجموعة شرائح، لكل شريحة دورها الأساسي في تشغيل ذلك الحاسوب، لا يختلف الحاسوب الكمي عن هذا المبدأ كثيرا، إلا ان بعض شرائحه كما أشرنا تدعم التخزين عن طريق إلكترونات و فوتونات معينة، و إن كانت الحواسيب الكمومية صعب التحقيق و البناء، إلا ان بعض الشركات إستطاعت مبدئيا صناعة بعض الشرائح المكونة لهذا الحاسوب، على رأسها جوجل، شركة IBM، شركة Intel، شركة Rigetti و أيضا D-wave، و هي شركات رائدة في صناعة قطع الحاسوب و شرائحه، و قد تمكنت من صناعة بعض مكونات الحاسوب الكمي، بينما لازالت بعض المكونات الأخرى غير قابلة للإنجاز في الوقت الراهن .


إقرأ أيضا : هذه هي اللغات البرمجية التي يجب عليك تعلمها لسنة 2018 !

5 - الذكاء الإصطناعي سيصبح أكثر ذكاءََ و خبرة من ذي قبل : 

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

6 - إنخفاض إستهلاك الطاقة : 


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


إقرأ أيضا :ما هي لغات البرمجة الخاصة ببرمجة الذكاء الإصطناعي ؟

7 - إستكشافات أكثر و توسيع أكبر لمدارك الإنسان : 

في كل إستطلاع فضائي، او باطني، او بحث علمي، يوجد كمية كبيرة من الحواسيب التي تقوم بالعمليات الحسابية و التخطيط من أجل الإنسان، و لولاها لما إكتشفنا مجرات و عوالم و كواكب أخرى، او درسنا إمكانية الوصول إليها او إرسال مسبار فضائي لها دون الحسابات الدقيقة التي تقوم عليها الحواسيب، نقترح عليك مشاهدة فلم " Hidden Figures " لترى بنفسك حجم الطاقة المهدرة من طرف الإنسان من أجل حساب مسار مسبار فضائي، بينما إستطاع الحاسوب القيام بها في رمشة عين، رغم ذلك لازال العالم غامضا، نحتاج الى حسابات أدق و أسرع و أفضل، حسابات لا يستطيع الحاسوب العادي القيام بها، الحل الوحيد هو الحاسوب الكمومي، تخيل معي وجوده في العالم، السوبر كمبيوتر سيُطلعنا على مستجدات لم يصل إليها الإنسان بعد ! 

الحواسيب الكمومية بكل تأكيد ستشكل فارقا جديدا في العالم و في تعاملنا اليومي مع التكنولوجيا، خصوصا إن تم دمجها مع تقنيات أفضل قادمة لهذا العالم مثل الـ Blockchain و الـ AI و غيرها .

شاركه على :


نستمر معك في دروس لإكتساب أساسيات الـ SQL لغة الإستعلام المخصصة لإدارة قواعد البيانات و كل متعلقاتها، في الدرس السابق راجعنا تقريبا كل ما يتعلق بصناعة قواعد البيانات و صناعة الجداول الخاص بها و كذا إضافة بعض البيانات الى الجداول الى جانب التطرق لبعض المقتضيات الأخرى مثل الـ Constraints و كيفية تجسيدها في الجدول من أجل حماية المعلومات و تسجيلها بطريقة صحيحة . 

الـ SQL للمبتدئين : تعلم أساسيات الـ SQL و أوامر الإستعلام ( الجزء الثاني)


في الجزء الثاني سنبدأ حديثنا عن العلاقات بين الجداول و كيفية الربط بينهما أيضا، ثم سنمر مباشرة للإستعلامات الرئيسية في الـ SQL و كيفية إنجاز بعض الإستعلامات التي ستحتاجها كثيرا طيلة مسيرة تعاملك مع قواعد البيانات على رأسها إستعلامات الـ CRUD . 


يمكنك الإطلاع على الجزء الأول من هنا : الـ SQL للمبتدئين : تعلم أساسيات الـ SQL و أوامر الإستعلام ( الجزء الأول) 

- شرح بسيط للـ CRUD : 

ستجد عبارة الـ CRUD تقريبا في كل كورس برمجي تأخذه، او أي مقال برمجي شرحي مثل هذا المقال، الـ CRUD هي عبارة شهيرة و إختصار لـ Create / Read / Update / Delete ، أي الإضافة، القراءة، التعديل ثم الحذف، و هي الخواص الأربعة التي يمتاز بها أي Object برمجي كيفما كان، بحيث سنحتاج الى إضافة هذا الـ Object او العنصر، التعديل عليه إن إقتضى الأمر، جلب معلوماته من أجل الإطلاع عليها، و حذفه أيضا، و هي عبارة عن سلسلة حياة او Life Cycle لأي عنصر برمجي . 

- العلاقات بين الجداول : 


الـ SQL للمبتدئين : تعلم أساسيات الـ SQL و أوامر الإستعلام ( الجزء الثاني)


لكل جدول نقوم بصناعته في قاعدة البيانات شرط او Constraint خاص بالـ Primary Key، شيئ أساسي و ضروري في كل جدول ان يكون هناك عمود على شكل Primary Key في الغالب يكون الـ Number او الـ ID  أو الـ order Number و غيرها حسب نوع الجدول، و هذا يساعدنا على تقسيم البيانات و معرفة كل سطر على حدة و فصله عن بقية الأسطر الأخرى . 
حين يتعلق جدول بجدول آخر، فإن وسيلة الربط بينهما هي الـ Primary Key بحيث يكون الـ Primary Key في الجدول الأول هو عبارة عن مفتاح خارجي او Foreign Key في الجدول الثاني، بحيث يكون عمود الـ Foreign Key في الجدول الثاني هو نفسه عمود الـ Primary Key في الجدول الأول، لا تقلق الأمر بسيط جدا.
بالعودة للتخطيط أعلاه، سنأخذ الجدولين Customer ( الزبون )  و الجدول Orders ( الطلبيات ) فكل زبون له الحق في القيام بطلبيته الخاصة، و يمكن للزبون ان يقوم بعدة طلبيات أيضا، لكن لكل طلبية زبون واحد و لا يمكن لطلبية ان يشاركها عدة زبائن، لذلك ستجد امام جدول الزبون رمز " 1 " اي انه لكل طلبية زبون واحد، و امام جدول الطلبيات رمز " ∞ " إذ يمكن للزبون ان يقوم بعدة طلبيات، هذا ليس موضوعنا، هذا تحليل آخر متعلق بالـ UML / Merise . 
إن دققت في اعمدة جدول الطلبيات ستجد خانة بإسم CustomerID اي الـ Id الخاص بالزبون الذي قام بتلك الطلبية، و هو عبارة عن Foreign Key يربط الجدول Customer بالجدول Orders بينما يحتفظ الجدول Orders بالـ Primary Key الخاص به و هو Order N . 
دعونا نقوم بإنشاء الجدول Orders كما أنشأنا الجدول Customer في الدرس السابق، سنقوم بتطبيق الإستعلام التالي : 



حسنا، ما الذي تغير هذه المرة في هذا الإستعلام مقابل الإستعلام في الدرس السابق لصناعة الجدول ؟ ببساطة يوجد فرق واحد أساسي وهو إضافة Constraint جديد في آخر الجدول، هذا الـ Constraint متعلق هذه المرة بالـ Foreign Key  بحيث نقوم بأخذ العمود الثاني في الجدول و نقوم بتطبيق شرط المفتاح الخارجي Foreign Key و من أجل تحديد مصدره نقوم بإعطائه خاصية References ثم نستدعي الجدول الذي يمتلك الـ Primary Key و بعدها بين قوسين عمود الـ Primary Key ليصبح السطر في الأخير Foreign Key References customer(custId) و هو المطلوب في الربط بين الجدولين.

ستجد أيضا تغييرا اخر و هو نوع بيانات من نوع Date على عمود the_date و ذلك من أجل تسجيل البيانات على شكل تاريخ و ليس على شكل نص، في حين ان Time نقوم بتسجيله على شكل varchar لا مشكلة في ذلك . 
قبل ان نلج للفقرة الموالية، دعونا نضيف بعض البيانات في جدول الـ Orders من أجل تحقيق بعض الإستعلامات على الجدولين و جلب البيانات الخاصة بهما، لنطبق الإستعلام التالي : 



ملاحظات مهمة حول هذه الفقرة : أثناء تسجيل بيانات في الجدول Orders عليك التأكد ان عمود Customer ID موجود مسبقا في جدول Customer، إذ لا يمكنك إضافة ID غير موجود أصلا في جدول Customers في هذه الحالة قد يحدث خطأ في تسجيل البيانات . 
أيضا، أثناء تعاملك مع الـ SQL Server بدل MySQL قد لا تشتغل معك طريقة إضافة الـ Foreign Key كما في الأعلى و سيتوجب عليك إضافتها كما في السطر الثاني كما في الكود أعلاه ( الكود بين التعليقين ) . 

- إستعلامات جلب البيانات : 

إن كل ما جاء مسبقا سواء في هذا الجزء او الجزء السابق يعتبر فقط الجزء الأول و الأسهل من الـ SQL او من هيكلة و تصميم قواعد البيانات، بحيث ان كل ما سبق ذكره متعلق فقط بهيكلة و صناعة قاعدة البيانات و جداولها، و النتيجة كانت في الأخير قاعدة بيانات تتضمن جدولين مهيكلين جيدا قادرين على تخزين المعلومات و مرتبطين ببعضهما كذلك بشكل منطقي . 
الآن يبدأ الحماس، و تبدأ الإثارة كذلك، بحث انه و بعد تسجيل هذه البيانات سنحتاج الى إسترجاعها حسب الحاجة في برنامجنا، فإن اراد المستخدم الدخول ( كمثال بعيد عن قواعد البيانات التي نحن الآن في صدد العمل عليها ) ستحتاج الى جلب كلمة السر و البريد الإلكتروني مثلا، إن اراد المستخدم الإطلاع على بروفايله و كل معلوماته و التعديل عليها، علينا ان نوفر له ذلك، و من أجل تحقيق هذا سيتوجب علينا الإطلاع على بعض الإستعلامات و إيجاد التعامل معها . 
فكفانا حديثا، و دعونا نبدأ مباشرة بأول إستعلام : 



هذا الإستعلام سنستخدمه كثيرا كثيرا كثيرا، تقريبا أي إستعلام متعلق بالـ Read ( أي قراءة / جلب البيانات من الجداول ) يبتدأ بعبارة Select * ، و تعني Select * في الـ SQL أمر " إختر كل شيئ " و عبارة from table_name تحدد له الجدول الذي نريد ان نجلب منه كل شيئ، لذلك تقنيا عبارة Select * from customer تقول " أجلب كل البيانات من جدول customer " و النتيجة : 



الـ SQL للمبتدئين : تعلم أساسيات الـ SQL و أوامر الإستعلام ( الجزء الثاني)

إن حرف او علام " * " تعني كل شيئ، او كل البيانات، في حالتنا هذه تم إسترجاع كل البيانات من جدول Customer، نحن نريد تخصيص هذه البيانات، لنفترض انه و لدواعي الخصوصية لا نريد إظهار رقم هاتف الزبناء و كذا عناوينهم، كل ما نريد إظهاره هو فقط الرقم الخاص بهم ( الذي لا يتكرر لأنه Primary Key ) و إسمهم الكامل، و نريد إظهار كل الزبناء الموجودين في الجدول كاملا، الإستعلام الأصح هنا هو كالتالي : 



هذه المرة و بدل جلب كل بيانات الأعمدة عن طريق " * " قمنا بتخصيصها أكثر و ذلك عن طريق حذف الـ " * " و تعويضها بأسماء الأعمدة، بحيث نقوم بفرز كل عمود على حدة عن طريق فارزة  " , " مع كتابة إسم العمود بشكل صحيح، في حالتنا هذه نريد الـ ID و الإسم الأخير و الإسم الأول للمستخدم، لذلك قمنا بتطبيق الإستعلام أعلاه، و النتيجة : 



الـ SQL للمبتدئين : تعلم أساسيات الـ SQL و أوامر الإستعلام ( الجزء الثاني)


ملاحظات متعلقة بهذه الفقرة : تختلف أوامر الـ SQL من منصة لأخرى، قد يدعوك بعضها لإضافة الجدول بين فارزتين في إستعلام الـ SQL و غيرها، لذلك لا تقلق فكل الإستعلامات متشابهة، و تذكر ان الـ SQL لا يفرق بين الأحرف الكبيرة و الصغيرة، فإستعلام SELECT هو نفسه Select . 
إستعلام Select سنستخدمه تقريبا الى بقية نهاية هذه الأجزاء، لذلك إن لم تفهمه جيدا، فعد قليلا لهذه الفقرة و قم بالمحاولة مجددا، لكن هذه المرة مع جدول orders مع بعض التجريب . 




- إستعلام جلب البيانات مع إستخدام الـ Alias : 


لنفترض ان رب العمل يريد منا ان نقدم له جدولا يتضمن معلومات المستخدمين، الرقم و الإسم و النسب، أثناء هيكلتنا للجدول قمنا بتسمية هذه الأعمدة بـ CustID , LN, FN ( كما ترى في الصورة أعلاه ) إن قمنا بإستخراج البيانات عن طريق Select و تقديمها لرب العمل، لربما لن يفهم هذه الإختصارات الخاصة بـ CustID او LN او FN، لذلك سنستخدم ما يسمى بالـ Alias او الأسماء الحركية إن صحت الترجمة من أجل تغيير إسمها، ببساطة نضيف عبارة as ' New Name ' مع إحترام الـ " ' " للإسم الجديد حتى يستطيع إستيعاب الفراغ في الإسم، نضيفها مباشرة بعد إسم الجدول حين تحديده بعد Select و ذلك عن طريق الإستعلام التالي : 



كما ترى  قمنا بإختيار إسم جديد مباشرة بعد كل إسم عمود نختاره، هذه العملية تسمى بالـ Alias و تسمح لنا بتغيير إسم الأعمدة في الجدول بالأسماء التي نريد، سنستخدمها بكثرة عن نتعامل مع بعض الـ Functions مثل count() و غيرها ( نحن في طريقها لا داعي للتسرع )، كما ترى سنحصل على نتيجة كالتالي : 



الـ SQL للمبتدئين : تعلم أساسيات الـ SQL و أوامر الإستعلام ( الجزء الثاني)
ستلاحظ أن اسماء الجداول الآن أكثر وضوحا، و يمكننا طباعة هذا الجدول و تقديمه لرب العمل الآن . 


- إستعلام جلب البيانات بإستخدام Distinct : 


من الطبيعي ان تكون بعض البيانات مكررة في الجداول، بالطبع مادام الـ  Primary Key مختلف، احيانا قد نود الحصول على كل البيانات بطريقة غي مكررة، على سبيل المثال لنعد الآن الى جدول Orders، في جدول Orders يوجد لدينا عمود Type هذا العمود يسمح لنا بتسجيل بيانات عن نوع الطلبية التي قام بها المستخدم، شخصيا أضفت نوعين الطلبية العادية Regular Order و طلبية Big Meal Order، لا اعرف لما اضفت هذين الخاصيتين لكن ما علينا كل هذا فقط من أجل الشرح، إن عدت للجزء الأول ستجد انني قمت بخطأ فظيع و هو انني قمت بتسجيل هذا النوع في عمود الـ Time و تسجيل الـ Time في خانة الـ Type لذلك علينا تصحيح هذا الأمر أولا، لنقوم بتصحيحه سنستعين بشرح الجزء الأول و خاصية Alter Table التي تسمح لنا بالتعديل على الجدول، بما ان العمودين من نوع varchar سأقوم فقط بتغيير إسم العمودين و ذلك بالطريقة التالية : 



بهذا الإستعلام قمنا بتغيير أسماء العمودين، قمت بتغيير عمود time الى thetime لأنه يوجد نوع بيانات او Datatype من نوع time و حتى لا يحدث اي إرتباك في الإستعلام قمنا بتغييره، كان هذا مجرد تعديل بسيط، لنعد لمحتوى هذه الفقرة . 

أخبرني رب العمل انه يريد أنوع الطلبات التي تمت، لأقوم بفعل هذا في الغالب سأقوم بإستعلام Select type from orders، و هو إستعلام صحيح، لكن ما سيحدث حقا هو انه سأحصل على أنواع طلبات متكررة، و هذا ما لا يريده رئيسي، بل يريد فقط كل نوع على حدة، لذلك سأستخدم خيار Distinct هذه المرة، و بهذا الإستعلام : 



 بهذا الإستعلام، سنحصل على نتيجة خاصة و هي كالتالي : 



الـ SQL للمبتدئين : تعلم أساسيات الـ SQL و أوامر الإستعلام ( الجزء الثاني)

بالطريقة التالية أحصل على بيانات غير مكررة و ذلك عن طريق Distinct، نضيف عبارة Distinct مباشرة بعد أمر Select .


- إستعلامات جلب البيانات بإستخدام الجمل الشرطية عن طريق Where : 


إن كانت عبارة Select سنستخدمها كثيرا كثيرا كثيرا، فبالتأكيد عبارة Where سنستخدمها أيضا كثيرا كثيرا، في كل من الأمثلة السابقة، دائما ما نجلب كل البيانات كلها حسب نوع الإستعلام، و لا يوجد شرط مُطبق على الإستعلام من أجل تخصيص جلب البيانات، تسمح لنا عبارة Where و هي جزء آخر من أجزاء الإستعلام من مساعدتنا على تحديد شرط معين من أجل جلب البيانات التي تنصاع لهذا الشرط، فعلى سبيل المثال يمكنني جلب الطلبات او الـ orders التي تمت في تاريخ معين، او يمكنني جلب بيانات شخص من خلال إسمه، او يمكنني تحديد كل الأشخاص الذين يقطنون في شارع معين في جدول Customer، هذه عبارة عن شروط يمكنني تحقيقها بعبارة Where، دعونا نقوم بتجريب بعض الإستعلامات بإستخدام هذا الشرط، لنجرب جلب بيانات المستخدمين الذين يحملون إسم " Ahmed " : 



و النتيجة هي كالتالي : 




الـ SQL للمبتدئين : تعلم أساسيات الـ SQL و أوامر الإستعلام ( الجزء الثاني)

ببساطة نضيف عبارة Where مباشرة بعد الإستعلام الذي يجلب كل البيانات او البيانات التي نريد وهو Select، بعد جلب كل البيانات نقوم بفلترتها عبر شرط Where متبوعا بالشرط، في حالتنا هذه شرطنا كان ان يكون عمود Name يساوي ' Ahmed ' مما وفر لنا في الأخير إستعلاما على الشكل أعلاه . 
كل الشروط تقريبا التي تتبع عبارة Where تبدأ بتحديد الـ Column او العمود الذي نريد تطبيق الشرط عليه، الشرط المتبوع يعتمد على أحد الـ Operators، ماذا ؟ ليست لديك فكرة عن الـ Operators ؟ لحظة هذا سيحتاج الى فقرة جديدة. 


- فقرة إضافية : إفهم الـ Operators : 


إن كنت مبرمجا مسبقا، او لديك خبرات أولية في البرمجة، فقد تعاملت بشكل أو بآخر مع الـ Operators، الـ Operators تساعدنا على القيام بالعمليات الحسابية أولا، ثم عمليات المقارنة ثانيا، سنقوم بتعريف فقط الـ Operators الـ Global و لن نتحدث عن المخصصة للـ SQL في الوقت الراهن حتى نصل الى فقراتها المخصصة، أهم الـ  Operators نجد : 
علامة تساوي = ، علامة الجمع + ، علامة الطرح - ، علامة القسمة / ، علامة الموديلو % ( و تعني باقي القسمة فمثلا 4%2 = 0 ) ، علامة != و تعني لا يساوي ، علامة == و تعني التحقق من المساواة، علامة <= أكبر من او يساوي ، علام =< أصغر من أو يساوي، علامة && و تعني " و " ، علامة  || و تعني " أو " ... 
يوجد العديد منها لكن مبدئيا هذه هي العالمية، في الـ SQL نستخدم بعضها و لا نستخدم البعض الآخر إذ نستخدم بعض الـ Operators الأخرى غير هذه أيضا، مثل And . 


- الإستعلام الشرطي Where مع And : 


يسمح لنا الإستعلام الشرطي بخاصية Where من جلب البيانات بعد تحقيقها لشرط محدد، لكن ماذا لو أردنا ان يتم تحقيق شرطين او أكثر في الإستعلام قبل جلب البيانات ؟ يمكن تنفيذ ذلك عن طريق خاصية " And "، في الإستعلام السابق قمنا بالبحث عن أشخاص يمتلكون إسم " Ahmed "، و قد حصلنا على نتيجتين في عملية البحث بهذا الشرط، لكن لدينا شرط آخر نريد تنفيذه، نريد أشخاصا بإسم "Ahmed" يقطنون بمدينة رمزها البريدي 28932، يمكننا تحقيق النتيجة عن طريق هذا الإستعلام : 



اما النتيجة المحصلة فهي كالتالي : 



الـ SQL للمبتدئين : تعلم أساسيات الـ SQL و أوامر الإستعلام ( الجزء الثاني)

إن دققت النظر في الصورة قليلا، ستجد انه يقوم بتأطير الأعمدة التي نطبق عليها الشرط، و هو عمود LN للبحث عن إسم "Ahmed" و عمود الـ ZipCode للبحث عن الرقم البريدي للمدينة.
خاصية And تسمح لنا بتجميع العديد من الشروط دفعة واحدة في إستعلام واحد، بحيث تفضل عبارة And الشروط على حدة، فالشرط الأول هو جلب إسم "Ahmed" و الشرط الثاني هو جلب الـ ZipCode = 28932 و وسيلة الربط بينهما هي And التي توسطتهما في الإستعلام، إن أردت إضافة شرط ثالث، فمباشرة بعد الـ ZipCode أضف And ثم أضف الشرط الثالث، لا مشكلة في ذلك إطلاقا.


- الإستعلام الشرطي Where مع Or : 


على عكس And، يمكننا إستخدام Or المتناقضة كليا مع And، في إستعلام And يجب على الشرطين او الشروط المضافة ان تتحقق كلها من أجل جلب النتيجة، فإن لم يكن هناك على سبيل المثال و بالإعتماد على المثال السابق اي مستخدم إسمه 'Ahmed' يقطن بالمدينة رقم 28932 فلن نحصل على أي نتائج و سترجع النتائج فارغة، لأنه وجب إلزاما تحقق الشرطين من أجل الحصول على نتيجة.
خاصية or عكسية، بحيث تعيد النتائج فقط حين يتحقق شرط واحد من سلسلة الشروط، يتم فصل الشروط كذلك بـ or بدل And و في حالة تحقق أي شرط من الشروط يتم إسترجاع النتائج الخاصة به، كمثال لذلك، دعونا نبحث عن أشخاص يملكون إسم " Ahmed " او يملكون إسم "Rida" ، المفتاح هنا هو عبارة " أو "، لذلك إستعلامنا سيكون بالشكل التالي : 



اما النتيجة فهي كالتالي : 



الـ SQL للمبتدئين : تعلم أساسيات الـ SQL و أوامر الإستعلام ( الجزء الثاني)

يمكنك ان تلاحظ انه تم جلب كل الأسطر التي يتضمن الإسم الخاص بها عبارة "Ahmed" او "Rida"، يمكن إستخدام أزيد من شرط كذلك لجلب البيانات عند تحقيقه عند إستخدام Or كما الحال بالنسبة لـ And . 

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

شاركه على :