لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 11/11/17 في كل الموقع
-
أداة البناء Grunt أو Gulp، مكتبة require.js، browserify، الإصدار السادس من ES، المفسرات، أطر عمل React و Angular و Amber، التعابير المغلقة (closures)، سلسلة prototype. ارتفاع في ضغط الدم يؤدي إلى سكتة دماغية. حسنًا، تطوير الويب أمرٌ ممتع جدًا، لكن JavaScript مروعة! تجد نفسك منسجمًا تمامًا مع جميع جوانب تطوير الويب، لكن عندما يأتي الأمر إلى JavaScript فستشعر أنَّ جزءًا كبيرًا من المعلومات الأساسية ينقصك بينما يعرفه الآخرون، والذي سيؤدي إلى جعلهم يفهمون سكربتات JavaScript. نعم، الحقيقة هي أنَّك تفتقد بالفعل إلى بعض القطع؛ لكن هذا لا يعني أنَّ التوجه الحالي لتطوير الواجهات الأمامية ليس مجنونًا! اطمئن، فأنت لستَ بمفردك، لذا اسحب كرسيًا واجلس، وجهِّز نفسك لكتابة تطبيق JavaScript. أوّل خطوة هي ضبط بيئة التطوير المحلية، لذا اتخذ قرارك: هل ستستخدم Gulp، أم Grunt، لا! سأستعمل سكربتات NPM. هل أستعمل Webpack أم Browserify أم Require.js؟ هل أتخذ قرارًا مصيريًا بالانتقال إلى الإصدار السادس من ES؟ أليس ضروريًا أن أضع مرجعًا عن أمراض القلب بجواري؟ كيف سأنظِّم اختبار الشيفرات؟ هل من إطارِ عملٍ تنصحني به؟ أليس من الأفضل تشغيل الاختبارات من سطر الأوامر، لنستعمل إذًا PhantomJS؟ مع أي إطارٍ أذهب: Angular أم React؟ ربما Ember؟ ماذا عن Backbone؟ ربما قرأتَ بعض صفحات توثيق React ووجدتَ فيها أنَّ «Redux هو حاويةٌ ذاتُ حالةٍ قابلةٍ للتوقع لتطبيقات JavaScript» وبدت على وجهك أمارات الرضى، فمن المؤكد أنَّك ستحتاج إلى هذه الميزة العظيمة، بغض النظر عن أنَّك لم تفهم حرفًا من شرحها. السؤال الآن هو: لماذا أصبح تطوير تطبيقات JavaScript أمرًا يدفع إلى الجنون؟! دعني أساعدك لفهم سبب ذلك. لنبدأ بمثالٍ بسيطٍ ثم سنستعرض صورًا جميلةً توضِّح وجهة نظري. هذا تطبيق «Hello, World!» مكتوبٌ باستخدام React: // main.js var React = require('react'); var ReactDOM = require('react-dom'); ReactDOM.render( <h1>Hello, world!</h1>, document.getElementById('example') ); لم ننتهِ منه بعد: $ npm install --save react react-dom babelify babel-preset-react $ browserify -t [ babelify --presets [ react ] ] main.js -o bundle.js هنالك عدِّة خطوات ناقصة هنا، مثل تثبيت مكتبة browserify أو ما الذي عليك فعله لتشغيل الصفحة في المتصفح، إذ لا يبدو أنَّ ما سبق سيُنشِئ صفحة ويب قادرة على فعل أيّ شيء! بعد أن تنتهي من إنجاز ما سبق، فستجد ملفًا يدعى bundle.js يحتوي على تطبيق «Hello, World!» السابق المكتوب بمكتبة React والذي يضم حوالي 19374 سطرًا برمجيًا، وكل ما فعلتَه هو تثبيت browserify و babelify و react-dom، التي «تزن» آلاف الأسطر البرمجية. هذه صورة تعبيرية عن برنامج «Hello, World!» في React: حسنًا، هذا تطبيق «Hello, World!» باستخدام JavaScript دون مكتبات: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width" /> <title>Hello World</title> </head> <body> <div id="container"></div> <script> document.body.onload = function(){ var container = document.getElementById("container"); container.innerHTML = '<h1>"Hello, world!"</h1>'; } </script> </body> </html> هذا كل ما في الأمر! 18 سطر برمجي (يمكن اختصارها إلى أقل من ذلك)، التي تستطيع نسخها ولصقها في ملفٍ باسم index.html وتنقر نقرتين عليه مما يفتحه في متصفحك. يا للبساطة! إذا كنتَ تفكِّر في هذه اللحظة «أليس إطار React يفعل أكثر من ذاك المثال البسيط الذي كتبته، والذي لا يرقى أن يكون تطبيق JavaScript» فأنت مصيبٌ (تقريبًا)، وعلى بعد خطوة واحدة من فهمك لماذا كل هذا التعقيد. انظر إلى هذه الصورة: أغلبية تطبيقات JavaScript التي ستعمل عليها ستقع في مكانٍ ما في منتصف المنحني الجرسي (bell curve) السابق. وإذا كنتَ في منتصف المنحني السابق وبدأت تطبيقًا بالاعتماد على React فسوف ينتهي بك المطاف بهندسة تطبيقك زيادةً عن اللزوم من بدايته. وهذا هو سبب تعقيد تطوير تطبيقات JavaScript، لأنَّ غرض أغلبية الأدوات التي تظن أنَّك بحاجةٍ إليها هو حلّ المشاكل التي لن تتعرض إليها بتاتًا. أصبحت حالة تطوير تطبيقات JavaScript في الآونة الأخيرة معقدةً ومربكةً لأنَّ الجميع يبالغون في هندسة تطبيقاتهم دون أن يدركوا ذلك. إذًا، كيف يجب أن نبدأ بتطوير تطبيق JavaScript؟ هل علينا استخدام مكتبة شبيهة بمكتبة React أو Angular؟ هل يجب أن نستخدم مدير للحزم؟ ماذا يفترض علينا أن نفعل إذا لم نستخدمهما؟ هل كتابة الاختبارات ضرورية؟ هل علينا أصلًا توليد شيفرات HTML عبر JavaScript؟ هذه هي الأسئلة التي يجب أن تسألها لنفسك قبل أن تبدأ بمجموعة ضخمة من أدوات التطوير. عندما تبدأ بتطوير تطبيق JavaScript فمن المهم أن تختار نقطةً في المنحني الجرسي في المكان الذي تظن أنَّ من المرجح أن يصله تطبيقك في المستقبل من ناحية التعقيد. لن أكذب عليك، فعل ذلك ليس سهلًا ويحتاج خبرةً، لكن هنالك منطقةٌ كبيرة يمكنك أن تبدأ منها أغلبية تطبيقات JavaScript: استعمل مكتبة jQuery مع قوالب لصفحات الواجهة الأمامية مع أداة بناء بسيطة لجمع الملفات وتصغيرها (بفرض أنَّ إطار العمل الذي تستعمله لتطوير السند الخلفي [backend] لا يفعل ذلك تلقائيًا). إذا أردتَ أن تتعلم كيفية هيكلة تطبيق JavaScript بطريقةٍ صحيحة، فعليك أن تبدأ بفهم كيف ومتى ولماذا تستخدم إطار عمل أو حزمة npm أو إصدار ES6 أو متى تكتب اختبارات أو هل عليك جعل الاختبارات تعمل محليًا أو في متصفح، ثم سيأتي دور بقية الأسئلة وحلّ بقية المشاكل. إن أردتَ أن تملأ الفجوات الموجودة في معلوماتك حول تطوير JavaScript وأن تتجنّب الشعور بأنّك تبالغ في تصميم تطبيق JavaScript فحاول أن تتابع ما نطرحه هنا في قسم البرمجة في أكاديمية حسوب. ترجمة -وبتصرّف- للمقال Why JavaScript Development is Crazy لصاحبه Sean Fioritto1 نقطة
-
1 نقطة
-
هذا الدرس لا يعطيك فكرة عن استخدام مزايا 3D الجديدة في الإصدارات الحديثة من برنامج فوتوشوب بل يعلمك كيفية جعل الصور البسيطة نابضة بالحياة وخارجة عن المألوف كخروج العناصر من شاشة تلفاز أو قفز غزال من لوحة فنية ما أو كما في هذا الدرس حيث سيبدو أن الطريق يخرج من شاشة الهاتف المحمول وأن هناك سيارة منطلقة على ذلك الطريق. سنبدأ أولًا بالحصول على صورة الهاتف المحمول. أنا اخترت هذه الصورة لهاتف محمول باليد مفرغة بالكامل وجاهزة (يمكنك الحصول على صورة أفضل غير مفرغة وتقوم بتفريغها بنفسك باستخدام إحدى طرق التفريغ المختلفة). ثم سنحتاج لصورة الطريق. حمّلت هذه الصورة لطريق ملتوٍ في نهايته بشكل يناسب التصميم الذي أعمل عليه. اسحب الصورة إلى داخل مستند الهاتف المحمول المفتوح في الفوتوشوب أو قم بإستيراده إلى داخل المستند عبر Import ثم عدّل بالحجم والموقع حتى تصبح أطراف الطريق السفلية البيضاء ملامسة لأسفل شاشة الهاتف المحمول بشكل شبه دقيق. وللقيام بذلك بسهولة أكبر خفّف مستوى التعتيم Opacity إلى 50% ثم استخدم الاختصار Ctrl+T للقيام بتعديل الحجم والموضع ثم اضغط على مفتاح Enter لتثبيت التعديلات الجديدة. لا تقم بتغيير مستوى التعتيم إلى الحالة الأصلية لأننا لم ننتهِ من العمل على هذه الصورة بعد. انقر بالزر الأيمن للفأرة على طبقة هذه الصورة من لوحة الطبقات واختر Rasterize Layer وذلك لنتمكّن من التعديل المباشر على هذه الطبقة ضمن هذا المستند ولا تكون هذه الطبقة عبارة عن عنصر ذكي. استخدم أداة التحديد المضلع Polygonal Lasso Tool لتحديد الشاشة من الداخل للهاتف المحمول مع استثناء أطراف أصابع اليد وعند الوصول بالتحديد إلى أسفل الشاشة تابع مع أطراف الطريق الخارجية لتحدد من الطريق الجزء الخارج من الهاتف المحمول وعند الانتهاء من التحديد اضغط على الاختصار Shift+Ctrl+I لعكس التحديد ثم انقر على مفتاح Delete لحذف كل ما هو خارج شاشة المحمول والجزء الخارجي من الطريق من صورة الطريق العامة. استخدم الآن أداة الممحاة Eraser مع فرشاة ناعمة لمسح أطراف الطريق الخارجية وجعلها ناعمة مندمجة مع المحيط الذي حولها. أعد تعتيم هذه الطبقة إلى وضعها الطبيعي 100% لتشاهد النتيجة الحالية. سنحتاج الآن إلى صورة السيارة. حمّلت هذه الصورة المجانية لهذه السيارة الرياضية. أهم ما في تجميع الصور في أي تصميم أن تكون اتجاهات الصورة والمناظر مطابقة لطبيعة التصميم الأساسية، فهناك ملايين من صور السيارات على الإنترنت ولكن يجب علينا أن نختار صورة سيارة بزاوية ومنظور مطابق لوضعية الطريق الذي سنضعها عليه. أدرج هذه الصورة ضمن المستند وأيضًا خفّف التعتيم Opacity لنتمكّن، من العمل بسهولة أكبر على الصورة. اتجاه السيارة الحالية مغاير لاتجاه الطريق لذلك حدّد طبقة السيارة ثم اذهب إلى القائمة Edit > Transform > Flip Horizantal وبذلك تم عكس الصورة أفقيًا اضغط Ctrl+T ثم عدّل بحجم وموضع السيارة حتى تصبح مناسبة وكأنها تسير فعليًا على الطريق. استخدم أداة القلم وابدأ بالرسم حول شكل السيارة لتحديدها. أداة القلم تعتبر من أدق الأدوات للتحديد ولكن استخدامها قد يبدو صعبًا للوهلة الأولى للمبتدئين إلا أنه من الواجب تعلّم وإتقان استخدام هذه الأداة لمن أراد فعلًا أن يحترف التصميم. انقر على لوحة Path لإظهار المسار المرسوم بالقلم ثم انقر بالزر الأيمن للفأرة على المسار واختر Make Selection اضغط على الاختصار Ctrl+J لنسخ التحديد إلى طبقة جديدة واحذف طبقة السيارة الكاملة القديمة. اضبط تعتيم صورة السيارة الجديدة إلى 100%. انقر على زر التعديلات Adjustments أسفل لوحة الطبقات واختر من القائمة Curves حتى نستطيع دمج صورة السيارة بطبيعة وألوان المشهد العام للطريق. انقر على الطرف السفلي لطبقة التعديلات هذه مع الاستمرار بالضغط على مفتاح Alt وذلك لجعل تأثيرات هذه التعديلات تطبّق على طبقة السيارة فقط وليس على كامل المستند. الآن ومن نافذة إعدادات هذه التعديلات طبَق التعديلات التالية على الألوان الثلاثة الأساسية الأحمر والأزرق والأخضر. أنشئ طبقة شفافة جديدة وضعها تحت طبقة السيارة ثم استخدم فرشاة ناعمة باللون الأسود وارسم ظلًّا تحت السيارة. خفّف مستوى التعتيم Opacity لهذه الطبقة إلى 80%. غيّر طبقة الخلفية وهي طبقة صورة الهاتف المحمول باليد إلى طبقة عادية عبر النقر بالزر الأيمن للفأرة عليها واختيار Layer from Background. أنشئ طبقة جديدة تحت طبقة الهاتف المحمول ثم قم بتفريغ اللون الأبيض في أرضية طبقة الهاتف (يمكنك بسهولة استخدام أداة التحديد العصا السحرية Magic Wand Tool). لوّن الطبقة الأرضية الجديدة باللون الأبيض بالكامل باستخدام أداة Paint Bucket Tool. حدّد هذه الطبقة وانقر على أيقونة الأنماط للطبقة أسفل لوحة الطبقات. اختر Pattern Overlay. قم بتجهيز الإعدادات كما في الصورة التالية لنمط النقش. النقش الذي اخترته هو نقش أساسي يأتي مع الفوتوشوب وهو باسم Sandpaper. ثم أضف أيضًا نمط التدرج اللوني Gardient Overlay واضبط الإعدادات كما في الصورة التالية وانتبه لجعل Opacity بقيمة 91%. أضف نصًا وهو عبارة عن عنوان هذا الدرس “تأثير ثلاثي الأبعاد على الصور” مع ترك فراغ مكان جملة “ثلاثي الأبعاد”. اختر خطًا عريضً لهذا النص. أضف الأنماط الثلاثة التالية على النص Bevel & Emboss و Color Overlay و Drop Shadow مع تطبيق ما في الصور التوضيحية التالية حمّل صورة 3D ثلاثية الأبعاد هذه وأضفها إلى المستند وعدّل حجمها وموقعها لتكون في موضعها الصحيح ضمن النص. لم أشرح بعض الخطوات بتفاصيل إضافية لأن ذلك سيحتاج إلى أكثر من درس وخصوصًا لجهة التفريغ واستخدام أداة القلم ولذلك يعتبر هذا الدرس للمستوى المتوسط من مستخدمي برنامج الفوتوشوب. مصادر الصور: صورة الهاتف المحمولة محفوظة الحقوق لصالح Freepik صورة الطريق الملتوي على الجبل مجانية من Unsplash صورة السيارة الرياضية مجانية برخصة CC0 من PEXELS1 نقطة
-
الاجتماع الشخصي هو أحد أكثر الأدوات التي تمتلكها بصفتك مديراً من ناحية الأهمية، فهو الطريقة الأفضل ليتمكن المديرون وموظفوهم من مناقشة القضايا وإنشاء العلاقات وضمان تلبية مطالب الموظفين. في هذا الدليل، سأفصّل كل ما تحتاج لمعرفته عن الاجتماعات الشخصية، وسأقدّم لك بعض الأدوات المفيدة لتستخدمها. في البداية، ماهي الاجتماعات الشخصية بالضبط، ولمَ أنت بحاجة إليها؟ ملاحظة هامة: هذا الاجتماع ليس اجتماعاً للاطلاع على آخر المستجدات. لا تتعامل معه وكأنه كذلك. هناك الكثير من الفرص الأخرى لتتطلع على سير العمل. إنه نقاش للتأكد من أن الموظف سعيد. الشيء الأكثر أهمية الذي يجب على المدير القيام به لجعل الموظف مرتاحاً للانفتاح والتحدث بصدق معك. الأمور الأساسية الواجب معرفتها مرة في الشهر لمدة 60 دقيقة مع كل موظف من موظفيك دوّن الملاحظات! حضّر الأسئلة الأساسية مسبقاً (المزيد عن هذا لاحقاً) أصغ أكثر مما تتحدث لا تسأل عن آخر المستجدات، اسأل عن سعادتهم جدول أعمال الاجتماع الشخصي يجب على الاجتماعات الشخصية أن تكون دورية، مرة كل شهر، وألا تقل مدتها عن الساعة. يقول أندي غروف Andy Grove، الرئيس التنفيذي السابق لشركة إنتل Intel: قد يبدو هذا الوقت طويلاً لتخصيصه لمهمة واحدة، لكنه طريقة فعالة لزيادة المشاركة وكشف القضايا قبل أن تصبح مشاكل كبيرة. إليك نظرة شاملة لكيفية ترتيب الاجتماع الشخصي. 1. محادثة غير رسمية ابدأ اجتماعك بمحادثة غير رسمية لمدة 10 دقائق. الغاية من هذه المحادثة هي جعل الموظف مرتاحاً قدر الإمكان. إنها طريقة خفيفة وجميلة لبدء الاجتماع، ولكي تظهر لموظفيك أنك تهتم لأمرهم بصدق. يمكنك أن تتبع ذلك بأمر كان قد ذكر في اجتماع شخصي سابق (وهذا سبب آخر لأهمية تدوين الملاحظات) أو اسأله فقط كيف هي أموره بعيداً الشركة. 2. مخاوف الموظف هذا هو الجزء الذي ينبغي عليك فيه أن تصغي أكثر مما تتحدث. خصص حوالي 20 دقيقة لهذا الجزء، ولكن إن استغرق وقتاً أطول من ذلك، فلا تقاطع الموظف. ينبغي عليك خلال هذا الوقت أن تشجع الموظف على مشاركتك كل ما يدور بذهنه. نصيحة من الخبراء حول هذا الجزء من الاجتماع هي أن تتوقف لمدة 3-4 ثوانٍ قبل أن تستجيب لما قد قاله الموظف للتو. لأن ذلك سيسمح له بالتعمق أكثر في ما كان يقوله. يميل الناس بطبيعتهم إلى ملء هذا الفراغ الصامت، لذا يمكنك أن تستفيد من ذلك لمصلحتك. يصف مقدم فقرة NewsHour في محطة PBS جيمس ليهرر Jim Lehrer ذلك بروعة: 3. ملاحظاتك وتعليقاتك إن لم يكن لدى الموظف الذي تتحادث معه الكثير ليقوله، يمكنك مشاركته بما يدور في ذهنك، أو استخدام ذلك ليكون فرصة لاكتشاف طموحاته المهنية. ستحتاج بين الفينة والأخرى إلى بعض الأسئلة لتتابع المحادثة. فيما يلي بعض الأمثلة الجيدة عن أسئلة يمكنك طرحها. إن كان لديك اقتراح واحد يسهم في تطورنا، ماذا يمكن أن يكون؟ ما هي المشكلة رقم 1 في منظمتنا؟ ما هو أكثر أمر يزعجك في العمل هنا؟ لو كنت مكاني، ما هي التغييرات التي كنت ستقوم بإجرائها؟ ما هي الميزة الأقل فائدة في منتجنا؟ ما هي فرصة التسويق الكبرى التي ينبغي علينا استغلالها؟ هل أنت سعيد بالعمل هنا؟ برأيك، ما هي نقاط قوتك الثلاث الكبرى؟ ما الذي تحبه في عملك؟ ما الذي يزعجك في العمل؟ ما هو الجزء من عملك الذي ترغب في التقليل منه؟ ما تعريف يوم العمل الجيد؟ 4. التخطيط للعمل خصص 10 دقائق في نهاية الاجتماع لوضع خطة للعمل استناداً إلى ما تناقشتما حوله. يمكنك متابعة هذه الخطة في الأشهر اللاحقة. يلخص جايسون ايفانيش Jason Evanish، والذي كتب الكثير عن الاجتماعات الشخصية، عملية المتابعة بروعة فيقول: نصائح لاجتماعات شخصية أفضل يمكن أن تكون هذه الأنواع من الاجتماعات صعبة، خاصة بالنسبة للمديرين الجدد إن لم يكن لديهم أدنى فكرة عن كيفية معالجة ذلك. في ما يلي بعض النصائح لضمان حصولك على الفعالية القصوى من الاجتماعات الشخصية. 1. تذكّر أنه اجتماع خاص بالموظف إحدى أكثر النصائح أهمية هي أن هذا الاجتماع مخصص للموظف، وليس لك. بالرغم من أن ذلك قد لا يبدو بديهيا ، فمن المهم أن تغير عقليتك لتركز على الموظف. 2. اطلب ردود الفعل خلال الاجتماع بصفتك قائداً، عليك دوماً أن تسعى للتطور. اغتنم هذه الفرصة لتجري حديثاً منفتحاً وصادقاً حول الكيفية التي يمكن أن تصبح بها قائداً أفضل لهم. لا تتردد في حثّهم على استمرار النقاش بأسئلة يجاب عليها بـ نعم/لا عن سلوكك القيادي. على سبيل المثال: “عندما كنت أنتقد عملك، هل بدر مني شيء أزعجك؟” 3. اطلب من الموظفين جدول أعمال قبل 24 ساعة من الاجتماع اطلب من الموظفين أن يرسلوا لك جدول أعمال عما ينبغي عليكم التحدث فيه وذلك قبل 24 ساعة من عقد الاجتماع. إن هذا الأمر جيد لسببين: يساعد في تهيئة الموظف للاجتماع يساعدك في توجيه النقاش 4. دوّن كل شيء ينبغي عليك أن تدوّن كل الملاحظات بجدية خلال اجتماعك الشخصي. السبب الرئيسي في ذلك هو أنه خلال اجتماعك الشخصي التالي، ينبغي عليك مراجعة ملاحظاتك من الاجتماع السابق ومتابعتها. يمكنك أن ترسل لفريقك مقدماً بريداً إلكترونياً تشرح لهم فيه العملية، إن كنتم حديثي عهد بعقد الاجتماعات الشخصية. في ما يلي مثال لنموذج بريد إلكتروني يمكنك أن تستخدمه: لقد تركت الاجتماعات الشخصية التي قمنا بها في Officevibe أثراً مذهلاً منذ أن بدأنا بتطبيقها. لقد سمحت للمديرين والموظفين بأن يكونوا على وفاق وأن يتحدثوا عن نمو العمل وأن يصلوا إلى عمق القضايا قبل أن يتأخر الوقت. تذكّر أن الاجتماعات الشخصية هي فرصتك المثلى لاكتشاف ما يدور في ذهن موظفيك. إنها فرصة لمحادثة خاصة وغير رسمية عما يحبون وعما لا يحبون. يمكن لهذه الاجتماعات أن تكون أداة فعالة في زيادة التفاعل بين أعضاء فريقك. ترجمة – بتصرّف – للمقال A Step-By-Step Guide To Better One-On-One Meetings لصاحبه Jacob Shriar. حقوق الصورة البارزة محفوظة لـ Freepik1 نقطة
-
أهلاً بك لايوجد مصطلح مبكّر أو متأخر عندما تريد البدء بمشروع ناشئ، الأهم قبل البدء أن تأخذ بعين الاعتبار النقاط التالية : 1_ أن تبدأ مشروعك، وأنت تعلم بأنك تحتاج إلى أكثر من الحماس والشغف تجاه الفكرة. فالمثابرة والعمل الدؤوب هي شروط النجاح الأولى. 2_ أن تبدأ دون أن يكون الحصول على كثير من المال هدفك الرئيسي من اطلاق المشروع. 3_ إذا كنتَ جاهزًا للمغامرة! فلايوجد مشروع ناشئ آمن أو لايحتوي على نسبة من المخاطرة، يجب أن تكون مستعدًا لكل الاحتمالات. 4- أن لا تعتبر نفسك كبيرًا على التعلّم من جديد، وأحيانا من الصفر، وأن تعود للبحث والقراءة والنقاش كما لو كنت في المرحلة الجامعية، ففي عالم ريادة الأعمال هناك الكثير من المفاهيم والأفكار الجديدة تمامًا. 5_ عليك أن تجهز نفسك للسير في طريق جديدة والاكتشاف بنفسك، في ريادة الاعمال لايوجد قواعد ثابتة عليك أن تتعلم من تجربتك.1 نقطة