اذهب إلى المحتوى
  • 0

كيفية تطوير مهارة البحث الاحترافي.

Muhannad Abbara

السؤال

السلام عليكم

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

وهذه المفاهيم مثل : Prototype , Inheritance , Promise object.....

في الواقع كل ما أبدأ البحث عن مفهوم ما ينتهي بي المطاف في موسوعة حسوب اقرأ تعريف JavaScript وبنيتها واخرج بعدها |:

  1. اولا هل موسوعة حسوب تكفي وحدها لكي اعتمد عليها حاليا ومستقبلا؟
  2. لقد سمعت كثيرا عن مهارة البحث الاحترافي في Google ولكن لا اعلم كيف ابدأ بتعلمها , هل يتم تعلمها بكورس ام مقالات ام هي مجرد ممارسة وخبرة متراكمة؟

شكرا لكم

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0
بتاريخ 2 دقائق مضت قال Muhannad Abbara:
  • اولا هل موسوعة حسوب تكفي وحدها لكي اعتمد عليها حاليا ومستقبلا؟

نعم هي كافية بدرجة كبيرة بالنسبة لـ JavaScript ويمكنك الاعتماد عليها تماما إن كنت تريد موسوعة عربية وهي الافضل في الساحة العربية.

والموسوعة في تطور مستمر ويتم تحديثها باستمرار.

بتاريخ 6 دقائق مضت قال Muhannad Abbara:
  1. لقد سمعت كثيرا عن مهارة البحث الاحترافي في Google ولكن لا اعلم كيف ابدأ بتعلمها , هل يتم تعلمها بكورس ام مقالات ام هي مجرد ممارسة وخبرة متراكمة؟

نعم بالفعل يوجد مثل هذه الدورات والكورسات ويمكنك الوصول إليها عبر الانترنت وإن كنت شخصياً افضل قراءة التوثيق المقدم من support.google وهو يتوفر باللغة العربية.

يمكنك الوصول إليه من هنا

وإذا كنت تحاول الوصول إلى شرح لفكرة معينة من الدورة فيمكنك البحث في محرك البحث الخاص بالأكاديمية نفسها وقد تجد مقالاً او اكثر يتحدث عن الفكرة التي تحاول فهمها وهذه مجموعة من المقالات الموجودة بالفعل على الأكاديمية والتي تناقش المفاهيم التي ذكرتها

أما بالنسبة للمواضيع التي تحدثت عنها فهذه بعض المقالات التي قد تفيدك فيها :

 

وبالنسبة للـ inheritance و الـ  Prototype :

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 21 دقائق مضت قال Muhannad Abbara:

اولا هل موسوعة حسوب تكفي وحدها لكي اعتمد عليها حاليا ومستقبلا؟

موسوعة حاسوب هي الأفضل عربياً  وغنية بكم كبير من المعلومات ويمكنك الاعتماد عليها 

بتاريخ 25 دقائق مضت قال Muhannad Abbara:

لقد سمعت كثيرا عن مهارة البحث الاحترافي في Google ولكن لا اعلم كيف ابدأ بتعلمها , هل يتم تعلمها بكورس ام مقالات ام هي مجرد ممارسة وخبرة متراكمة؟

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

ومنها :

  1. استخدام علامة (+) أو كلمة (AND) عند البحث عن كلمتين متتاليتين لهما علاقة ببعض.
  2. استخدام علامة (-) عند البحث عن كلمة معينة مرتبطة بكلمة أخرى مع رفبتنا في البحث عن الكلمة الأولى فقط. في هذه الحالة سيقوم باستثناء الكلمة الثانية.
  3. استخدام علامة (-) عند البحث عن كلمة معينة مرتبطة بكلمة أخرى لكننا نرغب في البحث عن الكلمة الأولى فقط. في هذه الحالة سيقوم باستثناء الكلمة الثانية.
  4. استخدام (OR) عند البحث عن كلمتين أو جملتين ليسوا مع بعضهما البعض.
  5. استخدام كلمة (:site) عن البحث عن موضوع معين داخل موقع معين.
  6. استخدام (*) في حالة عدم تذكر كلمة من الكلمات التي نبحث عنها.
  7. استخدام (+time) حين نريد أن نعرف التوقيت المحلي الخاص بكل دولة.
  8. استخدام filetype عند البحث عن شئ بصيغة معينة على هيئة ملفات pdf أو برامج word.
  9. استخدام (Google scholar) عند البحث عن مقالات وأبحاث علمية بحتة ومصادر مختلفة.

انظر هذا الرابط للمزيد من النصائح: https://support.google.com/websearch/answer/134479?hl=ar

وبالنسبة للمواضيع التي تتحدث عنها فهي ببساطة كالتالي:

  • Prototype هو آلية في JavaScript تسمح بإضافة وتعديل الخصائص والأساليب على كائن موجود مسبقًا. كل كائن في JavaScript لديه خاصية prototype التي تمكن المطورين من إضافة خصائص جديدة إليه. عندما يتم البحث عن خاصية في كائن، يتم البحث في خصائص الكائن أولا، وإذا لم يتم العثور عليها، فسيتم البحث في prototype الخاص به.

 

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

 

  • Promise Object هو كائن في JavaScript يتم استخدامه للتعامل مع العمليات الغير متزامنة، مثل الطلبات من الخادم أو العمليات الحسابية الثقيلة. يتم استخدام promise لتنظيم تدفق العمليات، حيث يمكن تحديد ما يجب القيام به بعد الانتهاء من العملية. يمكن استخدام then() لتحديد الإجراءات التي يجب القيام بها بعد الانتهاء من العملية، و catch() للتعامل مع الأخطاء التي قد تحدث أثناء العملية.
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

بالنسبة لأول سؤال.

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

من الأدوات التي يمكن استخدامها لتعلم المفاهيم البرمجية والحصول على معلومات موثوقة هو محرك البحث جوجل. يمكنك البحث عن المفاهيم التي تريد تعلمها باستخدام كلمات مفتاحية مثل "JavaScript Prototype"، "JavaScript Inheritance" أو "JavaScript Promise Object" والتعرف على مصادر متعددة مثل مقالات، دروس فيديو، كتب، وأكثر.

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

بالنسبة للسؤال الثاني.

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

  • تحديد المصادر الموثوقة: عند البحث عن معلومات تقنية، يجب عليك الاعتماد على مصادر موثوقة ومعتمدة مثل المواقع الرسمية للشركات والمؤسسات التقنية، والمنتديات الخاصة بالمجال التقني، والمواقع العلمية والأكاديمية.
  • استخدام الأدوات الصحيحة: يجب عليك الاستفادة من الأدوات المتاحة للبحث مثل محركات البحث، وقواعد البيانات، والمكتبات الرقمية، وتعلم كيفية استخدامها بشكل فعال.

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

  • البحث عن الكلمات المفتاحية: يجب عليك تحديد الكلمات المفتاحية المناسبة لموضوع البحث الخاص بك، والتي تساعدك على الوصول إلى المعلومات المناسبة.
  • تحليل النتائج: يجب عليك تحليل النتائج التي تحصل عليها من البحث، والتأكد من صحتها وموثوقيتها.
  • استخدام اختصارات البحث: استخدم العلامات المفيدة أثناء البحث، مثل and و or وعلامات التنصيص.

وإليك أمثلة:

  1. عند البحث عن كلمتين متتاليتين لهما علاقة ببعض يمكن استخدام العلامة (+) أو الكلمة (AND).
  2. عند البحث عن كلمة معينة مرتبطة بكلمة أخرى مع الرغبة في البحث عن الكلمة الأولى فقط يمكن استخدام العلامة (-)، وفي هذه الحالة سيقوم بإستثناء الكلمة الثانية.
  3. إذا كنت تريد البحث عن كلمة معينة مرتبطة بكلمة أخرى ولكنك تريد البحث عن الكلمة الأولى فقط، يمكنك استخدام العلامة (-)، وفي هذه الحالة سيقوم بإستثناء الكلمة الثانية.
  4. عند البحث عن كلمتين أو جملتين ليستا مرتبطتين ببعضهما يمكن استخدام (OR).
  5. عند البحث عن موضوع معين داخل موقع معين، يمكن استخدام الكلمة (:site).
  6. في حالة عدم تذكر كلمة من الكلمات التي نبحث عنها، يمكن استخدام العلامة (*).
  7. عندما نريد معرفة التوقيت المحلي الخاص بكل دولة، يمكن استخدام (+time).
  8. عند البحث عن شئ بصيغة معينة على هيئة ملفات pdf أو برامج word، يمكن استخدام كلمة (filetype).
  9. عند البحث عن مقالات وأبحاث علمية بحتة ومصادر مختلفة، يمكن استخدام (Google scholar).
  • التدريب والممارسة: تعتبر مهارة البحث الاحترافي مهارة تتطلب تدريبا وممارسة مستمرة. عندما تبدأ في البحث عن أي مفهوم جديد، يجب عليك أن تكون على دراية بالمصادر التي يمكنك الاعتماد عليها، وتشمل ذلك المواقع والمنتديات والمدونات التي تحتوي على المعلومات المفيدة. يمكنك الاعتماد على مواقع مثل Stack Overflow وMDN Web Docs وW3Schools وغيرها من المصادر الموثوقة لتعلم البرمجة والويب.

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

بالنسبة للتدريب الفعلي

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

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

بالنسبة للمفاهيم البرمجية التي تريد استيعابها

Prototype:

Prototype هو عبارة عن خاصية في جافاسكريبت تُستخدم لإضافة خصائص جديدة إلى كائن موجود. وعندما يتم إضافة خاصية جديدة إلى الـ prototype ، فإنها تصبح متاحة لجميع الكائنات المشتقة من نفس الكائن الأصلي.

مثال:

function Animal(name) {
  this.name = name;
}

Animal.prototype.getName = function() {
  return this.name;
};

let dog = new Animal('Rex');
console.log(dog.getName()); // الإخراج: 'Rex'

سأشرح لك المزيد لأهمية ذلك المفهوم في جافا سكريبت.

في جافاسكريبت، كل شيء هو Object، ويمكننا إنشاء Object جديدة باستخدام الكلمة الرئيسية "new". وعند إنشاء Object جديدة، فإنه يتم إنشاء سلسلة من الـPrototype objects التي تتشارك فيما بينها بالمعلومات.

ببساطة، Prototype هو عبارة عن Object template يتم استخدامه لإنشاء Object جديدة. ويحتوي Prototype على خصائص وأساليب (methods) يتم مشاركتها بين جميع الObjects التي تم إنشاؤها باستخدام الـPrototype نفسه.

على سبيل المثال، لنفترض أن لدينا Object template يسمى "Person" يحتوي على الخصائص name و age و methods تستخدم لطباعة البيانات الخاصة بـ Person. يمكننا إنشاء Object جديدة باستخدام الـPrototype "Person" كالتالي:

// إنشاء Prototype
let Person = function(name, age) {
  this.name = name;
  this.age = age;
}

Person.prototype.printInfo = function() {
  console.log("My name is " + this.name + " and I am " + this.age + " years old.");
}

// إنشاء Object جديدة باستخدام الـPrototype "Person"
let person1 = new Person("Ahmed", 25);
person1.printInfo(); // "My name is Ahmed and I am 25 years old."

هنا، تم إنشاء Prototype جديد "Person" يحتوي على خصائص name و age، بالإضافة إلى method "printInfo" الذي يقوم بطباعة بيانات الـPerson. وتم إنشاء Object جديد باستخدام الـPrototype "Person" باستخدام الكلمة الرئيسية "new"، وتم استخدام method "printInfo" الموجود في الـPrototype لطباعة بيانات Object الجديدة.

Inheritance:

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

مثال:

function Animal(name) {
  this.name = name;
}

Animal.prototype.getName = function() {
  return this.name;
};

function Dog(name, breed) {
  Animal.call(this, name);
  this.breed = breed;
}

Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;
Dog.prototype.getBreed = function() {
  return this.breed;
};

let dog = new Dog('Rex', 'German Shepherd');
console.log(dog.getName()); // الإخراج: 'Rex'
console.log(dog.getBreed()); // الإخراج: 'German Shepherd'

Promise object:

Promise object هو عبارة عن كائن في جافاسكريبت يتم استخدامه لإجراء أنشطة غير متزامنة (asynchronous)، مثل الاستدعاءات الخادم والعمليات الطويلة الأخرى. ويعد Promise object واحدًا من أساليب تحسين أداء التطبيقات في جافاسكريبت.

مثال:

function getData() {
  return new Promise(function(resolve, reject) {
    setTimeout(function() {
      resolve('Data is fetched!');
    }, 2000);
  });
}

getData()
  .then(function(data) {
    console.log(data); // الإخراج: 'Data is fetched!'
  })
  .catch(function(error) {
    console.error(error);
  });
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يجب عليك إتقان مهارة البحث وتقليل الوقت اللازم لتحديد المعلومات التي تبحث عنها. إليك بعض النصائح  حول كيفية استخدام Google كمطور برامج

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...