-
المساهمات
3552 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
34
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو سمير عبود
-
مرحباً عبد العزيز مسار تعلم جافا لتصبح مطور ويب في رأيي هو كالتالي: تعلم نواة اللغة ( المتغيرات، الثوابت، أنواع المتغيرات، العمليات الرياضية، العمليات الشرطية، الجمل الشرطية، الحلقات بكل أنواعها، الإستثناءات، التعامل مع الملفات، هياكل البيانات في جافا) تعلم البرمجة الكائنية في جافا و مبادئها ( abstraction، encapsulation، inheritance، polymorphism ) تعلم مفاهيم متقدمة في لغة جافا مثل ( generics، RegEx، inner classes، anonymous classes، multi threading، synchronisation ...) تعلم قواعد البيانات مع لغة جافا إذا وصلت لهذه المرحلة يمكنك التخصص في أحد المجالات التالية : بناء برامج سطح مكتب بإستعمال أحد المكتبات التالية لإنشاء واجهات رسومية ( Swing، JavaFX ) بناء تطبيقات تعمل على نظام أندرويد بإستعمال أندرويد ستوديو بناء تطبيقات و مواقع ويب مع أخذ الملاحظة التالية أنك ستكون مطور نظم أو الواجهة الخلفية ( java beckend developer ) : و إذا اخترت هذا المجال تحتاج إلى تعلم أشياء إضافية و هي : Java EE Servelts او Java EE JSP و ال JSP أحسن من Servlets Spring Framework و Spring boot نقاط أخرى ينصح بتعلمها Git Maven Junit من أجل عمل إختبارات أحادية (testing) و هذه خريطة للمسار و المصدر من هذا الفيديو: بالتوفيق
-
مرحباً مروان.. المفروض بعد جلب القيمة من ال sharedPreferences تقوم بعمل setSelection و ليس setText و تقوم بتعديل ال value التي تريد تخزينها في قاعدة البيانات لأنها إفتراضيا فارغة و يكون الكود بهذا الشكل مثلاً SharedPreferences share = getSharedPreferences("Data", Context.MODE_PRIVATE); String dataStoredValue = share.getString("token",""); if (dataStoredValue != null) { int spinnerPosition = adaptermatr.getPosition(dataStoredValue); materialBetterSpinner.setSelection(spinnerPosition); value = SECOND_ARRAY[spinnerPosition]; } قمْ بتغيير الكود بما يناسبك لأن أهم شيء هو جلب ال position الموافق للنص المخزن في sharedPreferences ثم تغيير القيمة التي تريد تخزينها بإستعمال كود الفولي لأنها إفتراضيا تكون فارغة بالتوفيق
- 2 اجابة
-
- 1
-
مرحباً حسين السبب هو عدم طباعتك للنتيجة التي تُرجعها الدالة أو الإقتران is_substring و للبحث عن ما إذا كان جزء نصي ينتمي إلى سلسلة نصية أخرى إستعمل الدالة التالية: def is_substring(s, l): return s in l print(is_substring('hello', 'hello Python')) و ستقوم بطباعة True في هذه الحالة بالتوفيق
- 2 اجابة
-
- 1
-
مرحباً ... هناك العديد من خوارزميات الترتيب و قد ذكر لك الأخ محمد خوارزمية الترتيب بالإدراج بإمكانك الإطلاع على بقية الخوارزميات من خلال هذا الرابط للتعمق أكثر حول الموضوع: خوارزميات الترتيب على موسوعة حسوب و أنا سأذكر لك خوارزمية الترتيب السريع و شرح هذه الخوارزمية موجود في الصفحة التالية : إضغط هنا البرنامج بلغة سي بلس بلس : #include <iostream> using namespace std; // دالة لتبديل قيم متغيرين في الذاكرة من نوع عددي void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } // دالة مساعدة لطباعة عناصر مصفوفة عددية void printArray(int arr[], int size) { for (int i = 0; i < size; i++) { printf("%d ", arr[i]); } printf("\n"); } // دالة الترتيب التصاعدي void ascQuickSort(int arr[], int l, int r) { if (l >= r) { return; } int pivot = arr[r]; // العنصر المحوري int cnt = l; for (int i = l; i <= r; i++) { if (arr[i] <= pivot) { swap(&arr[cnt], &arr[i]); cnt++; } } ascQuickSort(arr, l, cnt-2); ascQuickSort(arr, cnt, r); } // دالة الترتيب التنازلي void descQuickSort(int arr[], int l, int r) { if (l >= r) { return; } int pivot = arr[r]; int cnt = l; for (int i = l; i <= r; i++) { if (arr[i] >= pivot) { swap(&arr[cnt], &arr[i]); cnt++; } } descQuickSort(arr, l, cnt-2); descQuickSort(arr, cnt, r); } int main() { // تعريف مصفوفة و ملئها مبدئياً بمجموعة من الأعداد يمكنك تغيير طريقة الملء بطلب الأعداد من المستخدم لاحقاً int arr[] = {10, 7, 9, 1, 8, 5, 2}; // حساب عدد القيم التي تحتويها المصفوفة int n = sizeof(arr) / sizeof(arr[0]); ascQuickSort(arr, 0, n-1); // الترتيب التصاعدي printf("Ascending order: \n"); printArray(arr, n); // طباعة عناصر المصفوفة descQuickSort(arr, 0, n-1); // الترتيب التنازلي printf("Descending order: \n"); printArray(arr, n); // طباعة عناصر المصفوفة } نتيجة البرنامج : لتجربة البرنامج اونلاين: إضغط هنا بالتوفيق
- 5 اجابة
-
- 1
-
مرحباً .. لا يمكننا طرح هذا السؤال فهذا يعتمد على الطالب أو المتلقي فيمكن لشخص ما أن يفهم من كورس محدد, نفس هذا الكورس يمكن شخص آخر لا يفهم منه و لا يستوعبه يمكننا طرح السؤال التالي : هل بإمكانكم ترشيح كورسات أو مساقات أو دورات شاملة في لغة c # ؟ و بعدها يمكنك إتخاذ قرار إن كانت الدورة أفضل بالنسبة لك أم لا سأرشح لك مصدرين و هما بالمجان: قناة خالد السعداني و هذا الشخص يقدم دورات و دروس في العديد من تقنيات .net و يُعتبر MVP .net يُمكنك الإطلاع عليه من خلال هذا الرابط قناة حسونة أكاديمي وهذا الشخص يُقدم دورة شاملة من الألف إلى الياء عن c# و الدورة تضم أكثر من 1000 درس ورابط الدورة: إضغط هنا بالتوفيق
- 8 اجابة
-
- 3
-
مرحبا مروان أنا لم أفهم جيداً ما الذي تريد عمله لكن حالياً أنت قمت بإضافة listener للحقل الأول فقط فإذا تغير هذا الحقل يتم حفظ القيمة الجديدة بأكثر من key و عند عملية الجلب ستكون القيمة نفسها في كل الحقول إذا كنت تريد حفظ البيانات كلها لكل الحقول يجب إضافة أكثر من listener أي لكل حقل أو يمكنك إضافة زر لحفظ كل البيانات يعني عند الضغط على الزر تجلب بيانات الحقول و تقوم بحفظها في ال SharedPreferences وإضافة زر آخر لجلب البيانات ووضعها في الحقول وسيتم جلب البيانات المخزنة في SharedPreferences يمكنك الإستعانة بهذا الفيديو الذي يشرح عن كيفية خزن و جلب البيانات في الهاتف بإستعمال SharedPreferences إذا لم يكن هذا ما تريد رجاءً إشرح جيداً و سنُساعدك بالتوفيق
- 5 اجابة
-
- 1
-
مرحباً موسى في هذه الحالة يمكنك الإستفسار جيداً حول الموضوع من خلال التواصل مع الدعم الفني لبنك باي بال فممكن أنهم لا زالو يعتمدون البطاقة القديمة لكن إذا كان القرار نهائي و لا يمكنك التفعيل بهذه البطاقة. يمكنك إستعمال بنك آخر و أنصحك بإستخدام بنك بايسيرا و إذا كان لك أقارب أو أصدقاء في أوروبا يمكنك طلب بطاقة الفيزا و إرسالها للعنوان الأوروبي و بعد إرسالها يمكنك تفعيل الباي بال بها أو يمكنك الإستعانة بإحدى الصفحات على الفيسبوك و سيقومون بتوفير البطاقة لك أنا شخصياً أستعمل هذا البنك و حسابي على باي بال مفعل ببطاقة بايسيرا و هي من نوع فيزا و معظم الجزائريين يستعملون هذا البنك أيضاً بالتوفيق
-
مرحباً @عبده الغاوي أولاً ماهي لغة جافا ؟ هي لغة برمجة عالية المستوى إبتكرها James Gosling في عام 1992 أثناء عمله في مختبرات شركة Sun Microsystems و ذلك لاستخدامها بمثابة العقل المفكر المستخدم لتشغيل الأجهزة الذكية. بعد سنوات تم تطويرها لتعمل في مختلف المجالات مثل : الويب , السيرفرات, سطح المكتب , الروبوتات و الهواتف الذكية .. الخ و هي تعمل على جميع و أهم أنظمة التشغيل مثل Windows, Mac, Linux, Unix, Android إلخ.. و تعتبر من أشهر لغات البرمجة على الإطلاق. ثانياً ماهي مميزات لغة جافا ؟ مجتمع كبير و تواجد العديد من المصادر لمن يريد تعلمها تعلمها سهل مقارنة باللغات الأخرى ك c و c++ البرنامج المكتوب بلغة جافا يعمل على أي نظام تشغيل ليس ك c# مثلا يعمل فقط على أنظمة ميكروسوفت و هذا من أهم ما يدفعك لتعلمها لغة جافا كائنية التوجه مما يجعلها قوية لغة جافا مطلوبة كثيراً فلو كنت تريد الدخول إلى سوق العمل فإن تعلمها يُعتبر خطوة مفيدة لك لغة جافا مفتوحة المصدر و مجانية و ستبقى مدى الحياة لا تتطلب جهاز قوي لتبدأ البرمجة بلغة جافا مترجم اللغة سريع جداً فبرامج جافا يتم ترجمتها إلى اوامر يفهمها جهاز الحاسوب بسرعة توفر جافا تقنية Multithreading و التي تسمح لك بجعل برنامجك قادراً على تنفيذ عدة أجزاء من الكود أو عدة أوامر مع بعض و بنفس الوقت. معالجة الأخطاء في جافا سهل إلى حد ما نصيحة: يُنصح قبل البدأ في تعلم لغة جافا تعلم الخوارزميات لأنها ستُسهل عليك الطريق بعد تعلمك للخوارزميات بإمكانك البدأ في رحلة التعلم للغة جافا و ستبدأ أولا بالأساسيات بإمكانك تعلم الأساسيات من عدة مصادر و سأذكر لك إثنين : جافا 101 تعلم أساسيات لغة جافا لعبد الله عيد تعلم أساسيات لغة جافا لمحمد عيسى بعد تعلم أساسيات اللغة يُنصح بتعلم مفاهيم متقدمة في لغة جافا و سأذكر لك مصدرين بهذا الخصوص تعلم المفاهيم المتقدمة في لغة جافا لمحمد عيسى جافا 102 لغة جافا لعبد الله عيد بالإضافة إلى جافا 103 تعلم لغة جافا لعبد الله عيد بعد تعلم المفاهيم المتقدمة في اللغة يمكنك إختيار أحد المجالات التالية و التخصص في و يُنصح إختيار مجال واحد فقط بناء برامج و تطبيقات سطح المكتب بالإعتماد على مكتبة JavaFX أو مكتبة Java Swing لبناء الواجهات الرسومية GUI بناء تطبيقات و مواقع الويب بإستعمال JavaEE و Spring Framework و Spring boot بناء تطبيقات أندرويد بإستخدام أندرويد ستوديو المصادر المعتمدة: لغة جافا , قناة محمد عيسى , قناة عبد الله عيد هناك العديد من قوائم التشغيل في القنوات المذكورة تشرح معظم التقنيات و المجالات الثلاثة المذكورة فوق بإمكانك الإستفادة منها بالتوفيق
-
مرحباً .. يمكنك عمل البرنامج بهذه الطريقة بلغة c++ #include <iostream> using namespace std; // تعريف الكلاس class Name_pairs { // تعريف خصائص الكلاس public: int size; string *names; int *age; // constructor public: Name_pairs(int size) { cout <<"Constructor is called" <<endl; this->size = size; this->names = new string[size]; this->age = new int [size]; } // destructor public: ~Name_pairs() { cout <<"\nDestructor is called" <<endl; delete []names; delete []age; } // تعريف الميثود المسؤولة عن قراءة الأسماء void read_names() { for (int i = 0; i < this->size; i++) { cout << "Enter name " << (i+1) << ": "<<endl; cin >> this->names[i]; } } // تعريف الميثود المسؤولة عن قراءة الأعمار void read_ages() { for (int i = 0; i < this->size; i++) { cout << "Enter age " << (i+1) << ": "<<endl; cin >> this->age[i]; } } // طباعة السجلات void print() { for (int i = 0; i < this->size; i++) { cout << "record " << (i+1) << ": (" << this->names[i] << ", " << this->age[i] << ")"<<endl; } } // selection sort (select the min) void sort() { int i, min, j, tmp_age; string tmp_name; for(i = 0; i < this->size - 1; i++) { min = i; for (j = i; j < this->size; j++) if(this->names[j][0] < this->names[min][0]) min = j; tmp_name = this->names[i]; this->names[i] = this->names[min]; this->names[min] = tmp_name; tmp_age = this->age[i]; this->age[i] = this->age[min]; this->age[min] = tmp_age; } } }; int main() { // create instance from Name_paires class Name_pairs obj(5); obj.read_names(); // read names obj.read_ages(); // read ages cout << "\nRecords Before Sorting: " << endl; obj.print(); // print records before sorting obj.sort(); // call sort method cout << "\nRecords After Sorting: " << endl; obj.print(); // print records after sorting } و عند إدخال الأسماء المطلوبة أي: Baraa, Ahmed, Emad, Diaa, and Chloe و الأعمار التالية: 20, 21, 22, 23, 24 ستظهر النتيجة بهذا الشكل يمكنك تجربة البرنامج من خلال هذا الرابط ملاحظة و نصيحة: إذا كنت في مجال البرمجة فمن الأحسن أن تجرب حل المشكلة و كتابة البرنامج بنفسك حتى تتعلم و إذا واجهتك مشكلة أو تريد الإستفسار عن شيء قم بطرحه هنا وكتابته باللغة العربية و ستجد من يساعدك أما بكتابتك لنص تمرين أو مشكلة مباشرة نسخ لصق فلن تجد المساعدة بالتوفيق
- 2 اجابة
-
- 2
-
مرحباً .. يمكنك عمل البرنامج بهذه الطريقة using System; public class Program { public static void Main() { // تعريف متغير من نوع مصفوفة int[] myNum = {2, 7, 5, 7, 2}; // إستعمال الميثود Console.WriteLine(isSameSum(myNum)); } // تعريف الميثود المسؤولة عن الفحص private static bool isSameSum(int[] array) { bool stop = true; int n = array.Length; int i = 0; int j = 0; while(stop && i < n) { j = 0; while(stop && j < n) { // هذا الشرط من أجل المكانين المضادين if (i <j && i == n - j - 1) { // يجب تغيير هذا الشرط بما يتناسب معك if(array[i] != array[j]) { stop = false; } } j++; } i++; } return stop; } } يمكنك تجربة البرنامج من خلال هذا الرابط بالتوفيق
-
مرحباً عندما تريد إرسال بيانات من التطبيق للخادم يُستحسن عدم وضع البيانات في الرابط و إتباع نفس الطريقة التي وضعتها لك فوق لأن هذه هي الطريقة الصحيحة بالتوفيق
- 7 اجابة
-
- 1
-
لا يتم الحذف الآن لأن الإستعلام كان خاطئاً لكن الآن هو صحيح بقي جزء كود الفولي و يجب تغيير إقتران الحذف للشكل التالي // إقتران الحذف private void Deletefavaorit(String markte_id, String UserIdSessin) { String i_upd_url = "http://=========/end/delete.php"; // رابط ملف الحذف StringRequest strreq = new StringRequest(Request.Method.POST,i_upd_url, new Response.Listener<String>() { @Override public void onResponse(String Response) { Toast.makeText(getActivity(), Response , Toast.LENGTH_LONG).show(); Log.i(TAG, "ResponseTest"+Response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError e) { e.printStackTrace(); } }){ @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String,String> params = new HashMap<String,String>(); params.put("markte_id", markte_id); params.put("UserIdSessin", UserIdSessin); return params; } }; RequestQueue requestQueue = (RequestQueue) Volley.newRequestQueue(getActivity()); requestQueue.add(strreq); } لا تنسى تضمين الكلاسات المستعملة و عند إستعمال الإقتران مرر له كل من markte_id و UserIdSessin على شكل string جرب و أخبرني بالنتيجة
- 7 اجابة
-
- 1
-
مرحبا مروان أظن أن المشكلة في الإستعلام الخاص بالحذف فهو يكتب بهذا الشكل: <?php $markte_id = $_POST["markte_id"]; $UserIdSessin = $_POST["UserIdSessin"]; $sql = "DELETE FROM favorite WHERE markte_id = '".$markte_id."' AND UserIdSessin = '".$UserIdSessin."'"; تأكد من أن إسم الجدول هو favorite و يحتوي أيضا على الحقلين markte_id و UserIdSessin بالتوفيق
- 7 اجابة
-
- 1
-
مرحباً صالح .. أنا أنصحك ببناء البرنامج بنفسك لأنك في هذه الحالة ستُوظف ما تعلمته في مشروع حقيقي و ستُقابلك بعض المشاكل ستبحث لها عن حلول و هذه الأمور هي ما يجعلك مُبرمج محترف و بهذا الشكل ستُحقق أهداف و ليس هدف واحد و الخبرة تأتي بالممارسة من بين الأهداف التي ستُحققها بناء البرنامج و هذا هو الهدف الرئيسي توظيف ما تعلمته إكتساب خبرة بناء معرض أعمالك تحسين مهارة البحث لديك إكتساب القدرة على حل المشاكل ... ليس هناك مانع من إستخدام أشياء جاهزة في مشروعك لكن كإعتماد كلي على برنامج جاهز أنصحك بالإبتعاد عن هذا الشيء و مستقبلاً لما تريد التقديم على وظيفة في هذا المجال يكون في جعبتك شيء يدل على خبرتك فستقول أنا لدي خبرة في جافا لأنني قمت ببناء هذا البرنامج نأتي إلى سؤالك هل يوجد برامج مفتوحة المصدر ؟ نعم يوجد و لو بحثت ستجد الكثير لكن ربما لن تجد ما يناسب متطلباتك و في هذه الحالة سيتوجب عليك التعديل و للتعديل يجب عليك فهم طريقة كتابة الأكواد و ممكن وقتك يضيع. بالتوفيق
- 4 اجابة
-
- 1
-
مرحباً مروان تطبيق الأندرويد الخاص بك لا يستطيع التواصل مباشرة مع قاعدة البيانات MySQL وإنما يتم بناء واجهة برمجية API حيث أن التطبيق سيقوم بإرسال طلب ( request ) لهذه الواجهة و ترجع له رد ( response ) و يتم بناء هذه الواجهة بإستعمال إحدى لغات البرمجة التي تعمل في جانب الخادم فمثلا في حالتك عند تسجيل الدخول من طرف المستخدم من خلال التطبيق يتم التواصل مع الواجهة البرمجية بإرسال طلب بالمعلومات التي أدخلها المستخدم و بعدها تتم معالجة هذه البيانات من طرف ال back end و إرجاع رد للتطبيق. في حالة نجاح عملية تسجيل الدخول يتم إستعراض صفحات التطبيق التي تحتاج تسجيل الدخول أما في حالة فشل العملية يتم عرض رسالة خطأ للمستخدم مثلاً إذا نجح المستخدم في تسجيل دخوله للتطبيق يصبح بإمكانه عمل تقييم لمنتج و في هذه الحالة أيضا سيتم إرسال طلب او request للواجهة البرمجية و ستتم معالجة الطلب و حفظ البيانات في قاعدة البيانات و إرجاع رد للتطبيق ملاحظة: عملية التقييم لا تحتاج فقط إلى تسجيل الدخول بل إلى شرط إضافي و هو شراء المستخدم للمنتج الذي يريد أن يُقيِّمه هذه هي الفكرة بشكل عام و تتضمن نقطتين و هما : بناء الواجهة البرمجية و عمل حماية لها ربط التطبيق مع الواجهة البرمجية يتوجب عليك تجربة الواجهة البرمجية قبل ربط التطبيق معها بالتوفيق
- 6 اجابة
-
- 1
-
يجب التأكد أنه تم إرسال الأرباح إذا كان حساب الباي بال غير مفعّل فعملية الإرسال ستفشل يمكنك التواصل مع الدعم الفني لمنصة منجز و طرح إستفسارك و سيقوم الفريق بالتواصل معك لحل مشكلتك بالتوفيق
- 6 اجابة
-
- 1
-
مرحبا هاجر ... إذا قمت بعمل سحب للأموال عن طريق باي بال عبر منصة مستقل فإنه لا يتم إرسال الأرباح إلا بعد 24 ساعة و لا يمكنك سحب الرصيد إلا بعد مرور 14 يوم من تاريخ إنتهاء المشروع أي يجب أن يكون الرصيد متاحاً إذا قمتِ بسحب رصيد متاح فسيتم إرسال إشعار إلى حسابك على مستقل يبلغك عن نجاح العملية أو فشلها بعد 24 ساعة فإذا نجحت العملية سيتم إرسال الأموال إلى باي بال و سيتم خصم المبلغ من الحساب أما إذا فشلت العملية فسترجع الأموال إلى الحساب حتى تستطيعين إستقبال الأموال على الباي بال يجب أن يكون الحساب مفعل بالتوفيق
- 6 اجابة
-
- 1
-
مرحبا صالح .. نقوم بحفظ البيانات بإستعمال قاعدة بيانات مربوطة مع البرنامج بغض النظر عن نوع قاعدة البيانات يمكننا من خلال الكود عمل نُسخ لقاعدة البيانات (backup) و تتم هذه العملية بشكل دوري مثلا يوميا أو كل ساعتين .. و بهذا الشكل نستطيع إستعادة البيانات من آخر نسخة تم حفظها إذا حدث أي خلل في البيانات و هناك أدوات و مكتبات في لغة جافا تقوم بهذه العمل يمكنك البحث عنها و إستعمالها بالتوفيق
- 2 اجابة
-
- 1
-
مرحبا ناصر صراحةً لا أدري كم عدد الفرص المُتاحة لإجتياز الإمتحان النهائي للحصول على الشهادة. لكن للحصول على إجابة صحيحة لسؤالك يمكنك التواصل مع الدعم الفني للأكاديمية من خلال هذا الرابط إضغط هنا و فتح تذكرة تتضمن إستفسارك و ستقوم الإدارة بالإجابة عليه في أقرب وقت ممكن تحياتي لك
- 3 اجابة
-
- 1
-
مرحبا .. لغة سي شارب هي لغة برمجة حديثة كائنية التوجه و قد صُممت خصيصا لتطوير التطبيقات على أنظمة التشغيل الأساسية لـ Microsoft وتتطلب .NET framework على Windows للعمل. ماذا يمكننا عمله بإستعمال هذه اللغة ؟ تطوير تطبيقات ويندوز تعتبر سي شارب الخيار الأول لكل مطور يريد تطوير تطبيقات تعمل بالأساس على نظام ويندوز إنشاء تطبيقات ويب يمكن إستخدام لغة سي شارب في بناء تطبيقات ويب على إطار .net خصوصا اخر إطار تم إطلاقه من Microsoft أي ASP.Net core الذي يعتبر قوي جدا و ينافس إنشاء تطبيقات للجوال بإستعمال منصة Xamarin حيث تعتبر منصة cross-platform برمجة الألعاب بإستخدام محرك الألعاب Unity تستخدم سي شارب أيضا في البرمجيات المدمجة بالإضافة الى إنترنت الأشياء أو ما يسمى بال iot أي ( internet of things) لغة c# لغة مرنة و غنية بما فيه الكفاية و لها شعبية كبيرة خصوصا بعد إتجاه Microsoft إلى open source او البرمجيات الحرة مما جعل المطورين يتجهون إلى التقنيات الخاصة بها يمكنك الإطلاع على بعض المقالات و الدروس بخصوص لغة c# هنا في الأكاديمية من خلال هذا الرابط بالتوفيق
- 3 اجابة
-
- 1
-
مرحبا عبد العزيز يوجد بأكاديمية حسوب مجموعة من المقالات و الدروس المجانية عن تجربة المستخدم يمكنك الإطلاع عليها من خلال هذا الرابط تقدم الأكاديمية أيضا كتاب بإسم مدخل إلى تجربة المستخدم يمكنك الإستفادة منه و تحميله من خلال هذا الرابط هناك دورات مجانية أخرى على اليوتيوب و المنصات التعليمية تهتم بجانب تصميم واجهات المستخدم فمثلا منصة إدراك تقدم مساق عن هذا الموضوع يمكنك الإطلاع عليه من خلال هذا الرابط و الإستفادة منه بالتوفيق
-
إذا واجهتك أي مشكلة بخصوص الدورة تستطيع طرحها تحت الدرس الخاص بها أي الذي واجهتك فيه المشكلة.حيث ستجد صندوق للتعليقات فقط قم بشرح المشكلة التي تواجهك جيداً و سيساعدك الفريق في حلها بالتوفيق
-
نعم يمكنك إستخدام أي برنامج المهم أنك تستطيع تنفيذ سكربتات لغة ال php عليه
-
مرحبا @Safwat Alobaidi حجم برنامج wamp server ليس كبير حوالي 300 ميجا إلى 500 ميجا يمكنك تحميله مباشرة من هنا ويوجد أيضا برنامج بديل له إسمه Xampp يمكنك تنصيبه للبيئة التي تريد من خلال هذا الرابط التحميل لن يتجاوز الساعة على حسب سرعة الانترنت بالتوفيق