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

عبدالباسط ابراهيم

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

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

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

  • عدد الأيام التي تصدر بها

    11

أجوبة بواسطة عبدالباسط ابراهيم

  1.  

    بشكل افتراضي تنتهي وظيفة طباعة () Python بسطر جديد. تأتي الدالة print () في Python مع المعامل "end". بشكل افتراضي ، قيمة هذا المعامل هي "\ n" ، أي حرف السطر الجديد.

    ولكن يمكنك تغييرها للقيمة التي تريدها مثال على ذلك

    print("Python", end='@')
    print("hsoubAcademy")

    الناتج سيكون كالتالي

    Python@GeeksforGeeks

    كما أن الدالة print بها العديد من المعاملات الأخرى كما في الكود التالي

    print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

    يمكنك قراءة التفاصيل من خلال موسوعة حسوب الدالة print

  2. بتاريخ 2 ساعة قال Comfortable Videos:

     

    و انا احاول عمل حساب سالني سوال 

    How many team members will be working with you?

    This will help us guide you to the tools that are best suited for your projects.

    احطها just me ولا احطها 50+

    لكي يقدر المدربين ال الدخول اليها 

     

     

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

    لذلك لست بحاجة لجعل  How many team members will be working with you أكثر من مستخدم حالياً في هذه الدورات 

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

  3. كما وضح أسامة في التعليق السابق الفرق بين المبرمج وبين المطور فإن الإثنين لهما وظائف ومهام مختلفة عن بعضهما ولتوضيح ذلك الفرق أكثر نحتاج لتوضيح المهام العملية عند إنشاء مشروع ما وهي كالتالي

    ماذا يفعل المطور ؟

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

    ماذا يفعل المبرمج ؟

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

    • أعجبني 1
  4. نعم يجب دفع المبلغ كاملاً ولكن يمكنك التواصل مع الدعم الفني ربما يوجد خصم أو يمكن التواصل لحل مناسب لك من خلال الرابط التالي

    بعد الإشتراك ستظهر لك الدورة في أكاديمية مباشرة وسيتم التواصل معك

    أما بالنسبة المحددة ال 6 أشهر فهي 

    اقتباس

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

     

    • شكرًا 1
  5. يمكنك استخدام أدوات إدارة قواعد بيانات من نوع postgresql مثل الأدوات التالية

    • pgAdmin  : هي أداة واجهة المستخدم الرسومية الفعلية لـ PostgreSQL ، والأداة الأولى التي يستخدمها أي شخص لـ PostgreSQL. وهو يدعم جميع عمليات وميزات PostgreSQL .

    • DBeaver هي أداة واجهة مستخدم رسومية رئيسية متعددة المنصات لـ PostgreSQL . DBeaver ليست أداة واجهة مستخدم رسومية أصلية لـ PostgreSQL ، لأنها تدعم جميع قواعد البيانات الشائعة مثل MySQL و MariaDB و Sybase و SQLite و Oracle و SQL Server و DB2 و MS Access و Firebird و Teradata و Apache Hive و Phoenix و Presto و Derby - أي قاعدة بيانات بها برنامج تشغيل JDBC (أكثر من 80 قاعدة بيانات!).

    • أعتقد أن firebirdmaestro ليست لهذا النوع من قواعد البيانات إنما يوجد بديل لها وهو PostgreSQL Maestro

    • شكرًا 1
  6. بالطبع  لغات scripting languages نمط عملها مختلف عن Programming Languages مثل ال سي شارب وغيرها وبالطبع كل لغة برمجة لها طريقة كتابة مختلفة عن الأخرى ولكن تبقى المفاهيم والأساس ثابت مع الإختلاف البسيط 

    ولكن طريقة عمل scripting languages تختلف عن Programming Languages كالتالي

    كل scripting languages هي في الأساس  Programming Languages. الاختلاف النظري الوحيد هو أن scripting languages لا تتضمن خطوة التجميع  compilation - بل يتم تفسيرها بدلاً من ذلك. على سبيل المثال ، نحتاج أولاً إلى تجميع برنامج سي قبل تشغيله. من ناحية أخرى ، لا نحتاج إلى ترجمة لغة برمجة مثل PHP أو JavaScript. هناك طرق مختلفة تختلف فيها كلتا اللغتين. 

    • كود Programming Languages عند تجميعه ، ينشئ ملفات قابلة للتنفيذ في رمز ثنائي ، وتسمى أيضًا ملفات .exe ، والتي تشغل الذاكرة ، بينما لا تنشئ لغات البرمجة النصية ملفات .exe قابلة للتنفيذ.
    • غالبًا ما يتم دعم تصميم واجهة المستخدم والتصميم الرسومي جزئيًا بواسطة Programming Languages ، بينما يتم تسهيل تصميم واجهة المستخدم وأنواع البيانات والتصميم الرسومي بشكل كبير عن طريق scripting languages 
    • تم تصميم Programming Languages لتسهيل تطوير البرامج الكاملة ، بينما تُستخدم scripting languages لمساعدة لغات البرمجة وجعل الترميز أسهل وأسرع.
    • تُستخدم scripting languages عمومًا لمشاريع مفتوحة المصدر وتطوير الويب.
    • Programming Languages قابلة للتنفيذ ذاتيًا بينما تتطلب scripting languages مضيفًا.
    • يتم ضغط Programming Languages في حزم صغيرة لا تحتاج إلى أن يتم تفسيرها بواسطة لغة أو تطبيق آخر ، بينما تتم كتابة  scripting languages  بلغة واحدة ويتم ترجمتها في برنامج آخر. على سبيل المثال ، يجب تضمين JavaScript في HTML ، والذي يتم تفسيره بعد ذلك بواسطة مستعرض الويب.

    يمكنك قراءة الإجابات على هذا السؤال للمزيد من المعلومات

  7. كما في التعليقات السابقة فإن هذا الإختيار يرجع لك من حيث

    • إمكانيات الجهاز الذي تعمل عليه : يحتاج مجال تطبيقات الجوال لإمكانيات عالية نسبياً أما تطوير الويب فيمكنك العمل من خلال أقل الإمكانيات
    • الطلب على أي المجالين أكثر حسب مواقع العمل الحر مجال تطوير الويب أكثر طلباً  حسب موقع مستقل
      اقتباس

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

      تطوير الويب الشامل (full stack developers)

      تثبيت وتعديل ووردبريس

      تصميم صفحة هبوط

      تطوير إضافات وقوالب ووردبريس

      بناء متجر الكتروني

      بناء موقع شركة

    • المتوفر أكثر في بلدك يمكنك البحث عن الشركات الموجودة في بلدك لتعرف الفرص المتوفره عندك
    • المجال الذي تميل له

    والعديد من العوامل الأخرى

    كما أن يوجد تالتطبيقات الهجينة، وتسمح لك بتطوير تطبيقات تعمل على منصتي أندرويد وآيفون مباشرة، عبر تقنيات الويب العادية مثل: CSS و HTML وجافا سكريبت.

    من أشهر منصات تطوير التطبيقات الهجينة

    • أيونيك (ionic). 
    • reactNative والعديد من المنصات الأخرى

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

  8. إليك نظرة على بعض أهم مزايا OOP

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

    2. إعادة استخدام الكود عن طريق ال inheritance

    3. المرونة من خلال تعدد الأشكال بالاستناد إلى هذا المثال ، فأنت الآن بحاجة إلى عدد قليل من برامج التشغيل أو الوظائف ، مثل "driveCar" و "driveRaceCar" و "DriveLimousine". تشترك RaceCarDrivers في بعض السمات مع LimousineDrivers ، ولكن أشياء أخرى ، مثل RaceHelmets و BeverageSponsorships ، فريدة من نوعها. هذا هو المكان الذي يلعب فيه تعدد أشكال البرمجة الشيئية. نظرًا لأنه يمكن لوظيفة واحدة أن تتغير لتتكيف مع أي فئة توجد بها ، يمكنك إنشاء وظيفة واحدة في فئة السيارة الأصلية تسمى "drive" - وليس "driveCar" أو "driveRaceCar" ، ولكن فقط "drive". ستعمل هذه الوظيفة مع RaceCarDriver و LimousineDriver وما إلى ذلك.

    4. حل المشكلة الفعال يتجنب العديد من الأشخاص تعلم OOP لأن منحنى التعلم يبدو أكثر حدة من ذلك في البرمجة من أعلى إلى أسفل. لكن خذ الوقت الكافي لإتقان OOP وستجد أنه النهج الأسهل والأكثر بديهية لتطوير المشاريع الكبيرة. تدور البرمجة الموجهة للكائنات في النهاية حول حل مشكلة كبيرة وتقسيمها إلى أجزاء قابلة للحل. لكل مشكلة صغيرة ، تكتب صفًا يقوم بما تحتاجه. وبعد ذلك - أفضل ما في الأمر - يمكنك إعادة استخدام هذه الفئات ، مما يجعل حل المشكلة التالية أسرع. هذا لا يعني أن OOP هي الطريقة الوحيدة لكتابة البرامج. ولكن هناك سبب يجعل لغات مثل C ++ و C # و Java هي خيارات الانتقال لتطوير البرامج الجادة.

    ولكن عند استخدام nodejs فلا نحتاج لاستخدام ال OOP إلا قليلاً حيث أن ال nodejs توفر لنا 

    • أنك لست بحاجة إلى ال inheritance . يمكنك ، على سبيل المثال ، اختيار الكتابة بأسلوب functional والاعتماد على ال composition  تركيب بدلاً من ذلك.

    • مع Node.JS ، لديك أيضًا modules  كطريقة أساسية لتفكيك التعليمات البرمجية الخاصة بك. يمكن لل modules أن تكون مفردة وهمية أو مكتبات وظيفية أو فصول أو حتى مجرد تقديم قيمة محسوبة

    لذلك يعتبر في ال  Node.JS استخدام ال OOP قليل (يرجع من طبيعة اللغة javascript ) إلا إذا كان المشروع يتطلب ذلك

    • شكرًا 1
  9. نعم يمكن عمل ذلك بالطبع من خلال عدة طرق لكن أفضلهم هو استخدام ال مشروع PHP Desktop 

    اقتباس

    PHP Desktop هو مشروع مفتوح المصدر أسسه Czarek Tomczak في عام 2012 لتوفير طريقة لتطوير تطبيقات واجهة المستخدم الرسومية لسطح المكتب الأصلية باستخدام تقنيات الويب مثل PHP و HTML5 و JavaScript و SQLite.

    يمكنك قراءة التوثيق من خلال هذا الرابط

    يمكنك أن تجد العديد من المقالات أو الفيديوهات من خلال البحث عن "php desktop app" وستظهر لك مقالات كثيره

    ولكن الأفضل هو استخدام ال مشروع PHP Desktop من الرابط السابق

    تعد PHP مفيدة لل backend  ولكنها تفتقد الكثير مما قد تحتاجه لتطبيق سطح المكتب.

    • أعجبني 1
  10. كما في التعليقات السابقة يمكنك إضافة العديد من المميزات مثل الإكمال التلقائي من خلال الإضافة "PHP IntelliSense" وهي بالطبع من أقوى الإضافات لل php لكن يمكنك تطوير هذا الموضوع لأبعد من ذلك فيمكنك استخدام الإضافات التالية 

    •   DocBlocker : تستخدم لإضافة block comment بسهولة كما أنه يوجد تعليقات جاهزة للعديد من الدوال

    •  PHP Debug

    • PHP Getter & Setter  تضيف هذه الإضافة وظائف "get and set" بسرعة إلى شفرتك. الأمر بسيط مثل النقر بزر الماوس الأيمن على المتغير الذي تريد الحصول عليه وتحديده .

    • PHP Files Extension بعد التثبيت ، ستتمكن من الوصول إلى ثلاث وظائف إنشاء لنوع ملف مهيأ مسبقًا ، وهي class, interface و trait. بعد اختيار أيٍّ من هذه الأنواع كنوع ملف الإنشاء ، كل ما عليك فعله هو تسميته ، وسيتم إنشاء الملف ، ويتم تجهيزه بالكود  ، وجاهز للعمل!

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

  11. بتاريخ 50 دقائق مضت قال Ahmed Ahmed:

    أخي يبدو أن السؤال لم يكن واضح لك

    المطلوب كيف أتعامل من خلال class لكي أطبق الإحراء داخل  أي def

    يمكنك إضافة الدوال في ال class ثم إستدعائها كم في المثال التالي

    class WorkbookExtended():
        def __init__(self, file_path):
            self.workbook = load_workbook(file_path)
    
        def locate_value(self, value, range):
            ws = self.workbook.active
            cells_with_value = [cell.coordinate for row in ws[range] for cell in row if cell.value == value]
            return cells_with_value
    
    wbe = WorkbookExtended("test.xlsx")
    wbe.locate_value("foo", "A2:B10")

    تم إضافة الدالة locate_value في الكلاس ثم قام بعد ذلك بغستدعائها من خلال ال wbe

    إذا كنت تقصد ذلك فيمكنك البحث عن ال Extending openpyxl workbook class للمزيد من المعلومات

    • أعجبني 1
  12. يمكنك القراءة أو الكتابة على هذا الملف الذي تم إستدعائه من خلال الدوال التالية سواء في الكلا س أو خارج الكلاس

    • الوصول لل sheets من خلال الدالة get_sheet_names() 
      wb.get_sheet_names()
      ['Sheet1', 'Sheet2', 'Sheet3']

       

    • الوصول للخلايا من خلايا 

      sheet.cell(row=2, column=4)
      <Cell Sheet1.D2>
      sheet.cell(row=2, column=4).value
      'Pencil'
    • يمكنك استخدام loop
       for x in range (1,9):
          print(x,sheet.cell(row=x,column=4).value)

       

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

    • أعجبني 1
  13. يمكن أن تحدث هذه المشكلة نتيجة العديد من المشكلات لذلك يجب عليك تجربة هذه الخطوات للوصول للحل

    • ذاكرة التخزين المؤقت للمتصفح التالفة. قد تحدث المشكلة بسبب ذاكرة التخزين المؤقت لمتصفح الويب التالفة. حاول مسح ذاكرة التخزين المؤقت.
    • إعدادات المتصفح التي تم تكوينها بشكل خاطئ. قد تحدث المشكلة إذا تم تكوين بعض إعدادات المتصفح بشكل خاطئ. حاول التراجع عن التغييرات أو إعادة تعيين متصفح الويب إلى إعداداته الافتراضية.
    • التداخل من خادم وكيل أو VPN. حاول تعطيل الخادم الوكيل أو قطع اتصال VPN الخاص بك وحاول تسجيل الدخول.
    • قم بإلغاء إضافات ال AD blocker
    • قم بإيقاف تشغيل Hardware Acceleration من خلال إعدادات google chrome

     

  14. في الدالة التي تقوم بقراءة الخلايا يمكنك إضافة  ال if condition للتحقق إذا كانت هناك خلايا فارغة مثال على ذلك

    ws=wb.active
    names=ws['C']
    for x in names:
        if x.value is None:
            break
        print(x.value)

    أما بالنسبة للسؤال الثاني فيمكنك عمل unmerge ثم إضافة القيم التي تحتاجها ثم عمل merge للخلية مجدداً عن طريق الكود التالي

    from openpyxl.workbook import Workbook
    
    wb = Workbook()
    ws = wb.active
    
    ws.merge_cells('A2:D2')
    ws.unmerge_cells('A2:D2')
    # or equivalently
    ws.merge_cells(start_row=2, start_column=1, end_row=4, end_column=4)
    ws.unmerge_cells(start_row=2, start_column=1, end_row=4, end_column=4)

    يمكنك قراءة التوثيق الخاص بالمكتبة من هذا الرابط للمزيد من المعلومات

    • أعجبني 1
  15. البرمجة التنافسية مهمة للمبرمج 

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

    تبدوا لي كتمارين رياضية في غلاف برمجي ، أظن أنها ستنمي فعلاً القدرة على التعامل مع المشاكل الرياضية و المعقدة هذه ، لكن ما زلت غير مقتنع تماماً أن نوعبة المشاكل المطروحة فيها في غاية الأهمية كما يقال

    بالطبع لا يكون تعلم البرمجة التنافسية على حساب المجال البرمجي الذي تدرسه إنما هي تقوي المهارات التي تحتاجها أو المهارات التي تجعل منك مبرمج محترف 

  16. المشكلة في الكود وهي ليست مشكلة بالفعل حيث أنه السلوك الطبيعى لل javascript حيث أن ال submit يجب أن يتم عمل reload للصفحة وذلك الطبيعي ولمنع هذا السلوك يمكنكنا إضافة الدالة preventDefault كما في التعليق السابق

    ويمكننا أيضاً إضافة هذه الدالة لل button بشكل أبسط كالتالي 

    <button type="submit" onclick="event.preventDefault(); redirect()">Submit</button>

    ويمكن استبدال هذه الدالة بال return: false لل form ولكن يفضل استخدام ال preventDefault

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

    في الكود الموجود في التعليق السابق نستبدل

    e.preventDefault();

    ب

    if (e.preventDefault) {
        e.preventDefault();
      } else {
        e.returnValue = false;
      }

     

  17. إذا كانت المشكلة لديك في أن بعض النتسيقات لا تعمل ؟

    إذاً يجب عليك التأكد من تنسيقات ال css المدعومة من mPDF حيث هناك بعض الخواص الغير مدعومة يمكنك الإطلاع عليها من هذا الرابط

    أما إذا كانت التنسيقات لا تعمل إطلاقاً فربما تكون طريقة تضمين  ال css تمت بشكل خاطئ 

    الكود التالي يحتوي على مثال لطريقة تضمين ملف css

    <?php
    
    $stylesheet = file_get_contents('style.css');
    
    $mpdf->WriteHTML($stylesheet,\Mpdf\HTMLParserMode::HEADER_CSS);
    $mpdf->WriteHTML($html,\Mpdf\HTMLParserMode::HTML_BODY);

     

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

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

    بعد محاولة تنفيذ هذه الخطوات يفضل محاولة تنفيذ مشروع بنفسك على الجزء الذي تعلمته

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

    أما بالنسبة للشهادة فتعتبر البرمجة من المجالات التي لا تتطلب الشهادة بشكل كبير حيث تتيح لك العمل من خلال مواقع العمل الحر مثل مستقل وغيره الكثير وأيضاً هناك العديد من الوظائف في مجال البرمجة لا تتطلب شهادة جامعية في البرمجة

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

    يمكنك قراءة إجابات هذا السؤال وهذا للمزيد من المعلومات 

    كما يفضل قراءة هذه المقالة

  20. بتاريخ 6 دقائق مضت قال Ayman Alrawy:

    عندما ارى مواقع العمل الحر ارى الكثير منها عبارة عن بناء موقع كامل فهل يمكن بناء موقع مو معرفة قوية في frontend و القليل من backend او معرفة قوية backend ومعرفة قليلة frontend ام يجب ان يكون full stack 

    بالطبع إذا كان موقع كامل من ناحية ال frontend وال backend أي الموقع يحتاج لعمل backend بجانب ال frontend تحتاج أن تكون full stack أما بالنسبة لجودة العمل الخبرة ذلك يعتمد على ميزانية المشروع وطلب العميل 

    بتاريخ 9 دقائق مضت قال Ayman Alrawy:

    لماذا غالبا ما ارى على النت شروحات frontend اكثر باضعاف من backend 

    ذلك لأن البداية في مجال ال frontend أسهل نسبياً من ال backend في البداية وليس عموماً

    بتاريخ 10 دقائق مضت قال Ayman Alrawy:

    هل ال backend يفعل اي شئ له دخل بالتصميم

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

    بتاريخ 11 دقائق مضت قال Ayman Alrawy:

    احيانا ارى من يقول تعلم فقط frontend واترك ال backend لانه يوجد خدمات توفره بسهولة مثل firebase

    في أي مجال يوجد خدمات جاهزة ولكن ليس الجميع يستطيع التعامل معها وليس الجميع يحتاج لخدمات جاهزة أيضاً بجانب أن هناك خدمات جاهزة أكثر في مجال ال frontend ولكن هناك الكثير من الوظائف المطلوبة

    بتاريخ 22 دقائق مضت قال Ayman Alrawy:

    لو اراد شخص ان يصبح full stack هل الاسهل ان يبدأ frontend ام backend

    ليس هناك فرق إذا بدأت بأي مجال من الإثنين أولاً

    بتاريخ 23 دقائق مضت قال Ayman Alrawy:

    انا مهتم في backend اكثر من frontend لضعفي في التصميم لكنني محتار لاني ارى الكلام عن frontend اكثر بكثير من backend

    ليس وظيفة ال frontend هي التصميم إنما من المفترض أن يستلم مبرمج ال frontend التصميم جاهز ويبدأ المبرمج في تكويد التصميم من خلال اللغات المختلفة مثل html css و JavaScript وبعض التقنيات الأخرى

    بتاريخ 27 دقائق مضت قال Ayman Alrawy:

    لو سمحت أتستطيع ان تعطيني بعض امثلة عن ماذا يمكن ان تكون الاعمال الحرة ل backend

    يمكن لل backend

     التعامل مع قواعد البيانات 

    بناء الواجهة الخلفية للموقع

    تصميم API

    التحقق من الحماية لموقع معين

    والعديد من المهام المختلفة

    يمكنك قراءة إجابات هذا السؤال للمزيد من المعلومات

    • أعجبني 1
  21. مكتبة dompdf  تدعم اللغة العربية لكن يجب عليك تغيير نوع الخط إلى 

    <style> 
     * { font-family: DejaVu Sans, sans-serif; }
    </style>

    وتأكد أيضاً من كتابة الكود التالي في ال HTML

    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />

    يمكنك قراءة المزيد من خلال الإجابات على هذا السؤال  ويمكنك قراءة هذه الجزئية من خلال ال github لل dompdf

    كما يمكنك تجربة هذه البدائل

  22. كما في التعليق السابق وضح عمر الفكرة الأساسية لعمل مثل هذه المواقع وطريقة بناء وترتيب ملفات المشروع ويوجد عدة طرق للقيام بذلك ولكن ترجع بالأخير للطريقة التي تفضلها ولكن كلما كانت الملفات في شكل منظم لن يسبب لك الموقع العديد من المشاكل كلما كثرة الملفات

    الطريقة الأولى 

    Pages (in root of site):
    index.html
    page2.html
    page3.html
    إلى آخره
    
    Folders:
    > shared (كل الملفات المشتركة في صفحات ال html  )
    - styles.css
    - scripts.js
    - image.jpg
    
    > index (كل الملفات الخاصة بصفحة index)
    - index-styles.css
    - index-scripts.js
    - imageB.jpg
    
    > page2 (كل الملفات الخاصة بصفحة page-2.)
    - page2-styles.css
    - page2-scripts.js
    - imageC.jpg
    
    > page3 (كل الملفات الخاصة بصفحة page-3.)

    الطريقة الثانية

    <مجلد المشروع> 
    	templates 
    		index.html 
    		about.html 
    		..... 
    		contact.html 
    	assets 
    		css 
    			style.css 
    			..... 
    			responsive.css 
    		js 
    			script.js 
    			..... 
    			main.js 
    		images 
    			..... 
    		fonts 
    			..... 

    يمكنك إختيار الطريقة التي تفضلها

    • شكرًا 1
  23. حتى نعرف الفرق بين الكود الموجود بداخل الدالة  render والكود الموجود بخارجها يجب أولاُ أن نتعرف على الهدف من هذه الدالة 

    الغرض من ()render :

    • تقوم React بتوليد HTML إلى صفحة الويب باستخدام الدالة ()render
    • باستخدام الدالة ()render يمكننا قراءة ال props وstate وإعادة كود JSX إلى المكون root .
    • في الدالة ()render  لا يمكننا تغيير ال وstate ، ولا يمكننا التسبب في side effects (مثل تقديم طلب HTTP إلى خادم الويب).

    وطريقة عملها كالتالي 

    يتم عرض العناصر على الشاشة من خلال استدعاء ReactDOM.render الطريقة التي تقارن بين عناصر DOM الحقيقية وvirtual DOM ، مع إجراء أقل عدد ممكن من التغييرات لإحضار DOM الحقيقي إلى ال state الحديثة.

    أما بالنسبة للكود الموجود خارج الدالة render لسبب 

    • لتهيئة ال state للمكون عن طريق تعيين كائن إلى this.state
    • لربط(bind) event handlers التي تحدث في المكون

    يمكنك قراءة المزيد من المعلومات من خلال موقع react  مثل

  24. ربما يبدو لك أن المسارات المتبيقية نفس المادة التعليمية الموجودة في المسارات السابقة ولكن سأوضح لك م المهارات الجديدة التي ستتعلمها

    • في مسار تطوير لوحة التحكم يوجد العديد من المفاهيم التي لم تدرسها بعد مثل طريقة بناء structure المشروع والعديد من المهارات من خلال javascript والمكتبات الجاهزة  حيث أن تطوير لوحات التحكم دائماً ما تحتاج لعمل كبير نظراً للعمل المطلوب لتنفيذ اللوحة 
    • بناء مواقع ثابتة باستخدم Hugo ستتعلم تقنية جديدة كلياً وهو وهو إطار عمل static site generators ستتعلم في هذا المسار بناء صفحة شخصية وموقع شركة ومدونة باستخدام إطار تطوير المواقع الثابتة Hugo.

    لذلك بالطبع يفضل دراسة المسارات المتبقية 

×
×
  • أضف...