-
المساهمات
9380 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
133
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو محمد_عاطف
-
هل يمكنك إرسال الدالة createStripeSession في جافا سكريبت
- 4 اجابة
-
- 1
-
-
أعتقد أن المشكلة لديك ليست في ال urls بل هي تعمل جيدا . الخطأ لديك في ملفات الجافاسكريت حيث يبدوا أنك قمت بوضع عنوان ال checkout في ملف الجافاسكريبت بدون ال prefix_default_language لذلك أولا يمكنك فتح نافذة ال network في أدوات المطور في المتصفح وأنظر إلى الطلب الذى يتم إرساله عند الدفع وأنظر إلى العنوان هل يوجد به ال lang أم لا إذا لم يوجد إذا كما أخبرتك يجب إضافة اللغة فى ملف ال Javascrip . وإذا كانت المشكلة شئ فمن فضلك قم بإرفاق صورة للرد الذى أرسله django لك على طلب ال checkout
- 4 اجابة
-
- 1
-
-
إن هذا من المستحيل تنفيذه إلا إذا كان لديك صلاحية الوصول إلى موقع شي إن ومن هناك تقوم بإرسال الطلبات عن طريق ال API إلى موقعك . حيث لا يمكنك تنفيذ طلبات من موقع أخر إلى موقعك عن طريق التحويل إلى عنوان أخر حيث هذا التقيد بسبب الأمان فتخيل لو أمكن تحويل أى شخص إلى رابط موقع أخر ومن ثم جعل ما يقوم به يتم إرساله إليك فهكذا يمكنك إختراق ومتابعة أى شخص . لذلك إذا لم تكن لديك صلاحية الوصول إلى موقع شي إن ووضع أكوادك بداخله فالحل الوحيد هو تطوير إضافة للمتصفحات حيث تجعل تلك الإضافة بالعمل على موقع شي إن وتقوم بتحليل الصفحة وفي كل مرة تقوم بإضافة منتج إلى السلة فسوف تعرف تلك الإضافة ومن ثم إرسال الطلب إلى موقعك مباشرة . ولكن هذا الحل ليس عمليا فلن يريد أحد تحميل إضافه لمتابعته و تسجيل ما يقوم به .
- 6 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته . إن الدورات هنا في الأكاديمية يتم تطويرها وتحديثها دائما لتواكب متطلبات سوق العمل و أحدث التقنيات المطلوبة والمشهورة في الوظائف سواء في العمل الحر أو الشركات . وأيضا الأكاديمية هنا توفرلك ضمان لإسترداد كامل سعر الدورة في حالة أنك أنهيت الدورة ولم تجد أي عمل لمدة ستة أشهر (من وقت إتمام الدورة) و يمكنك رؤية هذا الشرط هنا في صفحة الأسئلة الشائعة. لذلك إذا كنت مجتهدا وقمت بإتمام الدورة والحصول على الشهادة فستحصل على عمل إن شاء الله ولكن شريطة كونك مجتهدا ومدي إستيعابك للدورة فهذا أيضا يعتمد على الشخص وليس فقط محتوي الدورة. كما وضحت لك سابقا أن هنا الأكاديمية تقوم بتطوير الدورات دائما بما يناسب سوق العمل وبمجرد شرائك للدورة لك وصول مدي الحياة للدورة وجميع التحديثات المستقبلية لها . وأيضا السؤال يفتقر إلى الدورة التي تريد دخولها لذلك يرجي توضيح الدورة . يمكنك قراءة الإجابات التالية للحصول على إجابة وافية لهذا السؤال بخصوص كل دورة في الأكاديمية هنا :
-
وعليكم السلام ورحمة الله وبركاته . إن Service Providers (مقدمو الخدمات) هي العمود الفقري لتطبيق Laravel وهو المركز الرئيسى لكامل عمليات تمهيد التطبيق (bootstrapping) , حيث يعمل كأداة لتسجيل وتكوين الخدمات التي يعتمد عليها التطبيق كاملا . يتم استخدام Service Providers لتحميل خدمات التطبيق مثل الربط بين الواجهات و تسجيل روابط حاوية الخدمات (ٍservice container) و مستمعي الأحداث (event listeners) و البرامج الوسيطة (middlewares) و حتى المسارات (route binding) . وإن جميع إصدارات لارافيل لها نفس إستخدامات Service Providers ونفس الخصائص والإختلاف فقط الآن في إصدار 11 حيث بدلا من أن يتم تسجيل ال Service Providers في config/app.php أصبح الآن يتم تسجيله في bootstrap/providers.php . أما طريقة إنشاء ال bootstrap/providers.php كما هي . والآن لنقم معا بإنشاء Service Providers. لإنشاء Service Provider نقوم بتنفيذ الأمر التالي : php artisan make:provider CustomServiceProvider وسيتم إنشاء ملف جديد بإسم ال Service Provider الذي قمت بكتابته في app\Providers وسيتم تسجيله تلقائيا بداخل bootstrap/providers.php . الآن هذا هو محتوي الملف بعد إنشاءه : namespace App\Providers; use Illuminate\Support\ServiceProvider; use App\Services\CustomService; class CustomServiceProvider extends ServiceProvider { /** * Register any application services. * * @return void */ public function register() { // تسجيل الخدمة في حاوية الخدمة $this->app->singleton(CustomService::class, function ($app) { // CustomService هنا سيتم تنفيذ الكود التالي عند محاولة إنشاء كائن من return new CustomService(); }); } /** * Bootstrap any application services. * * @return void */ public function boot() { // منطق يحتاج إلى التنفيذ بعد تسجيل الخدمات } } الآن بعد إنشاء ال service provider لنري كيف يتم إستخدامه . لنفترض أن لدينا controller يسمى test مثلا : use App\Services\CustomService; class TestController extends Controller { protected $customService; public function __construct(CustomService $customService) { $this->customService = $customService; } public function index() { // استخدام الخدمة $this->customService->performAction(); } } لاحظ هنا في TestController قمنا بإنشاء دالة بانية __construct وهذا ال controller يعتمد على CustomService الذى قمنا بإنشاء ال service providers لها وبهذا عند إستدعاء هذا ال controller أو قام أى route بالإشارة إليه سيتم تنفيذ الدالة البانية وبداخل الدالة البانية ننشأ كائن من CustomService وبهذا سيتم تنفيذ الكود الذى قمنا بكتابته بداخل service provider في الدالة register . لنري معا أين الإستفادة منه : من المؤكد أنك إستخدمت route binding في لارافيل : use App\Http\Controllers\UserController; use App\Models\User; // Route definition... Route::get('/users/{user}', [UserController::class, 'show']); // Controller method definition... public function show(User $user) { return view('user.profile', ['user' => $user]); } لاحظ في الكود السابق كيف قمنا بتمرير المعامل User إلى الدالة show ولذلك عند الذهاب إلى المسار /users/5 لارافيل تلقائيا سيقوم بوضع المستخدم صاحب ال id رقم 5 بداخل المتغير user$ . كيف قام بهذا ؟ وبدون حتي أن نرسل إستعلام إلى قاعدة البيانات لإحضار المستخدم . هذه هي قوة ال Service providers مع Service Container وهما من أقوى الخصائص في لارافيل ففي هذا المثال بسيط قد قام بتوفير علينا إرسال إستعلام إلى قاعدة البيانات وغيره . ويمكنك قراءة المزيد عن Service providers على موقع موسوعةحسوب على الرابط التالي .
- 4 اجابة
-
- 1
-
-
هل يظهر خطأ عند تحميل الصور ؟ هل تقصد بالتحميل أى رفع الصور على السيرفر أم تحميلها من السيرفر ؟ إذا كنت تقصد رفع الصور فيجب التأكد من المسار الذى يتم رفع الصور فيه هل هو موجود أم لا . وهل لك صلاحية في الوصول إليه وإضافة الملفات أم لا ويفضل إرسال الكود لمعرفة أين يكمن الخطأ
-
قم بفتح موجه الأوامر cmd وكتابة الأمر التالي : python --version إذا ظهر إصدار بايثون فإذا قد تم تثبيته بنجاح وإضافته إلى متغيرات ال path environment . وإذا ظهر خطأ بعدم التعرف على بايثون فيرجي حذفه وإعادة تثبيته مع التأكد من تفعيل خيار Add python to path بعد ذلك قم بالضغط على علامة السهم فى أقصى اليمين وإختيار run python file . ومن المفترض الآن أن يعمل إن شاء الله . إذا حدثت أى مشكلة فيرجى إرفاق صورة
-
الخطأ يخبرك أنه لامكن الإتصال بالعنوان http://192.168.9.16:8080/shot.jpg . وذلك لان الخادم قد رفض الطلب لذلك تأكد من أنه يوجد لديك صلاحية للوصول إلى هذا الرابط وإذا كانت هذه كاميرا تأكد من أنه لديك سماحية الوصول إليها
-
وعليكم السلام ورحمة الله وبركاته . بعد الإنتهاء من دورة بايثون سيكون المشوار أمامك طويلا قليلا حيث ستكون حينها مبتدأ Junior وستكون المنافسة صعبة قليلا ولذلك سيكون عليك أولا إنشاء portfolio جيد ويحوي المشارييع التي أنشئتها وأيضا يجب عليك عمل المشاريع مع نفسك حتي بعد إنتهاء الدورة وذلك لزيادة خبرتك وأيضا لإضافته في ال portfolio الخاص بك . وأيضا فرصة الحصول على العمل تعتمد على إصرارك وعلى مدى إجتهادك فليس معني أنك أنهيت الدورة أنك بهذا أصبحت محترفا بل سيتوجب عليك دائما المذاكرة والبحث عنما هو جديد لذلك يجب عليك أن تطور نفسك دائما وألا تقف في مكان واحد . وهنا الأكاديمية تضمن لك الحصول على عمل خلال ستة أشهر من إتمام الدورة لذلك كما وضحت لك يجب عليك الإجتهاد والبحث في مواقع العمل الحر عن المشاريع البسيطة والتي لا تضمن خبرات كبيرة والتقديم فيها والبحث أيضا عن شركات بالجوار منك تطلب Juniors حيث أن العمل في بداية حياتك المهنية جيد حيث ستجد التدريب ومن يوجهك .
-
للأسف لا توجد ميزة تحميل الفيديوهات على الأكادمية وذلك حفاظا على الأمان وعدم سرقة الدروس . ويمكنك تشغيل الدرس وإيقافه مؤقتا حتي يتم تحميله في المتصفح ومشاهدته بعد ذلك لا من الممكن أن هذه المشكلة بسبب وجودإضافة adblock فغالبًا ذلك سبب المشكلة يمكنك استخدام uBlock Origin . ولأجل حذف الملفات المؤقتة يجب تحديث الصفحة بالضغط على CTRL + F5 . إن استمرت أرجو تجربة تحميل وتثبيت Cloudflare WARP فهو بمثابة طبقة وسيطة مثل الـ VPN من خلال شبكة Cloudflare وبعد التثبيت قم بتشغيل التطبيق بالضغط على زر الإتصال مباشرًة وتفقد الدروس مرة أخرى. https://install.appcenter.ms/orgs/cloudflare/apps/1.1.1.1-windows-1/distribution_groups/release وذلك لتفقد هل يوجد مشكلة بالإنترنت أم لا.
- 5 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. الخطأ غير واضح من الكود المرفق حيث هذا الكود هو فقط يقوم بإنشاء العنصر a الذى يحوي رابط تحميل الملف . حيث هذا السطر هو ما يقوم بإنشاء رابط التحميل ولنعرف أين الخطأ يتوجب علينا أن نعرف ما الذى يظهر لك وهل الرابط الذى يتم الذهاب إليه للتحميل صحيح أم لا . أعتقد أن المشكلة في ال parameter الذى ترسله للرابط هو file حيث تضع نقتطين (file=..uploads) ولا أعرف لماذا هل للذهاب مباشرة إلى عنوان الملف ؟ لذلك يفضل إرسال أيضا ملف download_script.php وايضا صورة للخطأ الذى يظهر لك
-
وعليكم السلام ورحمة الله وبركاته . لا توجد طريقة سوى تحويله إلى كود html و css وسيتوجب عليك أن يكون لديك العلم الكافي بلغة HTML و Css و أيضا javascript إذا كان الموقع تفاعليا . ويمكنك إستخدام أطر العمل مثل bootstrap و Tailwind . أو يمكنك البحث عن تصاميم مشابهة وتقوم بالتعديل عليها
- 3 اجابة
-
- 1
-
-
لامشكلة فأى شئ ننقطع عنه مدة من الزمن يتم نسيانه فهذا شئ طبيعي ولكن المراجعه تختلف على حسب ما كنت قد وصلت إليه . فإذا كنت قبل الإنقطاع قد ذاكرت جيدا وكانت نسبة إستيعابك للدورس كبيرة فستجد أن المراجعه سهلة بإذن الله وسريعه والطريقة الأفضل في هذه الحالة هي مشاهدة الدروس سريعا وخصوصا دروس الأساسيات و محاولة الإستذكار فإن وجدت صعوبة في إستذكار درس معين فلا تتخطاه حتي تفهمه حتي لو قمت بإعادته أكثر من مرة و محاولة حل التمارين بنفسك في أخر كل درس وحاول ألا تمل من هذا الموضوع . يمكنك تخصيص عدد ساعات معينة لك وحاول في هذه الساعات عدم فعل أى شئ سوى المذاكرة حتي لا يشتتك شئ عن المذاكرة. ويمكنك قراءة الإجابات التالية لتفاصيل أكثر عن الطرق الجيدة للمذاكرة:
-
هذه مشكلة شائعه فى livewire عند رفع الصور من خلال https وليس http كما في ال local . لذلك أولا لنجرب الحل التالي وهو يعمل بنسبة 90% حيث أن الخطأ هو من بسبب ال proxy . لذلك لنذهب إلى ملف app\Http\Middleware\TrustProxies.php ونقوم بتغير السطر protected $proxies; إلى السطر التالي : protected $proxies = '*'; ويجب أن يعمل هذا الحل إن شاء الله . إذا لم يعمل لنقم بتجربة الحل الآخر وهذا سيحل المشكلة إن شاء الله . لنذهب إلى ملف vendor\livewire\livewire\src\Controllers\FilePreviewHandler.php ونقوم بحذف السطر التالي من الملف حيث هو المسؤول عن الخطا 401 : abort_unless(request()->hasValidSignature(), 401);
- 2 اجابة
-
- 1
-
-
كما أخبرتك الكود السابق لا يقوم بالإدخال في قاعدة البيانات إذا ليس هذا هو الكود الذى يتم تنفيذه كل ما يقوم به الكود السابق هو رفع الملف فقط على السيرفر دون أن يضيف أى شئ في قاعدة البيانات . يفضل إرسال ال form لنرى أى ملف يتم إرساله إلى قاعدة البيانات
-
لاحظ أن الكود الذى أرسلته لا يوجد به الجزء الخاص بالإدخال في قاعدة البيانات . لذلك إذا كان هذا هو الملف كاملا إذا هذا ليس الإسكريبت الذى يتم تنفيذه . قم بالبحث في ملف الواجهة الأمامية html و أبحث عن خاصية action فى عنصر form وستجد بها إسم الملف قم بإرسال الكود في هذا الملف لمحاولة مساعدتك في حل المشكلة
-
توجد عدة أسباب لتلك المشكلة وأيضا عدة حلول لها . لنتبع معا الحلول : قم بتشغيل البرنامج كمسؤول هكذا ثم الضغط على الأيقونة التالية: ويمكنك قراءة الإجابات التالية :
- 3 اجابة
-
- 1
-
-
لا بالطبع لن يكون هناك أي مشاكل فلو جميع الأعمدة لها نفس الأسماء جميعها ومختلفه في أخر حرف أو رقم فلن يؤثر ذلك في شئ فإن قاعدة البيانات ليس لها أى علاقة سواء كانت الأعمدة متشابهة في عدة أحرف أم لا المهم هو عند إضافة بيانات في القاعدة يجب التأكد من العمود الصحيح الذى تريد إضافة البيانات فيه
-
وعليكم السلام ورحمة الله وبركاته . الخطأ بسيط جدا . أعتقد أنك بدلا من كتابة print قمت بكتابة price لذلك لا توجد دالة تسمى price price = [50,60,100,500,1000,1000000,20000000,91000000000] print(max(price))
- 3 اجابة
-
- 1
-
-
هذا بالفعل أنك قمت بتقسيم الإسكريبت إلى عدة سكريبتات كل سكريبت مسؤل عن شئ معين وهذا بالفعل سيحسن تنفيذ الإسكريبت و الإدخال في قاعدة البيانات . فلا تقلق من كثرة الإسكريبتات حيث كل سكريبت يعمل بمفرده حين الذهاب إلى مسار الخاص بالإسكريت فلو كان السيرفر يحوى آلاف الإسكريبتات سيعمل فقط الإسكريبت الذى يتم الذهاب إليه لذلك لا قلق من هذه الناحية . ولكن يفضل تنظيم الإسكريبتات حتي فيما بعد إذا أردت إضافة أو تعديل أو حتي إصلاح سكريبت معين فلا تتوه من كثرة الملفات وحتي تجد ما تريد البحث عنه بسرعه
- 10 اجابة
-
- 1
-
-
إذا كانت قاعدة البيانات مدفوعة الاستضافة فغالبا يمكن أن تتحمل عدد كبير من الأعمدة. بشكل عام لا يوجد عدد محدد يمكن التأكد منه بدون المعرفة الكاملة لمتطلبات التطبيق الخاص بك ومواصفات الاستضافة ومع ذلك فإن 30 عمود هو عدد متوسط وليس بالكبير ويمكن التعامل معه بشكل طبيعي في معظم أنظمة إدارة قواعد البيانات وهذا أيضا يعتمد على مدي عدد البيانات الموجود في القاعدة . ولكن يمكنك بالفعل تخزين أى شئ المشكلة ستكمن فقط في إحتمال أن يكون السيرفر بطئ في إحضار البيانات والبحث في قاعدة البيانات لذلك إذا لم تهتم بسرعة التطبيق فلابأس. أما بالنسبة إلى excel فإذا كنت تقصد أنك تريد إنشاء ملف excel ووضع البيانات المرسلة من form به فنعم بالطبع يمكنك ذلك بالتأكيد . يمكنك إستخدام مكتبة php الرسمية في ذلك وهى تسمى phpspreadsheet ماذا تقصد بأكثر من سكريبت في الفورم ؟
- 10 اجابة
-
- 1
-
-
لقد أجبناك سابقا على مثل هذا السؤال وأرى أن هذا ليس بالشئ الجيد لك حيث أنك هكذا لن تتعلم أي شئ فمن المفترض أن هذه أساسيات لغة php فإذا لم تستطع إنشاء مثل هذا الأشياء البسيطة لن تحقق شيئا في المشاريع الكبيرة . لذلك نصيحتي لك هي فهم الأفكار والأساسيات ومحاولة التطبيق وإذا لم يعمل يمكنك السؤال بعد المحاولات بنفسك ولكن طريقة نسخ الأكواد هذه فلن تفيدك بأى شئ .
-
الأمر بسيط ستحتاج فقط إلى إستماع إلى حدث التغير change ومن ثم تمرير الدالة التي تريد تنفيذها وهذه الدالة تتحقق من الخيار الذى تم إختياره ومن ثم إخفاء أو إظهار حقل الصورة: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script> function toggleImageField() { var selectBox = document.getElementById("selectBox"); var imageField = document.getElementById("imageField"); if (selectBox.value === "نعم") { imageField.style.display = "block"; } else { imageField.style.display = "none"; } } </script> </head> <body> <form action="upload.php" method="post"> <label for="selectBox">هل ترغب في إضافة صورة؟</label> <select id="selectBox" name="option" onchange="toggleImageField()"> <option value="">اختر...</option> <option value="نعم">نعم</option> <option value="لا">لا</option> </select> <br><br> <div id="imageField" style="display: none;"> <label for="image">حقل إرسال الصورة:</label> <input type="file" id="image" name="image"> </div> <br><br> <input type="submit" value="إرسال"> </form> </body> </html> والآن ملف upload.php : <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $option = $_POST["option"]; $servername = "localhost"; $username = "root"; $password = ""; $dbname = "db_name"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("فشل الاتصال: " . $conn->connect_error); } if ($option === "نعم") { if (isset($_FILES["image"])) { $file_name = $_FILES["image"]["name"]; $file_tmp = $_FILES["image"]["tmp_name"]; move_uploaded_file($file_tmp, "uploads/" . $file_name); $sql = "INSERT INTO table_name (book1,book2) VALUES ('$option','$targetFile')"; if ($conn->query($sql) === TRUE) { echo "تم رفع الصورة بنجاح"; } else { echo "عذراً، حدث خطأ أثناء رفع الصورة."; die(); } $conn->close(); } } else { $sql = "INSERT INTO table_name (book1) VALUES ('$option')"; if ($conn->query($sql) === TRUE) { echo "تم الإضافة بنجاح "; } else { echo "عذراً، حدث خطأ أثناء الإضافة."; die(); } $conn->close(); } }
-
لماذا تريد 5 حقول مع 5 إختيارات ؟! إذا كان فقط سيتم رفع ملف واحد وإختيار خيار واحد حيث أن هذا النظام خاطئ وليس جيدا من حيث قاعدة البيانات التي تحجز أعمدة فارغة دون داعي ومن حيث كتابة أكواد كثيرة جدا ومستقبلا إذا أردت إضافة خيار جديد سيتوجب عليك إضافة عمود في قاعدة البيانات مع إضافة خيار أخر وحقل أخر و إضافة رفع الملف الجديد في الخادم . يمكنك إضافة فقط عمودين في قاعدة البيانات عمود خاص بالإختيار الذى تم إختياره وعمود أخر بمكان الصورة . أى مثلا عمود option مع عمود hoss . والآن هذا ملف الواجهة الأمامية html : <!DOCTYPE html> <html lang="ar"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> <label for="option">من فضلك إختر من التالي:</label> <select id="option" name="option"> <option value="">اختر...</option> <option value="1">الخيار الأول</option> <option value="2">الخيار الثاني</option> <option value="3">الخيار الثاني</option> <option value="4">الخيار الثاني</option> <option value="5">الخيار الثاني</option> </select> <div> <label for="image">حقل الصورة:</label> <input type="file" name="image" accept="image/*"> </div> <button type="submit">إرسال</button> </form> </body> </html> وهذا هو كود الواجهة الخلفية upload.php : <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $option = $_POST["option"]; if ($option !in_array($option, [1,2,3,4,5])) { echo "من فضلك إختر خيار صحيح"; die(); } $path = "img". $option ."/"; $targetFile = $path . basename($_FILES["image"]["name"]); // الاتصال بقاعدة البيانات $servername = "localhost"; $username = "root"; $password = ""; $dbname = "db_name"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("فشل الاتصال: " . $conn->connect_error); } if (move_uploaded_file($_FILES["image"]["tmp_name"], $targetFile)) { $sql = "INSERT INTO table_name (hoss$option) VALUES ('$targetFile')"; if ($conn->query($sql) === TRUE) { echo "تم رفع الملف بنجاح"; } else { echo "عذراً، حدث خطأ أثناء رفع الملف."; die(); } $conn->close(); } else { echo "عذراً، حدث خطأ أثناء رفع الملف."; } }
- 3 اجابة
-
- 1
-
-
أفضل المجالات حاليا التي يمكنك دخولها ويوجد بها وظائف كثيرة سواء في مجال العمل الحر أو الشركات هي تطوير تطبيقات الويب . ويوجد ثلاثة وظائف رئيسية فيها : تطوير الواجهات الأمامية (Front end) تطوير الواجهات الخلفية (back end) تطوير الويب (Full Stack) وتوجد هنا في الموقع دورات عديدة وكل دورة بعد إنهائها تؤهلك للحصول على الوظيفة من الثلاثة السابقة . ويمكنك قراءة الأجوبة التالية لشرح أوفر و حتي تستطيع أن تحدد أى stack تريد أن تعمل فيه وايضا الدورات التي تؤهلك للعمل بها :
