-
المساهمات
6975 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
218
إجابات الأسئلة
-
إجابة Wael Aljamal سؤال في قوائم الدردشة تتضاعف عند كل تغيير صفحة في nextjs كانت الإجابة المقبولة
إن هدف الصفحة documeny.js_ هو التهيئة لبيانات التوصيف لصفحات الموقع، أما لعمل جزء من الشيفرة مشترك بين الصفحات نضعه في الصفحة app.js ويتم عمل render لصفحة document على المخدم (السيفر).
كما يبدو من استخدامك لشات المحادثة فهو مكون مشترك shared components ضعه في app.js
حاول مراجعة التوثيق: nextjs/custom-document
إن وجدت حلاً مختلفاً يمكنك مشاركته.
-
إجابة Wael Aljamal سؤال في ما هي وظائف واهم استعمالات الخاصية console.group في الجافاسكريبت كانت الإجابة المقبولة
console.group هذه الطريقة تستخدم لتنسيق المخرجات وتجميعها عند التعامل مع consloe
عند استخدام console.groupتقوم بفتح مجموعة جديدة ولكي تفصلها عن التي تليها عليك كتابة console.groupEnd(); بعدد مرات بداية المجموعات التي فتحتها لكي تبدأ بمجموعة جديدة ليست أبناء للأولى
console.group("group 1"); console.log("message one"); console.log("message two"); console.groupCollapsed("child group"); console.log("message one"); console.log("message two"); console.groupCollapsed("grand child group"); console.log("message one"); console.log("message two"); console.groupEnd(); console.groupEnd(); console.groupEnd(); console.group("group 2"); console.log("message one"); console.log("message two"); يوجد هذه الإجابة:
-
إجابة Wael Aljamal سؤال في مشكلة الاتصال بالانترنت في windows 10 كانت الإجابة المقبولة
هل شبكة wifi التي تحولين الاتصال فيها مخفية؟ hidden network إن كان هكذا، عليك الدخول لضبط wifi ثم مسح إعدادات هذه الشبكة وإعادة إضافتها من جديد.
أيضاً يمكن تشغيل network troubleshooter وهي أداة من ويندوز، موجودة في قسم الشبكات كخيار تعمل على تفحص مشاكل الاتصال،
أيضا التأكد من تحديث ويندوز قد يحل المشكلة،
-
إجابة Wael Aljamal سؤال في لماذا يعطي webpack خطأ عند تشغيل npm run dev كانت الإجابة المقبولة
أحيانا يكون سبب الخطأ تضارب إصدارات المكتبات إن قمت بالتحديث ل webpack to 5 و webpack cli to 4 فلحل المشكلة:
npm uninstall webpack-cli نلغي تثبيت webpack-cli ونعيد تثبيت الإصدار 3
npm install webpack-cli@3 -D لتصبح إصدارات المكتبات لديك على سبيل المثال:
// package.json "devDependencies": { "webpack": "^5.2.0", "webpack-cli": "^3.3.12", "webpack-dev-server": "^3.11.0" } وانتبه لجزء كتابة scripts حيث أنه يختلف:
For webpack-cli 3.x: "scripts": { "start:dev": "webpack-dev-server" } ^^^^^^^^^^^^^^^^^^ For webpack-cli 4.x: "scripts": { "start:dev": "webpack serve" } ^^^^^^^^^^^^^
-
إجابة Wael Aljamal سؤال في مشكله في تثبيت autooy كانت الإجابة المقبولة
حاول تثبيت مكتبة
pip install wheel ثم أعد تنفيذ تثبيت autopy
إن كنت تستخدم pip3
pip3 install wheel ويمكنك تجربة الحل السطر الأول مثال والثاني ل autopy بدون الاعتماد على cahce التخزين المؤقت:
pip install <package> --no-cache-dir pip install autopy --no-cache-dir
-
إجابة Wael Aljamal سؤال في ما هو PDO ERRMODE وماهي حالاته كانت الإجابة المقبولة
القيمة الافتراضية ل PDO::ATTR_ERRMODE هي PDO::ERRMODE_SILENT. لن يظهر أي أخطا SQL ولا حتى PHP.
PDO::ERRMODE_SILENT الوضع الصامت، لايظهر أي خطأ أو استثناء حتى لو حدث خطأ (عند نشر الموقع نستعمل هذه القيمة لكي لايظهر شيئ للزوار) أي في نمط الإنتاج بعد إطلاق الموقع.
PDO::ERRMODE_WARNING يظهر الأخطء التي تحدث في PHP أو SQL والتي تكون PHP E_WARNING عند حدوث خطأ وسوف يكمل تنفيذ السكربت مع إظهار الأخطاء.
PDO::ERRMODE_EXCEPTION يتم رمي استثناء عند حدوث خطأ، ويتوقف تنفيذ البرنامج.
الدالة setAttributeتستخدم لضبط نمط معين أثناء عمل الاتصال، مثل نمط الخطأ كالمثال:
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); حيث أن الشكل العام له:
bool setAttribute ( int $attribute , mixed $value ) يعيد true في حال نجاح إسناد القيمة للنمط.
mixed هو pseudo type تمت إضافته في PHP 8، يقبل أي نوع من الأنماط، مهما كان parameter أو return أو property
-
إجابة Wael Aljamal سؤال في لماذا أكواد جيكويري JQuery لا تعمل لدي في المشروع كانت الإجابة المقبولة
أرجو نشر الأسئلة التي ضمن الدورات في قسم التعليقات أسفل الدرس، فقط الأسئلة التي تكون خارج محتوى الدرس نطرحها في الأسئلة العامة.
-
إجابة Wael Aljamal سؤال في مشكله في رفع الصور عند استخدام form في Django كانت الإجابة المقبولة
هل قمت بإضافة
static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) إلى urlpatterns، بافتراض أن قيم الثوابت هي على سبيل المثال:
MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') ثم تأكد من الخطوات التالية:
تمرير request.FILES parameter لحمل ملف الصورة تعديلك على النموذج بدون عمل تهجير migration عدم وجود صلاحية ل Django لإنشاء ملف الصورة في المسار ضمن HTML أرجو وضع الخاصية بالشكل التالي: multipart/form بدل multipart/form-data تأكد من طول اسم الملف "عدد حروف ملف الصورة" urlpatterns = [ # ... بقية URLconf هنا ... ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
إن كنت تستخدم نسخة قديمة من جانغو، تأكد من احتواء urls.py على python urlpatterns = [] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
التوثيق ب static file من هنا: djangoproject/static-files
-
إجابة Wael Aljamal سؤال في كيفية التعامل مع ملفات xampp في لينكس vscode كانت الإجابة المقبولة
يمكنك أيضا تغيير الصلاحية في مجلد مشروعك مثلا نستخدم chmod -R 777
الأفضل إعطاء الصلاحيات بهذا الشكل:
755 for directories مجلدات and 644 for files ملفات لكي لانعطي صلاحيات ليس لها داعٍ.
، الشكل العام للشيفرة:
sudo chmod -R 777 your_project_directory_location your_project_directory_location # مسار المجلد الجذر لمشروعك لتصبح مثلا:
sudo chmod -R 777 /var/opt/MY_PROJECT الطريقة الأفضل، هي إنشاء المشروع بصلاحيات المستخدم الحالي ليصبح مالكاً له
أي تعطي للمستخدم لديك صلاحيات على المجلد باستخدام chown :
نفتح المسار أولا:
cd location.. ثم ننفذ:
sudo chown your_username your_project_directory your_username # اسم المستخدم لديك your_project_directory # مسار المجلد أيضاً يمكن تغيير مالك المجلد:
cd /path/to/my/files chown -R $USER:$USER . إن لم تنجح sudo chown -R $USER:$USER .
-
إجابة Wael Aljamal سؤال في تفعيل وإبطال عناصر input بعد النقر على عناصر radio باستخدام DOM Traversal كانت الإجابة المقبولة
* إن radio ترسل للمخدم قيمة واحدة فقط، وهي العنصر المختار من مجموعته (المجموعة هي كل input radio لها نفس قيمة name)، فتكرار نفس القيمة للخاصية name سوف تعمل على إرسال قيمة واحدة للمخدم من كل ما تم تحديده، (لن تستطيع تحديد إلا خانة واحدة ومن عدة منتجات)
لاحظ الهيكلية المناسبة لعنصر واحد فقط
<div> <input type="radio" name="radio1" value="text1"/> <input type="text" disabled/> <br/><br/> <input type="radio" name="radio1" value="text2"/> <input type="text" disabled/> </div> <br/><br/><br/><br/> <div> <input type="radio" name="radio2" value="text1"/> <input type="text" disabled/> <br/><br/> <input type="radio" name="radio2" value="text2"/> <input type="text" disabled/> </div> عنصر radio يليه عنصر input وهذا كله نضعه في div ونكرره، مع تغيير قيمة name لكل مجموعة مستقلة، يمكنك توليدها ديناميكيا أو كما تشاء.
ثم شيفرة جيكويري،
$('input[type=radio]').on('click', function(){ $(this).next().prop('disabled',false) .siblings('input[type=text]').prop('disabled',true); }); بعد الضغط على عنصر radio ننظر للعنصر التالي والذي سيكون بالضرورة input ونجعل له خاصية disabled false ليتم تفعيله، ثم ننتقل لإخوته (التي تكون لها نفس الأب "div" على سبيل المثال، والتي من نوع input وتقوم بإلغاء تفعيله
-
إجابة Wael Aljamal سؤال في إستخدام وسيلة دفع للاشتراك في الدورات في سوريا كانت الإجابة المقبولة
يمكن الدفع من أي بطاقة بنكية أوحساب بايبال ولا يشترط نفس الشخص أن يدفع، أي إن كان لك أقارب في الخارج يمكنهم مساعدتك والدفع للدورة، وذلك لأن الشهادة الخاصة بالدورة تعطى لمن يجتاز الامتحان بعد التأكد من الثبوتيات، أي لا يهم من دفع سعر الدورة.
يمكنك التواصل مع مركز مساعدة حسوب وشرح جميع التفاصيل ليتم إرشادك لطريقة الدفع المناسبة في حالتك.
-
إجابة Wael Aljamal سؤال في ماهو nodemon ولماذا نستعمله وكيف نثبته على مستوى نظام التشغيل globally كانت الإجابة المقبولة
nodemon هي أداة تساعد في تطوير تطبيقات node حيث أنها تراقب التغييرات على الملفات التي تقع ضمن شجرة الملف الجذر للمشروع وتعيد بناء التطبيق في كل مرة وإظهار التعديلات.
يمكنك تثبيت nodemon محليا على مستوى المشروع أو بشكل عام على مستوى النظام "هنا لاتضطر لثبيته في كل مشروع"
لتثبيت nodemon على مستوى النظام globally اكتب التعليمة التالية في cmd:
npm install -g nodemon حيث أن g = globally، وبهذه الطريقة سيتم إضافة هذه البرمجية لمسارات النظام system path
ثم لتشغيل المشروع نكتب الأمر
nodemon ./server.js // يمكن تحديد الرابط و المنفذ nodemon ./server.js localhost 8080 توثيق nodemon
-
إجابة Wael Aljamal سؤال في استنساخ تطبيق واتساب اعمال وعمل تعديلات عليه كانت الإجابة المقبولة
نعم أخبرنك أن هذه تعتمد على سماحية التطبيق، إن كان يسم لنظام التغشيل باستنساخه
إن لم ترد تجريب تطبيقات الاستنساخ، عليك تحميل نسخة واتساب بزنس من مصدر مختلف عن google play وغير رسمية
أو تحاول استنساخ التطبيق بنفسك باتباع الهندسة العكسية
-
إجابة Wael Aljamal سؤال في لو عندى view وهى مستقيمة كيف اجعلها نائمة بدون ان اغير flexDirection ل container الخاص بها كانت الإجابة المقبولة
لتحقيق ذلك بدون استخدام flexDirection عليك جعل الحاويات تقبل التموضع بجانب بعضها من خلال الخاصية display
نختار display: inline-block لمنع وضع فاصل بين العناصر أو كل عنصر بسطر منفصل، طبقه على العناصر نفسها
<View style={{ display: inline-block, // هذه hight: 50, width:20, backgroundColor:"red" }} />
-
إجابة Wael Aljamal سؤال في LocalStorage في NextJS ، مشكلة useEffect كانت الإجابة المقبولة
في حالتك يمكنك قراءة القيم من local storage خارج useEffect وهذا أفضل حل
const [ meetings, setMeetings] = useState([]) // meetings= [{meeting1},{meeting2}] const meetingsData = localStorage.getItem('meetings'); // نقلناها خارج useEffect const meetingsDataJSON = () => JSON.parse(localStorage.getItem('meetings')); // نقلناها خارج useEffect useEffect(() => { if(meetingsData === undefined || meetingsData === '' || meetingsData === null ){ localStorage.setItem('meetings', JSON.stringify([])) } if( meetingsDataJSON().length === 0){ const meetingsInLocalStorage = JSON.parse(localStorage.getItem('meetings')) setMeetings([...meetings, meetingsInLocalStorage]) } },[meetings]) يمكن إضافة مستمع أحداث للتغيرات التي تطرأ على meeting في local storage وتقوم على تحديثها تلقائياً
useEffect(() => { function checkMeetingData() { const item = localStorage.getItem('meetingData') if (item) { setMeetingData(item) } } window.addEventListener('storage', checkMeetingData) return () => { window.removeEventListener('storage', checkMeetingData) } }, []) أو بهذه الطريقة:
useEffect(() => { window.addEventListener("storage", () => { // تحديث عند حدوث تغييرات في التخزين refetch(); }); return () => { // عند عمل unmounts نحذف مستمع الأحداث window.removeEventListener("storage"); }; }, []);
-
إجابة Wael Aljamal سؤال في خادم Webpack 5 Dev لا يشغل CSS كانت الإجابة المقبولة
لديك الخطأ في مسار ملف التنسيقات، لايمك للمسار أن يبدأ ب / لأنه يدل على مسار مطلق بدل أن يكون نشبي، أي يجب أن يبدأ بنقطة /. أو امس المجلد / اسم الملف الحاوي لملف التنسيقات
<link rel="stylesheet" href="/style.css" /> ^^^^^^^^^ خطأ جرب أحدهم <link rel="stylesheet" href="./style.css" /> <link rel="stylesheet" href="./css/style.css" /> <link rel="stylesheet" href="css/style.css" /> على كل حال نضمن ملف التنسيقات في index.js وليس في صفحة الويب مباشرة
أحيانا النقطة تسبب مشكلة، اكتب المجلد أو اسم الملف مباشرة حسب المسار النسبي، بين ملف التضمين و ملف التنسيقات، لكن لا تبدأ ب /
إن كان مشروعك node تأكد من تخديم الملفات الساكنة:
app.use(express.static(__dirname + '/public'));
-
إجابة Wael Aljamal سؤال في هل نحتاج لنظامي تشغيل ويندوز و ماك لاستخراج تطبيق كوردوفا لنظام أندرويد و ios كانت الإجابة المقبولة
لايوجد مشكلة بالنسبة لاستخراج تطبيق أندرويد من أي بيئة cross platorm في نظام التشغيل إن كان ويندوز أو ماك هذا لأن android sdk متاح مجانا و يعمل على جميع الأنظمة, فالمشكلة فقط محصورة ببناء تطبيقات ios لأن شركة apple تحتكر أدوات التطوير ios sdk وليست متوفرة خارج نظام mac os لذلك تحتاج لهذا النظام عند نيتك استخراج تطبيقات ios إن كان المشروع cordova أو Flutter. مع ذلك يمكنك تثبيت نظام ماكنتوش وهو بديل ماك يمكنك تثبيته واستعماله كنظام تشغيل أو حتى على بيئة وهمية virtual machine، أو استخدام ادوات مثل codemagic لبناء تطبيقك الخاص ب ios وهذه متاحة على الانترنت.
-
إجابة Wael Aljamal سؤال في التأكد من متطلبات تشغيل كوردوفا cordova requirements كانت الإجابة المقبولة
كلا، الأوامر هي عبارة عن كلمات نصية عادية، إن تمت كتابتها في cmd منفذ الأوامر يقوم هو بالبحث عن البرنامج التنفيذية المطلوبة المثبتة ومنها كوردوفا .. لتنفيذ الأمر المطلوب، وفي حال كان الأمر صحيح، يتم تنفيذه.
بعض الأوامر يجب أن تتم ضمن مسار المشروع، أي يكون مسار التنفيذ هو اسم مجلد المشروع
لفتح المجلد في cmd مباشرة اكتب cmd ضمن مسار المشروع ثم اضغط Enter
** أوامر تثبيت البيئات لن تحتاجها إلا في حال حذفك للبرمجيات أو عمل فورمات للحاسوب، عد لدرس الدورة وتابع درس التهيئة من جديد وأعد كتابة الأوامر
** ومن خلال المتابعة مع المدرب باقي الأوامر أغلبها نفسه خاص بتشغيل التطبيق اكتبه مراراً وتكرارا لتحفظه وتتعود عليه
لا تتعود على النسخ واللصق..
طريقة فتح المجلد في cmd:
-
إجابة Wael Aljamal سؤال في هل تحميل Xcode 13 RC ضروري لبرمجة تطبيقات الجوال؟ كانت الإجابة المقبولة
كلا ليس عليك تثبيت xcode لكي تطور تطبيقات الهاتف، xcode مع حزمة مطوري آبل ضرورية لتطوير تطبيقات IOS بلغة برمجية swift أو مرحلة تصدير تطبيق Flutter.
أي على نظام ويندوز يمكنك تثبيت محرر نصوص android studio أو vs code أو غيرهم مه ملحقات عملية التطوير ةالتي تدعى SDK والبدء بالبرمجة..
يوجد حل لتشغيل Xcode على حاسوب ويندوز، لكن يتوجب تحميل نظام تشغيل ماكنتوش على ويندوز كبيئة افتراضية ومن ثم تحميل Xcode عليه، لكن هذا يسبب بطئ شديد في الحاسوب و تحتاج ذاكرة وصول عشوائي Ram حتى 16 غيغا بايت وأكثر ومعالج قوي وحديث.
الآن على ويندوز يمكنك برمجة و بناء وتجريب تطبيقات أندرويد، وإن استخدم لغة برمجة جافاسكربت و React Native يوجد أداة Expo التي تساعد المطور على بناء التطبيق لتجريبه على IOS لكن لن تحتاج لبناء تطبيق IOS حتى آخر مرحلة من تجربة التطبيق..
تكلمت عن البرمجة الهجينة للتطبيقات التي تسمح بتنفيذ الشيفرة البرميجة على أكثر من نظام تشغيل للهواتف، أما البيئة IOS Native محصورة ب xcode و mac os.
-
إجابة Wael Aljamal سؤال في nextjs لتوجيه البرمجيات الوسيطة للمصادقة كانت الإجابة المقبولة
تأكد من كتابة Link في next.js على النحو التالي أي الخاصيتين href و as
<Link href="/product?slug=something" as="/products/something"> <Link href="/user?id=id" as="/user/id"> <Link prefetch href={`/user?id=${this.props.id}`} as={`/user/${this.props.id}`} > <div>some content</div> </Link> لتصبح:
<Link prefetch href={{pathname: '/speaker', query: {id: props.id}}} as={`/speaker/${this.props.id}`} > <div>some content</div> </Link> وإن كنت الصفحة لديك بالشكل:
pages/user/[id].js قم بتعريف المسار بالشكل:
<Link href={`/user/[id]`} as={`/user/${id}`}> إن وجدت حلاً مختلفاً يمكنك إرفاقه
-
إجابة Wael Aljamal سؤال في كيفية تحميل مدير الحزم Choco؟ كانت الإجابة المقبولة
لتحميل choco نتبع الخطوات التالية الموجودة في موقعهم الرسمي:
نقوم بتشغيل cmd مع صلاحيات الأدمن (اكتب cmd في بحث ويندوز ثم اختر run as administrator) ننسخ محتوى تعليمة التنصيب من موقعهم ونفذها في cmd @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin" الرابط الخاص بالتوثيق: installing-chocolatey#cmd
بالنسبة للدورات، فقط المسار الأول من باقي الدورات مفتوح وهذه الميزة عامة لجميع الطلاب تمكنهم من الإطلاع على باقي الدورات والاستفادة من مسار الأساسيات من دورة أخرى عند اللزوم.
-
إجابة Wael Aljamal سؤال في ﻻ استطيع تحريك الملفات في لينكس كانت الإجابة المقبولة
يمكنك تنفيذ عملية النقل mv = move باستخدام صلاحيات الأدمن إن كان المسار له صلاحيات مستخدم آخر ..
sudo mv ~/Pictures/photo1 /usr/share/... ^^^ لاحظ الفرق بين المسار النسبي يمكن أن يبدأ بنقطة /. والمسار المطلق يبدأ ب / فقط، حيث أن usr يجب أن نضع قبلها / للدالة لأن المجلد usr في جذر النظام، أما ~ تدل على مسار المستخدم الحالي
cd usr/username => cd ~
-
إجابة Wael Aljamal سؤال في تحديد البيانات المدخلة في TextFormField في flutter كانت الإجابة المقبولة
سنحاول تحديد المحارف الممكنة من خلال التعابير المنتظمة حسب مجال المحارف الانكليزية للأرقام.. حيث نمرر RegExp والتي هي اختصار ل regular expression من خلال الدالة allow
TextField( inputFormatters: <TextInputFormatter>[ FilteringTextInputFormatter.allow(RegExp("[0-9]")), ], // Only numbers can be entered ), أما مثلا حروف وأرقام انكليزية يمكن التالي:
FilteringTextInputFormatter.allow(RegExp("[0-9a-zA-Z]")), وإن أردت السماح بافراغات فقط أضف فراغ
"[a-zA-Z ]" ^^^
-
إجابة Wael Aljamal سؤال في هل يمكن إعادة الأموال لصاحب المشروع بعد استلامه المشروع في مستقل؟ كانت الإجابة المقبولة
حسب شروط عمل موقع مستقل وأقتبس:
صاحب المشروع:
أرجو قراءة كيف يضمن مستقل حقوقك للتأكد ومراجعة قيود وشروط العمل في مستقل.
نصيحتي هي محاولة التواصل مع المستقل، وتنبيهه للمشاكل التي تعرضت لها، يمكن أن يقوم بعمل تعديل إن أراد ذلك ولكنه ليس مجبراً، أنت عليك تجربة البرنامج قبل الاستلام والتأكد منه.
ربما تفتح مشروعاً جديد مع المستقل نفسه وتطلب منه عمل التعديلات المطلوبة وإصلاح المشاكل مقابل مبلغ بينكم يتم بالاتفاق.
المشاكل البرمجية ربما لاتظهر في مرحلة التطوير وهذا شيئ طبيعي، ربما سقط سهواً أي مشكلة ولو بسيطة وسبب عطل لديك.
الحل الودي هو الأفضل دوما، ويمكنك التواصل مع الإدارة لربما لهم توصيات.
انتبه لقراءة شروط الاستخدام عند شراء أي منتج أو خدمة و تأكد منها، لأن القانون يكون مكتوب في معلومات الموقع ولكي لا تتعرض لخسارة.
-
إجابة Wael Aljamal سؤال في ضمانات أكاديمية حسوب لطلاب الدورات كانت الإجابة المقبولة
مرحباً عبد الرحمن،
بالنسبة للجزء الأول،
أنت غير ملزم بوقت معين لحضور الدورة أو اجتياز الامتحان، يمكنك مشاهدة الدورة حسب تفرغك وبطريقة الدراسة التي تناسبك.
الفترة التي لديك مدة محددة فيها، وهب بعد طلب عمل الامتحان، سيطلب منك المدرب عمل مشروع كاختبار لك، وهنا لديك مدة زمنية معينة لإنجازه.
بالنسبة لتحقيق دخل ومردود مادي: تلتزم أكاديمية حسوب بإعادة قيمة الدورة وحتى بعد ستة أشهر من اجتياز الامتحان والحصول على شهادة إن لم تجد عملاً خلال هذه المدة وقمت بتحقيق دخل مادي يرد عليك ثمن قيمة الدورة. وهذا لأن الأكاديمية ليها ثقة كاملة بالمحتوى ومدى إفادته. وعلى كل حال عند الدراسة عليك تحقيق كل التركيز والمتابعة و التدرب على كتابة الأكواد ومن ثم الاعتماد على نفسك في حل المشاكل البرمجية قبل طلب مساعدة المدربين لتتمرن على كيفية حل المشاكل، وليس البرمجة..
إن قيمة المشروع تتباين بين مطور وآخر ومن صاحب مشروع لآخر وليس هنالك رقم تقريبي، يمكنك تصفح مشاريع على مستقل و خمسات وتقدير قيمة تقريبية لمشاريع تصميم واجهات المواقع و طلبات التعديل وماشابه..
وبعد اجتياز الامتحان، سيتم إضافة شارة "خريج أكاديمية حسوب" لحسابك في مستقل المرتبط بحساب الدورة.
يمكنك الانسحاب من الدورة في أي وقت. فقط تواصل مع مركز مساعدة حسوب
يمكنك تصفح: ميزات دورات الأكاديمية