-
المساهمات
19827 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
473
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mustafa Suleiman
-
في الأكاديمية ستجد قسم خاص بمقالات الذكاء الاصطناعي، بينما في المصادر الأجنبية الأسهل هو الإطلاع على Hub أي مركز لأحدث المستجدات، وستجد ذلك هنا: https://www.theneurondaily.com أحدث الأخبار https://paperswithcode.com حيث يوجد أحدث الأبحاث بخصوص التعلم الآلي. وبالنسبة لليوتيوب ابحث عن قناة AI Explained.
-
هناك الكثير من المنصات الخاصة بالمسائل البرمجية لمختلف لغات البرمجة ويتم تصنيفها من حيث الصعوبة، الأسهل لك في البداية أن تبدأ من خلال HackerRank أو Edabit أو Codewars حيث تبدأ بالتدرج من خلال منصة سهلة نسبيًا مثل Codewars وحل الأسئلة السهلة ثم المتوسطة ثم الصعبة، ثم الإنتقال لمنصة leetcode وحل المسائل التي بها بدءًا من مستوى متوسط فما فوق. بخصوص المدونة، فلا يوجد منصة خاصة بذلك في منصات حسوب، المكان المتاح للمشاركة هو من خلال قسم أسئلة البرمجة هنا بالأكاديمية، أو من خلال منصة IO حيث بها مجتمعات خاصة بالبرمجة. io.hsoub.com
- 4 اجابة
-
- 1
-
-
لا حاجة لسكراتش إذن، الفكرة منها تقديمك للمنطق البرمجي والمفاهيم الخاصة به مثل المتغيرات والجمل الشرطية وحلقات التكرار وكيفية الربط بينهم، وذلك بشكل بسيط دونّ استخدام أي كود. طالما لديك خبرة برمجية أو خلفية تقنية وقادر على تعلم البرمجة من خلال لغة برمجية مباشرًة، فلا مشكلة تستطيع تخطي ذلك المسار، وبقية المسارات مهمة لذا الأفضل دراستها لتحقيق استفادة.
-
من خلال الضغط على CTRL + S في محرر الأكواد وسيتم حفظ ما قمتي به في الملف. وفي حال السؤال خاص بأحد الدروس، فستجدين أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم أسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
-
الحل لا مشكلة به، بناءًا على المتطلبات في الملف، حيث تنبأت بـ traffic_volume، استخدمت تقنية كلاسيكية وهي Random Forest وشبكة عصبية، ثم استخدمت MAE كمقياس، أجريت معالجة مسبقة للبيانات وقمت بتقسيم البيانات كما هو مطلوب. والنموذج الكلاسيكي قدم أداء جيد، والشبكة العصبية كما هو متوقع بدون ضبط دقيق، لم تقدم أداء منافس، ولتحقيق هدف الحصول على دقة أعلى من زملائك، عليك التركيز على تحسين الشبكة العصبية واستكشاف الميزات الإضافية التي تم تجاهلها.
-
لا يتم الإجابة على مثل تلك الأسئلة بشكل مباشر، فهو اختبار لك ويجب تنفيذه لتحقق استفادة، المطلوب منك تحويل نص متصل بدون مسافات ومصفوفة من الأرقام تمثل أطوال الكلمات إلى جملة عادية تحتوي على مسافات بين الكلمات. والمدخلات ستكون النص المشفر وهو سلسلة نصية واحدة تحتوي على جميع الحروف بدون مسافات مثل "Isendyousecretmessage" بالإضافة إلى مصفوفة الأطوال وهي مصفوفة من الأرقام، كل رقم يمثل طول كلمة بالترتيب كالتالي {1, 4, 3, 1, 6, 7}. والمخرجات هي الرسالة الأصلية أي سلسلة نصية تحتوي على الكلمات مفصولة بمسافات كالتالي "I send you a secret message". وستقوم بالحل عن طريق تعريف متغيرات واستخدام حلقة تكرار واستخدام StringBuilder فهو الأفضل لبناء السلاسل النصية بشكل متكرر لأنه أكثر كفاءة من تكرار عملية إضافة النصوص بواسطة + للسلاسل النصية العادية. وبواسطة currentIndex وطول الكلمة الحالي من مصفوفة wordLengths، ستقوم باقتطاع الجزء المناسب من encodedText، وفي C# تستطيع استخدام الدالة Substring(startIndex, length). حيث startIndex سيكون هو currentIndex وlength سيكون هو طول الكلمة الحالي من مصفوفة wordLengths. ثم عليك إضافة طول الكلمة التي اقتطعتها إلى currentIndex حتى يكون جاهزًا للكلمة التالية، وتستطيع حل الباقي من هنا.
-
صلاحيات الرابط غير صحيحة، قم بالضغط على share أعلى اليمين ثم اختر anyone with the link للسماح لأي شخص برؤية الكود في الملف
-
الأمر مختلف بالنسبة لجافاسكريبت، في الإصدارات القديمة للغة، جميع الخصائص والميثودز في كائن JavaScript تكون عامة public، وتستطيع الوصول إليها وتعديلها من أي مكان. وكان يوجد محاكاة لمبدأ التغليف، أي private، وذلك بوضع شرطة سفلية _ كبادئة لاسم الخاصية أو الميثود للإشارة إلى أنها خاصة، وذلك مجرد اصطلاح ولا يمنع الوصول الفعلي، الفكرة لتنبيه المبرمجين الآخرين إلى أن تلك الخواص والميثودز لا ينبغي استخدامها مباشرة من خارج الكائن. لكن يوجد طريقة أخرى من خلال الـ Closures لإنشاء متغيرات وتوابع خاصة حقًا لا يمكن الوصول إليها من خارج الدالة أو الوحدة التي أُنشئت فيها. وصدرت تحديثات في الإصدار ECMAScript 2022 وما بعده حيث أصبح يوجد Private Class Fields أو حقول الكلاس الخاصة، وتم تقديم طريقة رسمية لتعريف حقول خاصة في الكلاسات باستخدام علامة الهاش # كبادئة. class MyClass { #privateField = 10; publicField = 20; constructor() { console.log(this.#privateField); } #privateMethod() { console.log("This is a private method"); } publicMethod() { this.#privateMethod(); console.log("This is a public method accessing private field: " + this.#privateField); } } const instance = new MyClass(); console.log(instance.publicField); instance.publicMethod(); أما بخصوص protected فلا لا يوجد مفهوم protected مباشر ومدمج في JavaScript كما هو الحال في Java أو PHP والذي يسمح بالوصول من الكلاس نفسه والكلاسات الفرعية أي السماح للكلاسات الفرعية بالوصول إلى أعضاء معينة من الكلاس الأب ولكن ليس من الخارج. ولتنفيذ سلوك مشابه بإمكانك الاعتماد على الاصطلاح مثل _protectedMember كما في private سابقًا، أو تصميم الكود بطريقة تسمح بذلك كتمرير الدوال أو استخدام WeakMaps في سيناريوهات معقدة، ولكن لا يوجد كلمة مفتاحية مخصصة لذلك. فالحقول الخاصة # تكون خاصة بالكلاس الذي عُرّفت فيه فقط ولا يمكن للكلاسات الفرعية الوصول إليها مباشرة.
- 5 اجابة
-
- 1
-
-
find للبحث في مصفوفة وإعادة أول عنصر يطابق شرط معين نقوم بتعريفه في دالة الاختبار، أي دالة callback التي يتم استدعائها من قبل find، وفي حال لم يتم العثور على عنصر، تعود بقيمة undefined. const numbers = [5, 12, 8, 130, 44]; const found = numbers.find(num => num > 10); console.log(found); في الكود السابق بحثت عن عنصر أكبر من 10 وبما أنّ 12 هو أول رقم أكبر من 10 يتم إيجاده بسبب الـ index الخاص به وهو 1 في المصفوفة، لذا النتيجة هي 12، ولا يُشترط أرقام بالطبع الفكرة هي إرجاع أول عنصر في المصفوفة حتى لو كان كائن: const users = [ { id: 1, name: "أحمد" }, { id: 2, name: "محمد" }, { id: 3, name: "علي" } ]; const user = users.find(user => user.id === 2); console.log(user); بينما الدالة findIndex تشبه find، لكن بدلاً من إعادة العنصر نفسه، تُعيد فهرس أي الـ index لأول عنصر يطابق الشرط، وإن لم يتم العثور على عنصر، تُعيد قيمة -1 const numbers = [5, 12, 8, 130, 44]; const index = numbers.findIndex(num => num > 10); console.log(index); حسب الشرط الرقم 12 هو أول رقم أكبر من 10 ، وفهرسه هو 1. بالنسبة لـ findOne فلا توجد دالة في جافاسكريبت بذلك الاسم، وهي خاصة بقاعدة البيانات MongoDB للبحث عن أول مستند يطابق استعلام معين في قاعدة البيانات. db.student.findOne({}) ستُعيد أول مستند مباشرًة لأننا حددنا كائن الشرط على أنه فارغ. بينما لو كتبت: db.student.findOne({ name: "Zen" }) ستُعيد أول مستند به خاصية name بقيمة Zen
-
find و findIndex دوال خاصة بلغة جافاسكريبت، بينما findOne خاصة بـ MongoDB، هل السؤال صحيح أم أخطأت في الكتابة؟
-
السؤال غير واضح، هل تقصد المسارات في دورة علوم الحاسوب؟ المسارات المتعلقة هي التالي: قواعد البيانات إلى عالم الويب البرمجة كائنية التوجه الخوارزميات وبنى المعطيات أنماط التصميم أساسيات هندسة البرمجيات إعادة تصميم البرمجيات Refactoring ستحقق استفادة بدراسة كل ما سبق، وفي حال لم تقصد ذلك ما هي المسارات المقصودة؟ تقصد roadmap؟
-
الفكرة أنّ محتوى الدورة كبير ولا يمكن تضمينه في دورة واحدة وهي دورة جافاسكريبت، وأيضًا محتوى الدورة مُخصص أكثر لتصميم واجهات المستخدم، بالتالي فصل الدورة منطقي لتغطية المواضيع بشكل أعمق، ولا حاجة لتفصيل مزايا كل دورة، يوجد عرض حاليًا للإشتراك في كلا الدورتين. وبخصوص أنّ اللغات الأساسية بجانب بوتستراب وjQuery غير كافية للعمل على مشاريع حقيقية، لأنّ مثل تلك المشاريع بها واجهات مستخدم معقدة نسبيًا وأيضًا تتطلب الكثير من التفاعل معها، وتنفيذ ذلك بواسطة التقنيات سابقة الذكر أم غير عملي بالمرة، وحتى لو قمت بتنفيذه من خلالها سيكون أداءًا وجودة أقل بكثير من المكتبات والإطارات المتخصصة في إنشاء الواجهة الأمامية التفاعلية مثل React و Vue.js. ستتفهم الأمر عند دراسة React ومفهوم المكونات والحالة state والتحديث التلقائي للواجهة دونّ إعادة تحديث الصفحة، وإمكانية التنقل بين الصفحات بسرعة دونّ تحميل الصفحة.
- 4 اجابة
-
- 1
-
-
لن تستطيع حفظ سجل في جدول الصور images يعتمد على مفتاح أجنبي fk_user_id قبل أن يكون المستخدم user قد حُفظ بالفعل وحصل على id. الحل هو في ترتيب العمليات واستخدام المعاملات Transactions لضمان أن كل شيء يتم بنجاح أو لا شيء يتم على الإطلاق، أولاً في نموذج app/Models/User.php عليك تعريف العلاقات كالتالي: namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; class User extends Authenticatable { use HasFactory, Notifiable; protected $fillable = [ 'name', 'email', 'password', ]; public function images() { return $this->hasMany(Image::class, 'fk_user_id', 'id'); } } المهم هو تحديد العلاقة في دالة images. ثم في النموذج app/Models/Image.php: namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Image extends Model { use HasFactory; protected $fillable = [ 'fk_user_id', 'path', // أو اسم الحقل الذي يخزن مسار الصورة 'original_name', ]; public function user() { return $this->belongsTo(User::class, 'fk_user_id', 'id'); } } ثم في الـ Controller الخاص بمعالجة ذلك وليكن UserController أو RegisterController: use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Storage; class UserController extends Controller { public function store(Request $request) { $validatedData = $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|min:8|confirmed', 'user_images.*' => 'nullable|image|mimes:jpeg,png,jpg,gif|max:2048' // 'user_images' هو اسم حقل الإدخال للملفات ]); DB::beginTransaction(); // ابدأ المعاملة try { $user = User::create([ 'name' => $validatedData['name'], 'email' => $validatedData['email'], 'password' => Hash::make($validatedData['password']), ]); if ($request->hasFile('user_images')) { foreach ($request->file('user_images') as $file) { $path = $file->store('user_photos', 'public'); $user->images()->create([ 'path' => $path, 'original_name' => $file->getClientOriginalName(), ]); } } DB::commit(); return response()->json(['message' => 'User and images saved successfully!', 'user_id' => $user->id], 201); } catch (\Exception $e) { DB::rollBack(); return response()->json(['message' => 'Failed to save user and images.', 'error' => $e->getMessage()], 500); } } } $request->hasFile('user_images') يتحقق هل الطلب يحتوي على ملفات بالاسم user_images ويجب أن يكون ذلك هو الـ name الخاص بالحقل في نموذج HTML: <input type="file" name="user_images[]" multiple> و $file->store('user_photos', 'public') يخزن الملف الفعلي ويجب عليك إعداد قرص التخزين public وتشغيل أمر php artisan storage:link لجعل الملفات قابلة للوصول عبر الويب. و $user->images()->create([]) تعتمد على العلاقة hasMany (images()) التي عرفناها في نموذج User، حيث يقوم Eloquent تلقائيًا بملء حقل fk_user_id بـ $user->id.
-
لا يوجد أداة مخصصة لذلك، لكن قياسًا على ما ذكرته، تستطيعي معرفة من قام بالحظر هل هو آليًا أم يدويًا، أي السرعة في الحظر، فالخوارزميات هي ملكية خاصة للشركات أي تعتبر صندوقاً أسود ولا يتم الكشف عن تفاصيل عملها بشكل كامل، وأيضًا تتغير طبيعة عملها من فترة لأخرى. السبيل الوحيد هو من خلال الإحصائيات ومقارنة البيانات، بمعنى: 1- المقارنة بين المنصات، هل يتم التعامل مع نفس المحتوى أو محتوى مشابه حول نفس القضية بشكل مختلف على منصات مختلفة (فيسبوك، تويتر، انستغرام، يوتيوب، تيك توك)؟ وذلك سيوضح الأمر حول سياسات أو توجهات خوارزمية خاصة بكل منصة. 2- تتبع مدى وصول وتفاعل المحتوى المتعلق بالقضية على فترة زمنية، تفقدي هل هناك انخفاض مفاجئ أو تدريجي غير مبرر في الوصول والتفاعل بعد حدث معين أو عند استخدام كلمات مفتاحية معينة؟ وهل يتم تقييد الفيديو أكثر من النصوص، أو الصور أكثر من الروابط، فيما يتعلق بتلك القضية؟ وللتأكد هل الحسابات التي تتناول القضية بشكل نقدي أو من زاوية معينة تعاني من انخفاض في الوصول مقارنة بحسابات أخرى ذات حجم متابعين مشابه تتناول نفس القضية بشكل مختلف أو لا تتناولها؟ وبالطبع يوجد أدوات لجمع البيانات الخاصة بالمنشورات التي تقومين بنشرها مثل Hootsuite, Sprout Social, Brandwatch. 3- تحليل الكلمات المفتاحية والهاشتاجات لاختبار الحظر الشبحي Shadow Banning، من خلال البحث عن هاشتاجات معينة متعلقة بالقضية من حسابات غير مرتبطة بك أو بحسابات جديدة، ورؤية هل تظهر كل المنشورات التي تستخدم الهاشتاج، أم أن بعضها مخفي؟ أيضًا انشري محتوى مشابه، مرة مع الكلمات المفتاحية والهاشتاجات المشتبه بها، ومرة بدونها مع التحكم في المتغيرات أخرى قدر الإمكان، وقارني مدى الوصول والتفاعل. وعامًة الباحثين يقومون بإنشاء حسابات وهمية أو حسابات دمية تُسمى sock puppet accounts لنشر أنواع مختلفة من المحتوى المتعلق بالقضية، مع تغيير طفيف في الكلمات أو الصور، ومراقبة كيفية تعامل الخوارزميات معها، لمحاولة الهندسة العكسية لسلوك الخوارزمية بشكل محدود. ويتوفر أدوات تتبع الهاشتاجات مثل Brand24, Talkwalker, أو حتى أدوات البحث المتقدم داخل المنصات، لكنها لا تظهر الحجب مباشرة بنسبة دقيقة، بل مفيدة في توضيح حجم الاستخدام والانتشار، وأي انخفاض غير طبيعي يعتبر مؤشر. أما على منصتي tiktok و instagram تتوفر أداة spikerz لحساب مدى تأثير الـ Shadowban. وفي حال لديكِ خبرة برمجية تستطيعي استخدام الـ Web Scraping لجمع البيانات برمجيًا من مواقع الإنترنت. وهناك أبحاث أكاديمية توفر منهجيات متقدمة، مثل ورقة Regulating algorithmic filtering on social media. أيضًا الدراسة التالية مفيدة: Revealing The Secret Power: How Algorithms Can Influence Content Visibility on Social Media
-
مرحبًا بك بلقاسم، ستحتاج إلى مراسلة إدارة الأكاديمية من خلال البريد الرسمي، وستجد تفصيل هنا بخصوص الإنضمام كمدرب: https://academy.hsoub.com/pages/teach
- 3 اجابة
-
- 1
-
-
أنت تقصد على virtual box؟ الأمر بسيط، ستقوم بإنشاء نسخة وهمية كما تفعل مع نظام لينكس، وبالطبع ستحتاج إلى تحميل ملف الـ ISO الخاص بنسخة الويندوز وستجدها هنا: Download - Windows 11 Arabic والرابط السابق من موقع مايكروسوفت للتحميل المباشر وصالح لمدة 24 ساعة، في حال أردت التحميل في وقتٍ لاحق، فمن هنا: https://www.microsoft.com/en-us/software-download/windows11 تستطيع إتباع نفس الخطوات التالية على virtual box لكن لنسخة الويندوز:
-
يجب التدرج في التطبيق العملي وليس الإنتقال لمشروع مُعقد كبناء متجر إلكتروني، حيث يتم تنفيذه في النهاية بعد تنفيذ عدّة مشاريع بسيطة ومتوسطة من خلال React، لكونه يجمع ما بين الكثير المفاهيم ونوظف من خلاله كل ما تعلمناه في React وHTML, CSS, JS. أيضًا يجب تعلم كيفية إدارة الحالة العامة للتطبيق global state فذلك أمر رئيسي في مثل تلك المشاريع، وستتعلم ذلك في دورة جافاسكريبت من خلال مشروع تطبيق دردشة يشبه WhatsApp، حيث سنستخدم مكتبة zustand لإدارة الحالة العامة. بعد الإنتهاء منه واستيعابه وإعادة تنفيذه بمفردك مرة أخرى، تستطيع تنفيذ المشروع الذي تريده، حيث ستتعلم من خلاله جميع المفاهيم اللازمة لبناء متجر إلكتروني. وفي حال واجهت مشكلة فيوجد على اليوتيوب شروحات لتوضيح كيفية بناء متجر إلكتروني من خلال React، ولا مشكلة في الإطلاع عليها والتعلم منها فأنت مازلت في مرحلة التعلم.
-
الدورة خاصة بتقنيات MERN بالإضافة إلى تقنيات تطوير تطبيقات الهاتف المحمول من خلال React Native و Ionic، لذا الدورة شاملة لتقنيات جافاسكريبت، ولا يتوجب عليك دراسة الدورة بالكامل، فللحصول على الشهادة الخاصة بالدورة تستطيع دراسة 4 مسارات فقط بحد أدنى، وهم: أساسيات لغة JavaScript أساسيات React.js تطبيق دردشة يشبه WhatsApp أساسيات TypeScript ولو أردت الاستزادة تعلم Next.js من خلال: إنشاء تطبيق أسئلة وأجوبة باستخدام Next.js تطبيق تعلم اللغات باستخدام Next.js أيضًا يوجد مسار تطبيقات الويب التقدمية PWA وهي مفيد لك بشكل عام حيث تقنية PWA أصبحت شائعة الآن.
-
تستطيع مراسلتهم من هنا وتوضيح حجم الطلبات المتوقعة وسيتم الرد عليك. https://formsubmit.co/services في الوقت الحالي ليس عليك فعل شيء ما قمت به كافٍ، وفي حال حدثت مشكلة تستطيع الإنتقال لمنصة أخرى، مثل Netlify Forms لكن بشرط رفع الموقع على Netlify، والاستخدام المجاني لها هو 100 طلب في الشهر.
- 7 اجابة
-
- 1
-
-
لن يحدث مشكلة، الإشتراك المجاني بها كافي بالنسبة لحجم الطلبات المذكور، فعدد الطلبات الشهرية المسموح بها في الاستخدام المجاني غير محدود، بناءًا على المستند الرسمي الخاص بهم. لكن قم بتفعيل reCAPTCHA لتجنب الـ spam، وبالطبع في حال وجود 1000 مستخدم في نفس الوقت فالإشتراك المجاني ليس جيد، فستواجه بُطيء في الأداء عند الإرسال. وطالما قُمت بتنفيذ ذلك في المشروع فلا فائدة من طرح بدائل إذن، في حال واجهت مشكلة، فالحل الأسهل هو استخدام tally.so وتضمينها بالصفحة عن طريق ifram. لكن الحل الأفضل هو وجود قاعدة بيانات، وكحل سهل يوجد firebase لمعالجة الطلبات التي تُرسلها من النموذج، أو عن طريق supabase.
- 7 اجابة
-
- 1
-
-
شهادة CCNP تفتح لك أبواباً كثيرة في مجال الشبكات وهي مُعتمدة عالميًا بالتالي ستساعدك بالتأكيد في الحصول على وظيفة جيدة، لكن الجمع بينها وبين الخبرة العملية، حتى لو بسيطة في البداية، سيزيد من فرصك بشكل كبير، خاصًة بدون شهادة جامعية. لكن ابدأ بـ CCNA لأنّ CCNP شهادة متقدمة، بينما CCNA هي الأساس، ومعظم الشركات تتوقع أن يكون تمتلك CCNA أولاً، وستجعل دراسة CCNP أسهل بكثير. وأثناء دراستك لـ CCNA ثم CCNP، يجب أن تقضي وقتًا مساويًا إن لم يكن أكثر في التطبيق العملي في المعامل الافتراضية Virtual Labs وهي برامج تحاكي عمل أجهزة الشبكات الحقيقية من راوترات، سويتشات، جدران نارية، وخلافه ولكن على جهاز الكمبيوتر الخاص بك. أي بدلاً من شراء أجهزة باهظة الثمن، تستطيع إنشاء شبكات كاملة واختبارها وضبط إعداداتها افتراضيًا، وكبداية أثناء دراستك لـ CCNA قم بتحميل برنامج Cisco Packet Tracer، ثم عند دراسة CCNP قم بتحميل وتثبيت EVE-NG. وأنشيء ملف مشاريع بتوثيق تصميمات الشبكات المعقدة التي قمت ببنائها في GNS3 أو EVE-NG، والمشكلات التي واجهتك وكيف حللتها. ولا تتوقف عن التعلم فمجال الشبكات يتطور باستمرار، وأيضًا لتمييز نفسك عن الآخرين، وكن واقعيًا في توقعاتك للوظيفة الأولى، فلامشكلة أن لا تبدأ كمهندس شبكات مباشرة بالراتب الذي تحلم به، ابحث عن وظائف مثل: فني شبكات Network Technician مهندس دعم فني للشبكات Network Support Engineer مسؤول شبكات مبتدئ Junior Network Administrator مقالات وشروحات حول قسم الشبكات في علم الحاسوب.
-
ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم أسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
- 2 اجابة
-
- 1
-
