لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 03/01/23 في كل الموقع
-
2 نقاط
-
أكتب الشعر الفصيح والعامي الخاص بالمناسبات مثل التخرج والنجاح والتباريك لمولود جديد والزواج والخطوبة والمهرجانات السنوية الخاصة بالشركات و و و الخ انصحوني كيف أقدم نفسي للناس عبر النت ؟ كيف اطلب منهم الفلوس وكيف لهم أن يثقون بي وكيف لي أن أثق من أنهم سيرسلون لي بفلوسي بعد أن أرسل لهم بما طلبوه مني خاصة وأنا سأتعامل معهم بصفتي الشخصية لأنني مقيم بالمملكة العربية السعودية فهل من سبيل للاستفادة المادية من موهبتي وكيف؟1 نقطة
-
1 نقطة
-
شكرا لك لا أقصد المشكلة في ذلك لامشكلة في استخدام النقطة ضمن اطار دجانغو لم اصادف أي مشكلة في الفورمات لدي. مشكلتي تنحصر عند محاولة استدعاء احد البارمترات الذي قمت بمعالجته باستخدام تقنية autocomplete ماهي الطريقة؟ @مسعود زاهي أرجو المساعدة اذا أمكن ..1 نقطة
-
1 نقطة
-
يمكنك تغيير بنية الشيفرة لديك وتمرير حالة العناصر بشكل مشروط ضمن الخطّاف useState وبالتالي يصبح تغيير الصفوف أكثر مرونة للعنصر الواحد بالشكل التالي: import React, { useState } from 'react'; function ListItem(props) { return ( <li className={props.active ? 'active' : ''} onClick={props.onClick}>{props.value}</li> ); } function List() { const [activeItem, setActiveItem] = useState(null); const items = [1, 2, 3, 4, 5, 6, 7, 8]; const handleItemClick = (item) => { setActiveItem(item === activeItem ? null : item); } return ( <ul> {items.map((item) => <ListItem key={item.toString()} value={item} active={item === activeItem} onClick={() => handleItemClick(item)} /> )} </ul> ); } export default List;1 نقطة
-
لانجيب عن أسئلة الامتحانات لكن سأقوم بتوضيح الفكرة الرئيسية، قبل البدء في كتابة الكود، يجب فهم الفكرة الأساسية لرسم المدفع. يتكون المدفع من جزئين، الجزء الأول هو القاعدة والجزء الثاني هو الرأس. يحتوي الجزء الأول على عدة خطوط أفقية بأطوال مختلفة والجزء الثاني يحتوي على عدة خطوط مائلة. بدايةً، يمكننا استخدام nested loop لرسم الجزء الأول من المدفع، حيث يمكن استخدام loop خارجي لرسم الخطوط الأفقية وloop داخلي لرسم الأطوال المختلفة للخطوط الأفقية. يمكن استخدام الدالة cout لطباعة الرموز المستخدمة في الرسم، مثل "*" أو "-" أو "|" وغيرها. لرسم الجزء الثاني من المدفع، يمكن استخدام nested loop آخر، حيث يمكن استخدام loop خارجي لرسم الخطوط المائلة وloop داخلي لرسم الأطوال المختلفة للخطوط المائلة. يمكن استخدام الدالة cout لطباعة الرموز المستخدمة في الرسم، مثل "*" أو "-" أو "/" وغيرها. يمكنك الآن البدء في كتابة الكود في لغة C++ باستخدام nested loop. يمكن استخدام loop خارجي للقاعدة وloop داخلي للرأس. وفيما يلي مثال بسيط لرسم فانوس بمجرد إتقان هذه الفكرة يمكنك رسم أي شيء تريدينه: #include <iostream> using namespace std; int main() { int size; cout << "Enter the size of the tree "; cin >> size; // Loop for drawing the tree for (int i = 0; i < size; i++) { // Loop for drawing the first part of the tree for (int j = 0; j < size-i-1; j++) { cout << " "; } for (int j = 0; j < i*2+1; j++) { cout << "*"; } cout << endl; } // Loop for drawing the base of the tree for (int i = 0; i < size/2; i++) { for (int j = 0; j < size-2; j++) { cout << " "; } cout << "***" << endl; } return 0; }1 نقطة
-
تلعب البرمجة في عصرنا الحالي دورًا حيويًا في كافة مناحي الحياة كالاتصالات والهندسة والتصميم والإدارة والطب وغيرها، ومجالات البرمجة كثيرة ومتنوعة وهي تخدم أغراضًا مختلفة وتتوسع بشكل مستمر كما تعدّ البرمجة من أكثر الوظائف نموًا في سوق العمل. لحسن الحظ، هذا يوفر للمبرمجين الكثير من الخيارات في سوق العمل ويتيح لهم الفرصة للتخصص في مجالات متنوعة كتطوير مواقع الويب أو تطبيقات الجوال أو التخصص في تحليل البيانات أو برمجة الشبكات …إلخ. نسلط الضوء في هذا المقال على أهم مجالات البرمجة ونساعدك في تحديد أهدافك واكتشاف المجال الذي يناسب اهتماماتك وميولك والتعرف على أهم التقنيات التي يتطلبها التخصص في كل مجال. ما هي مجالات البرمجة البرمجة هي أن تطلب من جهاز الحاسوب أو أي جهاز إلكتروني آخر قابل للبرمجة أداء مهمة مت أو حل مشكلة معينة من خلال كتابة مجموعة من التعليمات باستخدام إحدى لغات برمجة. ولغة البرمجة هي لغة خاصة تستخدم للتواصل بينك وبين الحاسوب، ويمكنك من خلالها تطوير مختلف أنواع البرامج والتطبيقات التي تخدم أغراضًا مختلفة، ونتيجة التباين في المهام والمشكلات التي يتم حلها بواسطة الحاسوب تتنوع مجالات البرمجة التي يمكن للمطورين والمبرمجين العمل بها. وقد اخترنا مجموعة من أهم هذه المجالات حسب استطلاع الرأي الذي أجراه موقع Stackoverflow الشهير للعام 2022 والذي يشارك فيه عدد كبير من المطورين والمبرمجين حول العالم: من أشهر مجالات البرمجة نذكر: تطوير الويب بأنواعه الثلاثة: التطوير الكامل وتطوير الواجهة الخلفية وتطوير الواجهة الأمامية تطوير سطح المكتب تطوير تطبيقات الهاتف التخصص في مجال DevOps هندسة البنية التحتية السحابية إدارة قواعد البيانات تحليل البيانات أو الأعمال الأمن السيبراني تطوير الألعاب الذكاء الاصطناعي وتعلم الآلة لنستكشف المزيد من المعلومات حول كل مجال من هذه المجالات ونتعرف معًا على أهم استخداماته وتقنياته في فقراتنا التالية. 1. تطوير الويب هو أحد مجالات البرمجة المفضلة لدى غالبية المبرمجين وهو يحتل المكانة الأولى بين وظائف المبرمجين على مستوى العالم ولا عجب في ذلك فهو مجال سهل التعلم وكثير الطلب في سوق العمل، فلا توجد شركة ناشئة أو نشاط تجاري إلا ويحتاج لإنشاء موقع إلكتروني خاص به ليثبت وجوده في العالم الرقمي، لذا فإن الطلب على المتخصصين في مجال تطوير الويب مرتفع ومستمر في النمو. يشمل تطوير الويب تخطيط وتصميم واجهات موقع الويب، وكتابة الكود البرمجي اللازم لعمل الموقع، كما يشمل صيانة مواقع الويب وتطويرها حسب الحاجة. ويقسم مجال تطوير الويب إلى ثلاث تخصصات هي: تطوير الواجهة الأمامية Frontend تطوير الواجهة الخلفية Backend التطوير الكامل Full-Stack مطور الواجهة الأمامية: هو المسؤول عن الجزء المرئي من الموقع الذي يراه المستخدمون النهائيون فهو الذي يصمم صفحات وأقسام الموقع والقوائم ويحدد أنواع الخطوط والألوان …إلخ. وهذا المجال يتطلب حسًا فنيًا وتفكيرًا إبداعيًا لابتكار تصاميم سهلة الاستخدام وتنفيذها من خلال التقنيات البرمجية المناسبة حيث يحتاج المتخصص في تطوير الواجهات الأمامية للمواقع إلى معرفة عدة تقنيات مثل HTML5 و CSS3 ولغة جافا سكريبت ومعرفة أهم المكتبات وأطر العمل الخاصة بها. دورة تطوير واجهات المستخدم ابدأ عملك الحر بتطوير واجهات المواقع والمتاجر الإلكترونية فور انتهائك من الدورة اشترك الآن مطور الواجهة الخلفية: هو المسؤول عن الجزء التقني من الموقع الذي يعمل على الخادم، وتشمل مسؤولياته إنشاء الوظائف الرئيسية للموقع والتعامل مع قواعد بيانات الموقع ومراقبة أداء الخادم ويحتاج مطور الواجهة الخلفية لامتلاك خبرة باللغات التي تعمل في طرف الخادم مثل جافا Java وروبي Ruby و PHP وبايثون Python والتعامل مع نظم إدارة قواعد البيانات مثل MySQL و MongoDB كما يحتاج إلى الإلمام بأساسيات لغات الواجهة الأمامية والتعاون مع مطوري الواجهة الأمامية. مطور الويب الكامل: أو ما يعرف باسم مطور المكدس الكامل Full-Stack Developer هو المبرمج الذي يمتلك المهارات التي تمكنه من تطوير الواجهة الأمامية والخلفية لموقع الويب فهو مسؤول عن كافة جوانب تطوير الموقع من طرف العميل والخادم. شرحنا هذين المجالين ومجال التطوير الشامل وعرضنا خارطة طريق لتعلم مجال تطوير الويب بالتفصيل في مقال المدخل الشامل لتعلم تطوير الويب وبرمجة المواقع. 2. تطوير سطح المكتب رغم أن مجال تطوير برامج سطح المكتب تراجع في الآونة الأخيرة مقابل تطبيقات الويب والجوال والتطبيقات المستندة إلى السحابة، لا يزال بعض المستخدمين يعتمدون على تطبيقات سطح المكتب لإنجاز المهام الاحترافية لذا فإن تطوير سطح المكتب لا يزال أحد مجالات البرمجة المهمة والمجزية. فإذا كنت تعتقد أن تطوير سطح المكتب قد عفا عليه الزمن ولا جدوى منه فأنت مخطئ، بل على العكس يعد هذا التخصص من أصعب التخصصات وأعلاها أجرًا، لأن تطبيقات سطح المكتب تعمل بشكل أفضل من ناحية القوة والسرعة والموثوقية من تطبيقات الويب أو البرامج المستندة إلى السحابة لذا لا تزال مفضلة للعديد من الشركات وأصحاب الأعمال. مطور سطح المكتب هو المبرمج الذي يكتب الشيفرات البرمجية للبرامج والتطبيقات التي لا تحتاج إلى الاتصال بالإنترنت والمخصصة للعمل على أجهزة الحاسوب التي تعمل بأنظمة تشغيل مثل ويندوز Windows ولينكس Linux وماك MacOS، ويركز عادة على تطوير وإنتاج برامج متقدمة واحترافية كبرامج التصميم باستخدام الحاسوب CAD، وبرامج النمذجة ثلاثية الأبعاد، وبرامج تحرير الصور والفيديو والأصوات …إلخ. ومن أشهر لغات البرمجة المستخدمة في مجال تطوير تطبيقات سطح المكتب: C# C++ Python Ruby Objective-C Swift JavaFX Go Scala Python وإضافة لتعلم التقنيات ولغات البرمجة اللازمة لتطوير برامج سطح المكتب يجب أن يمتلك مطور سطح المكتب مهارات مثل التفكير المنطقي والقدرة على حل المشكلات المعقدة بكفاءة ويتمكن من إيجاد حلول مبتكرة تجعل من البرامج أسرع وأسهل في الاستخدام. دورة تطوير التطبيقات باستخدام لغة Python احترف تطوير التطبيقات مع أكاديمية حسوب والتحق بسوق العمل فور انتهائك من الدورة اشترك الآن 3. تطوير تطبيقات الجوال يعد تطوير تطبيقات الجوال والهواتف المحمولة من مجالات البرمجة المهمة والمربحة والمطلوبة بكثرة في سوق العمل، والتخصص في هذا المجال يمكنك من تطوير تطبيقات متنوعة تستخدم على مختلف الأجهزة المحمولة مثل الهواتف الذكية والأجهزة اللوحية والساعات الذكية وكل شخص منا لديه اليوم هاتف ذكي يعتمد عليه لإنجاز معظم المهام اليومية سواء التسوق عبر الإنترنت أو دفع الفواتير أو تصفح وسائل التواصل الاجتماعي …إلخ. بناء على ذلك تحرص غالبية الشركات اليوم على تطوير تطبيقات هواتف ذكية لمنصاتها لتحقيق أقصى استفادة وهذا بدوره يساهم في نمو سوق تطبيقات الهواتف ويوفر الكثير من الفرص الوظيفية لمطوري هذه التطبيقات. كي تصبح مطور تطبيقات جوال عليك أن تتعلم إحدى لغات البرمجة المتخصصة في بناء التطبيقات وتتعلم إدارة قواعد البيانات وتصحيح الأخطاء، ومن الضروري أن تمتلك كذلك مهارات في مجال التصميم لإنشاء تطبيقات جذابة بصريًا وسهلة الاستخدام. تعتمد لغات البرمجة التي تمكنك تعلمها لإنشاء تطبيقات الهاتف المحمول على نظام الهاتف فإذا كنت ترغب في تطوير تطبيقات للأجهزة التي تعمل بنظام Android يمكنك تعلم لغة جافا Java وكوتلن Kotlin، ولتطوير تطبيقات للأجهزة التي تعمل بنظام iOS يمكنك تعلم سويفت Swift أو Objective-C، كما يمكنك تطوير تطبيقات جوال هجينة تعمل على عدة أنظمة من خلال تعلم لغات تعمل مع تقنيات الويب والجوّال مثل HTML5 و CSS3 وجافا سكريبت. من السهل اكتساب الخبرة في مجال تطوير التطبيقات بسبب ظهور العديد من تقنيات التطوير سهلة الاستخدام مؤخرًا، كل ما عليك هو تعلم إحداها وبناء معرض أعمال خاص بك يضم تطبيقات مفيدة بأفكار نافعة تلبي احتياجات المستخدمين فهذا يساعدك في الحصول على فرص عمل مميزة بسرعة. إن أردت المزيد من التفاصيل حول مجال تطوير تطبيقات الجوال، ارجع إلى مقال برمجة تطبيقات الجوال. 4. تخصص DevOps يهدف مجال DevOps أو ما يعرف بالتطوير والعمليات Development and Operations إلى تنظيم التعاون بين كل من فرق تطوير البرامج وفرق تقنية المعلومات وسد الفجوة بينهما من أجل تطوير برمجيات عالية الجودة. رغم حداثة هذا المجال إلا أن الاعتماد عليه يتزايد بسرعة، وقد أصبح متخصصو ومهندسو DevOps يلعبون دورًا أساسيًا في المؤسسات لتأثيرهم الكبير على زيادة قدرة المؤسسات على إصدار المنتجات والخدمات بسرعة وكفاءة وصيانتها بشكل أفضل. والطلب متزايد على محترفي DevOps في سوق العمل، ويتطلب العمل في هذا المجال توفر مجموعة متنوعة من المهارات مثل فهم أساسيات لينكس Linux ومعالجة الملفات وإدارة العمليات وتشغيل خوادم لينكس وإتقان لغات البرمجة مثل بايثون أو جافا Java أو جافا سكربت Javascript أو روبي Ruby …إلخ. إضافة لمهارات قوية في الحوسبة السحابية والتحكم في الإصدارات مثل Git، كما يجب أن يتمتع بمهارات شخصية كالتواصل الفعال والتعاون والتنظيم. للمزيد يمكنك الاطلاع على مجموعة منوعة من المقالات والدروس التي توفرها أكاديمية حسوب حول مفهوم DevOps وأهم أداوته وتقنياته. 5. تخصص هندسة البنية السحابية تسعى معظم الشركات والمنظمات اليوم إلى تغيير الطريقة التقليدية التي تتعامل بها مع مواردها وتتوجه لتحويل كافة خدماتها كالخوادم والتخزين وقواعد البيانات والشبكات والبرمجيات لتعمل عبر الإنترنت أو السحابة مما يوفر لها مرونة وكفاءة أكبر ويخفض تكاليف تشغيل بنيتها التحتية ويساعدها على توسيع نطاق عملها بسهولة عند تغير المتطلبات. لهذا السبب تعتبر هندسة السحابة Cloud infrastructure engineer أحد مجالات البرمجة الهامة، فمعظم الشركات أصبحت تحتاج إلى تعيين مهندس سحابة أو مطور سحابة أو مسؤول عن الأنظمة السحابية ليكون مسؤولًا عن كافة الواجبات التقنية المرتبطة بالحوسبة السحابية مثل تحديد أفضل حلول البنية السحابية التي تلبي الاحتياجات الاستراتيجية للشركة وإدارة هذه البنية السحابية والعمل على صيانتها وإدارة الخوادم والتخزين السحابي …إلخ. من الضروري لمهندس السحابة امتلاك مجموعة من المهارات وأهمها معرفة بخوادم لينكس Linux وصيانتها وإدارتها ومهارات في إدارة قواعد البيانات السحابية، إضافة لمعرفة بلغات البرمجة مثل جافا و بايثون وروبي و Golang و PHP …إلخ. 6. إدارة قواعد البيانات تعد إدارة قواعد البيانات Database administrator أحد مجالات البرمجة المرغوبة في العديد من المؤسسات والشركات وهي تتضمن جمع البيانات وتخزينها واستخدامها بطريقة آمنة وفعالة من حيث التكلفة. فمعظم أصحاب العمل يعتبرون البيانات أحد الأصول الهامة ويحتاجون إلى متخصصين يقومون بإدارة هذه البيانات وتخزينها وتحليلها بنجاح والكشف عن رؤى هامة منها واتخاذ قرارات استراتيجية تصب في صالح هذه الشركات وتساعدهم على تحسين أدائها وزيادة إيراداتها. من المهارات المهمة للعمل في هذا المجال امتلاك القدرة على التنقل في قاعدة البيانات والعثور على السجلات المطلوبة وإعداد التقارير المناسبة واستخدام أدوات الاستعلام وعرض مجموعات البيانات بعدة تنسيقات بهدف تحليلها من عدة وجهات نظر واستخلاص النتائج منها. 7. تحليل الأعمال وتحليل البيانات برزت أهمية هذا المجال مع ظهور مفهوم البيانات الضخمة الواردة من عدد كبير من المصادر واعتبارها أحد الأصول القيمة للشركات لما لها من أثر كبير في مساعدة المؤسسات على اتخاذ قرارات مهمة وتوسيع نطاق عملها، وزيادة المبيعات وإطلاق منتجات أو خدمات جديدة وزيادة كفاءة عملها. يعرف هذا المجال بعدة أسماء أخرى مثل علم البيانات أو التنقيب عن البيانات أو نمذجة البيانات أو تحليل البيانات الضخمة، والهدف الأساسي منه هو توفير آلية للعمل مع كل هذه البيانات ومعالجتها وفهمها باستخدام تقنيات عدة كالتعلم الآلي والإحصاء والاحتمالات للحصول على معلومات مفيدة تساهم في تحسين أداء الأعمال داخل المؤسسات. فمن خلال تحليل الأعمال يمكن للشركة اتخاذ قرارات واستراتيجيات مستقبلية صائبة، مثل هل يجب عليها تطوير خط إنتاج جديد أم لا؟ أو هل هناك تأثير للمناطق الجغرافية أو المواسم على تفضيلات العملاء عند الشراء؟ أو الإجابة على أي سؤال أو مشكلة مستقبلية قد تواجهها الشركة في أي من أقسامها من المبيعات إلى تطوير المنتجات إلى خدمة العملاء …إلخ. للعمل كمحلل أعمال أو محلل بيانات ستحتاج لمجموعة من المهارات أهمها وجود أساس قوي في الاحتمالات والإحصاء ومعرفة لغات البرمجة الإحصائية مثل R أو بايثون التي تمكنك كتابة برامج لإجراء تحليلات متقدمة على البيانات الضخمة، كما أن إتقان مفاهيم الذكاء الصناعي و خوارزميات التعلم الآلي يمنحك ميزة تنافسية. 8. الأمن السيبراني تهتم المؤسسات والشركات بمجال الأمن السيبراني بشكل خاص لحماية المعلومات الحساسة لعملائها وكسب ثقتهم، فهذا المجال هو المسؤول بشكل رئيسي عن حماية المعلومات الرقمية، ومراقبة شبكات الحاسب والتصدي لأي تهديدات أمنية تظهر فيها، ويهتم كذلك بتصميم أنظمة الأمان وتنفيذها وصيانتها وتطوير تطبيقات برمجية آمنة من الثغرات أو تحسين التطبيقات الحالية لتكون أكثر أمانًا. يتطلب هذا المجال معرفة قوية بالحواسيب والشبكات إضافة للبرمجة وعند التخصص فيه يمكنك أن تعمل في عدة أدوار وظيفية. على سبيل المثال يمكن أن تعمل كأخصائي أمن معلومات وتحمي الأجهزة والأنظمة داخل المؤسسة من الهجمات الإلكترونية أو محلل أمن معلومات لمراقبة الوصول إلى البيانات وتشفيرها وتمنع أي استخدام ضار أو غير مقصود للبيانات وتتأكد من وجود إجراءات حماية قوية وهكذا. كما يمكّنك التخصص في هذا المجال أن تعمل في مجال الاختراق الأخلاقي Ethical hacking فالشركات والمؤسسات المهتمة بأمنها توظف اليوم مخترقين أو متسللين أخلاقيين لديها كي يحاولوا اختراق أنظمتها وشبكاتها وكافة أصولها الرقمية بهدف العثور على نقاط الضعف فيها وإصلاح كافة ثغراتها الأمنية قبل أن يكتشفها المتسلل الحقيقي ويستغلها ضدهم. تحدثنا عن هذا المجال وأهميته وفرص العمل فيه بالتفصيل في مقال ما هو الأمن السيبراني وما أهميته؟ فارجع إليه للاستزادة. 9. تطوير الألعاب يعتبر تطوير الألعاب مجالًا مرغوبًا بشكل خاص في أوساط المبرمجين اليافعين. وتطوير الألعاب مجال متقدم يحتاج لعدة مهارات لا تقتصر على كتابة كود اللعبة بل يحتاج إلى تصميم وتحريك الشخصيات أو الكائنات الرسومية للعبة وإعداد الأصوات وتحديد منطق اللعب، وتطوير الذكاء الصناعي الخاص بها وتطوير محرك اللعبة واستكشاف الأخطاء وإصلاحها قبل إطلاق اللعبة. لهذا السبب يحتاج مجال تطوير الألعاب عادة فرقًا من المتخصصين وقد يستغرق تطويرها سنوات عدة ومن الضروري لمطوري الألعاب أن يكونوا على دراية بمحركات الألعاب وتعلم لغات برمجة الألعاب مثل C++ و C و Java و Lua …إلخ. وإذا كنت تخطط لتطوير ألعاب تعمل ضمن متصفح الويب سيفيدك تعلم HTML5 وجافا سكربت و WebGL …إلخ. قد يكون من المفيد أيضًا أن يكون لديك معرفة بتطوير قواعد البيانات ومهارات في التصميم ومعرفة بمحركات الألعاب Game engines مثل Godot أو Unity3D أو Unreal أو غيرها من المحركات التي تسهل وتسرع عملك في تطوير الألعاب بشكل كبير. 10. الذكاء الاصطناعي وتعلم الآلة تعلم الآلة هو أحد تطبيقات الذكاء الاصطناعي AI ومن خلاله يمكن للحواسيب اكتساب القدرة على التعلم وتحسين الأداء من خلال التجربة. يركز تعلم الآلة على تطوير برامج وتطبيقات يمكنها الوصول إلى البيانات واستخدامها للتعلم من تلقاء نفسها من خلال خوارزميات مخصصة تحسن أداءها مع زيادة عدد العينات المتاحة للتعلم. يعد هذا التخصص أحد أحدث مجالات البرمجة رواجًا اليوم وهو يستخدم لحل المشكلات واتخاذ قرارات حاسمة في العديد من القطاعات التي تستخدم كمية ضخمة من البيانات كالطب والاتصالات والصناعة وتداول الأسهم …إلخ. ويُعتمد عليه لحل المهام المعقدة التي تتضمن كمية كبيرة من البيانات والمتغيرات والتي لا تملك طريقة ثابتة أو صيغة محددة لحلها، في هذه الحالة يتم الاعتماد على البيانات الحالية لاتخاذ قرارات مستقبلية وكلما زادت البيانات الموجودة سنتمكن من الحصول على إجابات أفضل وأدق. على سبيل المثال عندما تسأل خرائط جوجل عن أقصر وجهة للوصول لهدف ما وتقترح لك الطريق الأسرع فهي في الواقع تستخدم التعلم الآلي وتستنتج الطريق الأسرع بناء على البيانات الضخمة للأشخاص الذين استخدموا خدمة الخرائط مسبقًا وعلى البيانات التي تم جمعها عن هذا المسار وعن كل شخص استخدمه للوصول لهذه الوجهة ومتوسط سرعته وبهذا يمكن لخرائط جوجل التنبؤ بحركة المرور المستقبلية واقتراح المسار الأفضل. كذلك الأمر يمكن استخدام الذكاء الصناعي في اقتراح توصيات للمنتجات لزيادة الإيرادات، على سبيل المثال عندما تتصفح منتجًا ما على أحد المتاجر الإلكترونية دون أن تشتريه ستفاجئ أنك عندما تتصفح الإنترنت أو وسائل التواصل الاجتماعي بظهور إعلان لنفس المنتج. فكيف حدث ذلك؟ الجواب أن جوجل طبق التعلم الآلي وتتبع بيانات سجل البحث الخاص بك وبناء على ذلك قام بالتوصية بالإعلانات المناسبة بناءً على ذلك. وللتخصص في مجال تعلم الآلة تحتاج لمعرفة عدة تقنيات مثل SQL ومبادئ علم الإحصاء ولغات برمجة مثل لغة بايثون التي توفر الكثير من مكتبات معالجة البيانات مثل numpy و pandas ومكتبات تمثيل البيانات مثل Matpotlib و seaborn والعديد من خوارزميات تعلم الآلة، كما يسهّل عليك تعلم MATLAB تطبيق التعلم الآلي من خلال توفير مجموعة من الأدوات والوظائف الخاصة بمعالجة وتحليل البيانات الضخمة. إن أردت الاستزادة عن هذا المجال والتخصص فيه، يمكنك البدء بكتاب مدخل إلى الذكاء الاصطناعي وتعلم الآلة من أكاديمية حسوب، كما ستفيدك دورة الذكاء الاصطناعي التي توفرها الأكاديمية والتي تشرح لك أساسيات تعلم الآلة والتعلم العميق وتمكنك من تطوير مشاريع عملية لأنظمة التنبؤ، وتحليل النصوص، وتصنيف الصور، ومعالجة البيانات، كما تعلمك طريقة دمج النماذج اللغوية الكبيرة مثل GPT من OpenAI و LLaMA 2 من Meta في تطبيقاتك إلى جانب العديد من المواضيع التي تؤهلك بشكل فعّال للمنافسة في مجال الذكاء الاصطناعي. دورة الذكاء الاصطناعي احترف برمجة الذكاء الاصطناعي AI وتحليل البيانات وتعلم كافة المعلومات التي تحتاجها لبناء نماذج ذكاء اصطناعي متخصصة. اشترك الآن الخاتمة تعرفنا في مقال اليوم على أكثر مجالات البرمجة التي يمكن للمبرمجين والمطورين التخصص بها، بالطبع هناك مجالات عديدة أخرى مثل إنترنت الأشياء IoT والبرمجة التنافسية Competitive Programming وبرمجة الشبكات وبرمجة الأنظمة وتطوير البرمجيات حرة المصدر وأتمتة الأعمال والروبوتيك وغيرها الكثير لكن حاولنا أن نسلط الضوء على بعض من أبرز هذه المجالات. وبعد الاطلاع على أشهر مجالات البرمجة نرجو أن يكون هذا المقال قد ساعدك في العثور على مجال اهتمامك الأنسب -إن لم تحدده بعد- والبدء بالتعرف عليه أكثر وبشكل عملي ودراسة أفضل التقنيات ولغات البرمجة التي تناسب هذا المجال لتحقيق طموحك المهني، كما أنصحك بمطالعة مقال أعلى تخصصات البرمجة أجرًا في حال رغبت في معرفة أكثر المجالات دخلًا ومردودًا من بينها. ما هو مجال البرمجة المفضل بالنسبة لك وما هي التقنيات التي تتعلمها في هذا المجال؟ يسرنا أن تشاركنا تجربتك وتساؤلاتك حول هذا الموضوع في التعليقات أسفل المقال. اقرأ أيضًا كيف تتعلم البرمجة تعلم البرمجة لغات البرمجة فوائد البرمجة أسهل لغات البرمجة تعلم لغة بايثون تعلم لغة PHP دليلك الشامل إلى برمجة التطبيقات تعلم الذكاء الصناعي1 نقطة
-
بدايه موفقه ولكن يجب التركيز على القافيه وأن تكون الكلمات البدائية او النهائيه متناسقه لفظيا وخطيا والله ولي التوفيق1 نقطة
-
بعد بسم الله الرحمان الرحيم والسلام على اشرف المرسلين والحمد على المعطي الامين من علم ونفع سليم ابدأ في كتابة هاذا الشعر الذي اسمه. عبرت حزني عبرت على حزني وطال الهم كبر الهم وكبرت عليه وصبرت حتى نجحتو والحمد لمن على من وفقني حتى شكرت كتبت ودونت حزني وعرضت فهل من سائل على حزني يسأل؟ مهدت بالحزن وفرحت بما كتبت وذهب حزني لانني عبرت عليه ونجحت بالاستفادة ايها المعلم وحزنت وفرحت فتعلمت ان الحزن هو اني حزنت قبلما فرحت وثابرت1 نقطة
-
تخيّل أنك تعيش في قرية لا تتوفّر على شبكة مياه. تحتاج، للحصول على الماء، لأخذ سطل فارغ والذهاب إلى بئر وسط القرية وسحب المياه من البئر ثم العودة إلى المنزل. تعاود الكرة مرات عدّة في اليوم، حسب حاجتك للمياه. سيكون شرحُ ما تفعله بالتفصيل في كل مرة تُسأل فيها عن الأمر مضيعة للوقت؛ لذا بدلا من أن تقول “آخذ سطلا فارغا وأذهب إلى البئر وسط المدينة، ثم أسحب دلوا من الماء من البئر وأفرغه في السطل وأعود”، بدلا من ذلك تجيب اختصارا “أجلب الماء”. لقد أنشأت بهذه الإجابة دالة برمجية Function. تعريف الدوالّ الدالة هي كتلة من الأسطر البرمجية التي تنفّذ مجموعة من المهامّ وفق ترتيب محدَّد، مثلا: “آخذ السطل، أذهب إلى البئر، أسحب الماء منه وأعود”. تُعرَّف الدالة بالصياغة التالية: function functionName (parameters) { // نفّذ المهام هنا } function هي الكلمة المفتاحية التي تخبر جافاسكريبت أنك بصدد الإعلان عن دالة. functionName هو اسمُ الدالة. في المثال أعلاه فإن اسم الدالة يمكن أن يكون drawWater (اغرف الماء). يمكن أن يكون اسمُ الدالة أيا اسم تختاره ما دام يحترم شروط أسماء المتغيّرات، أي: أن يكون كلمة واحدة، أن يتكوّن فقط من حروف لاتينية (a-z, A-Z)، أرقام (0-9) أو علامة تسطير سفلي _. أن لا يكون كلمة محجوزة Reserved keywords في جافاسكريبت. المعاملات Parameters هي مجموعة من المتغيّرات تفصل بينها فاصلة لاتينية , تريد تعريفها للاستخدام داخل الدالة. المعاملات اختيارية ويمكن تعريف دالة دون معاملات. استخدام الدوالّ يمكن استخدامُ الدالة بعد تعريفها. تدلّ العبارات “استخدام الدالة”، “تنفيذ الدالة” أو “استدعاء الدالة” على الشيء ذاته. لاستدعاء الدالة نكتُب اسمَها متبوعا بقوسين (). في ما يلي مثال نعرّف فيه دالة باسم sayHello ثم نستخدمها: // تعريف الدالة function sayHello () { console.log('Hello world!') } // استدعاء الدالة sayHello() ينتُج عن تنفيذ الدالة بالطريقة المشروحة أعلاه طباعةُ العبارة Hello world. الإزاحة The indentation يجب إزاحة جميع الأسطُر البرمجية الموجودة في كتلة، أي تقع بين قوسين معكوفين {}، إلى اليمين. هذه الممارسة مهمّة جدا وتساعد في تسهيل قراءة الشفرة البرمجية وصيانتها، وتمكّنك بنظرة واحدة معرفة أن التعليمة console.log('Hello world') هي جزء من الدالة sayHello: function sayHello () { // تعليمة console.log أدناه مزاحة قليلا إلى اليمين وبالتالي فهي جزء من الدالة sayHello console.log('Hello world!') } يمكنك استخدام مسافتيْن (زر المسافة في لوحة المفاتيح مرتيْن) أو مفتاح الجدولة في لوحة المفاتيح Tab لإزاحة التعليمات في الشفرة. يفضّل بعض المطوّرين مفتاح الجدولة في ما يُفضّل آخرون المسافتين. استخدم أيهما تراه مناسبا، مع التأكد من استخدام نفس طريقة الإزاحة في كامل الشفرة. المعاملات تأخذ معظم الدوال معاملات، وهي عبارة عن سلسلة من المتغيّرات تفصل بينها فاصلة ,، تُعرَّف لتُستخدَم داخل الدالة. يمكنك تعريف معاملات بالعدد الذي تريد. function functionName(param1, param2, param3) { // نفّذ المهام هنا } تُسنَد القيم إلى المعاملات بتمريرها بين قوسين إلى الدالة في سلسلة تفصل بينها فاصلة ,. تُسمَّى القيم المُمرَّرة إلى الدالة بالمعطيات Arguments. يُسنَد المعطى الأول إلى المعامل الأول، والمعطى الثاني إلى المعامل الثاني وهكذا: functionName('arg1', 'arg2') فلنشرح الأمر أكثر بمثال. فلنقل إنك تريد تعريف دالة باسم sayName وظيفتها تسجيل الاسم الشخصي والاسم العائلي لشخص. تبدو الدالة بالشكل التالي: function sayName(firstName, lastName) { console.log('اسمك الشخصي هو ' + firstName) console.log('اسمك العائلي هو ' + lastName) } تُعرّف الدالة معاملين هما firstName وlastName. فلنفترض أن الاسم الشخصي هو “محمد” والاسم العائلي هو “عيسى”. لجعل الدالة تعمل على النحو المرغوب نمرّر لها المعطييْن محمد وعيسى كالتالي: sayName('محمد', 'عيسى') نحصُل بعد تنفيذ الدالة بالطريقة أعلاه على النتيجة التالية: اسمك الشخصي هو محمد اسمك العائلي هو عيسى عند تعريف معامل أثناء تعريف الدالة ثم استخدام الدالة دون تمرير معطيات فإن المعامل سيأخذ القيمة “غير معرَّف” undefined: sayName() النتيجة: // اسمك الشخصي هو undefined // اسمك العائلي هو undefined جملة إرجاع Return statement يمكن أن تحتوي الدوال على جملة إرجاع تتكوَّن من الكلمة المفتاحية return متبوعة بقيمة. function functionName () { return 'some-value' } عندما يجد مفسّر جافاسكريبت هذه الجملة فإنه يتوقّف عن تنفيذ التعليمات الموالية في الدالة ويُرجع قيمة (يمرّر القيمة المعنية إلى الشفرة التي استدعت الدالة): function get2 () { return 2 console.log('blah') // لن تُنفذ هذه التعليمة } const results = get2() console.log(results) // تُطبع القيمة 2، وهي القيمة المُرجَعة من الدالة // ملحوظة: لن تُطبَع القيمة 'blah' إن كانت الكلمة المفتاحية return متبوعة بعبارة بدلا من قيمة حرفية فإن مفسّر جافاسكريبت يحدّد نتيجة تنفيذ العبارة ثم يُرجِع القيمة الناتجة. تذكّر أن القيم التي يمكن لجافاسكريبت تمريرها هي إما أنواع أصلية (مثل سلاسل المحارف، الأعداد والقيم المنطقية) أو كائنات Objects (دوالّ، مصفوفات وكائنات). كلّ ما عدا ذلك يجب تقويمه (معرفة قيمته) قبل التمرير إلى الشفرة التي استُدعِيت فيها الدالة. تسلسل تنفيذ التعليمات عند استدعاء الدوال قد تكون الدوال صعبة الفهم على المبتدئين. سنرى، للتأكد من فهم الدوال تماما، مالذي يحدُث عند تعريف دالة واستدعائها. هذه المرة سنتناول كل خطوة على حدة. في ما يلي الشفرة التي سنعمل على تفكيك عملها: function add2 (num) { return num + 2 } const number = add2(8) console.log(number) // تطبع العدد 10 أولا وقبل كل شيء، نحتاج إلى تعريف الدالة قبل أن نتمكّن من استخدامها. يرى مفسّر جافاسكريبت في السطر الأول الكلمة المفتاحية function فيعرف أن الكلمة التي تليها، أي add2 هي اسم الدالة. بعد تعرّف المفسّر على اسم الدالة يتجاوز الشفرة الموجودة بين معكوفين التي تلي الاسم، لأنه حتى الآن لم يُطلب منه تنفيذ الدالة. في السطر التالي يجد المفسّر أننا عرّفنا متغيّرا ذا قيمة ثابتة اسمه number وأسندنا له القيمة add2(8). بما أن الطرف الموجود على يمين علامة الإسناد = هو دالة، فإن جافاسكريبت سيحتاج إلى تنفيذ الدالة قبل إسناد قيمتها إلى المتغيّر. يعيّن المفسّر القيمة 8 لتكون معطى للمعامل num في الدالة ويبدأ بتنفيذ الدالة. عند الدخول إلى كتلة الدالة (الشفرة بين قوسين معكوفين بعد اسم الدالة) يجد المفسّر أمامه الكلمة المفتاحية return متبوعة بعبارة num + 2، فيعرف أنه سيحتاج إلى معرفة نتيجة العبارة قبل الخروج من الدالة. بما أن قيمة num هي 8 فإن num + 2 يجب أن تساوي 10. عرف المفسّر الآن قيمة العبارة num + 2 ويمكنه بالتالي إرجاع القيمة المُتحصَّل عليها إلى الشفرة التي استدعت الدالة. فيضع القيمة المرجعة مكان الدالة فتُصبح 10 مكان add2(8). يُنشئ المفسّر، بعد اكتمال تنفيذ الطرف الأيمن من عملية إسناد المتغيّر والحصول على نتيجتها، متغيّرا بالاسم المذكور number ويعطيه القيمة 10. هكذا يُقرأ تسلسل تنفيذ التعليمات في الدوال. رفع الدوال Hoisting تُنقَل الدوال تلقائيا عند تعريفها بالطريقة التي رأيناها سابقا إلى أعلى الشفرة البرمجية. بمعنى أن طريقتيْ التعريف والاستخدام التاليّتيْن متكافئتان تماما: function sayHello () { console.log('Hello world!') } sayHello() // تُحوّل الشفرة التالية عند التنفيذ تلقائياإلى الشفرة أعلاه sayHello() function sayHello () { console.log('Hello world!') } قد يؤدّي الرفع التلقائي للدوال إلى الإرباك؛ لذا من المناسب تعريف الدوال دائما قبل استخدامها. تعريف الدوال بعبارات الدوال Function expressions توجد طريقة ثانية لتعريف الدوال، وهي عبارات الدوال. يُعرَّف في هذه الحالة متغيّر ويُسنَد إلى دالة غير مسمّاة (دالة مجهولة الاسم Anonymous funvtion) const sayHello = function () { console.log('This is declared with a function expression!') } ينبغي الانتباه إلى أن الدوال المُعرَّفة بعبارات لا تُنقَل تلقائيا إلى أعلى الشفرة. تُنتج الشفرة التالية خطأ: sayHello () // Error, sayHello is not defined const sayHello = function () { console.log('this is a function!') } تُستخدَم الدوال المُعرَّفة بعبارات كثيرا في توابع الكائنات Object methods وفي الدوالّ السهمية Arrow functions. خاتمة الدالة هي كتلة من التعليمات البرمجية تنفَّذ وفق ترتيب محدَّد على منوال: خذ سطلا فارغا، اذهب إلى البئر، اسحب الماء ثم عُد إلى المنزل. تُستدعى الدالة بإضافة قوسين () بعد اسمها. يمكنك عند استدعاء الدالة إضافة معطيات جديدة بذكرها بين القوسين مفصولة بفاصلة ,. يمكن لكلّ دالة أن تحوي جملة إرجاع تعيد قيمة إلى الشفرة التي استُدعِيت منها. يُفضَّل دائما تعريف الدوال قبل استخدامها. ترجمة - بتصرّف - للمقال Understanding JavaScript Functions لصاحبه Zell Liew.1 نقطة