لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 06/23/23 في كل الموقع
-
الإصدار 1.0.0
3125 تنزيل
تدخل الإدارة مختلف مناحي الحياة، فهي استغلال الموارد والأشخاص لتنفيذ عمليات معينة بغية تحقيق أهداف محددة، ورغم بساطة التعريف إلا أنها في الواقع أكبر وأعمق بكثير، إذ تتطلب الإدارة عمليات التخطيط والتحليل وتوافر مهارات التواصل على الأقل لتحقيق الأهداف. عمل مؤلفو هذا الكتاب على تجهيز جدول المحتويات لمعالجة موضوعين رئيسين وهما: ما هي المتغيرات التي تؤثر على كيف ومتى وأين ولماذا يؤدي المديرون وظائفهم؟ ما هي النظريات والتقنيات التي يستخدمها المديرون الناجحون في مجموعة متنوعة من المستويات التنظيمية لتحقيق الأهداف وتجاوزها بفعالية وكفاءة طوال حياتهم المهنية؟ هذا الكتاب مترجم عن الكتاب Principle of Management لمجموعة من المؤلفين وهو أحد منشورات OpenStax بإشراف جامعة Rice، ويغطي العديد من مجالات الإدارة مثل إدارة الموارد البشرية والإدارة الاستراتيجية، وكذلك المجالات السلوكية مثل التحفيز. ونظرًا لأن الإدارة تخصص واسع وكبير ولا يمكن لأي شخص أن يكون خبيرًا في جميع مجالات الإدارة لذلك عمل مجموعة كبيرة ومتنوعة من مختصي الإدارة بمجالاتها المختلفة على تأليف فصول هذا الكتاب، كلٌّ بحسب اختصاصه. بذلنا جهدنا في أكاديمية حسوب في التصرف في الترجمة وتحسينها وإضافة أي إحصائيات أو بيانات أو قوانين مقابلة لبعض الفقرات تخص عالمنا العربي ولكن لم نشمل كل شيء، لذا ضع في بالك أن الكتاب يركز كثيرًا على الولايات المتحدة وقوانينها وشركاتها حيث كُتبت النسخة الأصلية وحيث المؤلفون. يبدأ كل فصل من الكتاب بفقرة استكشاف الوظائف الإدارية التي تتناول مديرًا أو شركة ما من ناحية إجراءاتها المتخذة لشرح موضوع الفصل العام. كما يمكن للقراء أو الطلاب اختبار أنفسهم أو مدى فهمهم عن طريق الإجابة على الأسئلة المتوزعة بعد كل فقرة وفي نهاية الفصل. يتضمن الكتاب المئات من الأمثلة الواقعية حتى لا تكون مواد الكتاب جافة وصعبة الفهم ولإضافة المزيد من الديناميكية والشمولية في فهم المواضيع المطرحة في فقرات مسائل التفكير النقدي والأسئلة المتعلقة بها. كما نشرح أسس الممارسات الأخلاقية التي يجب أن تتسم بها مسيرة عمل الشركات والمؤسسات أثناء سعيها لتحقيق النجاح. وتتناول فقرات إدارة التغيير الاستراتيجية التي اتبعتها الشركات لتجاوز المحن والاضطرابات التي عصفت بها، والتي سببتها مجموعة من الظروف والقوى الاقتصادية والاجتماعية والنفسية والتكنولوجية. الكتاب مهم للمهتمين بدراسة علوم الإدارة ومبادئها ويقدم فكرة شاملة حول الإدارة، إذ يشرح طبيعة مهنة الإدارة ووظيفتها، كما يبحر في الأحداث التاريخية المتعلقة بها، ويتطرق بالتفصيل لهيكلية وعمل المنظمات والشركات والمؤسسات، وكل ما يتعلق بالتخطيط الاستراتيجي والمفاهيم التنظيمية والأخلاقية والثقافية. عمومًا الفئة المستهدفة من هذا الكتاب هي: المديرون الحاليون بمخلف مستويات مناصبهم ومواقعهم ومجالات عمل الشركات أو المؤسسات التي يعملون فيها. الطلاب الجامعيين وطلاب المعاهد الرسمية والخاصة الذين يدرسون مجال الإدارة وإدارة الأعمال. الموظفون الطموحون الذين يتطلعون إلى الترقي لمنصب إداري في المؤسسات أو الشركات التي يعملون فيها. رواد الأعمال الذين هم بصدد بدء مشاريهم وفي مرحلة التكوين والإنشاء والتوظيف. يمكنك قراءة الكتاب على شكل فصول منشورة على موقع أكاديمية حسوب مباشرةً إن كنت تحب القراءة على المتصفح مباشرة، وتجد روابط الفصول تاليًا: الفصل 1: طبيعة عمل المديرين والأدوار التي يؤدونها طبيعة عمل المديرين والأدوار التي يؤدونها الخصائص الرئيسية لوظيفة المدير الفصل 2: اتخاذ القرارات الإدارية اتخاذ القرارات الإدارية طرق معالجة الدماغ للمعلومات لاتخاذ القرارات: النظام التأملي والنظام الانفعالي معيقات عملية اتخاذ القرارات الفعَّالة تحسين جودة عملية اتخاذ القرارات عملية اتخاذ القرارات الجماعية الفصل 3: تاريخ الإدارة تاريخ الإدارة الثورة الصناعية في عالم الإدارة الإدارة البيروقراطية والتنظيمية حركة العلاقات الإنسانية الفصل 4: بيئات العمل الخارجية والداخلية وثقافة المؤسسة بيئات العمل الخارجية والداخلية وثقافة المؤسسة أنواع الهياكل التنظيمية التنظيم الداخلي للمؤسسة وبيئات العمل الخارجية ثقافة المؤسسة الفصل 5: الأخلاق والمسؤولية الاجتماعية للمؤسسات والاستدامة الأخلاق والمسؤولية الاجتماعية للمؤسسات والاستدامة المبادئ الأخلاقية واتخاذ القرارات المسؤولة القيادة والأخلاق على مستوى المؤسسات الأخلاق وثقافة المؤسسة والامتثال الأخلاق حول العالم الفصل 6: الإدارة العالمية مفهوم الإدارة الدولية وأهميتها الثقافة ونظرية هوفستد للأبعاد الثقافية نظرية GLOBE وتأثيرها في فهم القيادة الصور النمطية الثقافية والمجموعات الإجتماعية إنجاز مهام الشركة في بيئة متعددة الثقافات أهمية الأسواق العالمية للشركة الفصل 7: ريادة الأعمال مفهوم ريادة الأعمال: كيف تصبح رائد أعمال ناجح خصائص رواد الأعمال الناجحين كيف تبدأ مشروعك الخاص وتدخل عالم ريادة الأعمال المشاريع الصغيرة وأثرها وإدارتها دعم المشاريع الصغيرة وريادة الأعمال الاجتماعية الفصل 8: التحليل الاستراتيجي: فهم البيئة التنافسية للشركات التحليل الاستراتيجي: فهم البيئة التنافسية للشركات البيئة الخارجية العامة للشركة: تحليل PESTEL البيئة الخارجية المباشرة للشركة: القوى التنافسية الخمسة لبورتر البيئة الداخلية للشركة المنافسة والاستراتيجية والميزة التنافسية بين الشركات الفصل 9: الإدارة الاستراتيجية وتحقيق الميزة التنافسية والحفاظ عليها الإدارة الاستراتيجية وتحقيق الميزة التنافسية والحفاظ عليها دور التحليل الاستراتيجي في صياغة الاستراتيجية عملية التخطيط لتنفيذ الاستراتيجيات قياس أداء الخطط الاستراتيجية وتقييمها الفصل 10: الهياكل التنظيمية والتغيير التنظيمي الهياكل التنظيمية والتغيير التنظيمي التغيير التنظيمي في المؤسسات إدارة التغيير في المؤسسات نماذج التغيير الشائعة في المؤسسات الفصل 11: إدارة الموارد البشرية مدخل إلى إدارة الموارد البشرية مفهوم امتثال الموارد البشرية إدارة الأداء في عملية إدارة الموارد البشرية العوامل المؤثرة على أداء الموظفين ودافعيتهم سياسة التوظيف: إعداد المؤسسة للمستقبل تنمية المواهب وتخطيط التعاقب الوظيفي الفصل 12: التنوع في المنظمات التنوع في المنظمات التعامل مع الاختلاف: التنوع وأثره على الشركات تحديات التنوع والاختلاف في المنظمات فوائد التنوع في العمل وكيفية إدارته الفصل 13: القيادة مفهوم القيادة: الفرق بين القائد والمدير شرح عملية القيادة أنواع القادة وأساليب القيادة نظرية السمات في القيادة النظريات الموقفية في القيادة بدائل القيادة ومثبطاتها القيادة التبادلية والتحويلية والكاريزمية الفصل 14: دفع العمل ورفع الأداء دفع العمل ورفع الأداء هرمية ماسلو للاحتياجات النظريات المنهجية للدافعية نظرية التوقع وتأثيرها على الدافعية في العمل الفصل 15: فهم فرق العمل وإدارتها فهم فرق العمل وإدارتها ما يجب أخذه في الحسبان عند إدارة الفرق تنوع فريق العمل وتحدياته الفصل 16: التواصل التواصل الإداري في البيئة المؤسساتية أشكال التواصل في المؤسسات العوامل المؤثرة على التواصل في المؤسسات ودور المديرين فيها قنوات التواصل الإداري الأساسية: التحدث والاستماع والقراءة والكتابة الفصل 17: التخطيط والرقابة في المؤسسات التخطيط والرقابة في المؤسسات كيف تجري عملية التخطيط في المؤسسات أنواع الخطط المستخدمة في المؤسسات التخطيط وصياغة الأهداف في المؤسسات تأثير التخطيط والرقابة على الموظفين الإدارة بالأهداف: أسلوب للتخطيط والرقابة الفصل 18: إدارة التكنولوجيا والابتكار إدارة التكنولوجيا والابتكار في المؤسسات تطوير التكنولوجيا والابتكار في المؤسسات المهارات اللازمة لإدارة التكنولوجيا والابتكار في المؤسسات2 نقاط -
السلام عليكم لدي سكربت php لدخول صفحة ويب بكلمة السر واحدة فقط <?php session_start(); $password = '123456'; session_start(); if (!isset($_SESSION['loggedIn'])) {$_SESSION['loggedIn'] = false;} if (isset($_POST['password'])) {if($_POST['password'] == $password) {$_SESSION['loggedIn'] = true;} else {die ('Incorrect password');} } if (!$_SESSION['loggedIn']): ?> <html><head><title>Login</title></head><body> <p>You need to login</p> <form method="post"> Password: <input type="password" name="password"> <br /> <input type="submit" name="submit" value="Login"> </form></body></html> <?php exit(); endif; echo '<h1> hello world ... Logged in successfully..'; ?> والان انا اريد اضافة كثير من كلمات السر للدخول و ليس كلمة واحدة فقط مثل هكذا : $password = array('123456', 'xxxx', '7777', '8888', '9999'); و انا في انتظار اجابتكم . وشكرا للجميع ..2 نقاط
-
السلام عليكم. وجدت في RoadMap معينة لتعلم مسار تطوير الواجهات الخلفية (Back end), أنه ينبغي تعلم Computer hardware architecture فما هي؟ وأين يمكنني تعلمها؟ ولماذا ينبغي تعلمها بالنسبة للمبرمج؟ وأيضا هل Computer hardware architecture هي نفسها Computer architecture أم لا؟ رابط ال RoadMap المقصودة: https://metwallylabs.com/backendroadmap.html2 نقاط
-
انا مشترك بدورة دورة تطوير واجهة المستخدم والغريب عدم شموله Reactjs على الرغم انه يعمل بجزء Front-End حقيقة هذه المكتبة مهمة لعمل واجهات المستخدم ارجو نقلها في هذه الدورة للاستفادة منها وضبط جزء الـ Front-End بالكامل وشكرا1 نقطة
-
هل يمكنني عمل متجر Wordpress يعرض فيه منتجات والزبون يقوم بحجز طلبية له لكن بدون الدفع عبر المتجر, بحيث يكون الدفع عند الاستلام؟ أن يكون هذا المتجر فقط للحجز1 نقطة
-
لقد تعلم binary and hexadecimal and ascll وكيف تحويل بينهم لكن لم اعرف حتى الان ما وظائفهم ومتى استخدامهم مثلا ان binary يستخدم لتمثيل ال bit في ذاكره هل من توضيح اكثر !!!1 نقطة
-
السلام عليكم ما هي افضل الموقع لتمارين حل مشكله برمجه؟1 نقطة
-
السلام عليكم كيف احل المسائل البرمجية ؟ فيه مسائل كانت بعارف احلها دلوقتي الا مش عارف هل ده طبيعه؟1 نقطة
-
مرحبا - انا عبدالله مصمم جرافيك بخبرة تزيد عن5 سنوات الحمدلله , أريد انشاء دورة تدريببة في مجال التصميم و مشاركة خبرتي و مهاراتي مع الاخرين سأقدم دورة مفصلة في المجال و ناجحة ان شاء الله ولكن الان ما هي الخطوات اللازمة و المطلوب ؟1 نقطة
-
1 نقطة
-
1 نقطة
-
السلام عليكم كيفية الحصول علي العمر من تاريخ الميلاد من خلال برنامج جافا ونت بنز وكيفية كتابة تاريخ الميلاد في text field ولا من خلال formatted field1 نقطة
-
للأسف لا يوجد دعم لأي عملة أخرى سوى شراء الدورات عن طريق دفع 290 دولار أمريكي، وتستطيع أنت الدفع من خلال عملة بلدك وكما ذكرت من قبل أنها مصر، فستقوم بالدفع بالجنيه بالمصري وسيتكفل البنك الخاص بك بتحويل تلك القيمة إلى دولار مقابل 10% رسوم من قيمة المبلغ واسمها رسوم تدبير عملة. لكن للأسف في مصر حاليًا توجد قيود مختلفة على عمليات الشراء من الخارج، ويتم وضع حدود قليلة جدًا مثل 200 و 300 دولار وبعض البنوك توفر حد أكبر، لذلك عليك بالسؤال عن الحد الشهري للشراء من الخارج في البنك للمصدر للبطاقة الخاصة بك. وكما ذكرت أيضًا من قبل هنا: تستطيع التواصل مع وسيط أو شخص تعرفه ليشتري لك بطاقة هدية Gift card بسعر دورة واحدة أو أكثر، أو سؤال مركز المساعدة عن وجود إمكانية التحويل البنكي مباشرًة.1 نقطة
-
1 نقطة
-
وسائل الدفع المتاحة هي إما عن طريق البطاقة الإئتمانية أو PayPal، ولكن بطاقة الدفع يجب أن تكون من نوع Debit أو Credit وليس Prepaid أي ليسة مسبقة الدفع، أو تستطيع ربط أي بطاقة بباي بال ثم الدفع عن طريق باي بال. وتستطيع فتح حساب في QNB واسمه ببساطة بكل سهولة، ثم الشراء عن طريق تلك البطاقة، وإذا كان الحد الأدنى الخاص بها منخفض عن 290 دولار، فستحتاج إلى الخيار التالي: وهو أن تطلب من وسيط أن يشتري لك بطاقة هدية Gift card في أكاديمية حسوب بالقيمة التي تريدها وتدفع له عمولة بسيطة، وأقل قيمة هي 290 تكلفة دورة واحدة فقط، ويوجد بطاقات أخرى بقيم مختلفة كما هو موضح في الصورة التالية: وتستطيع معرفة المزيد عن بطاقة الهدية من الصفحة الخاصة في قاعدة المعرفة. وبخصوص إمكانية التحويل البنكي مباشرًة فعليك بالتواصل مع مركز المساعدة الخاص بأكاديمية حسوب، وأيضًا تستطيع سؤالهم عن أي أمر متعلق بالدورات وتفاصيل الإشتراك.1 نقطة
-
تمام , شكرا جداا بس العامل "end" يستخدم فقظ في دالة الطباعه ()print ؟1 نقطة
-
يستخدم معامل "end" في دالة الطباعة print() في Python، وذلك المعامل يحدد السلوك المرتبط بالنهاية عند طباعة النصوص. وافتراضيًا، قيمة "end" هي "\n"، والتي تعني إدراج سطر جديد بعد كل عنصر يتم طباعته، وافتراضيًا أي في حالة عدم كتابة معامل end. ولنشرح الأمر على المثال لتفهم بشكل أفضل، لنفترض أن لدينا الكود التالي: numbers = [1, 2, 3, 4, 5] for number in numbers: print(number, end=' ') وكما ترى لدينا قائمة من الأرقام من 1 إلى 5، وباستخدام حلقة التكرار for، نقوم بطباعة كل عنصر في القائمة على نفس السطر بواسطة دالة الطباعة print(). هنا نأتي لتعيين قيمة "end" إلى فراغ فارغ (' ') ليتم وضع فراغ بين كل عنصر يتم طباعته. ونتيجة الكود ستكون: 1 2 3 4 5 لاحظ أن الأرقام جميعها طبعت على نفس السطر وتم فصلها بفراغ، وهذا بفضل استخدام المعامل "end=' '" الذي يقوم بتغيير سلوك الطباعة الافتراضي من استخدام سطر جديد "\n" إلى استخدام فراغ " ". وبدون كتابة end ووضع قيمة فراغ لها ' ' سيكون نتيجة الكود كالتالي: 1 2 3 4 51 نقطة
-
هناك عدة طرق، ومنها أن تقوم بالتفكير في كل مسألة 10 دقائق وتحاول جاهدًا، ثم تطلع على الحل من أي مصدر تريد سواء عبر الموقع أو على جوجل أو يوتيوب. وبذلك ستقوم بالتعرف على الكثير من المسائل البرمجية وطرق حلها وستتحسن لديك مهارة الحل بلا شك. لكن أنا لا أفضل تلك الطريقة، وأفضل إعطاء كل مسألة من نصف ساعة إلى ساعة تبعًا لدرجة صعوبة المسألة، وبعد المحاولة بجد واجتهاد، ولا مشكلة في البحث عن بعض الأمور للمساعدة في الحل ولكن ليس الحل الكامل، وإذا لم تتوصل لحل تستطيع رؤية الحل وتطبيقه بنفسك أو محاولة حلها بطريقة أخرى بعد أن فهمت فكرة الحل، ثم الإنتقال للمسألة التالية. ولكن ما يعينك على ذلك، هو عدم الإنتقال لحل المسائل البرمجية وتعلم مهارة الـ Problem Solving بدون تعلم لغة البرمجة الأولى لك بشكل جيد ولفترة مقبولة، أي لا تقل عن شهرين إلى 3 أشهر حسب مستواك وذلك بعدد ساعات 6 إلى 10 ساعات يوميًا من خلال الدراسة والتدرب على مشاريع، حيث ستحتاج إلى دراسة كورس قوي خاص باللغة ثم تنفيذ مشاريع ،ثم العودة والمراجعة مرة أخرى والبعض قد يصاب بالملل بسبب ذلك، لكن تلك طريقة مجربة لتعلم أول لغة لك في البرمجة كما يجب. فأنت في المرة ستنسى الكثير من الأمور وأيضًا قد لا تلاحظ أو تفهم بعض الأمور، وعند تجربة المراجعة وكتابة الكود مرة أخرى ستجد نفسك تشاهدة الدورة بعقلية مختلفة تمامًا.1 نقطة
-
لا، ليست نفس المسميات. "Computer hardware architecture" تشير إلى التصميم الداخلي للأجهزة الحاسوبية، بما في ذلك المكونات الفعلية مثل المعالجات والذواكر والباصات والأجهزة الأخرى التي تشكل نظام الحاسوب. من ناحية أخرى، "Computer architecture" تشير إلى التصميم العام للأنظمة الحاسوبية، بما في ذلك التنظيم الداخلي للأجهزة وتفاعلها مع البرمجيات وطرق التواصل بين المكونات المختلفة وتوزيع الموارد وغيرها من العناصر المتعلقة بتصميم النظام. ومع ذلك، فإن هناك تداخل وثيق بين المفاهيم المتعلقة بكل من "Computer hardware architecture" و"Computer architecture"، ولذلك قد يتم استخدام المصطلحين بشكل متبادل في بعض الأحيان. إذا كنت تبحث عن دورات في هذا المجال، يمكنك الاستفسار بشكل أوضح حول المحتوى المطلوب للتأكد من أن الدورة تغطي الموضوع الذي تهتم به بشكل صحيح.1 نقطة
-
هل أنت بحاجة إليها في البداية؟ لا، لست بحاجة إلى تعلمها في البداية لكي تتمكن من تعلم الواجهة الخلفية back-End، فالغالبية يتعلم أساسيات البرمجة ويبدأ في مسار التعليمي. لكن ذلك هو الأفضل؟ بالطبع، لا. حيث ستعاني قليلاً في فهم ما يحدث فعلاً، وكيف يتم ذلك وما فائدة بعض الأكواد، وكيف يتم التعامل في الخلفية؟ لذلك ستجد في المسار التعليمي Roadmap المذكور، قد وضع Computer Hardware Architecture ضمن قائمة Reading List أي للقراءة والإطلاع. تلك أمور عليك معرفتها إذا أردت فعلاً أن تصبح Software Engineer وليس مستخدم للغة برمجة وتقنيات فقط، بل عليك فهم ما يحدث فعلاً ولا يشترط بنسبة 100% لكن على الأقل لديك علم في البداية. ووبساطة التعرف على الـ Computer Hardware Architecture توفر فهمًا أعمق لكيفية عمل الحاسوب على المستوى الأساسي، وتتعلق معمارية الأجهزة بالتصميم الداخلي للأجهزة الحاسوبية وتشمل المكونات المادية مثل المعالجات والذواكر ووحدات المعالجة المركزية والشبكات والمخزن الداخلي وغيرها. أي معمارية الأجهزة توضح كيف يتم تنظيم وترتيب المكونات المادية في الحاسوب لتنفيذ المهام المطلوبة، وبفهمها تستطيع تحسين كفاءة وأداء البرامج التي تكتبها، أيضًا توقع أداء البرامج في مختلف الأجهزة واختيار التصميم الأمثل للتطبيقات. و بفهم المزيد عن معمارية المعالج وكيفية عمله، يمكنك أن تكتب كود يستفيد بشكل أفضل من قوة المعالج وميزاته المتقدمة مثل المعالجات المتعددة النوى، بالإضافة إلى أن فهم الذاكرة ونظام التخزين يساعدك على تحسين إدارة الذاكرة والوصول إلى البيانات بكفاءة أكبر. وتستطيع البحث عن أساسيات علوم الحاسوب، وأيضًا قراءة المقال التالي: وأيضًا دراسة دورة علوم الحاسوب:1 نقطة
-
جزاك اللّه خيرا, في السؤال الأخير أقصد هل Computer hardware architecture هو نفسه Computer architecture أم لا, حيث عندما أبحث عن دورات لل Computer hardware architecture أجد أكثر الدورات تتحدث عن Computer architecture وأنا ليست متأكدا إن كانو نفس المسميات أم لا1 نقطة
-
السلام عليكم: لدي فكرة مشروع وهي عبارة عن بوت تلغرام باسم ((اسئل خبير)) الفكرة هي تجميع بعض الناس المختصين في الطب والاقتصاد والبرمجة والرياضة الخ.. وبعد تجميع هؤلاء المختصين يقوم مستخدم البوت بإختيار المجال الذي يريد السؤال عنه ويطرح سؤاله فيقوم البوت بإرسال السؤال الى المختص المناسب للإجابة عليه هدفي في هذا المشروع اولا تحقيق فائدة عامة للناس اغلبنا يواجه اسئلة يومية ويريد الاجابة عنها ولكن اواجه بعض المشاكل اولا قد يطلب المختصين راتب شهري للجواب عن الاسئلة وحاليا المشروع بدائي ولا يدر المال المشكلة الاخرى وهي التسويق لاحظت ان اغلب صفحات وغروبات الفيسبوك تحظر روابط الاعلان لبوت تلغرام وما الى ذلك كيف استطيع التسويق وهل لديكم افكار اخرى لي لتطوير وما رأيكم في هذا المشروع1 نقطة
-
طالما أن المشروع في بدايته، فعليك بالعمل عليه بمفردك حاليًا أو البحث عن شريك مختص بمجال آخر، فمثلاً اعمل أنت على مجال البرمجة وابحث عن شخص مهتم بالفكرة في مجال آخر مثل التصميم مثلاً أو أيًا كان. أو تستطيع كبداية البدء بمجال البرمجة ثم توسيع البوت لمجالات أخرى بعد رؤية المردود من الفكرة ومدى قابليتها للتوسع، فلا تبدأ أي مشروع بشكل موسع، بل قم ببناء MVP أي الجزء الأهم من المشروع ثم ألقه في الماء وتقبل النقد حتى يتعلم المشروع السباحة، فإن غرق فإما الفكرة غير جيدة حاليًا أي التوقيت ليس مناسب مثلاً أو طريقة العرض أو الاستخدام كان صعب للبعض مثلاً وهكذا. عليك بطرح الفكرة في جروب مهتم بذلك، في صورة فيديو لعرض الفكرة، وستجد أن المهتمين سيبحثون ويسألون عن كيفية الوصول واستخدام مشروعك، بدلاً من طرح الروابط بدون أي عرض للفكرة ومدى فائدتها.1 نقطة
-
هذه مجموعة من المواقع التدريبية تهدف إلى تحسين مهارات حل المشاكل البرمجة لدى المبرمجين، وتحتوي على تحديات ومسابقات ومشاريع برمجية وأدوات تدريبية مفيدة. وفيما مختصر لكل منها: 1. Coderbyte: يحتوي على مجموعة من التحديات البرمجية والأسئلة الإختبارية. كما يحتوي على بعض الدروس والمقالات المفيدة. 2. Topcoder: منصة للتحديات البرمجية، حيث يمكن للمستخدمين المشاركة في تحديات البرمجة الشهرية والأسبوعية والتنافس مع المبرمجين الآخرين. 3. Codewars: يحتوي على تحديات برمجية وتستند التحديات إلى مجموعة واسعة من المواضيع المختلفة. 4. Leetcode: يحتوي على مجموعة كبيرة من المسابقات البرمجية والأسئلة الإختبارية. 5. HackerRank: منصة للتحديات البرمجية توفر حلولًا مفصلة لكل مسألة. 6. Exercism: يوفر تمارينًا برمجية في لغات البرمجة المختلفة، كما يقدم تعليقات مفصلة على الحلول المقدمة. 7. Codechef: يركز على تحسين مهارات البرمجة والتحليل الرياضي ويحتوي على تحديات برمجية من خلال المسابقات الشهرية والأسبوعية والتنافس مع المبرمجين الآخرين. 8. Coderfights: يحتوي على تحديات ومسابقات برمجية. 9. SPOJ: يحتوي على مجموعة كبيرة منالتحديات البرمجية والأسئلة الإختبارية في مجالات البرمجة المختلفة، ويشتهر بكونه موقعًا شاملاً يحتوي على تحديات صعبة ومتقدمة. ويفضل أن تتصفح كل موقع حتي تعرف تفاصيل علي أكثر عن كل واحد فيهم.1 نقطة
-
كيف يمكنني إنشاء api routes في ال app routing في next js 13 مع typescript ؟1 نقطة
-
في البداية أنصحك بحل المسائل على موقع CodeWars فهو يتيح حل تحديات برمجية تتراوح من المستوى الأساسي إلى المتقدم وسهل استخدامه في البداية. وبعد تقدم مستواك وقرب التقديم على مقابلة عمل، عليك بالإنتقال لحل المسائل على موقع LeetCode، وستجد قوائم خاصة بالمسائل بمختلف المستويات، وستجد شروحات له على اليوتيوب أيضًا. وهناك مواقع أخرى مثل HackerRank وCodeforces.1 نقطة
-
الأمر يعتمد على مدى الثقة لديك بالمستقل الذي تريد العمل معه، والأمر يظهر بمدى سنوات الخبرة لديه وأيضًا بتقييمات العملاء السابقة، فحاول إختيار شخص لديه أسبقية عمل وتقييمات جيدة. وهناك عدة خيارات متاحة أمامك ولكن ذلك يعتمد على ما الذي تريد تطويره أو تغييره في متجرك، فالخيار الأول هو أن تعطيه كلمة المرور واسم المستخدم للوحة cPanel وليس كلمة المرور الخاصة بحسابك كعميل في الاستضافة انتبه إلى ذلك فهما أمران مختلفان فأنت المتحكم بحسابك طالما تمتلك كلمة المرور الخاصة بحسابك على الاستضافة أما لوحة التحكم cPanel فلها كلمة مرور مختلفة. والخيار الثاني، هو أن تقوم بإنشاء حساب له للدخول على لوحة التحكم cPanel من خلال user manager كما بالصورة: ومنها تستطيع تحديد الصلاحيات الخاصة بالحساب وتستطيع إعطائه صلاحية FTP فقط، والمسار الذي تريده لكي يعمل عليه فقط مثل مسار puplic_html/site كمثال. وهناك خيار webdisk للوصول لملفات الموقع عن طريق لوحة التحكم cPanel، وتستطيع تحديد المسار أيضًا. وتستطيع حذف الحساب، أو تغيير الباسورد الخاص بك للوحة التحكم cPanel في أي وقت لو شعرت بالقلق. وهناك خيار آخر وهو السماح له بالدخول على جهازك عن طريق برنامج مثل TeamViewer وتستطيع رؤية ما يفعله، لكن إذا كان الأمر يتطلب تطوير وتعديل وإصلاحات فذلك الخيار لن يكون جيد حيث يجب توفير مساحة حرية ليعمل بها وفي الوقت المناسب له، أما إذا كان سيتم نشر ما قام بتطويره مباشرًة بعد أن يقوم بتنفيذ التطوير على جهازه فلا مشكلة. وتستطيع أيضًا أن تقوم بإنشاء حساب له على منصة OpenCart عن طريق الإعدادات ثم users أو المستخدمين ثم قم بالضغط على علامة الزائد + لإضافة حساب واعطه صلاحية Admin لكي يتمكن من التطوير.1 نقطة
-
كثيرًا ما نحتار في اختيار وجبة طعام اليوم لتحضيرها، أو قد تتوفر لدينا بعض المكونات التي نريد تحضير وصفة ما منها ونحتار في اختيار الوصفة المناسبة، فيمكننا البحث عبر الإنترنت عن وصفات معينة واختيار الأنسب منها، لكن ماذا لو استطاع الذكاء الاصطناعي اختيار الوجبة لنا ووصف طريقة تحضيرها بل وحتى تخيل شكل الطبق النهائي، ففي هذا المقال سنستفيد من قدرات الذكاء الاصطناعي في فهم اللغة الطبيعية وقدرته على توليد المحتوى النصي والبصري لبناء تطبيق نُخبره بالمكونات الموجودة لدينا ومن أي مطبخ نُفضل أن تكون الوصفة وسيقترح لنا وصفة مناسبة مع شرح طريقة تحضيرها، حيث سنستخدم لتطويره لغة PHP وبعض نماذج الذكاء الاصطناعي التي توفرها شركة OpenAI. نماذج الذكاء الاصطناعي واستخداماتها تتميز نماذج الذكاء الاصطناعي بسرعة معالجة وتحليل المعلومات والطيف الواسع من القدرات الكامنة ضمنها، حيث يمكن للنموذج بعد تدريبه تكوين فهمًا جيدًا عن البيانات وبالتالي يستطيع توليد أو التعامل مع بيانات جديدة لم يراها سابقًا، فمثلًا نموذج GPT (اختصارًا لعبارة المحول التوليدي مسبق التدريب Generative Pre-Trained Transformer) المطور من قبل شركة OpenAI دُرّب على كمية كبيرة من البيانات النصية فكون فهم جيد عن اللغات البشرية بدءًا من صياغتها إلى تراكيب الجمل وصولًا إلى المعنى وراء النص، فأصبح بإمكانه إكمال كتابة النصوص كما لو كان من كتبها إنسان وهي وظيفته الأساسية، ونموذج DALL-E المطور من قبل نفس الشركة تم تدريبه على كمية كبيرة من الصور وتوصيفاتها فتكون ضمنه فهم وربط بين النصوص ومحتوى الصور، وبذلك أصبح قادرًا على توليد صور أقرب ما تكون إلى الطبيعية بناءً على توصيف نصي لها. في هذا المقال سنحاول حل مشكلة الحيرة في اختيار وجبة الطعام عبر تطوير تطبيق لاقتراح الوصفات باستخدام لغة البرمجة PHP، وسنستفيد من النموذج ChatGPT في اقتراح الوصفة على المستخدم بحسب ما يريد وشرح طريقة تحضيرها، ومن النموذج DALL-E لتوليد صورة تخيلية لطبق من تلك الوصفة، أي سيكون محتوى التطبيق مولّد بالكامل من قبل نماذج الذكاء الاصطناعي. دورة تطوير تطبيقات الويب باستخدام لغة PHP احترف تطوير النظم الخلفية وتطبيقات الويب من الألف إلى الياء دون الحاجة لخبرة برمجية مسبقة اشترك الآن تحضير ملفات المشروع وتطوير واجهة المستخدم سنحتاج بدايةً لبيئة PHP مثبتة وتعمل على نظام التشغيل، ويمكن تنزيل النسخة المناسبة من الموقع الرسمي لها ثم تثبيته على الجهاز، وللتأكد من صحة التثبيت يمكن تنفيذ الأمر التالي ضمن سطر الأوامر للتحقق من رقم النسخة المثبتة: php -v سيظهر معلومات عن رقم النسخة، ويفضل استخدام النسخة 7.4 أو أعلى، ونبدأ بإنشاء ملف جديد سيحتوي على ملفات المشروع وليكن بالاسم recipe-php، وننشئ ضمنه الملفات التالية: index.php ملف الصفحة الرئيسية suggestion.php ملف صفحة عرض النتيجة style.css ملف تنسيقات CSS لتكون بنية المجلد والملفات ضمنه كالتالي: recipe-php/ ├─ index.php ├─ suggestion.php ├─ style.css ملاحظة: تحتاج إلى أن تملك خبرة أساسية بلغة PHP، وإن كنت جديدًا عليها، فارجع إلى مقال تمهيد إلى لغة PHP ومقال الدليل السريع إلى لغة البرمجة PHP للتعرف على أساسيات اللغة. نبدأ ببناء صفحة الموقع الرئيسية ضمن الملف index.php، وفيها سنطلب من المستخدم إدخال معلومات حول الوصفة، كاختيار المطبخ الذي تنتمي إليه وكتابة بعض المكونات التي قد تكون لدى مستخدم التطبيق ويريد تحضير وجبة طعامه منها، ونبدأ بربط ملف التنسيقات style.css في بداية الملف باستخدام العنصر link، ثم نموذجًا باستخدام العنصر form سيرسل محتوياته إلى ملف صفحة النتيجة suggestion.php بالطريقة POST، ويحوي على حقل اسم المطبخ للوجبة المقترحة نضع فيها خيارات مسبقة مثل (سعودي - سوري - مغربي - يمني - مصري)، ثم حقل نصي اختياري يدخل فيه المستخدم المكونات التي لديه وز لإرسال الطلب، ليصبح ملف الصفحة كالتالي: <!-- index.php --> <head> <!-- استيراد ملف التنسيقات --> <link rel="stylesheet" href="style.css"> <!-- عنوان الصفحة --> <title>تطبيق وصفة</title> </head> <div class="logo">???</div> <form action="suggestion.php" method="post" dir="rtl"> <!-- اختيار المطبخ --> <fieldset> <legend>المطبخ</legend> <input type="radio" name="cuisine" id="cuisine_SA" value="سعودي" required> <label for="cuisine_SA">?? سعودي</label> <input type="radio" name="cuisine" id="cuisine_SY" value="سوري" required> <label for="cuisine_SY">?? سوري</label> <input type="radio" name="cuisine" id="cuisine_MA" value="مغربي" required> <label for="cuisine_MA">?? مغربي</label> <input type="radio" name="cuisine" id="cuisine_YE" value="يمني" required> <label for="cuisine_YE">?? يمني</label> <input type="radio" name="cuisine" id="cuisine_EG" value="مصري" required> <label for="cuisine_EG">?? مصري</label> </fieldset> <!-- مكونات الوصفة --> <div> <label for="ingredients">المكونات</label> <input type="text" name="ingredients" id="ingredients" placeholder="هل لديك مكونات محددة؟ مثال: رز بصل ..."> </div> <!-- إرسال المدخلات --> <button type="submit">اقترح وصفة ?</button> </form> نتوجه الآن لملف عرض النتيجة suggestion.php ونحضر فيه قالب عرض النتيجة، المكون من اسم الوصفة المقترحة وصورة لها ووصف سيحوي على المكونات وطريقة التحضير، وفي النهاية زر للرجوع للصفحة الرئيسية في حال رغب المستخدم اقتراح وصفة جديدة، ولا ننسى ربط ملف التنسيقات style.css في بداية الصفحة كما فعلنا سابقًا، ونحضر بعض المتغيرات الفارغة مبدأيًا سنضع فيها محتويات الصفحة بعد أن تولدها لنا نماذج الذكاء الاصطناعي في الفقرة التالية، ليصبح ملف صفحة النتيجة كالتالي: <!-- suggestion.php --> <?php $name = ''; // اسم الوصفة $recipe = ''; // المكونات وطريقة التحضير $image_url = ''; // رابط صورة الوصفة ?> <head> <!-- استيراد ملف التنسيقات --> <link rel="stylesheet" href="style.css"> <!-- عنوان الصفحة --> <title>اقتراح الوصفة</title> </head> <main class="suggestion"> <!-- اسم الوصفة --> <h2><?= $name ?></h2> <!-- صورة للوصفة --> <img src="<?= $image_url ?>" /> <!-- المكونات وطريقة التحضير --> <div class="recipe" dir="rtl"><?= $recipe ?></div> <footer> <!-- زر الرجوع للصفحة الرئيسية --> <a href="/"> <button>وصفة جديدة ???</button> </a> </footer> </main> أما ملف التنسيقات style.css يهتم بالخطوط والألوان وتنسيق العناصر ضمن الصفحات ليجعلها أجمل ويحوي التالي: /* تنسيق الخطوط */ @import url("https://fonts.googleapis.com/css2?family=Noto+Kufi+Arabic:wght@400;500;700&family=Noto+Naskh+Arabic:wght@400;500;700&display=swap"); @font-face { font-family: "Flags"; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/notocoloremoji/v24/Yq6P-KqIXTD0t4D9z1ESnKM3-HpFabsE4tq3luCC7p-aXxcn.0.woff2) format("woff2"); unicode-range: U+1f1e6-1f1ff; } :root { --font-heading: "Noto Kufi Arabic", "Flags", sans-serif; --font-body: "Noto Naskh Arabic", "Flags", sans-serif; } * { font-family: var(--font-body); } h1, h2, button, label, legend { font-family: var(--font-heading); } /* تنسيقات عامة */ body { display: flex; flex-direction: column; justify-content: center; align-items: center; font-size: x-large; min-height: 90vh; background-color: rgb(237, 240, 244); direction: rtl; } /* تنسيق عناصر الصفحة الرئيسية */ fieldset { border: none; padding: 0; } .logo { border-radius: 999rem; background-color: seagreen; width: 11rem; height: 11rem; text-align: center; line-height: 2em; font-size: 6rem; } form { display: flex; flex-direction: column; gap: 1.5rem; } label, legend { display: block; margin-bottom: 1rem; } input[type="radio"] ~ label { font-family: var(--font-body); display: inline-block; margin-bottom: 0; } button, input { padding: 1rem 2rem; font-size: 1.2rem; } input[type="text"] { display: block; width: 100%; } button { border: none; background-color: seagreen; color: white; font-size: 1.5rem; cursor: pointer; transition: all 150ms ease-in-out; } button:hover { background-color: darkgreen; } /* تنسيقات صفحة النتيجة */ .suggestion { display: flex; flex-direction: column; gap: 2rem; margin: 7rem 3rem; max-width: 50ch; } .suggestion h2 { text-align: center; color: #28774a; } .suggestion img { object-fit: cover; border: 1rem solid white; aspect-ratio: 1/1; } .suggestion .description { background-color: white; padding: 3rem; border: 1px solid darkgray; white-space: pre-line; } .suggestion a button { width: 100%; } يمكننا الآن معاينة الصفحات عبر خادم ويب، ويمكننا خلال مرحلة التطوير الاستفادة من خادم الويب الذي توفره بيئة PHP ويأتي مثبتًا معها، وذلك بتنفيذ الأمر php داخل مجلد المشروع مع الخيار S- ونمرر له عنوان الخادم ورقم المنفذ الذي سيتمع إليه، ويمكننا استخدام العنوان المحلي localhost ورقم المنفذ الافتراضي لخوادم الويب 80 ليصبح الأمر كالتالي: php -S localhost:80 يمكننا الآن زيارة العنوان http://localhost:80 من المتصفح ليعالج الخادم افتراضيًا ملف الصفحة الرئيسية index.php ويرسله لنا لنرى التالي: ولمعاينة صفحة النتيجة نختار خيار عشوائي ونضغط "اقترح وصفة"، ويمكننا مؤقتًا إسناد قيم لمتغيرات المتحوى ضمن صفحة suggestion.php لنتمكن من معاينة تنسيقها كالتالي: <!-- suggestion.php --> <?php $name = 'اسم الوصفة'; $description = 'شرح الوصفة...'; $image_url = '#'; ?> لتظهر لنا الصفحة بالمظهر التالي: بذلك أصبحت واجهة التطبيق جاهزة وتعمل وينقصها المحتوى فقط، وهو ما سنبدأ بتطويره في الفقرات القادمة. توليد مفتاح الواجهة البرمجية API والوصول إليه يحتاج تطبيقنا للتواصل مع نماذج الذكاء الاصطناعي المختلفة لتوليد وطلب المحتوى، ويتم ذلك عبر الواجهة البرمجية API التي توفرها الشركة صاحبة تلك النماذج، لذا نحتاج بدايةً لإنشاء حساب على منصتها وإعداد وسيلة الدفع على الحساب لنتمكن من التعامل مع خدماتها المدفوعة، بعدها علينا توليد مفتاح استيثاق خاص لتطبيقنا من صفحة إعداد المفاتيح ليتمكن من إرسال الطلبات، ويمكن تسمية ذلك المفتاح للتعرف عليه لاحقًا، وبعدها سيظهر لنا المفتاح الجديد لمرة واحدة فقط، لذا يجب التأكد من نسخه وحفظه في مكان آمن حيث سنحتاج لتمريره إلى تطبيقنا. يجب التأكيد على ضرورة الحفاظ على ذلك المفتاح وعدم تسريبه، حيث أن الخدمات التي ستتم باستخدامه ستقتطع كلفتها من حساب المستخدم صاحب المفتاح، ويفضل عدم وضع هذه المفاتيح ضمن الشيفرة البرمجية مباشرة، وأفضل طريقة لتمريرها للتطبيق تكون عبر متغيرات البيئة، فيمكننا مثلًا ضمن بيئة التطوير المحلية تعيين متغير بيئة بالاسم OPENAI_API_KEY وذلك ضمن سطر الأوامر وضمن نفس الجلسة قبل تشغيل خادم الويب، ويمكن ذلك ضمن نظام ويندوز مثلًا بتنفيذ الأمر set مع تبديل قيمة المفتاح: set OPENAI_API_KEY=المفتاح وضمن نظام التشغيل لينكس أو ماك بتنفيذ الأمر export كالتالي: export OPENAI_API_KEY=المفتاح ملاحظة: لم نضع قيمة هذا المفتاح في ملف env. فحينذاك سنضطر للاعتماد على مكتبة لتحميل هذا الملف، لذا حاولت أن يكون التطبيق بسيطًا جدًا بلا مكتبات ما أمكن. بعد تنفيذ ذلك الأمر وحصرًا ضمن نفس جلسة سطر الأوامر أي في نفس النافذة يمكن تشغيل خادم الويب، لنتمكن ضمن تطبيقنا في PHP الوصول لذلك المفتاح عبر التابع getenv كالتالي: getenv('OPENAI_API_KEY'); // قيمة المفتاح من متغير البيئة حيث يجب إرسال قيمة ذلك المفتاح مع كل طلب HTTP للواجهة البرمجية، وضمن الترويسة Authorization قيمتها الكلمة Bearer ثم مسافة وبعدها قيمة المفتاح، ويمكن بناء نص تلك الترويسة في PHP عبر استخراج قيمة المفتاح من متغير البيئة كالتالي: "Authorization: Bearer " . getenv('OPENAI_API_KEY'); وبذلك أصبحنا جاهزين لإرسال الطلبات عبر الواجهة البرمجية API للتخاطب مع نماذج الذكاء الاصطناعي لتوليد المحتوى لتطبيقنا وهو ما سنتعرف عليه ضمن الفقرة التالية. توليد الوصفة وصورة لها سنبدأ بتعريف بعض التوابع ضمن صفحة النتيجة suggestion.php سنستدعيها لاحقًا لإسناد قيم المحتوى التي ستولده نماذج الذكاء الاصطناعي إلى المتغيرات التي جهزناها سابقًا لعرضها ضمن قالب الصفحة، ونبدأ بتعريف تابع توليد النصوص chatGPT والذي يقبل متغير التعليمة النصية prompt$ كمعامل له سيرسلها ضمن طلب HTTP ليطلب من نموذج بالاسم gpt-3.5-turbo توليد جواب نصي من تلك التعليمة، يمكن التعامل مع هذا النموذج بصيغة دردشة بين المستخدم والنموذج، في حالتنا لن نحتاج سوى لرسالة واحدة من طرف المستخدم سنبنيها بناءًا على مدخلات المستخدم لاقتراح وصفة وشرح عنها. يرسل الطلب مع ترويسة الاستيثاق التي تحوي مفتاح الواجهة البرمجية API كما تعرفنا سابقًا، وترويسة للتعريف بنوع المحتوى بجسم الطلب Content-type وهو application/json، وبالطريقة POST ويحوي جسم الطلب على اسم النموذج ضمن الحقل model ومصفوفة رسائل الدردشة الحالية بين المستخدم والنموذج ضمن الحقل messages ، حيث تحتوي كل رسالة على اسم صاحب الرسالة ضمن الحقل role ومحتوى الرسالة ضمن content، وفي حالتنا نحتاج لرسالة واحدة فقط من طرف المستخدم أي user ومحتواها هو التعليمة المٌمررة للتابع ضمن المتغير prompt$ ، وبالاستفادة من التابعين file_get_contents و stream_context_create في PHP يمكننا إرسال طلب HTTP دون الحاجة لأي مكتبات إضافية، أما صيغة الجواب فهي JSON بالشكل التالي وما يهمنا منها هو رسالة النموذج: { ... "choices": [{ ... "message": { "role": "assistant", "content": "...", // رسالة النموذج }, }], } يمكننا استخراجها بعد تمرير جواب الطلب للتابع json_decode لتحويله لكائن PHP نستخرج منه القيمة التي نريدها، ليصبح التابع كاملًا كالتالي: /** * توليد نص باستخدام نموذج الدردشة * @param string $prompt التعليمة * @return string النص المُولد */ function chatGPT($prompt) { $result = file_get_contents('https://api.openai.com/v1/chat/completions', false, stream_context_create([ 'http' => [ 'header' => "Content-type: application/json\r\n" . "Authorization: Bearer " . getenv('OPENAI_API_KEY'), 'method' => 'POST', 'content' => json_encode([ 'model' => "gpt-3.5-turbo", // اسم النموذج 'messages' => [ ['role' => "user", 'content' => $prompt], // رسالة المستخدم ] ]) ] ])); // استخراج النتيجة return json_decode($result)->choices[0]->message->content; } ولتوليد الصور سنعرف التابع dalle والذي يقبل وصفًا نصيًا لمحتوى الصورة، ويرسلها في طلب HTTP بالطريقة POST لمسار توليد الصور الخاص، حيث نحتاج فقط ضمن جسم الطلب لتمرير توصيف الصورة ضمن الحقل prompt ولتحديد قياس الصورة في حالتنا هو 512x512 وعدد الصور التي نحتاجها في حالتنا يكفي صورة واحدة لذا نحدد قيمة n بواحد، ولا ننسى ترويستي الاستيثاق ونوع جسم الطلب، أما عن شكل جواب الطلب فهو بصيغة JSON يهمنا منه رابط الصورة التي تم توليدها: { ... "data": [ { "url": "https://..." // رابط الصورة } ] } نمرره أيضًا للتابع json_decode لتحويلها لكائن PHP ونستخرج منه رابط الصورة التي تم توليدها ليصبح التابع كاملًا كالتالي: /** * توليد صورة باستخدام نموذج توليد الصور * @param string $prompt وصف للصورة * @return string رابط للصورة المُولّدة */ function dalle($prompt) { $result = file_get_contents('https://api.openai.com/v1/images/generations', false, stream_context_create([ 'http' => [ 'header' => "Content-type: application/json\r\n" . "Authorization: Bearer " . getenv('OPENAI_API_KEY'), 'method' => 'POST', 'content' => json_encode([ "n" => 1, // عدد الصور "size" => "512x512", // قياس الصورة 'prompt' => $prompt, // توصيف الصورة ]) ] ])); // استخراج رابط الصورة return json_decode($result)->data[0]->url; } لنبدأ باستخدام تلك التوابع لتوليد محتوى الوصفة المقترحة ونعرف التابع recipe والذي سيقبل اسم المطبخ الذي حدده المستخدم كمعامل أول والمكونات التي أدخلها، حيث سنجمع هاتين القيمتين ضمن تعليمة نشرح بها للنموذج ما نريد أن يولده لنا، ليكون قالب هذه التعليمة كالتالي: بحيث نبدل اسم المطبخ والمكونات بالقيم الممررة للتابع، ونمرر تلك التعليمة للتابع chatGPT الذي عرفناه سابقًا، ليعيد لنا اقتراح النموذج، نعالج ذلك الاقتراح باستخراج اسم الوصفة من أول سطر منه بعد تقسيمه باستخدام التابع explode وبقية الأسطر ستحوي على شرح مكونات وطريقة تحضير الوصفة نحددها باستخدام التابع array_slice ونجمعها مجددًا باستخدام التابع implode، ونعيد هاتين القيمتين بعد تمريرهما للتابع trim لإزالة أي محارف ومسافات زائدة، كنتيجة لاستدعاء التابع تحوي الحقل name اسم الوصفة والحقل description شرح الوصفة ليكون التابع كالتالي: /** * اقتراح وصفة * @param string $cuisine اسم المطبخ الذي تنتمي إليه الوصفة * @param string|null $ingredients مكونات اختيارية تتضمنها الوصفة * @return array اسم وشرح الوصفة */ function recipe($cuisine, $ingredients) { // التوصيف $rules = implode(' ', [ // تحديد المطبخ "من وصفات المطبخ ال" . $cuisine . " المشهورة", // شرط المكونات $ingredients ? "يمكن تحضيرها بالمكونات " . $ingredients : // المكونات "", // بلا مكونات محددة ]); // بناء رسالة طلب المستخدم $recipe_prompt = "اقترح وصفة $rules اذكر اسم الوصفة ثم المكونات ثم طريقة التحضير"; // توليد الاقتراح $suggestion = chatGPT($recipe_prompt); // تقسيم الاقتراح لأسطر $lines = explode("\n", $suggestion); return [ // استخراج اسم الوصفة 'name' => trim(str_replace("اسم الوصفة:", "", $lines[0])), // استخراج المكونات والتفاصيل 'description' => trim(implode("\n", array_slice($lines, 1))), ]; } ولتوليد صورة للوصفة المقترحة يجب أن نصف بصريًا ماذا تحوي تلك الصورة، فنذكر المكونات التي تظهر والطبق والمشهد ونمرر ذلك الوصف للتابع dalle الذي عرفناه سابقًا، لكن المشكلة أننا نحتاج لكتابة توصيف خاص بكل وصفة مقترحة من أين سنأتي بذلك التوصيف؟ بما أن التوصيف عبارة عن نص لما لا نطلب ذلك من GPT حيث نمرر له اسم الوصفة مع شرحها، مع الأخذ بالاعتبار أن التوصيف يجب أن يكون باللغة الإنكليزية حيث لحين تاريخ كتابة هذا المقال لا يفهم DALL-E سوى التعليمات باللغة الإنكليزية، فنرسل التعليمة التالية لتوليد وصف للصورة: وترجمتها هي التالي: نعرف التابع recipeImage الذي يقبل اسم وشرح الوصفة ويطلب من GPT شرح لصورة تحوي طبق منها، ثم يمرر ذلك الوصف إلى DALL-E لتوليد الصورة والحصول على رابطها ونعيده كنتيجة لتنفيذ التابع كالتالي: /** * توليد صورة من اسم وتفاصيل وصفة * @param mixed $name اسم الوصفة * @param mixed $description شرح الوصفة * @return string رابط صورة للوصفة */ function recipeImage($name, $description) { // توليد وصف للصورة $image_desc = chatGPT("write a two sentence description of a dish that contains the following recipe \n $name \n $description"); // توليد الصورة return dalle($image_desc); } أصبحت جميع التوابع اللازمة جاهزة، لنستخدمها لتوليد المحتوى وإسناد القيم لمتغيرات واجهة المستخدم لعرضها، حيث يمكن استخراج القيم التي أدخلها المستخدم من المتغير العام POST_$ بحسب اسم الحقول في الصفحة الرئيسية، ونمرر تلك القيم بداية للتابع recipe لاقتراح وصفة جديدة، ثم نستخرج اسم وشرح الوصفة ونسندها للمتغيرات name$ و description$، ولتوليد الصورة نمرر تلك المتغيرات للتابع recipeImage ونسند قيمة رابط الصورة المولدة التي سيعيدها للمتغير image_url$ كالتالي: // اقتراح وصفة من مدخلات المستخدم $recipe = recipe($_POST['cuisine'], $_POST['ingredients']); $name = $recipe['name']; // اسم الوصفة $description = $recipe['description']; // شرح الوصفة $image_url = recipeImage($name, $description); // رابط صورة الوصفة أصبح التطبيق جاهزًا لنختبر بعض النتائج، لا ننسى التأكد من تعيين المفتاح ضمن متغيرات البيئة قبل إعادة تشغيل خادم الويب مجددًا، والتالي بعض النتائج: وصفة فتة حمص بالطحينة وصفة الكبسة ونلاحظ الأجواء العربية ضمن الصورة وصفة الطاجين المغربي وصفة الكشري وبعض صور الوجبات التي استطاع توليدها: تطويرات إضافية ممكنة ونقاط الضعف الحالية يمكن تطوير التطبيق بإضافة بعض المزايا إليه، مثلًا إضافة خيار لتحديد نوع الوصفة (حلويات - وجبات - مشروبات)، أو إضافة عدد السعرات الحرارية التي ستحتويها الوجبة، أو تحديد عدد الأشخاص وبالتالي ستعدل المقادير من قبل النموذج لمراعاة ذلك، أو حفظ الوجبات ضمن مفضلة لكل مستخدم. يُلاحظ أحيانًا اختراع النموذج لوصفات غير موجودة في الواقع، أو شرح طريقة تحضيرها بطريقة خاطئة، وهذا طبيعي نتيجة ضعف المحتوى العربي الذي دُربت عليه تلك النماذج، قد تُطور لاحقًا وتصبح أقوى من تلك الناحية، لذا لا تعتمد على نتائجه دومًا ونبه المستخدمين لذلك، ويمكن تحسين جودة المحتوى عبرة تغيير صيغ التعليمات المرسلة للنماذج فلا زلنا نكتشف العديد من التقنيات والأساليب للتعامل معها للحصول على نتائج أفضل ما يمكن. دورة الذكاء الاصطناعي احترف برمجة الذكاء الاصطناعي AI وتحليل البيانات وتعلم كافة المعلومات التي تحتاجها لبناء نماذج ذكاء اصطناعي متخصصة. اشترك الآن الختام تعرفنا في هذا المقال على كل من نموذج توليد النصوص GPT ونموذج توليد الصور DALL-E واستفدنا من قوة وسهولة استخدامهما في إضافة بعد جديد لتفاعل المستخدم مع التطبيق والحصول على نتائج لا حصر لها تناسب المستخدم، يمكنك توظيف قوة تلك النماذج في العديد من الأفكار فقط أطلق العنان لخيالك. اقرأ أيضًا إعداد شبكة عصبية صنعية وتدريبها للتعرف على الوجوه تصنيف الشخصيات بالاعتماد على تغريداتهم العربية1 نقطة
-
تنتج الشركات ومؤسسات الأعمال يوميًا كميات هائلة من البيانات من مراجعات وشكاوى العملاء وصولًا إلى أداء المبيعات، لكن فهم المعلومات الخفية وراء هذه البيانات الضخمة والمتنوعة ومعرفة أفضل الطرق لاستثمارها في تحسين أداء العمل ليس بالأمر السهل والبديهي لذا أصبح من الضروري توفير طرق مناسبة لاستخلاص معلومات قيمة ومفيدة من هذه البيانات الهائلة والاعتماد عليها لاتخاذ القرارات المرتبطة بالعمل بشكل أفضل في سوق شديد المنافسة. لذلك السبب زاد الطلب في سوق العمل اليوم على التخصصات التي تعنى بهذه البيانات وتستخلص المعلومات القيمة منها ومن بينها هندسة البيانات والأمر الجيد هنا أن أن الطلب الشديد على هذه التخصصات جعل الشركات تركز على الخبرة وليس على الشهادات الجامعية لذا يمكن بدء تعلم المجال بنفسك إذا أتقنت ركائزه ومهامه الأساسية وتعلمت الأدوات التي تمكنك من تأدية هذه المهام. سأعرفك في مقال اليوم على تخصص هندسة البيانات Data Engineering وأهميته في عالم الأعمال اليوم وسنكتشف معًا أهم الوظائف والمسؤوليات التي تقع على عاتق مهندس البيانات والأدوات التي تساعده في استخلاص المعلومات القيمة من البيانات الهائلة المتوفرة بين يديه. ما هي هندسة البيانات؟ هندسة البيانات Data Engineering هي فرع من فروع علم البيانات يركز على تطبيقات جمع البيانات العملية التي تهتم بمعالجة البيانات وتحليلها واستخراج معلومات مفيدة منها وهو يتكامل مع تخصص تحليل البيانات الذي يعمل مع مهندسي البيانات ويأخذ منهم البيانات ويحللها. يهتم علم هندسة البيانات بتصميم وبناء أنظمة تسمح بجمع البيانات وتوفيرها لمحلل البيانات الذي سيعمل على تحليلها واستخراج المعلومات منها وعرضها على أصحابها (أصحاب البيانات) لاتخاذ قرار معين أو تحصيل فائدة تخص العمل أو الشركة، فلولا هذه الأنظمة والعمليات التي يقوم بها مهندسو البيانات كان من المستحيل تحليل البيانات بأفضل صورة ممكنة واستخلاص المعلومات منها. تعمل التطبيقات والأنظمة التي يطورها مهندسون البيانات على تمكين الأشخاص المهتمين من إجراء تحليلات عملية على هذه البيانات الخام للحصول على معلومات قيّمة منها وتمكين الشركات من تحليلها بأفضل صورة ممكنة. في عصر البيانات الضخمة Big Data أصبحت هندسة البيانات أمرًا بالغ الأهمية لأنها تمكّن الشركات من استخدام وتحليل هذه البيانات بسهولة وتطبيق تقنيات التعلّم الآلي أو الذكاء الاصطناعي عليها وتحويلها إلى معلومات ذات معنى والارتقاء بعملها لمستويات متقدمة. لذا تستخدم هندسة البيانات بشكل أساسي في الصناعات التي تتعامل مع البيانات الضخمة فهذه البيانات تحتاج لأن تُحفظ في بنى أو معماريات خاصة مثل مستودعات البيانات Data Warehouses التي تخزن كميات كبيرة من البيانات المنظمة من مصادر متعددة في مكان مركزي أو بحيرات البيانات Data Lakes أو مستودع بحيرة البيانات Data Lakehouse التي تخزن البيانات المنظمة وغير المنظمة أو الخام من جميع المصادر المتاحة دون الحاجة إلى معالجتها أو تحويلها قبل تخزينها ويمكن أن تستخدم كذلك قواعد البيانات التقليدية Databases لتخزين كميات محدودة من البيانات المنظمة وهنا يأتي دور مهندس البيانات ومهامه. فشركات الأعمال والمنظمات تجمع كميات هائلة من البيانات من هنا وهناك منها ما يتعلق بالمبيعات ومنها له علاقة بالعملاء وأخرى تخص الإنتاج والتي تأخذ أشكالًا متعددة ليست بحالتها هذه إلا بمثابة مكب نفايات ضخم بالنسبة لهذه الشركات والمنظمات ودور مهندسي البيانات التعامل مع هذه النفايات التي تمثِّل البيانات وفرزها وتجهيزها وجعلها قابلة للاستخدام من قبل علماء البيانات ومحللي البيانات وأخيرًا والأهم الاستفادة منها في تحسين الإيرادات. لذا يستخدم مهندسو البيانات مجموعة متنوعة من المهارات والتقنيات للتعامل مع هذه البيانات الضخمة وتوفير البنية التحتية اللازمة لها كي يتمكن محللو البيانات أو علماء البيانات أو غيرهم من الموظفين الذين يتعاملون مع البيانات في مقر العمل من استخدامها لتحقيق أهداف العمل. الفرق بين هندسة البيانات وعلم البيانات وتحليل البيانات لدينا ثلاث تخصصات أساسية متداخلة مع بعضها البعض للتعامل مع البيانات وهي علم البيانات وتحليل البيانات وهندسة البيانات وبالتالي سيكون لدينا ثلاث أدوار مهمة للتعامل مع البيانات هي عالم البيانات ومحلل البيانات مهندس البيانات وكنا قد شرحنا باستفاضة عن أول تخصصين منهما في مقال دليلك الشامل إلى تحليل البيانات ومقال علم البيانات Data science: الدليل الشامل. فتخصص هندسة البيانات أحد الدعائم الأساسية الثلاثة للتعامل مع الكميات الهائلة من البيانات في عالم الأعمال إلى جانب علم البيانات وتحليل البيانات، فبدون هندسة البيانات لن يتمكن محللو البيانات وعلماء البيانات من فحص كل هذه البيانات المتاحة بشكل موثوق وسريع وآمن. فالبيانات تجمع بواسطة تقنيات ومصادر مختلفة وتخزن ضمن هياكل وتنسيقات مختلفة والأدوات المستخدمة لتحليل البيانات تتطلب أن تكون كافة مجموعات البيانات موحَّدة ومخزنة بنفس الهيكلية والتنسيق وهنا يأتي دور هندسة البيانات التي تعتني بأمور توحيد مجموعات البيانات لتتيح للمحللين العمل تاليًا على هذه البيانات وتحليلها بأدوات التحليل. على سبيل المثال إذا كان لدينا شركة أعمال تجمع الكثير من البيانات حول عملائها ومن مصادر متنوعة مثل معلومات الفواتير من برنامج مخصص لإدارة المبيعات ومعلومات عن الشحن من برنامج إدارة شركات الشحن والخدمات اللوجستية ومعلومات عن دعم العملاء من برنامج دعم العملاء ومعلومات عن اهتمامات العملاء والمحتوى الذي يتفاعلون معه ومعلوماتهم الديموغرافية وأوقات نشاطهم …إلخ. من مراقبة مواقع التواصل الاجتماعي ولك أن تتخيل الكم الهائل من البيانات المتنوعة والفوضوية التي تنتج عن كل عميل من العملاء! الفرق بين هندسة البيانات وعلم البيانات بدايةً يُتوقع من علماء البيانات القيام بعمل كل من عالم البيانات ومهندس البيانات لكن في الواقع يعمل علماء البيانات ومهندسو البيانات جنبًا إلى جنب للتعامل مع هذه البيانات الضخمة والتمكن من نمذجة وتحليل البيانات بشكل فعال. يجب أن يتأكد مهندسو البيانات من جودة البيانات المختلفة وأدائها وهم من يقوم عادة بتغذية مصادر البيانات التي يستخدمها علماء البيانات لإنشاء نماذج البيانات كما يهتم مهندسو البيانات بتطوير وبناء أنظمة بيانات قوية وموثوقة واختبار وصيانة خطوط بنى البيانات وأنابيب البيانات التي يستخدمها كل من عالم البيانات ومحلل البيانات. ويتعامل عالم البيانات مع البيانات ويدرسها ويحدد أهم الأسئلة التي تخص سير عمل الشركة ويوفر مقاييس لحل مشاكل العمل وتحسين المردود والاستفادة من هذه البيانات بطريقة فعالة. الفرق بين هندسة البيانات وتحليل البيانات بعد أن يعمل مهندسو البيانات على تجميع البيانات في مصدر واحد وتنظيفها وتشذيبها وتوحيدها وتجهيز الأنظمة لذلك كما ذكرنا، يقوم محللو البيانات بإجراء أي عملية تحليل ومعالجة مطلوبة على هذه البيانات ويقدمون الإجابات على هذه الأسئلة ويمثلون النتائج النهائية بطريقة مفهومة إلى مستهلكي البيانات النهائيين الذين يهتمون بمعرفة خلاصة عملية التحليل والقرارات النهائية لأصحاب الشأن في العمل. أخيرًا، يجب التنبيه أنه في الشركات أو المشاريع الصغيرة، قد لا يُفرَّق بين هذه التخصصات أو المجالات وقد يُوظف محلل أو مهندس أو عالم بيانات لأداء العمل أما في الشركات أو المشاريع المتوسطة والكبيرة، فهنالك تمييز في التخصصات حيث كم البيانات ضخم جدًا لذا يجب على المهندس والمحلل ومعهما عالم البيانات أن يركز كل منهم على مجال عمله. مهام مهندس البيانات يعد مهندس البيانات data engineer أحد الأفراد الفعالين في أي مؤسسة تمتلك أحجامًا ضخمة من البيانات وترغب بتتبعها واستخراج معلومات مفيدة منها، فهو يتعامل بشكل أساسي مع البيانات الضخمة ويهتم بجمع البيانات من المصادر المختلفة وتهيئتها والتحقق منها وتخزينها في البنى المناسبة وإعدادها لمشاريع تحليل البيانات. وتختلف الوظائف والمسؤوليات التي يستطيع مهندس البيانات القيام بها من مكان عمل لآخر حسب الاحتياجات المطلوبة لكن يمكن القول بشكل عام أن مهندس البيانات هو المسؤول بشكل أساسي عن تصميم النظام الذي يوحّد البيانات التي يستخدمها باقي أعضاء فريق البيانات ويساعدهم على الاستعلام منها وتحليلها بأفضل طريقة وأقصر وقت زمني. للقيام بذلك يتوقع من مهندس البيانات القيام بالعديد من المهام المختلفة في مقر العمل ولعل أبرز هذه المهام: استخراج البيانات Data extraction: يجب على مهندس البيانات العثور على جميع البيانات الأولية المختلفة حول الشركة واستخراجها من مصادر مختلفة مثل قواعد البيانات أو ملفات XML أو المنصات السحابية التي تستخدمها الشركة أو أنظمة إدارة العلاقة مع الزبون CRM …إلخ. التحقق من صحة البيانات: تعرف أيضًا بتطهير البيانات Data sanitization وفي هذه المرحلة يقوم مهندس البيانات بالبحث عن أي أخطاء في البيانات التي حصل عليها وإلغاء البيانات المكررة أو الفائضة. تحويل البيانات Data transformation: في هذه المرحلة يعمل مهندس البيانات على توحيد هيكلية البيانات وإعطاء جميع البيانات المتنوعة نفس التنسيق. تفسير وتوضيح البيانات: يوضح مهندس البيانات في هذه المرحلة أي معاني للبيانات الغامضة التي يمكن تفسيرها بطرق متعددة و يهتم بتنسيق كل من البيانات المهيكلة وغير المهيكلة. تخزين وتجميع البيانات: بعد الانتهاء من العمل على البيانات يتم تخزينها في قواعد بيانات التحليلات وتحديد البنية والتنسيق المناسبين لهذه القواعد بحيث يسهل تحليلها وتطبيق خوارزميات الذكاء الاصطناعي عليها وإعداد التقارير المناسبة لها، كما يحدد مهندس البيانات من يملك حق الوصول لهذه البيانات. إنشاء خطوط أنابيب البيانات: يشمل عمل مهندسي البيانات كذلك إنشاء ما يسمى بخطوط أنابيب البيانات data pipelines التي تهتم بشكل أساسي بتنفيذ عمليات ETL أي استخراج البيانات Extracting وتحويلها Transforming وتحميلها Loading على البيانات بمرورها عليها بالتتالي في مستودعات أو بنى ملائمة وضمان أن خطوط أنابيب البيانات هذه بها مدخلات ومخرجات صحيحة وأن تدفق البيانات سلس وسريع قدر الإمكان. تطوير إجراءات جديدة للتحقق من صحة البيانات وتحديد طرق زيادة دقة البيانات وكفاءتها والحفاظ على أمنها. شراء الأجهزة والبرامج المطلوبة للتعامل مع البيانات وإعدادها للعمل بشكل صحيح وصيانتها بشكل دوري. باختصار مهندس البيانات مسؤول بشكل أساسي عن إنشاء البنية التحتية للبيانات وصيانتها وهو يجمع بيانات الشركة أو المؤسسة التي يعمل بها من كافة الأنظمة والمصادر المتاحة ويعالجها ويخزنها في البنية المناسبة، وبمجرد انتهائه من عمله يوكل المهمة للأطراف المعنية المسؤولة عن استخدام هذه البيانات. أدوات وتقنيات هندسة البيانات يتطلب عمل مهندس البيانات قدرات أساسية مثل البرمجة والرياضيات والإحصاء وأيضًا علوم الحاسوب كما يحتاج مهندس البيانات في عمله للاعتماد على أدوات وبرامج تساعده على أتمتة بعض العمليات التي تتم على البيانات وإنجازها بمرونة وسلاسة وأهم هذه الأدوات: أدوات ETL معرفة بأنواع قواعد البيانات معرفة متقدمة بإحدى لغات البرمجة معرفة بالخدمات السحابية معرفة بأسس الرياضيات والإحصاء الرياضي معرفة بالخوارزميات وهياكل البيانات معرفة متعمقة بأمن البيانات امتلاك مهارات شخصية لنناقش بمزيد من التفصيل كل أداة من هذه الأدوات ومدى أهميتها في تخصص هندسة البيانات 1. أدوات ETL أدوات ETL تعني استخراج Extract وتحويل Transform وتحميل Load البيانات والتي تنقل البيانات بين الأنظمة. فبعد أن يستخرج المهندس البيانات من مصادرها عليه تطبيق قواعد عليها وتحويلها لصيغة ملاءمة للتحليل حيث تشمل عملية التحويل التنظيف وإزالة البيانات الشاذة أو الخاطئة مثل وجود قيمة نصية مكان قيمة عددية أو العكس أو إدخال قيمة نصية مكان قيمة عددية وهنا تُحول القيم للصيغة المناسبة أما القيم الغير قابلة للتحويل فهي تحذف وبعدها الانتهاء من هذه العمليات تُحفظ في قواعد البيانات المناسبة. 2. معرفة بأنواع قواعد البيانات سواء قواعد البيانات العلاقيّة SQL أو غير العلاقيّة NoSQL وبتقنيات البيانات الضخمة مثل Apache Spark أو Hadoop و لغة الاستعلام الهيكلية SQL وهي اللغة القياسية للاستعلام عن قواعد البيانات العلائقية. ارجع إلى مقال دليلك الشامل إلى قواعد البيانات لمزيد من المعلومات. دورة تطوير التطبيقات باستخدام لغة Python احترف تطوير التطبيقات مع أكاديمية حسوب والتحق بسوق العمل فور انتهائك من الدورة اشترك الآن 3. معرفة متقدمة بإحدى لغات البرمجة مثل لغة بايثون وهي لغة برمجة متعددة الأغراض توفر العديد من المكتبات التي تساعد مهندسي البيانات في مهامهم بشكل كبير، وللمزيد ينصح بقراءة مقال المرجع الشامل إلى تعلم لغة بايثون لمعرفة كل ما تحتاجه من معلومات حول هذه اللغة القوية. 4. معرفة بالخدمات السحابية مثل خدمات جوجل السحابية Google Cloud Storage وخدمات أمازون Amazon S3 و Azure Data Lake Storage التي تعرف اختصارًا ADLS …إلخ، نظرًا لأن معظم الشركات اليوم تعتمد على الحلول السحابية لتخزين بياناتها. 5. معرفة بأسس الرياضيات والإحصاء الرياضي لاسيما عند تجميع البيانات في مجموعات منظمة بالاعتماد على القيم الإحصائية مثل المتوسط والانحراف المعياري والتباين. 6. معرفة بالخوارزميات وهياكل البيانات مثل القوائم والقواميس والمجموعات وغيرها من هياكل البيانات فهو يتعامل مع بيانات ضخمة وعليه أن يستخدم الخوارزميات وهياكل البيانات التي تحقق أفضل أداء عند معالجتها والتعامل معها. 7. معرفة متعمقة بأمن البيانات وتعلم كل ما يخص حماية البيانات وأدوات التحقق من صحة البيانات مثل مكتبة Deequ وأداة Great Expectations التي توفر إطارًا وأدوات لجودة البيانات واكتشاف البيانات الخاطئة والتنبيه عندما تقع البيانات خارج النطاقات والقيم المقبولة. إذا كنت مهتمًا بالاطلاع على مرجع عربي شامل حول أمن وخصوصية البيانات أنصح بتحميل كتاب دليل الأمان الرقمي. 8. امتلاك مهارات شخصية مثل التواصل الفعال وإيصال المعلومات لأنه يحتاج للتواصل مع الإدارة ويشرح لهم حقائق تقنية معقدة بأساليب مفهومة تمكنهم من استثمارها في إيجاد الحلول الأنسب للعمل. الخلاصة في مقال اليوم تعرفنا على قوة البيانات في عالم الأعمال وكيف تساعدنا هندسة البيانات من الاستفادة من هذه البيانات الضخمة لإنجاح سير العمل واتخاذ القرارات الصائبة وتعزيز المبيعات في أي مؤسسة أو شركة. لهذا السبب تحرص كافة الصناعات التي تكتظ فيها أكوام من البيانات الخام غير المستخدمة على تعيين مهندسي بيانات أكفاء يمكنهم التعامل مع كل هذا الكم من البيانات الضخمة باحترافية عالية واستغلالها لاتخاذ القرار المناسب في الوقت المناسب لذا تعد هندسة البيانات اليوم واحدة من أكثر المهن ربحًا وطلبًا في سوق العمل.1 نقطة
-
ربما تقرأ أو تشاهد يوميًا تقارير عن توقع في انخفاض أو ارتفاع مؤشرات أسواق المال أو تغيرات متوقعة في أسعار شراء بعض المنتجات على أساس شهري أو سنوي، أو حتى نجاح أو إخفاق لقاح لأحد الأمراض في مرحلة التجربة السريرية؛ فما مصدر هذه المعلومات؟ لا تُعد هذه الظواهر ظواهر علمية طبيعية أي لا تنتنج عن قوانين ثابتة يمكن تطبيقها في كل زمان ومكان، بل تأتي في معظم الأحيان نتيجة تطبيق طرق استدلالية أو تحليلية أو إحصائية على كم مترابط أو غير مترابط من البيانات المتوفرة عن هذه الظاهرة أو تلك، وتكون نتيجتها مجموعة محددة من المعلومات التي توصِّف هذه الظاهرة بلغة واضحة يمكن البناء عليها لاحقًا لاتخاذ قرار أو توثيق حادثة. يطلق على العلم القائم خلف هذه الطرق الاستدلالية والتحليلية والإحصائية اسم علم البيانات Data science أو العلم القائم على البيانات Data-driven science ويُعدّ حاليًا من أكثر العلوم التي تدفع عجلة التقدم التقني في مجالات تعلم الآلة والبحث عبر الإنترنت والتعرف الآلي على الصوت والصور والنقل والصحة واستكشاف المخاطر وغيرها الكثير. وأصبح هذا المجال أحد أهم المجالات في العالم الرقمي ولا عجب في ذلك فهو العلم الذي يهتم باستخراج القيمة الكامنة في البيانات التي تعد اليوم أهم أصول الشركات حتى أنها أصبحت تسمى النفط الجديد أو الذهب الجديد. وستكتشف في مقال اليوم كل خبايا هذا العلم وتتعرف على فوائده وأهم أدواته وتقنياته وحتى التعرف على سوق العمل فيه ومصادر تعلمه. ما هو علم البيانات Data Science؟ يُعد علم البيانات حقلًا لتطبيق المهارات التحليلية والوسائل العلمية لاستخلاص معلومات ذات قيمة وأهمية انطلاقًا من بيانات خام raw data أو بيانات مهيكلة أو غير مهيكلة وذلك لاتخاذ القرارات أو وضع خطط استراتيجية في مجال عمل معين أو تحليل الأنظمة أو بناء تصورات مسبقة عن سلوكها. تزداد أهمية علم البيانات يومًا بعد يوم، إذ تساعد الإضاءات التي يقدمها علم البيانات على زيادة كفاءة العمل وتحديد فرص عمل جديدة وزيادة فعالية النشاطات التجارية، وتضيف ميزات تنافسية قوية للأعمال التي تعتمد على علم البيانات موازنة بغيرها وفي مختلف المجالات والأصعدة. يتألف علم البيانات من ثلاث تخصصات أو مجالات متقاطعة مع بعضها البعض وهي كالتالي: علم البيانات هندسة البيانات تحليل البيانات قد تتداخل المهام في كل مجال من هذه المجالات، إلا أن المسؤوليات الأساسية لكل منها تختلف في مكان العمل وفيما يلي نوضح أهم الفروقات بين كل تخصص منها. علم البيانات علم البيانات هو المجال الذي يهتم بتطبيق تقنيات التحليلات المتقدمة والمبادئ العلمية لاستخراج معلومات قيمة من البيانات بهدف اتخاذ القرارات التجارية الأفضل والتخطيط الاستراتيجي . يعمل في مجال علم البيانات أشخاص ذوو كفاءة عالية يملكون معرفة أساسية في تخصص تحليل البيانات وهندسة البيانات فهم يتشابهون في عملهم مع مهندسي البيانات إلا أنهم أصحاب اليد العليا في جميع الأنشطة المتعلقة بالبيانات فعندما يتعلق الأمر باتخاذ القرارات المتعلقة بالأعمال يتمتع عالم البيانات بكفاءة أعلى وهو الذي يتخذ القرار النهائي بشأن العمل. يجب أن يمتلك المتخصص في هذا المجال مهارات تحليلية وبرمجية متقدمة تمكنه من حل مشكلات العمل بشكل كامل بالاعتماد على البيانات واستخراج المعلومات القيِّمة والمفيدة منها لتطوير الأعمال مستخدمًا برمجيات متقدمة من خلال الاعتماد على أفضل المنظومات والخوارزميات لحل المسائل المتعلقة بتنظيم البيانات واستخلاص المعلومات منها. يمكن أن نختصر ماهية علم البيانات بالنقاط التالية: طرح الأسئلة الصحيحة عن المسألة المدروسة وتحليل البيانات الخام. نمذجة البيانات باستخدام خوارزميات متنوعة ومتقدمة وعالية الكفاءة. تصوير البيانات لفهمها من منظور أوضح. فهم البيانات المتاحة لاتخاذ قرارات أفضل أو الوصول إلى نتيجة نهائية. باختصار علم البيانات هو العلم المسؤول عن استخراج معلومات مفيدة من بيانات مبعثرة ولا قيمة لها بشكلها الخام بعد تنظيفها وتصحيح أخطائها وإزالة القيم المكررة منها ومعالجة القيم المفقودة منها وهي تشبه عملية استخراج شيء مفيد من النفايات. علم هندسة البيانات Data Engineering هندسة البيانات هي العمود الفقري لعلم البيانات وتتضمن عملية تصميم وبناء أنظمة تسمح للأشخاص بالتنقيب عن البيانات الأولية وجمعها وتنظيفها من مصادر وتنسيقات متعددة وتخزينها واستعادتها ونقلها تمهيدًا لتحليلها واستخراج معلومات مفيدة منها. كما تهتم هندسة البيانات بالبيانات الوصفية التي تُعد بيانات تصف بيانات أخرى. وتأتي أهمية هندسة البيانات من ضرورة تهيئة البيانات التي جرى جمعها حتى تُخزن ويسهل استعادتها عند الطلب فلا معنى لأي تحليل أو تفسير للبيانات ما لم تجري أرشفة النتائج وتخزينها في منظومة معلوماتية يسهل التعامل معها لاتخاذ القرار. تتضمن هندسة البيانات المهام التالية: استخراج البيانات من مصادر مختلفة Data extraction معالجة البيانات Data processing وتحويل البيانات Data transformation والتي تتضمن تنظيف البيانات data cleaning ومعالجة القيم الفارغة وفصل القيم المجمَّعة وإزالة القيم الخطأ أو تحويلها إلى قيم صحيحة موحدة ومتناسقة. تحميل البيانات Data load وتخزين البيانات الناتجة في المصدر النهائي وعادة تكون قاعدة بيانات مخصصة للتحليل Database analysis تنفيذ العمليات الثلاث ETL التي تعني استخراج Extract وتحويل Transfer وتحميل Load والتي تعني مجتمعة عملية تنقل البيانات من قاعدة بيانات واحدة، أو قواعد بيانات متعددة، أو مصادر أخرى إلى مستودع موحد عادة ما يكون مستودع بيانات. فنظرًا لكون تحليل البيانات أمرًا صعبًا لأن البيانات تجمع بواسطة تقنيات مختلفة ويتم تخزينها بهياكل وتنسيقات مختلفة لكن الأدوات المستخدمة لتحليل البيانات تتطلب أن تكون كافة مجموعات البيانات مخزنة بنفس الهيكلية! وهنا يأتي دور هندسة البيانات في توحيد مجموعات البيانات وإنشاء البنية التحتية التي تزود أعضاء فريق البيانات ببيانات عالية الجودة ليعملوا عليها ويفهموها ويعثروا من خلالها على إجابات لأسئلتهم، وهم مسؤولون كذلك عن تصميم وصيانة هذه البنية التحتية. على سبيل المثال يمكن أن تجمع الشركات العديد من البيانات حول عملائها ومن مصادر متنوعة مثل معلومات حول الفواتير من برنامج مخصص لإدارة المبيعات ومعلومات عن الشحن من برنامج إدارة شركات الشحن والخدمات اللوجستية ومعلومات عن دعم العملاء من برنامج دعم العملاء ومراقبة مواقع التواصل الاجتماعي للحصول على المحتوى الذي يهتم به العملاء ويتفاعلون معه ومعلوماتهم الديموغرافية وأوقات نشاطهم …إلخ. توفر هذه البيانات الكثير من المعطيات للعميل لكن الحصول عليها من مصادر مختلفة وبتنسيقات متنوعة يجعل فهمها والحصول على الإجابات التي نريدها منها أمرًا صعبًا للغاية ويستهلك الكثير من الوقت والجهد لذا لا يمكننا أن نُعوِّل على إدراكنا البشري في هذا الأمر. لهذا السبب يقوم مهندسو البيانات بإعداد هذه البيانات وتنسيقها وتنظيمها وتخزينها في مستودعات بيانات مناسبة مصممة لمعالجة الاستعلامات بسرعة تضمن الأداء المناسب، وبعدها يقدمون هذه البيانات إلى مستهلكي البيانات النهائية مثل محللي البيانات الذين لن يتمكنوا من الوصول إلى البيانات وتحليلها واستخلاص النتائج والقرارات الصائبة منها بدون البنية التحتية التي ينشؤها لهم مهندسو البيانات. عمومًا، كان هذا تعريفًا مختصرًا بتخصص هندسة البيانات، وقد توسعنا بالحديث عنه في مقال منفصل بعنوان الدليل الشامل إلى هندسة البيانات Data Engineering فارجع إليه للاستزادة. علم تحليل البيانات Data analysis تحليل البيانات هو المجال المسؤول عن معالجة البيانات لاستخراج أو استخلاص معلومات مفيدة من شأنها أن تساعد الشركات والمنظمات في حل مشكلة ما أو الكشف عن فرصة ما لتطوير العمل وعرض هذه المعلومات والنتائج التي تم الحصول عليها بأفضل طريقة لصانعي القرار في العمل حتى يتمكنوا من اتخاذ قرارات من شأنها تطوير العمل نحو الأفضل. على سبيل المثال قد يطلب من محلل البيانات تقسيم العملاء بناءً على سلوك الشراء لديهم لتحديد العملاء الذين يجب أن يتم استهدافهم في الحملات التسويقية وإرسال العروض الأنسب المخصصة لكل منهم بناءً على سلوكه الشرائي أو يطلب منه تحديد التكلفة الأفضل للمنتجات للحفاظ على القوة الشرائية كي لا تنخفض عن مستويات السنوات السابقة. ومن أهم المهام التي يعنى بها تحليل البيانات ما يلي: جمع البيانات الخام من مصادر متعددة وتنظيمها. التأكد من جودة البيانات وتنظيفها وتحويلها عند الضرورة. نمذجة البيانات في تنسيقات محددة. التمثيل الرسومي للبيانات أو تصوير البيانات Data visualization ويقصد به عرض البيانات بطريقة مرئية كي يتمكن المتابع من فهم المحتوى الذي تقدمه ويستوعب الرؤى التي استخلصت من هذه البيانات. إيجاد إجابات وحلول لأي مشكلات أو استفسارات في مجال العمل من خلال تحليل البيانات ذات الصلة. الاستفادة من الإحصائيات الوصفية في تلخيص ووصف خصائص مجموعة البيانات. للقيام بهذه المهام يحتاج المختص في تحليل البيانات لامتلاك مجموعة من المهارات الفنية وأهمها الإلمام الجيد بلغة الاستعلام الهيكلية SQL لاستخراج البيانات التي يحتاجها من قواعد البيانات العلاقية المختلفة وإتقان البرامج المخصصة مثل MS Excel و MS Access و Microsoft Power BI التي تساعد في تحليل هذه البيانات وإنشاء نماذج منها وإجراء العمليات الحسابية والإحصائية المختلفة عليها. كما يحتاج بالطبع لامتلاك معرفة جيدة بالإحصاء والتحليل الرياضي لإضافة المهارات في التنظيم والتخطيط والاهتمام بأدق التفاصيل كي يتمكن من إدارة ومعالجة طلبات العمل بكفاءة، كما تعد مهارات التواصل مفيدة جدًا أيضًا لمحللي البيانات لأنهم بحاجة إلى التعبير عن نتائجهم وتفسيرها بوضوح لأرباب العمل. كان هذا تعريفًا مختصر بمجال تحليل البيانات، وقد توسعنا بالحديث عنه في مقال منفصل بعنوان الدليل الشامل لتحليل البيانات Data Analysis فارجع إليه للاستزادة. الفرق بين علم البيانات والذكاء الاصطناعي يُعرّف الذكاء الاصطناعي Artificial Intelligence واختصارًا AI بأنه وسيلة لتزويد الآلات بسلوك يحاكي السلوك البشري كي تقارب تفكيرهم وتتصرف مثلهم وبالتالي فإن الجانب الأساسي من تقنية الذكاء الاصطناعي مرتبط بتعلم الآلة وتعلم الآلة المعمّق. يلخص الجدول التالي الفرق بين علم البيانات والذكاء الاصطناعي من نواحي عدة كي نستطيع إدراك أوجه الشبه والاختلاف: وجه الموازنة علم البيانات الذكاء الاصطناعي الأساسيات علم البيانات هو دورة عمليات مفصلة تتضمن التحضير الأولي للبيانات وتحليلها ثم تصويرها واتخاذ القرار الذكاء الاصطناعي هو إنجاز نموذج قادر على التوقع بهدف التنبؤ بأحداث مستقبلية. الأهداف التعرف على الأنماط المطلوب إيجادها ضمن البيانات الخام للمشروع قيد الدراسة أتمتة العمليات ووضع بيانات التصرف الذاتي ضمن الوحدة البرمجية المدروسة. نوع البيانات التي يعمل عليها يعمل علم البيانات على أنواع مختلفة من البيانات مثل البيانات الخام والبيانات المهيكلة وغير المهيكلة. يستخدم الذكاء الاصطناعي أنواع معيارية من البيانات على شكل متجهات vectors وأنواع مدمجة أخرى من البيانات التقنيات المستخدمة يستخدم التقنيات الرياضية والإحصائية وخوارزميات تعلم الآلة وأدوات تحليل البيانات وتصويرها. يستخدم بشكل أساسي خوارزميات تعلم الآلة وتعلم الآلة المعمّق. المعرفة المكتسبة تُستخدم المعرفة التي يوفرها علم البيانات في إيجاد الأنماط والسلوكيات في البيانات. تصب المعرفة التي يوفرها الذكاء الاصطناعي في تزويد الوحدات البرمجية بشكل من أشكال التصرف الذاتي. أمثلة عن الأدوات المستخدمة ++R, Python, MATLAB,C Tensor flow, sci-kit-learn, Kaffee متى يُستخدم يُستخدم علم البيانات عندما تقتضي الضرورة استخدام حسابات رياضية سريعة أو تحليل بيانات استطلاعي أو تحليل توقعي predective analysis. لا بد في هذه الحالات من تحديد الأنماط والسلوكيات من خلال البيانات المتاحة ويتطلب ذلك معرفة بالإحصاء الرياضي. يُستخدم الذكاء الاصطناعي عندما تقتضي الضرورة التخلص من عمل ضروري متكرر. لا بد في هذه الحالات من تقييم مخاطر الانتقال إلى الذكاء الاصطناعي وسرعة اتخاذ القرار ودقة في التنفيذ بعيدًا عن المشاعر البشرية والانحياز. أمثلة عن الاستخدام تحسين العمليات واكتشاف سلوكيات العملاء والتحليل المالي وغيرها الكثير. الروبوتات وبرمجيات المحادثة الآلية والألعاب عبر الإنترنت وأنظمة المساعدة الصوتية. هنالك مسارات أخرى بدأت تتبلور تعكس التأثير الكبير لعلم البيانات على الذكاء الاصطناعي مع تزايد الاندفاع نحو ما يُعرف بالذكاء الاصطناعي القابل للتوضيح explainable AI والذي يقدم معلومات تساعد المستخدمين على فهم كيفية عمل نماذج تعلم الآلة ومقدار الثقة التي ينبغي أن يولوها لنتائج عمل هذه الوحدات عند اتخاذ القرارات. بالإضافة إلى دور علم البيانات في صياغة مبادئ تصميم الذكاء الاصطناعي المسؤول responsible AI principles للتأكد من عدالة جميع التقنيات المستخدمة وضمان عدم تحيزها وشفافيتها. مكونات علم البيانات ينبثق علم البيانات من مجموعة من المكوّنات أو العلوم ولا بد من استعراضها حتى تتوضح أبعاد هذا العلم: الإحصاء Statistics الرياضيات Mathematics البرمجة وعلوم الحاسوب Programming and Computer Science أساسيات الرياضيات لتتعلم علم البيانات لا بد من إتقان المفاهيم الأساسية في الرياضيات التي تعد الجزء الأكثر حيوية في مجال علوم البيانات، فهي الفضاء الذي تُدرس ضمنه الكميات والبنى والعلاقات ذات الصلة بالظاهرة المدروسة. إذ يُعد علم الرياضيات اللغة التي توصِّف الظواهر العلمية وتوفر الأدوات الضمنية التي يستخدمها علم البيانات مثل عمليات الاستقراء والتحليل والإحصاء والتفاضل والتكامل وغيرها. الإحصاء الرياضي يُعد الإحصاء الرياضي Statistics من أهم مكوّنات علم البيانات لأنه الوسيلة الأنسب لجمع وتحليل البيانات العددية مهما كانت كميتها كبيرة واستخلاص الأفكار منها. يتعامل هذا العلم مع مجموعات منفصلة من البيانات أو مجموعات مستمرة منها محاولًا تطبيق وسائل رياضية لدراسة ميل هذه البيانات للتقارب أو التباعد والمنحى الذي تأخذه في هذا السلوك ثم تضع أطرًا لتعريف وتصنيف هذه الوسائل. فمن منا لم يسمع في مرحلة ما من تحصيله الدراسي كلمة متوسط حسابي أو انحراف معياري أو منوال مثلًا، فهذه المصطلحات ما هي إلّا مقاييس لابتعاد قيم مجموعة من البيانات عن قيمها الوسطى. البرمجة وعلوم الحاسوب يأتي الحمل الأكبر في علم البيانات على البرمجة وتخصص علوم الحاسوب كي تتمكن من كتابة وتنقيح وتعديل الشيفرات التي تجمع وتحلل وتهيكل البيانات، حيث يجب على من يريد التخصص في علم البيانات تعلم إحدى لغات البرمجة والمكتبات البرمجية التي تدعم الوظائف الإحصائية والرياضية وبرمجيات التحليل وإيجاد علاقات الترابط وغيرها، إضافة لقواعد البيانات المسؤولة بشكل أساسي عن تخزين البيانات وتنظيمها واسترجاعها. كما يعد تعلم الآلة Machine learning أحد التقنيات المتقدمة التي تلعب في الآونة الأخيرة دورًا حيويًا في علم البيانات فمن خلاله يمكننا من الحصول على تنبؤات وقرارات أفضل دون الحاجة للتدخل البشري مما يساعد علماء البيانات في أداء مهامهم والحصول على حلول لمشكلات العمل بطريقة أسرع وأكثر ذكاء مقارنة بالاعتماد على التقنيات الإحصائية التقليدية. وإذا كنت مهتمًا بتعلم أسس علوم الحاسوب والتخصص في مجال علوم البيانات واكتساب خبرة عملية فيه بأسرع الطرق يمكنك مطالعة مقال أساسيات علوم الحاسوب فهو بمثابة دليل شامل يعرفك على اختصاص علوم الحاسب وأهم فوائده وتطبيقاته. دورة علوم الحاسوب دورة تدريبية متكاملة تضعك على بوابة الاحتراف في تعلم أساسيات البرمجة وعلوم الحاسوب اشترك الآن أهمية علم البيانات لم تكن البيانات المتوفرة حول مختلف المجالات خلال العقد الأول من هذه الألفية وما قبلها -وخاصة بشكلها الرقمي- ذات أحجام كبيرة جدًا، وكان من السهل تخزينها في هياكل مخصصة مثل الجداول الإلكترونية وقواعد البيانات العلاقيّة ومن ثم التعامل معها من خلال أدوات مختلفة بكل سهولة ويسر. فقد جمعت البيانات ما قبل الحقبة الرقمية بأساليب يدوية مرهقة بالاعتماد على الأشخاص والأوراق والجداول ولم تكن بيانات شاملة، بل كانت تقتصر على ما هو ضروري للجهة التي تحتاج هذه البيانات سواء أكانت حكومية أو سواها. مع التحول إلى الرقمنة، أصبحت عملية الحصول على البيانات وتصنيفها أسهل وأيسر وظهرت أنواع جديدة من قواعد البيانات التي تسهل التعامل مع هذه البيانات، لكن كما أشرنا بقيت ضمن حدود السيطرة. لكن الكم الهائل جدًا من البيانات التي تنتج يوميًا عن كل فرد قد وصلت وفق بعض الأبحاث إلى 1.7 ميغا بايت في الثانية عام 2020 وقد تصل إلى أضعاف هذا الرقم في لحظة كتابة هذه الأسطر. فانطلاقًا من البيانات البسيطة التي يسجلها الجوال عن مستخدميه، وبيانات التصفح واستخدام الحاسوب، وبيانات نشاطك على مختلف مواقع التواصل الاجتماعي وعمليات التسجيل والشراء أو أي نشاط على مختلف المواقع قد تُسجل وتؤرشف لغايات خاصة بمشغلي تلك المواقع فتأمل عندها الكميات الكبيرة من البيانات التي ستظهر حتى حركة مؤشر الفأرة على شاشة متصفح مسجلة وتستعملها المواقع عبر أدوات تعقب وتحليل مختلفة مثل تتبع الأقسام التي زرتها والروابط والمنتجات التي أبديت اهتمامُا بها وذلك لتحليل سلوكك وبالتالي تقديم تجربة أفضل لك. ولا ننسى تطور البرامج السحابية التي مكنت المؤسسات من تتبع أحجام ضخمة من بيانات الأعمال في الوقت الفعلي وتوفر مليارات من أجهزة إنترنت الأشياء IoT حول العالم التي تجمع كل لحظة كمًا ضخمًا من البيانات عن كل تحركاتنا، لذا يتوقع أن يكون هناك 175 زيتابايت من البيانات في عالم البيانات العالمي بحلول عام 2025 وللعلم فإن زيتابايت يساوي 1000 بايت للأس 7 وبعبارة أخرى فإن زيتابايت واحد يحتوي على 21 صفرًا ولهذا السبب نحن نعيش بالفعل حقبة انفجار البيانات الضخمة Big Data Explosion ونحتاج لطريقة تمكننا من معالجة هذا الكم الجنوني من البيانات! إن معالجة هذا الكم الهائل من البيانات هي مهمة صعبة جدًا على أي مؤسسة أو جهة، لهذا ظهرت الحاجة الماسة إلى أدوات وتقنيات فعالة لمعالجة وتحليل تلك البيانات وأشخاص مؤهلين قادرين على التعامل معها وبدأ علم البيانات بالتبلور ليكون مزيجًا من عدة علوم تتكامل لإنجاز ما يلي: تجميع البيانات الخام وإعدادها للمعالجة أو التحليل النوعي. تحويل هذه الكميات الكبيرة من البيانات الخام وغير المهيكلة إلى معلومات ذات قيمة. تقديم البيانات وعرضها بصريًا لتوضيح الاستراتيجيات أو القرارات المبنية على نتائج تحليل تلك البيانات. استخلاص الأفكار والرؤى من البيانات المحللة باستخدام تقنيات الذكاء الاصطناعي وخوارزميات تعلم الآلة. وضع استراتيجيات تطوير للأعمال انطلاقًا من نتائج التحليل والدراسة. وضع توقعات صحيحة أو قريبة من الصحة في مختلف المجالات مثل استطلاعات الرأي والانتخابات وحجوزات السفر واستكشاف حالات الغش والدراسات العلمية والاجتماعية وغيرها. لم يكن علم البيانات منذ عقد مضى ولا حتى العاملين في هذا المجال منتشرًا في سوق العمل، لكن الشعبية الكبيرة حاليًا لهذه الفئة من الخبراء تعكس طريقة تفكير الأعمال بالبيانات الضخمة. فلا يمكن بعد الآن تجاهل الكميات الهائلة من البيانات الخام التي أضحت بالنسبة للكثير من الشركات بمثابة منجم ذهب افتراضي طالما أن هناك خبراء متحمسين وطموحين ودقيقي الملاحظة قادرين على التنقيب فيها ورؤية ما لا يراه غيرهم. مجالات علم البيانات يلعب علم البيانات اليوم دورًا فعالًا في جميع جوانب الحياة التجارية والطبية والحكومية …إلخ، ويجد المختصون في المجالات المختلفة كل يوم تطبيقًا جديدًا لعلم البيانات بما يعزز العمل الذي يشرفون عليه ويحقق مكاسب على جميع الأصعدة، لكننا سنقف تاليًا على أبرز المجالات التي شاع استخدام علم البيانات فيها. التعرف على الصور وتمييز الكلام عندما تحمّل صورة على فيسبوك ثم ترى اقتراحات للإشارة إلى أصدقائك في الصورة، فإن ما يجري فعلًا أن موقع فيسبوك قد استخدم خوارزمية تمييز الصور تلقائيًا وقد تعرف على الأشخاص في هذه الصورة. إن هذه الخوارزمية هي جزء من علم البيانات. وكذلك الأمر عندما تقول "Ok Google" ليستجيب هاتفك الذكي ويستعد للأوامر الصوتية، فإن علم البيانات هو السبب في ظهور خوارزمية التعرف على الكلام التي استخدمها التطبيق توًا. محركات البحث عبر الإنترنت هل لاحظت كيف تقترح لك محركات البحث الشهيرة مثل جوجل وياهو وبينج ما هو قريب من نتيجة بحثك؟ هل لاحظت السرعة في عرض النتائج والتحسن المستمر في دقة نتيجة البحث؟ يعود الفضل في ذلك إلى علم البيانات وخوارزمياته التي تجعل تجربة البحث عبر الانترنت أكثر سرعة وفعالية ورضًى للمستخدم. العلوم الطبيعية تُستنبط معظم المعايير العلمية المتعلقة بالظواهر الطبيعية من كم البيانات الهائل الناتج عن مراقبة هذه الظواهر على مدى طويل من الزمن كالمناخ والبيئة والفضاء، إذ ترسل المسابر ملايين البايتات يوميًا إلى مراكز الأبحاث لتحليلها واستقراء النتائج وبالطبع لن يكون من السهل فهم هذه البيانات والربط بينها دون استخدام خوارزميات علم البيانات وطرائقه. عالم الألعاب سواء الألعاب الرياضية الحقيقية كدراسة وتحليل حركات لاعبي كرة القدم وحتى منصات الألعاب الرقمية في تعزيز تجربة اللاعبين. تعتمد الشركات التي ترعى هذه المواضيع على تحليل نتائج البيانات المأخوذة من كم هائل من المباريات ومن تجارب مئات الآلاف الذين يمارسون ألعاب الفيديو عبر الإنترنت. لقد حسَّن استخدام علم البيانات وتقنياته أداء الكثير من شركات الألعاب. النقل إن الهدف الرئيسي لاستخدام علم البيانات في عالم النقل هو الوصول إلى المركبات ذاتية القيادة التي يسعى مصمموها إلى تقليل الخطأ البشري إلى أدنى مستوى وتقليل عدد الحوادث المرورية وضبط معدلات التلوث بعوادم الوقود. إضافة إلى ذلك، يساعد علم البيانات في تحليل حركة المرور واكتشاف الازدحامات والاختناقات المرورية وإرسال إشعارات للسائقين لسلوك طريق آخر مثلًا لوجود ازدحام في الطريق الذي يسير عليه وتحليل الحوادث المرورية واتخاذ القرارات. الرعاية الصحية لعلم البيانات دور بارز في مجال الرعاية الصحية لما يؤمنه من مساهمة في تشخيص الحالات الطبية وتخطيط العلاج والبحث الطبي ويوفر نتائج حاسمة وتوقعات تقترب نسبة الخطأ فيها من الصفر وخاصة في مجالات الكشف عن الأورام وابتكار الأدوية وتحليل الصور الطبية. أنظمة التوصية بالمنتجات تعتمد معظم الشركات مثل غوغل وأمازون ونيتفليكس على علم البيانات الذي يقدم تكنولوجيا مفيدة جدًا في تحسين تجربة مستخدمي هذه الشركات من خلال التوصية بمنتجات هذه الشركات لمستخدميها من معرفة ميولهم وسلوكياتهم أو ما يعرف بالتزكية المخصصة. فعندما تبحث عن شيء ما ثم تجد اقتراحات لأشياء مشابهة لاحقًا فهي نتيجة تطبيق خوارزميات علم البيانات. اكتشاف المخاطر تواجه الشركات المالية مخاطر تتعلق بقضايا التزوير وخسارة رأس المال، لكن بوجود علم البيانات ستقل هذه الأخطار إلى مستويات منخفضة. إذ تستفيد شركات المال من علماء البيانات في دراسة البيانات المالية للاستثمارات المطروحة وإدارة المخاطر المالية واكتشاف المعاملات الاحتيالية وتقييم مخاطر الخسارة أو الإفلاس مما يرفع ثقة العملاء بأداء هذه الشركات، كما يساعد علم البيانات أنظمة تقنية المعلومات في منع الهجمات الإلكترونية ومنع التهديدات الأمنية المختلفة. ومن مجالات هذا العلم الأخرى مساعدة الشركات التجارية على إنشاء حملات تسويقية أقوى وإعلانات مستهدفة أكثر دقة لزيادة المبيعات والأرباح، ومنع حدوث أعطال المعدات في الأماكن الصناعية، ويبرز استخدام علم البيانات المجال الأكاديمية لمراقبة أداء الطلاب وتحسينه للأفضل وغير ذلك الكثير مما لا يتسع المقال لذكره. وقلما تجد اليوم مجالًا لا يساهم علم البيانات الحديث في تحسينه وتطويره نحو الأفضل. دورة حياة مشروع علم البيانات تمر دورة علم البيانات بالمراحل التالية: الاستكشاف إعداد البيانات تخطيط النماذج بناء النماذج التحضير للعمل إيصال النتائج الاستكشاف وهي أولى مراحل هذه الدورة وتبدأ بطرح الأسئلة الصحيحة عن الظاهرة المدروسة. فلا بد قبل أن تبدأ أي مشروع متعلق بعلم البيانات أن تحدد المتطلبات الاساسية لهذا المشروع وأولوياته وميزانيته. لا بد في هذه المرحلة من تحديد كل متطلبات المشروع كعدد العاملين فيه والتقنيات المستخدمة والزمن اللازم لإنجازه والبيانات التي سيجري العمل عليها والغاية منها، وبالتالي سنتمكن من وضع إطار أولي لحل المشكلة التي كانت سببًا في إطلاق المشروع. إعداد البيانات نحتاج في هذه المرحلة إلى إنجاز المهام التالية: تصحيح البيانات وتنظيفها Data cleaning اختزال البيانات وتقليل حجمها Data Reduction تكامل البيانات Data integration نقل البيانات Data transformation بعد إنجاز هذه المراحل الأربعة تصبح البيانات جاهزة لعمليات أخرى. التخطيط لبناء النماذج نحتاج في هذه المرحلة إلى تحديد النماذج المختلفة والتقنيات اللازمة لإيجاد العلاقات والروابط بين متغيرات الدخل. وتجري عادة عملية تحليل بيانات استطلاعي Exploratory data analytics -تختصر إلى EDA- باستخدام الدوال والصيغ الإحصائية ثم أدوات تصوير البيانات لفهم الروابط بين المتغيرات ومن ثم فهم ما ترشدنا إليه تلك البيانات. من أكثر الأدوات شيوعًا في إنجاز هذه المرحلة نجد: SQL Analysis Services R SAS Python بناء النماذج تبدأ في هذه المرحلة عملية بناء النماذج. إذ يجري خلال هذه المرحلة إنشاء مجموعات من البيانات لأغراض التمرين والاختبار لتساعد في تطبيق تقنيات مثل التجميع والتصنيف والربط على البيانات المتوفرة لوضع نماذج عن سلوكها. إليك بعض أدوات بناء النماذج الأكثر شيوعا: SAS Enterprise Miner: عبارة عن إضافة تتكامل مع قواعد بيانات أو جداول (مثل إكسيل) لبناء نماذج تحليلية تعطي توقعات عن البيانات الموجودة وفقًا لمسار التحليل الذي تتبعه. WEKA: وهي مجموعة من خوارزميات لغة الآلة كتبت بلغة جافا للتعامل مع مهام التنقيب عن البيانات. SPSS Modeler: برنامج من شركة IBM لتنفيذ مهام التنقيب عن البيانات وتمثيلها بيانيًا وفهمها واتخاذ القرارات بناء عليها. MATLAB: بيئة عمل رياضية وبرمجية متكاملة لمختلف الأغراض الحسابية والتحليلية وتصوير البيانات وبناء خوارزميات تعلم الآلة وتطبيقها. تحضير المشروع للعمل تُسلم في هذه المرحلة معظم التقارير النهائية عن المشروع إلى جانب الشيفرة والمستندات التقنية. تقدم هذه المرحلة نظرة شاملة عن أداء المشروع على صعيد محدود قبل أن يجري نشر نتائجه كاملةً. إيصال النتائج النهائية يتحقق فريق العمل في هذه المرحلة من أن الهدف الذي وضع للمشروع في مرحلة الاستكشاف قد أنجز أم لا، ثم تُسلم بعد ذلك المعلومات التي تمكن الفريق من حيازتها عن طريق النماذج التي بنيت ومن ثم إيصال النتائج النهائية إلى فريق الأعمال الذي طلب الشروع بالعمل. التخصص في مجال علم البيانات رأينا سابقًا كيف ظهرت الحاجة الملحة لعلم البيانات كتخصص قائم ومستقل بذاته للتنقيب عن المعرفة بين أكوام البيانات الخام ويُعتقد وفقًا لعدة استطلاعات رأي بأنّ هذا التخصص سيكون الأكثر طلبًا في السوق خلال هذا العقد. وبما أن الطلب شديد على هذا المجال فهناك نقص كبير في اليد العاملة فيه عربيًا وعالميًا، لذا أمامك فرصة سانحة لممارسته دون الحاجة لوجود شهادة أكاديمية متخصصة فيه إذ التركيز حاليًا على الخبرة نظرًا لنقص اليد العاملة فيه. أي كل ما تحتاجه هو الخبرة الأساسية في البرمجة والإحصاء الرياضي ورغبة في تعلم هذا المجال وتحصيل كل ما يكسبك الخبرة العملية فيه من دورات ومخيمات تدريبية تؤهلك لدخول سوق العمل والحصول على فرصة مميزة لدى الكثير من الشركات والمنظمات التي ستتهافت على تدريبك وتوظيفك لديها. لهذا السبب لا بد من الاطلاع على التخصصات التي يمكنك العمل بها في حال رغبت في التخصص في مجال علوم البيانات. الوظائف التي يتضمنها علم البيانات حتى تختار التخصص الذي تراه مناسبًا لخبراتك وميولك، سنفرد هذه الفقرة للتفصيل في مجموعة من أهم الوظائف والأدوار الوظيفية المرتبطة بالبيانات والمتطلبات الأساسية لكل وظيفة: عالم بيانات Data scientist محلل بيانات Data analyst مهندس بيانات Data engineer معماري بيانات Data architect مطوّر تصوير بيانات Data Visualization Developer خبير في تعلم الآلة Machine Learning expert لنكتشف المزيد حول كل دور من هذه الأدوار وأهم التقنيات والمهام المنوطة به. محلل البيانات هو شخص خبير ينقّب في أكوام البيانات الخام باحثًا عن نماذج وأنماط علاقات تربط بينها. يعمل بعد ذلك على عرض نتائج ما توصل له بما يساعد على اتخاذ قرار أو حل مشكلة. ما المهارات التي يجب أن يتقنها محلل البيانات؟ معرفة جيدة في الرياضيات. معرفة جيدة في التنقيب ضمن البيانات Data mining. معرفة أساسيات علم الإحصاء Statistic. أن يكون مطلعًا على بعض لغات البرمجة والأدوات البرمجية المستخدمة في علم البيانات مثل: Python MATLAB SQL Hive R JS SAS SPSS وغيرها مهندس بيانات وهو الشخص الذي يعمل مع كميات كبيرة من البيانات ويكون مسؤلًا عن بناء وصيانة بنى مناسبة لهذه البيانات وفقًا لمشروع علم البيانات الذي يعمل عليه. يعمل مهندس البيانات أيضًا على تصميم العمليات التي تتحكم بمجموعات البيانات وتُستخدم في نمذجة هذه المجموعات أو التنقيب فيها أو حيازة معلومات منها أو التحقق من سلامتها. ما المهارات التي يجب أن يتقنها مهندس البيانات؟ معرفة معمقة بتقنيات برمجية مثل: SQL MongoDB Cassandra HBase Apache Spark Hive MapReduce معرفة جيدة بلغات برمجة مثل Python, C/C++, Java, Perl. معماري بيانات وهو الشخص الذي يتصور ويصمم الأسلوب الذي تُنجز وفقه البنية التحتية المسؤولة عن تخزين وإدارة البيانات لأغراض التحليل سواء على صعيد العتاد الصلب أو الصعيد البرمجي. ما المهارات التي يجب أن يتقنها معماري البيانات؟ معرفة معمقة بقواعد تطوير البرمجيات والأنظمة. معرفة معمقة بالمعماريات المستخدمة في إنجاز قواعد البيانات. عالم بيانات عالم البيانات هو شخص خبير يعمل على تجميع وتحليل واستخلاص النتائج من كميات كبيرة من البيانات الخام أو المهيكلة أو غير المهيكلة. يجمع عمل عالم البيانات بين علوم الحواسب وخاصة برمجتها وعلم الإحصاء والرياضيات. يعمل عالم البيانات على تحليل ومعالجة ونمذجة البيانات ثم يفسر النتائج التي حصل عليها كي يُنشئ خطة عمل مناسبة للشركة أو المنظمة أو الجهة التي يعمل لديها. يُسخّر علماء البيانات قدراتهم ومهاراتهم في مختلف المجالات سواء التقنية منها أو الاجتماعية للبحث عن تفاصيل قد لا يراها ولا يفهمها سواهم في كم البيانات الهائل الذي يعملون عليه، إذ يتضمن عملهم عادة إيجاد ترابط منطقي بين بيانات غير مهيكلة أو خام تنتج عن مصادر مختلفة كالأجهزة الذكية وردود الأفعال على مواقع التواصل الاجتماعي ومحتوى رسائل البريد الإلكتروني وغيرها من المصادر التي يصعب ملاءمتها من قواعد البيانات المهيكلة. ما المهارات التي يجب أن يتقنها عالم البيانات؟ فهم معمق لعلم الإحصاء. معرفة جيدة في الرياضيات. مهارة في إحدى لغات البرمجة التالية أو أكثر Python R SAS SQL Hive Pig Apache spark MATLAB قدرة جيدة على تصوير البيانات Visualization. مهارات تواصل جيدة. دورة تطوير التطبيقات باستخدام لغة Python احترف تطوير التطبيقات مع أكاديمية حسوب والتحق بسوق العمل فور انتهائك من الدورة اشترك الآن مطور تصوير بيانات وهو شخص يعمل إلى جانب عالم البيانات لتمثيل البيانات بصريًا وتقديم عروض ومخططات تفصّل نتائج تحليل هذه البيانات بطريقة مرئية سهلة الفهم لإيصالها إلى من يستخدمها. ما المهارات التي يجب أن يتقنها مطور تصوير بيانات؟ مهارة في إحدى لغات البرمجة التالية أو أكثر: Python R SAS SQL Hive Pig Apache spark MATLAB قدرة تحليلية ممتازة. قدرة كبيرة على إيجاد الطرق الأمثل في تصوير البيانات. خبير في تعلم الآلة هو الشخص الذي يعمل مع مختلف خوارزميات تعلم الآلة التي تُستخدم في علم البيانات مثل خوارزميات الارتجاع أو الإنحدار Regression والتجميع clustering والتصنيف classification وشجرة القرار decision tree والغابة العشوائية random forest وغيرها. ما المهارات التي يجب أن يتقنها خبير تعلم الآلة؟ خبرة في أحد لغات البرمجة التالية أو أكثر: Python ++C R Java Hadoop فهم جيد للخوارزميات الكثيرة المستخدمة في علم البيانات وتعلم الآلة. مهارة تحليلية في حل المشاكل. معرفة جيدة في علمي الاحتمالات والإحصاء. مصادر تعلم علم البيانات هل أنت متحمس للتخصص في مجال علم البيانات وتعلمه بشكل ذاتي وبأقصر الطرق بعيدًا عن أروقة الجامعات ومناهجها المكثفة -بسنواتها الطويلة التي تمتد لأربع أو خمسة سنوات- لكنك لا تعرف من أين تبدأ؟ سنسلط في القسم الضوء على مصادر تعلم تخصص علم البيانات العربية لدخول سوق العمل، فكما أشرنا حاليًا السوق شره على المتخصصين ويركز على الخبرة والمشاريع العملية المنجزة ولا يتطلب شهادات جامعية حصرية. نفترض أنك أنهيت مراحل جيدة من التعليم الدراسي أو قد أنهيت المرحلة الثانوية أو تخصصت في أحد التخصصات الهندسية وبذلك تكون قد حصَّلت معرفة جيدة بأساسيات الرياضيات والإحصاء وحتى مواضيع متقدمة مثل التفاضل والتكامل (إن كنت قد اخترت التخصص العملي وليس الأدبي) وبذلك تكون قد قطعت شوطًا في تعلم هذا العمل، وعمومًا الأساسيات تكفي للبدء ويمكن لاحقًا التعمق في أي موضوع تحتاج إليه. بعدها يمكنك البدء بتعلم أساسيات علوم الحاسوب ولغات البرمجة المخصصة المستخدمة في علم البيانات وأهمها لغة بايثون و لغة R ولغة SQL فهي من أكثر اللغات المطلوبة والمخصصة للاستخدام مع البيانات. تؤمّن هذه اللغات قدرات وظيفية كبيرة في التواصل مع قواعد البيانات واستخلاص البيانات الخام وتحليلها وتنظيمها واستخلاص الرؤى وفقا للظاهرة المدروسة ومن ثم التقييم وإتخاذ القرار، وكل ذلك من خلال مجموعة واسعة من الخوارزميات التي توفرها هذه اللغات ضمنًا أو من خلال مكتبات متوافقة معها. من أهم المصادر العربية المتكاملة التي ننصحك بها كي تتعلم هذه التقنيات: كتاب ملاحظات للعاملين بلغة SQL 1.0.0 كتاب البرمجة بلغة بايثون الذي يشرح أساسيات لغة بايثون سلسلة تعلم لغة R التي تطلعك على كافة الأساسيات والمواضيع النظرية التي تحتاجها في هذه اللغات. سلسلة مقالات think stats التي توفر لك مجموعة مميزة من المقالات والدروس المتخصصة في تعليم الاحتمالات والإحصائيات لمبرمجي بايثون بأسلوب مبسط وسهل الفهم. وإذا كنت تفضل التعلم بإشراف مختصين يجيبونك على أي سؤال يخطر ببالك ويقرن التعليم النظري بالتطبيق العملي فأنصحك بالاطلاع على دورة أساسيات علوم الحاسب التي توفرها أكاديمية حسوب فهي كفيلة بأن تكسبك كافة الأسس التي تحتاجها لتعلم أسس البرمجة وقواعد البيانات، وكذلك دورة تطوير التطبيقات بلغة بايثون والتي تمكنك من تطوير طيف واسع من التطبيقات في مجالات منوعة من بينها تطبيقات عملية في تحليل البيانات تساعدك في التعرف على أبرز مكتبات بايثون المتخصصة في التعامل مع علم البيانات. إضافة إلى لغات البرمجة التي ذكرناها ستجد الكثير من المنصات والأدوات التي تدعم بشكل مباشر العمل مع البيانات الضخمة وتقدم مختلف الأدوات المساعدة في التحليل والتنظيم واتخاذ القرار والتي يمكنك تعلمها ومن أبرزها SAS و Spark و Hadoop و Azure و AWS. خاتمة ألقينا الضوء في هذا المقال على علم البيانات الذي يُتوقع أن يكون من أكثر الأعمال طلبًا خلال هذا العقد من الألفية نظرًا للحاجة الماسة للعمل ضمن كميات هائلة من البيانات الخام وضرورة الاستفادة منها في تطوير الأعمال على مختلف الأصعدة. كما تحدثنا عن المكونات والتخصصات التي يضمها ومجالات استخدامه وتطبيقه، كما تحدثنا عن دورة الحياة التي يمر بها أي مشروع يعتمد على علم البيانات. ومنعًا لتضارب الأفكار وضياع التسميات، فقد تحدثنا عن الفرق بين علم البيانات وتحليلها وكذلك الفرق بين علم البيانات والذكاء الاصطناعي. وهكذا نكون قد أحطنا بشكل مفصل أساسيات علم البيانات وتخصصاته ومجالاته المختلفة لمن يرغب فعليًا في امتهانه أو احتراف أحد اختصاصاته، ووضحنا المتطلبات الضرورية التي يحتاجها المتعلم حتى يبدأ رحلته في هذا المجال المهم والشيق والمجزي ماديًا والذي ينبئ بمستقبل واعد.1 نقطة