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

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

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

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

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

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

    11

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

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

    1. برمجة الويب 
    2. بناء تطبيقات أندرويد 
    3. بناء تطبيقات ios
    4. بناء تطبيقات desktop 

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

  2. إذا كنت تقصدين تصميم الواجهات فقط بدون تكويد التصميم و تحويله التصميم إلى صفحات ويب أي وظيفة ال ( ui/ux ) إذا لا تحتاجين إلى تعلم ال css 

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

    الأساسيات: HTML ،CSS ،JavaScript

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

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

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

    وبالنسبة لأفضل لغة للمبتدئ يعتمد على المسار الذي تريد تعلمه فمثلاً في الويب أفضل لغة تتعلمها كبداية و لإحتراف الويب هي javascript

    أو يمكنك تلعم أساسيات البرمجة بأي لغة تريدها ثم بعدها يمكنك تعلم أي لغة بسهولة

  4. بالطبع يمكنك ولكن هذه النسخة من ال windows موجهه للشركات حيث تكون قليلة التحديثات و تفتقر إلى بعض الأدوات والبرامج وتكون مساحتها قليلة لتعمل مع الأجهزة الضعيفة  ولكن  نصيحة قم بتثبيت النسخة ال pro بدلاً منها وإن لم تعمل جيداً قم بإستعمال linux هل يمكنك كتابة إمكانيات الجهاز الخاص بك؟

  5. مجال ال front-end لا يحتاج جهاز بإمكانيات عالية ويمكنك العمل بإمكانيات أقل من متوسطة بالطبع لن يكون أفضل أداء

    1. وبالنسبة لبرنامج vs code يعمل جيداً بإقل الإمكانيات 
    2. برنامج Google chrome يحتاج إلى زيادة مساحة الرام فمثلًا 8 جيجا تبدو جيدة جدًا 

    وإذا كان أداء الجهاز بطئ بعض الشئ يمكنك تثبيت نسخة Linux بدلًا من windows حيث لا يستهلك Linux الكثير من الموارد وسيعمل الجهاز بشكل جيد عن ال windows

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

    1. ستقوم أنت بالبحث عن خصائص للفوتوشوب معينة لزيادة مهاراتك
    2. متابعة المواقع المختصة بالتصاميم مثل behance 
    3. قم بمتابعة مصممين ومدونات وقنوات تهتم بالتصميم

     

    • أعجبني 1
  7. يمكنك (إضافة علي الموقع الذي وضحه الأستاذ بلال) إستعمال مكتبات إضافية لجافا حيث أن لغة جافا لا تتدعم التعامل مع json لذلك توجد مكتبات مثل

    1. مكتبة Gson من جوجل
    2. مكتبة JSON-Simple 
    3. مكتبة Jackson

    نأخذ مكتبة Gson كمثال يمكنك خلال سطرين  من تحويل ال json إلى java object

    Gson g = new Gson();
    Player p = g.fromJson(jsonString, Player.class)
    

    ويمكنك قراءة المزيد عن المكتبات بالأعلى ببحث على الإنترنت

  8. هذا ليس خطأ في الكود إنما تحذير بسبب ssl certificate يمكنك تعطيل ذلك التحذير عن طريق تعديل للإتصال الخاص بالdatabase كالتالي

    String connectionURL = "jdbc:mysql://localhost:2000?autoReconnect=true&useSSL=false";

    يفضل شراء شهادة ال ssl  عند رفع الموقع للاستضافة للمزيد من الحماية لموقعك

    يمكنك قراءة المزيد حول SSL certificate 

  9. إذا كنت تقصدين بناء واجهة الموقع فقط فيوجد العديد من الخدمات التي يمكنها عمل ذلك عم طريق drag and drop مثل 

    1. برنامج bootstrap studio خاص ب bootstrap و مدفوع
    2. موقع wix 

    ويوجد خدمات أخرى عديدة 

    وبالطبع إذا كنت تريدين موقع كامل مثل مدونة أو متجر أو موقع شخصي فلن تجدي أفضل من WordPress 

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

    1. إذا كان لديك ملف ربما ستستخدمه لاحقاً قم بعمل نسخة من الملف ولا تقوم بنسخ الكود فقط
    2. أما إذا لم يكن لديك الملف علي جهازك سواء كنت تجرب كود على متصفح أو أي شيء قم بعمل نسخ للكود ثم قم بإنشاء ملف (بصيغة تتطابق الكود فمثلاً إذا كنت تنسخ كود javascript إجعل صيغة الملف كالتالي filename.js ) ثم قم بلصق الكود وحفظ الملف
    • أعجبني 1
  11. أعتقد أنك تحتاج إلى تعلم علوم الحاسوب وهو يعتبر مجال كبير جداً وتحتاج لاحقاً للتخصص في أحد فروعه ولكن كبداية يمكنك أن تتعلم الأساسيات مثل 

    1. تعلم بعض الرياضيات أساسيات وليس بتعمق 
    2. تعلم كيف يعمل الحاسوب من معرفة بسيطة بالهاردوير و ما هي لغة الألة حيث هي اللغة التي يفهمها الحاسوب
    3. تعلم بعض أساسيات أنظمة التشغيل 
    4. تعلم أساسيات البرمجة 
    5. يفضل معرفة بسيطة بالخوارزميات  

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

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

    • أعجبني 1
  13. ربما تحتاج لإضافة الprefix الخاص بالمتصفح الذي تستعمله حيث تعمل هذه ال prefix على زيادة دعم المتصفحات ل خواص ال css الجديدة

    إذا كان

    1. جوجل كروم إستخدم webkit
    2. فايرفوكس إستخدم moz

    أيضا قم بإضافة خاصية ال css بدون ال prefix

    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;

    يمكنك إضافة هذه ال prefixes بدون تدخل منك عن طريق npm package يمكنك القراءة عنها

    • أعجبني 2
  14. من الطبيعي أن تجد صعوبة في فهم الأشياء الجديدة عليك وتعتبر ال configuration الخاص بال webpack صعب قليلاً ولكن مع الممارسة ستصبح شيئ إعتيادي و عمومًا في مجال البرمجة البدايات تكون صعبة نوعاً ما حيث من الممكن ل حرف أو مسافة أن تعطل كود برنامج كبير

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

    أتمنى لك التوفيق

    • أعجبني 1
  15.  ال generator هي دالة تقوم بتسهيل عمل loop عن طريق استخدام ال yield و ال next 

    تقوم هذه الدالة بتوليد object قبل حتى أن تبدأ بالتنفيذ وعند إستدعاء الدالة next تقوم بالتنفيذ حتى تصل لل yield ثم تقوم بإسترجاع القيمة المحددة كالمثال التالي

    def yrange(n):
        i = 0
        while i < n:
       # تقوم yield بإسترجاع القيمة المحددة
            yield i
            i += 1
    y = yrange(3)
    
    next(y)
    0
    next(y)
    1
    #بدلا من ان تقوم الدالة بإسترجاع نفس القيمة وهي ال 0 قامت بإسترجاع ال 1 
    #حفظت الدالة قيمة ال I 
    next(y)
    2

     

  16. يعتبر مجال أكتشاف الثغرات في الويب أو ما يسمى web pentesting مجال كبير ولا يمكن لدورة أن تعلمك هذا المجال حيث ستحتاج لسنوات تعلم .

    بدايةً ينبغي عليك أن تتعلم

    1. أساسيات الشبكات و أنظمة التشغيل وال database و البروتوكولات وبالطبع تعلم أساسيات الويب
    2. تعلم لغة برمجة مثل   python، JavaScript حيث تعتبر python لغة مشهورة في استحدامات ال pentest
    3. ثم بعد ذلك يأتي الجزء العملي حيث تحتاج لتعلم الأدوات الخاصبة بذلك المجال وأستخدامها

    ستفيدك هذه الدورة في إحتراف لغة ال JavaScript وتعلم أساسيات الويب التي ستحتاجها في مجال ال web pentesting

    وذلك في هذا المجال فقط 

    • أعجبني 1
  17. كما تعلمت من دورة تطوير واجهات المستخدم وظيفتك هي تحويل التصميم المقدم إليك إلى web page وهذا ما يحدث غالباً علي مواقع العمل الحر ولكن إذا طلب منك العميل أن تقوم بتصميم الموقع يمكنك عمل ذلك بسهولة علي برنامج AdobeXd أو يمكنك تصفح التصاميم الجاهزة علي الأنترنت وهي كثيرة وتوجد علي مواقع مثل behance, themeforest, dribble, وغيرها الكثير 

    أما إذا كان التصميم جاهز يمكنك معرفة المقاسات من برامج مثل Photoshop او sketch او

    AdobeXD  حسب صيغة ملف التصميم مثلاً

    1. إذا كان الملف psd ستستخدم photoshop
    2. Xdfiles ستستخدم adobeXd

    أما بالنسبة لمراحل التصميم لا يعنيك إلا مرحلة تكويد الموقع أو احيانًا تصميمه أيضًا 

  18. توجد الكثير من المواقع توفر لك ملفات ال psd فقط قم بالبحث عن psd to html ولكن هناك موقع جميل  يسمى front-end mentor يرتب لك تصاميم مختلفة حسب صعوبتها ويوفر لك الألوان والصور إرشادات لبناء الموقع

    وإذا أردت تصاميم أكثر احترافية وصعوبة يمكنك الاطلاع علي موقع مثل awwward, dribble, behance, pinterest

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

    • أعجبني 1
  19. يمكنك بناء ألعاب كبيرة بدون معرفة كبيرة بالرياضيات أو الفيزياء و لكن إن أردت التعلم لن تحتاج لتعلم الرياضيات او الفيزياء بتعمق بل أساسيات الجبر الخطي و تعلم حساب التفاضل والتكامل وأساسيات الهندسة وأساسيات الفيزياء وليس بتعمق

    وبالنسبة ل تعلم sql يعتمد على مميزات اللعبة حيث بعض الألعاب ستحتاج لحفظ بيانات المستخدم و حفظ تقدمه و أشياء أخرى 

    نعم يمكنك بناء ألعاب كبيرة بال unity مثل 

    1. Alto’s AdventureS

    2. Shadow Fight 

    3. Hearthstone

    وهذه ألعاب كبيرة يمكنك البحث عنها

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

    1. محرك unity  ستحتاج إلى تعلم لغة البرمجة #c ويمكن ايضـــا العمل بال unityscript (نموذج مخصص من ال JavaScript) ولكن الأفضل #c وبعدها ستحتاج لتعلم المحرك و يوفر المحرك عنك بعض الجرافيك والمعادلات الفيزيائية ويعتبر المحرك unity أسهل نسبياً عن المحرك unreal ويمكنك بناء ألعاب ضخمة حقاً بإستخدام هذا المحرك
    2. محرك unreal ستحتاج إلى تعلم لغة البرمجة ++c وأيضا يجب تعلم المحرك ويعتبر هذا المحرك أصعب في التعلم عن unity ولكن تستطيع به بناء أصعب الألعاب التي يمكن تخيلها ويعتبر إحترافي أكثر من unity

    يفضل بالطبع تعلم أساسيات الفيزياء والرياضيات حيث لن توفر لك المحركات كل شئ لبناء الألعاب الضخمة ولكن لبعض الألعاب البسيطة لن تحتاج لتعلم الفيزياء أو الرياضيات 

    • أعجبني 1
  21. ما هو الذكاء الإصطناعي  

    يشير مصطلح الذكاء الاصطناعي (AI) إلى الأنظمة أو الأجهزة التي تحاكي الذكاء البشري لأداء المهام والتي يمكنها أن تحسن من نفسها استنادًا إلى المعلومات التي تجمعها

    يشمل الذكاء الإصطناعي العديد من المجالات ويجب دراسة أحد هذه المجالات مثل 

    1.  روبوتات(Robotics)
    2. تعليم الاله(Machine Learning) 
    3. Neural Networks الشبكات العصبية لمحاكاة المخ البشري
    4. Vision يهتم بالرؤية وتفسير الصور 
    5. Speech Processing تفسير الكلام وإنتاجه
    6. Natural Language Processing يستخدم في الترجمة 

    خطوات دراسة ال ai

    1. دراسة أساسيات ال ai
    2. دراسة أحد فروع ال ai
    3. دراسة الأدوات أو اللغات البرمجية المستخدمة مثل لغة ال python بالإضافة للمكتبات الخاصة بالذكاء الإصطناعي 
    • أعجبني 1
  22. أنا لست مبرمج تطبيقات ios ولكن وجدت بعض المعلومات ربما تفيدك

        1.منع المستخدم من أخذ لقطة شاشة

    // عن طريق ال userDidTakeScreenshotNotification
    class ViewController: UIViewController {
    
        override func viewDidLoad() {
    
            super.viewDidLoad()
    
            // Do any additional setup after loading the view.
    
            NotificationCenter.default.addObserver(self, selector: #selector(didTakeScreenshot(notification:)), name: UIApplication.userDidTakeScreenshotNotification, object: nil)
    
        }
    
        
    
        @objc func didTakeScreenshot(notification:Notification) -> Void {
    
            print("Screen Shot Taken")
    
        }
    
    }
        

    2. منع المستخدم من تسجيل الشاشة

    //عن طريق ال isCaptured
    func isRecording() ->Bool {
    
            for screen in UIScreen.screens {
    
                if (screen.isCaptured) {
    
                    print("screen is recorded")
    
                    return true
    
                }
    
            }
    
            return false
    
    }

     

×
×
  • أضف...