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

Hikmat Jaafer

الأعضاء
  • المساهمات

    678
  • تاريخ الانضمام

  • تاريخ آخر زيارة

كل منشورات العضو Hikmat Jaafer

  1. مرحباً , تعتمد إجابتي على السياق الذي ترغب في العمل به ونوع الوظيفة التي تسعى للحصول عليها. العمل الحر Freelancing: في حالة العمل الحر، يمكنك استخدام Laravel بمفرده لتطوير تطبيقات الويب بشكل كامل دون الحاجة إلى إطار عمل واجهة مستخدم مثل React أو Vue. Laravel يوفر جميع الأدوات والميزات التي تحتاجها لتطوير تطبيقات الويب بسلاسة وفعالية. ومع ذلك، قد تحتاج أحيانًا إلى تكنولوجيا واجهة مستخدم مثل HTML وCSS وJavaScript لتصميم واجهة المستخدم بشكل جيد. البحث عن وظيفة: في حالة البحث عن وظيفة كمطور ويب، فإن معرفة إطار عمل واجهة مستخدم مثل React أو Vue بالإضافة إلى Laravel سيكون لها قيمة كبيرة. الشركات غالبا ما تبحث عن مطورين ويب يمتلكون مهارات في عدة تقنيات وأدوات، والتعرف على إطار عمل واجهة مستخدم يمكن أن يجعلك مرشحًا أكثر جاذبية لأنواع مختلفة من الوظائف. React و Vue يتيحان لك بناء واجهات مستخدم متقدمة وديناميكية بشكل فعال وسريع، ويعتبران من أحدث التقنيات المستخدمة في تطوير الويب. لذلك، التعرف على واحد أو كليهما قد يفتح لك فرصا أكبر في سوق العمل. كجواب مختصر , يمكنك استخدام Laravel بمفرده للعمل الحر، ولكن إذا كنت تبحث عن وظيفة في مجال تطوير الويب، فمن المفيد أيضًا تعلم إطار عمل واجهة مستخدم مثل React أو Vue لزيادة فرصك في الحصول على وظيفة جيدة. ويمكنك الإطلاع على هذه الأسئلة والتعليقات ذات صلة بموضوعك
  2. الجميع يشعرون بذلك الشعور في البداية و لكن مع الصبر و المتابعة والاستمرار يتلاشى هذا الشعور, ماعليك سوى التركيز مع المدرب الذي يشرح الدرس و محاولة تطبيق ماتعلمته و عندها ستعرف ماهي المشاكل التي تواجهها و الأشياء التي لم تفهمها وتستطيع السؤال عن أي مشكلة تواجهك أو أي نقطةلم تفهمها و ستجد من يوجهك و يوضح لك الأمور.
  3. نعم , ربما عند تعلم البرمجة في البداية سوف تواجه عدة أمور وبعضها سوف يتضح مع التقدم في التعلم ومشاكل أخرى يكون سببها خطأ في مسيرك العلمي , مثلا مفاهيم فكرتها واضحة لكن لا تستطيع كتابتها في البرمجة , أو صعوبة تذكر ما تعلمته , أو عدم معرفة كيف تبدأ بحل مشكلة تواجهك وكيف تفكر في حل برمجي , أو ما هي اللغة التي يتوجب عليي تعلمها , أو تعلمت العديد من اللغات لكن لا استطيع برمجة برنامج مفيد وتطبيق عملي ... والعديد من الاسئلة والمشاكل التي ربما تواجه مسيرك في التعلم . لكن إذا قمت بتحديد هدفك ومجال من البرمجة تريد تعلمه وتحديد الهدف المراد الوصول له فسوف يكون من السهل عليك تجاوز العقبات . ويجب عليك إتباع خطوات التعلم الموصى بها من قبل المدربين والطورين أصحاب الخبرة , أفضلها هي تطبيق ما تعلمته باستمرار والمتابعة تماماً مع المدرب . هذه أسئلة قام أخرون بطرحها في نفس الموضوع , بإمكانك الإطلاع عليها والاستفادة منها
  4. لتحقيق طلبك، يجب إجراء بعض التعديلات على الكود. هنا هو الكود المعدل: import java.io.*; import java.net.*; public class Server { public static void main(String args[]) { new Server().go(); } public void go() { try { ServerSocket server = new ServerSocket(8081); while (true) { Socket socket = server.accept(); BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); int choice = Integer.parseInt(br.readLine()); System.out.println("Received choice: " + choice); if (choice == 1) { File fileToDelete = new File("clientcopy.class"); if (fileToDelete.delete()) { System.out.println("File (clientcopy.class) deleted successfully."); } else { System.out.println("Unable to delete the file."); } } else { FileOutputStream out = new FileOutputStream(new File("clientcopy.class")); int ch; while ((ch = br.read()) != -1) { out.write(ch); } out.flush(); System.out.println("File (clientcopy.class) received and saved on the server."); out.close(); } socket.close(); } } catch (IOException e) { e.printStackTrace(); } } } تم تحويل الـ BufferedReader من System.inإلى socket.getInputStream() لقراءة الرقم الذي يرسله العميل. وبعد ذلك، يتم طباعة الرقم الذي تم استلامه في الترمينال الخاص بالخادم.
  5. مرحباً , نعم يمكنك ذلك من خلال توفير APIs في كل منهما , لكن سوف تحتاج لتعتمد على واحدة منهم كلغة اساسية لمشروعك . أيضاً إذا كنت تريد بناء تطبيق اعتيادي وليس معقد فربما لا تحتاج إلى الدمج بين اللغتين , وفي أغلب الأحيان إن لم تكن جميعها سوف تحتاج إلى استخدام لغة واحدة منهم فقط . لكن ربما تحتاج في بعض التطبيقات المعقدة والكبيرة إلى دمج بين اللغتين لتوفير جودة أفضل من خلال الاستفادة من ميزات اللغتين . هذا مثال حصل معي أضطررت إلى استخدام Python مع مشروع أخر مبني بلغة أخرى : لدينا مشروع كبير جداً , يتضمن CRM و ERP و عدة خصائص أخرى معقدة , وقد طلب من الفريق تنفيذ نظام محادثة مع مركز الدعم لكن يجب أن تكون المحادثة بالبداية مع روبوت ذكاء اصطناعي , في حال لم يستطيع الروبوت من تنفيذ طلبات العميل سيقوم الروبوت بتحويل المحادثة إلى مركز الدعم . في مثل هذه الطلبات سيكون من الصعب تطبيق ذكاء اصطناعي بلغة غير بايثون ( سيكون بايثون الافضل لمثل هذه الأمور ) , ولا يمكننا تغيير المشروع بأكمله ل python django من أجل هذا الطلب . فما قمنا به هو : برمجة تطبيق ذكاء اصطناعي في لغة بايثون بشكل منفصل ومن ثم قمنا بتوفير APIs للتواصل مع الذكاء الاصطناعي أخيراً قمنا بربط الذكاء الاصطناعي في مشروعنا من خلال APIs. بهذه الطريقة قد استفدنا من ميزات لغة مع لغة أخرى .
  6. وعليكم السلام , كمطور Frontend ضمن المشروع فأنت لست بحاجة ل Next Auth ... بل سيتم تطبيق مثلها تمام من قبل مطور Backend باستخدام Laravel في مشروعك . ما سوف تقوم بتنفيذه هو مشابه للخطوات التالية تماماً : أولاً تقوم بتصميم صفحة تسجيل دخول ببريد إلكتروني وكلمة السر. ثانياً تقوم بطلب Api الذي سوف يتم توفيره من قبل مطور Backend في مشروعك. في حال كانت بريد الالكتروني و كلمة السر متطابقين , سوف يقوم api بإرجاع token تقوم بحفطه في cookies او local storage مثلاً . سوف تقوم باستخدام token الموجود في local storage لتنفيذ طلبات APIs الأخرى ( مثلا dashboard ). هذا مثال عملي يوضح آلية العمل ككود : import { useState } from 'react'; import Router from 'next/router'; import axios from 'axios'; export default function Login() { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const handleSubmit = async (e) => { e.preventDefault(); try { const response = await axios.post('/api/login', { email, password, }); const { token } = response.data; localStorage.setItem('token', token); Router.push('/dashboard'); } catch (error) { console.error('Login failed:', error); } }; return ( <div> <h1>Login</h1> <form onSubmit={handleSubmit}> <input type="email" placeholder="Email" value={email} onChange={(e) => setEmail(e.target.value)} /> <input type="password" placeholder="Password" value={password} onChange={(e) => setPassword(e.target.value)} /> <button type="submit">Login</button> </form> </div> ); }
  7. مرحبا أسد, من الممكن أن تكون المشكلة في VPN , أو مشكلة في الانترنت ,أو قد منعت المجلد من الوصول للانترنت وتثبيت الحزم باستخدام برامج اخرى . جرب الحلول التالية : تغيير موقع IP من VPN ( أو إلغاء VPN ). تحقق من الاتصال الانترنت. تحقق من عدم وضع أي قيود على المستخدم او المجلد او القرص من الوصول الى الانترنت. قم بفتح cmd ك administrator . جرب تثبيت المشروع في مجلدات اسمائها لا تحتوي على فراغات , قد تكون المشكلة من استخدام الفراغات في اسماء المجلدات , مثلاً جرب تثبيت المشروع في العنوان التالي : C:\Users\bdalh\Desktop\login_test
  8. فكرتك لاستخدام ملف الـ Print Spooler و Print Spooler API صحيحة، هنا مثال بسيط يوضح كيفية قراءة الملفات المطبوعة باستخدام Node.js و child_process: const { exec } = require('child_process'); // تعيين المسار الذي يحتوي على ملفات الطباعة المؤقتة const printSpoolerPath = 'C:\\Windows\\System32\\spool\\PRINTERS'; // قراءة الملفات المطبوعة exec(`dir /b ${printSpoolerPath}`, (error, stdout, stderr) => { if (error) { console.error(`حدث خطأ: ${error.message}`); return; } if (stderr) { console.error(`خطأ: ${stderr}`); return; } console.log(`الملفات المطبوعة: ${stdout}`); }); هذا مثال بسيط و عليك أن تبحث في الوثائق أكثر و تتعمق أكثر لتنفيذ المزيد من الوظائف مثل حذف الوظائف المطبوعة أو الوصول إلى المزيد من المعلومات المتعلقة بالطباعة.
  9. يمكنك فعل ذلك بطريقة بسيطة جدا وهي أن تقوم بتعريف تاريخ اليومو من ثم تقوم بإنقاص 1 منه, ولكن باستخدام التوابعالخاصة بالكائن Date // الحصول على تاريخ اليوم var today = new Date(); // الحصول على تاريخ الأمس var yesterday = new Date(); yesterday.setDate(today.getDate() - 1);//هنا وضعنا تاريخ الأمس على أنه هو تاريخ اليوم منقوصا منه 1 console.log("تاريخ اليوم: " + today); console.log("تاريخ الأمس: " + yesterday); و هنا تابعsetDate هومن سيتولى أمر معالجة الحالات الحدية كأن يكون اليوم هوأخر يوم في الشهر أو في السنة أو أن السنة كبيسة ...الخ
  10. مرحباً , يمكنك حل مسائل من عدة أنواع تعتمد على الخوارزميات , أيضاً هذه المهارة تأتي عند تنفيذ عدة مهام ومشاريع وتزيد خبرتك يوماً بعد يوم . مثلاً هناك مسائل تتعلق بخوارزميات الفرز , مسائل أخرة تتعلق بالتفكير المنطقي , أو مسائل تتعلق بالمصفوفات والقوائم وغيره , أو مسائل تتعلق بالنجوم . في بايثون , مثلاً قم بتنفيذ تابع تمرر له أبعاد مثلث ومن ثم تمرر كم مثلث بداخله , ويقوم التابع برسم هذا المثلث والمثلثات الأخرى بداخله بشكل منتظم , هذا يعتمد على تفكير برمجي واستخدام عدة امور في بايثون ومكتباتها . إليك هذه الأسئلة والتعليقات تساعدك بشكل فعلي في تحسين مهارات Problem solving
  11. وعليكم السلام, أجمعين ان شاء الله تسعير العمل في مجال البرمجة وتطوير الويب يمكن أن يكون تحديًا، خصوصاً عندما تواجه تحديات مثل عدم تقدير العملاء لقيمة الخدمة التي تقدمها. بإمكانك في البداية تحليل السوق , أي قم ببحث عن الأسعار المعتادة لخدمات البرمجة في سوقك المحلي أو العالمي. هل تجد أن أسعارك متوافقة مع المتوسط أم أنها أعلى أو أقل؟ ثم قم بوضع السعر المناسب لهذا المشروع . في البداية ربما تجد صعوبة في إقناع العملاء بقيمة الخدمة , بالنسبة لي عندما أواجه مثل هذه الأمور فغالباً أوضح الخبرات اللازمة لتنفيذ المشروع ومدى خبرتي في هذه الأمور , إضافة للوقت والجهد المطلوب . لأن كثير من العملاء لا تعلم كم يحتاج للخبرة والوقت. أو بعض الأحيان أتجاهل العروض البسيطة , مثل متجر إلكتروني متكامل ب50 دولار. يمكنك أيضاً إتباع نظام الساعات , لكن بعض الأحيان لا تكون مجدية , بسبب رؤية العميل لتكلفة ساعة لخبير أكثر بكثير من مبرمج متوسط الخبرة. بالنسبة لي , أقوم بحساب المدى الزمنية , ومن ثم الخبرة المطلوبة لان بالطبع اذا كنت قادر على تنفيذ شيء من الصعب إيجاد شخص أخر يمكنه تنفيذه فهذه ميزة تستحق الدفع من أجلها أيضاً .
  12. بالنسبة للربح من خلال الانترنت فهناك عدة طرق يمكنك من خلالها الربح , لاتقتصر عملية الربح على مجال البرمجة وتقديم المنتجات البرمجية فقط ومن هذه الطرق: العمل الحر: وهي طريقة تعتمد على تقديم خدمات أو منتجات مقابل أجر، ويمكن أن تكون هذه الخدمات متنوعة للغاية، مثل كتابة المقالات أو تصميم المواقع الإلكترونية أو تقديم الاستشارات. التجارة الإلكترونية: وهي طريقة تعتمد على بيع المنتجات أو الخدمات عبر الإنترنت، ويمكن أن تكون هذه التجارة من خلال موقع إلكتروني خاص بك أو من خلال منصة تجارة إلكترونية مثل أمازون أو سوق.كوم. التسويق بالعمولة: وهي طريقة تعتمد على الترويج لمنتجات أو خدمات الآخرين مقابل عمولة على كل عملية بيع تتم من خلالك. صناعة المحتوي: وهي طريقة تعتمد على إنشاء محتوى إعلامي أو ترفيهي أو تعليمي، ويمكن نشر هذا المحتوى على موقع إلكتروني أو قناة على YouTube أو منصات التواصل الاجتماعي. ولكن يجب العلم أن هذه الطرق أو المجالات تحتاج إلى تعلم وجد في العمل وقليل من الصبر لإنها تعتمد علي مهاراتك ومدى معرفتك بالأساسيات, بحيث يعتبر الامر استثمار في الذات والوقت علي امل الحصول علي نتائج مرضية فىما بعد. و إذا كنت تريدين التخصص في مجال البرمجة فعليكي أن تعلمي أن الأمر يحتاج لجهد و متابعة مستمرة , وستواجهين صعوبات في البداية و لكن يمكنك تخطيها بسهولة بالتفكير المنطقي و سؤال المدربين ذوي الخبرة. و لكي تحصلي على عمل فيجب أن تكسبي الخبرة في البداية لكي يقبل أصحاب المشاريع توظيفك و الخبرة تتطلب منك القيام بالعديد من المشاريع المتنوعة, و يجب أن تقومي ببناء معرض أعمال لك لتعرضيه على أصحاب المشاريع ليعاينوه و يأخذو نظرة عن أعمالك و مستوى خبراتك. عند قراءتك لهذه الأمور قد تشعرين باليأس لكن لا تقلقي فهذه الأمور ليست صعبة أو مستحيلة و لكن تتطلب منك التركيز و الاستمرار و أن تسيري في المجال بطريقة منهجية إن سرت خطوة خطوة و بشكل صحيح فستنجحين في كل تلك الأمور و ستحصلين على عمل فيما بعد. و في البداية عليك أن تحددي المجال الي تريدين التخصص فيه فهناك الكثير من المجالات,منها تطبيقات الجوال و تطبيقات الويب و الخ... و بعد أن تحددي المجال يمكنك أن تحددي الدورة التي تحتاجينها , ولكن إذا كنت مبتدئة في البرمجة فاختاري دورة علوم الحاسوب كما أشار عليك السيد حمزة و هذا المقال يمكنك قراءته للاستفادة أكثر عن كيفية البداية.
  13. عندما تكمل دورة تدريبية، فأنت تحصل على شهادة تثبت أن لديك هذه المهارات والخبرات. يمكن أن تساعدك هذه الشهادة في جذب انتباه أصحاب العمل وإثبات أنك مرشح مناسب للوظيفة. ومع ذلك، فإن إتمام الدورة التدريبية لا يضمن لك العثور على عمل. هناك عوامل أخرى تؤثر على فرصك في العثور على عمل، مثل سوق العمل ومهاراتك وخبراتك وقدراتك على التواصل. هناك خطوات عامة يمكنك إتباعها لتزي فرصك في الحصول على عمل بعد إتمام الدورة , مثل : بناء معرض أعمال بتطبيقات متفاوتة الصعوبة ومتنوعة لتتمكن من جذب أصحاب مشاريع مختلفي التخصص . معرفة مكتبات وما يحتاجه اصحاب المشاريع والشركات في الوقت الحالي , وفي المستقبل . و يمكنك الاطلاع على الإجابة التالية للمزيد كيفية الحصول على عمل بعد الإنتهاء من الدورة
  14. بالإضافة إلى ماذكر في التعليق السابق يمكنك أن تقومي بتطوير تطبيقات صغيرة من ابتكارك لتطبيق ماتعلمتيه و عندها ستجدين المشكلات و الثغارات التي لديك وستتركز المفاهيم في ذهنك أكثر. و عند عدم فهمك لأمر ما تستطيعين السؤال عنه أسفل الدرس الخاص به. بالإضافة إلى ذلك أيضا تستطعين متابعة تعليقات الطلاب و الحلول التي تقدم لهم لتستفيدي منهم و تتجنبي الوقوع في تلك المشكلات و تعززي الفهم لديك.
  15. بالنسبة لما إذا كان ينصح باستخدام هذه المواقع، فذلك يعتمد على الميزات و الخدمات التي تقدمها تلك المواقع, و على إجراءات الأمان و السلامة التي تحمي بياناتك و بيانات عملائك , وهل يتوفر دعم فني متاح عند الحاجة و هل يقدمون وثائق وموارد تساعدك في استخدام الخدمة بشكل صحيح. الفرق الرئيسي بين استخدام تلك المواقع واستخدام خدمة ميتا هو المستوى الأعلى من الدعم والمرونة الذي توفره شركة ميتا. إذا كنت تحتاج إلى امتيازات محددة أو دعم مخصص أو تكامل أعمق مع WhatsApp، فسيكون التعامل مع شركة ميتا هو الخيار الأفضل. و بالنهاية الأمر يعتمد على احتياجاتك فقم بتحديد ماتريد لتستطيع الاختيار . هذه بعض المواقع التي تقدم الخدمة انظر إلى خدماتها و قارن بينها : Twilio Nexmo MessageBird Infobip
  16. لم تعد العمليات الثنائية اليوم تستخدم بكثرة بسبب التطور الكبير في البرمجة و في اللغات المستخدمة و لكنهامفيدة في بعض الأحيان فلذلك عليك معرفتها في حال احتجتها مستقبلا و هذا شرح بسيط عن بعض فوائدها: مفيدة كثيرًا، إذا كنت تقوم بالبرمجة ذات المستوى المنخفض على الأنظمة المدمجة. ال bitwise مفيدة في تحسين الأداء و زيادة السرعة, على سبيل المثال قسمة عدد ما على عدد أخر من قوى العدد 2 تستغرق وقتا أكثر بكثير من إجراء العملية باستخدام الbitwise ,حيث أننا باستخدام ال bitwise نقوم بإزاحة البتات بهذه القوة ونحصل على نفس النتيجة بسرعة أكبر فهنا نحن فقط نقوم بتغيير تمثيل البتات. و قد لاتحتاجها أبدا أثناء مسيرتك المهنية فهذا يعتمد على مجال عملك و المشكلات التي تواجهها.
  17. إن استخدام الوراثة المتعددة يمكن أن يؤدي إلى تعقيدات في تصميم البرنامج وفهمه.و يمكن أن يتسبب في تضاربات في الأساليب و الصفات الموروثة، مما يستلزم معالجة خاصة لحل هذه التعارضات. و لذلك يجب أن نأخذ بعين الاعتبار : التصميم المناسب:يجب التخطيط الجيد للهيكلية و الترتيب الصحيح للصفوف و تجنب التعارضات و التضاربات في الأساليب و الصفات الموروثة, والتأكد من تنظيم الصفوف بطريقة تجعل الهيكل سهل الفهم والصيانة. مثال بسيط على التضارب الذي قد يحصل:ليكن لدينا ثلاث صفوف A و B و C الصف A هو الصف الأساسي و الصفان B و C يرثان منه كالتالي: class A: def method(self): print("Method from class A") class B(A): def method(self): print("Method from class B") class C(A): def method(self): print("Method from class C") والأن لنقم بإنشاء صف جديد وليكن D يرث من B و C معا و بالتالي سيرث التابع method مرتين مرة من C و مرة من B, فإذا قمنا باستدعاء التابع من الصف D كالتالي: class D(B, C): pass d = D() d.method() أي method منهما سيستدعي , هل سيستدعي الmethod الخاصة بالبصف B أم الخاصة بالصف C,هنا سنحصل على خطأ. ولحل هذا التعارض عن طريق تغيير اسم التابع في كل B و C كالتالي: class B(A): def method_b(self): print("Method from class B") class C(A): def method_c(self): print("Method from class C") هكذا عليك أن تكوني حذرة عند استخدام الوراثة المتعددة و خاصة في المشاريع الكبيرة التي قد يصعب فهمها و صيانتها فيما بعد. أما عن الباني (constructor) فهو تابع خاص ضمن الصف يتم تنفيذه عندما ننشأ نسخة جديدة من الصف, يستخدم عادة لتهيئة الواصفات الخاصة بالصف, ويمكنك أن تنفذي فيه أي كود تريديه, ولكن تذكري أن هذا التابع ينفذ عندما ننشأ نسخة جديدية فقط أي عند البداية فقط و لاتستطيعي استدعاؤه في أماكن أخرى. و يمكن أن يحتوي الصف على أكثر من باني مثل : الباني الافتراضي:يقوم بوضع قيم افتراضية لواصفات الصف. class MyClass: def __init__(self): self.my_attribute = 0 # إنشاء كائن باستخدام الباني الافتراضي obj = MyClass() باني بالقيم:يقمبوضع قيم واصفات الصف بحسب القيم الممررة له. class Person: def __init__(self, name, age): self.name = name self.age = age # إنشاء كائن باستخدام الباني بالقيمة person = Person("John", 30) الباني الناسخ:يقوم بإنشاء نسخة جديدة من الصف ويضع فيها قيم واصفات النسخة الحاليةمن الصف. class Point: def __init__(self, x, y): self.x = x self.y = y def __copy__(self): return Point(self.x, self.y) # إنشاء كائن p1 = Point(1, 2) # إنشاء نسخة باستخدام الباني الناسخ p2 = p1.__copy__()
  18. Flutter هو إطار عمل مفتوح المصدر يستخدم لبناء تطبيقات الموبايل و الويب وتطبيقات سطح المكتب عن طريق كتابة كود برمجي واحد بدلا من كتابة كود لكل نوع من تلك التطبيقات. و يعتمد إطار العمل هذا على لغة البرمجة Dart , ويقدم مجموعة من المكونات التي تسمى Widgets تمكن من إنشاء واجهات مستخدم جميلة و جذابة. و بذلك لن تحتاجي لتعلم html , css عند استخدامك لهذا الإطار و إنما يكفي أن تتعلمي لغة Dart , وكيف تتعاملين مع ال widgets و تقومين بتخصيصها كماتريدين. أما عن ال html و ال css فهاتان اللغتان تستخدمان في بناء تطبيقات الويب التي تعرض على المتصفح و تستخدم معهم أيضا لغة javascript. ويوجد أيضا أطر عمل مبنية فوق هذه اللغات تسهل بناء تطبيقات الويب مثل (react , angular vue js) فإذا كنتي تريدين التخصص في تطبيقات الويب فعليكي أن تتعلمي ال html و ال css و ال javascript. ثم بعد أن تتقنيهم تتعلمي إحدى أطر العمل التي تدعمهم. أما إذا كنتي تريدين التخصص في تطبيقات الجوال فعليكي بتعلم الفلاتر. ملاحظة: في عملية تعلم البرمجة على الشخص المتعلم أن يحدد هدفه من تعلم البرمجة و المجال الذي يريد أن يتخصص به لكي يسهل عليه تحديد لغات الرمجة والتقنيات التي يحتاج لتعلمها, فهناك العديد من لغات البرمجة و أطر العمل وكل منها يستخدم في مجال معين.
  19. مرحباً علي , إذا كان قصدك عن طريقة عملها من ناحية الآلية لتنفيذها بلغات البرمجة , فهذه تتضمن خوارزميات تعتمد الحساب الثنائي ( binary arithmetic ). من هذه الخوارزميات هي Long Multiplication , والتي تعتمد على ضرب الأرقام من اليمين إلى اليسار، على غرار الطريقة التي نجري بها الضرب باليد, وطريقة عمل هذه الخوارزمية تكون كالتالي : تحويل الأرقام إلى تمثيلها الثنائي فمثلاً سيتم تمثيل الأرقام 32 و14 كقيم ثنائية: 100000 و1110. إجراء الضرب الثنائي بدءا من الرقم الموجود في أقصى اليمين، قم بضرب كل رقم من الرقم الثاني (14) مع كل رقم من الرقم الأول (32) وقم بتخزين المنتجات الجزئية. للتوضيح ستكون كالتالي : 100000 <-- 32 x 1110 <-- 14 --------- 100000 (32 * 0) 000000 (32 * 1, shifted one place to the left) +1000000 (32 * 1, shifted two places to the left) --------- 1110000 (448) قم بجمع المنتجات الجزئية للحصول على النتيجة النهائية ،ففي المثال يكون المجموع 1110000، وهو التمثيل الثنائي للقيمة العشرية 448. التحويل مرة أخرى إلى النظام العشري ( للحصول على النتيجة بالنظام العشري ). وأيضاً ربما تختلف الخوارزميات المستخدمة ببعض لغات البرمجة وحسب بنيات الأجهزة , لكن بشكل عام هكذا تكون . عوامل مثل أنواع البيانات واعتبارات الأداء وقدرات الأجهزة.
  20. لايمكنك تحديث التطبيق الموجود في المتجر و عيك إصدار تطبيق جديد و ستفقد التقييمات و التحميلات , و لتلفت العملاء لتطبيقك الجديد و تستععيد التقييمات و التحميلات بسرعة قم باستخدام استراتيجيات التسويق المختلفة ,مثلا يمكنك نشر الاعلانات و الترويج للتطبيق على وسائل التواصل الاجتماعي. استخدم الاعلانات المدفوعة للترويج للتطبيق مثل Google Ads إذا كان لديك قاعدة بيانات مستخدمين أو مشتركين، قم بإنشاء حملة بريدية ترويجية للتعريف بالتطبيق الجديد ومزاياه ودعوة المستخدمين لتنزيله وتجربته.
  21. مرحباً محمد , العلامة % في لغة البرمجة تعبر عن باقي عملية القسمة العددية ( باقي القسمة ) . وفي سياق الشرط الذي قدمته: if (num % i === 0) هذا يعني "إذا كانت قيمة num تقسم على i بدون باقي (الباقي يكون صفر)، فقم بتنفيذ الكود داخل الجملة." للشرح بتفصيل : num % i : هذا يقوم بإجراء عملية القسمة العددية لقيمة num على i ، ويعود بالباقي. إذا كان الباقي يكون صفر، فهذا يعني أن num قابل للقسمة على i بدون باقي. === 0 : يقوم بفحص ما إذا كان الباقي الناتج من القسمة يساوي صفر. إذا كانت هذه الشروط تنطبق، فإن الجملة تُقدم صحيحة، والكود داخل الشرط سيتم تنفيذه. مثال رياضي أخر : لنأخذ num = 10 و i = 2. الآن نقوم بالتحقق مما إذا كانت 10 قابلة للقسمة على 2 بدون باقي: if (10 % 2 === 0) الآن نقوم بشرح العبارة: 10 % 2: القسمة تعود باقي صفر. === 0: يكون الشرط صحيحًا. لذا، يمكن أن يتم تنفيذ الكود داخل هذا الشرط. هذا يشير إلى أن 10 قابلة للقسمة على 2 بدون باقي، مما يعني أن 2 هو عامل لـ 10. تحياتي
  22. وعليكم السلام , هل يمكنك إرفاق مجلد المشروع أو الملفات الذي يظهر بها الخطأ ؟
  23. لغة الجافا هي إحدى اللغات البرمجية الشائعة والمستخدمة على نطاق واسع في صناعة تطوير البرمجيات. إذا كنت تدرس C++ في جامعتك، فإنها لغة برمجة قوية ومعترف بها أيضًا في سوق العمل. على الرغم من شيوع لغة الجافا، إلا أن C++ لا تزال لغة مهمة في صناعة تطوير البرمجيات ومجالات أخرى مثل الألعاب والنظم المضمنة. لذا، فإن دراسة C++ ستكون لها قيمة في سوق العمل ومهاراتك فيها ستكون مفيدة. ولكن فرصها الوظيفية نوعاً ما قليلة . إما إذا كنت ترغب في زيادة فرصك الوظيفية، فقد تكون دراسة لغة الجافا هي الخيار المناسب لك, الجافا لغة برمجة شائعة في تطوير تطبيقات الويب وتطبيقات الجوال، وتستخدم في العديد من الشركات والمؤسسات. قد يوجد فرص وظيفية أكثر في هذه المجالات إذا كانت لديك معرفة بلغة الجافا. باختصار، ليست هناك حاجة ضرورية لدراسة لغة الجافا بعد تخرجك، ولكنها يمكن أن تكون مفيدة إذا كنت ترغب في توسيع خياراتك الوظيفية والتنافس في بعض المجالات الخاصة بتطوير البرمجيات. قرار دراسة لغة الجافا يعتمد على اهتماماتك الشخصية وأهدافك المهنية المستقبلية. هذه بعض الأسئلة والتعليقات والاقتراحات المفيدة التي طرحها طلاب ومعلمون يريدون تعلم JS وكيف يبدأ بالتعلم , يمكنك الإطلاع عليها في حال قررتي تعلم لغة JS . تحياتي .
  24. بالإضافة لما ذكر في التعليقات السابقة حاول أن تقوم بتطوير مشاريع مجدية و ذات نفع و مطلوبة في سوق العمل مثل أنظمة التجارة الإلكترونية Ecommerce و أنظمة العقارات (بيع و شراء العقارات). يمكنك تصفح مواقع العمل الحر مثل مستقل لتعرف ماهي أنواع المشاريع المطلوبة في السوق و قم بإختيار المشاريع الأكثر طلبا و قم بتطويرها مثلا 3 مشاريع كحد أدنى و ضعها في معرض أعمالك. و بما أنك تريد التخصص في مجال backend فقم بالتركيز على التقنيات المستخدمة في هذا المجال أي حاول أن تطبق جميع التقنيات في مشاريعك مثل: Authentication and Authorization API Security Databases Query Optimization Design Pattern Performance and Scalability و ذلك لتكون مشاريعك متقنة بشكل جيد و احترافية, وهذا يعطيك فرصة أكبر للحصول على عمل. و اجعل مشاريعك دائما منظمة و بأسماء واضحة , و كذلك أكوادك عليك أن تبقيها منظمة و تستخدم أسماء واضحة في تسمية الملفات و المتغيرات و التوابع ...الخ. فهذايعكس صورة جيدة عنك.
  25. هناك العديد من لغات البرمجة مثل (java, c, java script) و غيرها الكثير, و لكي تصبحي مبرمجة عليكي تعلم إحداها, و لكن كيف ستكون الانطلاقة و ماهي لغة البرمجة التي ستتعلميها؟. إن جواب هذا السؤال يتوقف على أهدافك و غايتك من تعلم البرمجة و المجال الذي تريدي أن تتخصصي به,و لذا عليكي أن تقومي بتحديد تلك النقاط لكي تستطيعي اختيار اللغة التي تناسبك و لا تضيعي الوقت في تعلم لغات لن تستفيدي منها في مجالك. و لغات البرمجة جميعها تعتمد على نفس المفاهيم والمحاور مثل مفاهيم المتغيرات والحلقات و المصفوفات و ...الخ. ولذلك أنت ستواجهين صعوبة فقط عند تعلم أول لغة برمجة , وفيما بعد إذا أردتي تعلم لغات أخرى فسيكون الأمر سهل جدا و لن يستغرق سوى القليل من الوقت. و من المهم جدا أن تقومي ببناء مشاريع عملية أثناء فترة التعلم, لكي تكتسبي الخبرة و الفهم الجيد للغة التي تتعلميها و تصبحي قادرة على حل المشكلات, و لاتكتفي بمشاهدة الفيديوهات فقط أو قراءة المقالات فإذا لم تقومي بكتابة الأكواد بنفسك لن تستفيدي أي شيء و لن تكسبي أية خبرة. و ستواجهين مشاكل أثناء كتابة الأكواد فعليك أن تتحلي بالصبر و تبحثي عن حل للمشكلات التي تواجهيها و يمكنك السؤال دوما عن أي شيء لم تفهميه أو لم تجدي حل له.
×
×
  • أضف...