Tuesday, September 12, 2017

مساقات مجانسة من UDACITY

وعدتكم من قبل بأضافة طريقة للوصول الى محتوى مسارات ال Nanodegree بموقع Udacity مجاناً لانها متاحة بالفعل
هذا الموضوع سيكون الفهرس للوصول الى الكورسات وسيتم تعديله بأستمرار لوضع المزيد من المسارات
اذا لم تجد المسار الذى تريده اترك تعليقاً باسم المسار الذى تريده , وسيتم وضع مواضيع اخرى مثبتة لمواقع اخرى

Android Basics Nanodegree by Google
هذه الدورة لمن يريد ان يبدأ فى عالم تطوير تطبيقات الهاتف مستخدماً الاندرويد والجافا – من هنا
Android Developer Nanodegree by Google
اما هذه الدورة فهى لمن يريد ان يصقل مهاراته فى عالم تطوير تطبيقات الهاتف مستخدماً الاندرويد والجافا – من هنا
Front-End Web Developer Nanodegree
انها الدورة المثالية لمن يريد البدء فى تطوير مواقع الويب , تبدأ الدورة بشرح تطوير واجهات المواقع – من هنا
Full-Stack Web Developer Nanodegree
هنا يمكنك ان تصبح ما يطلقون عليه “الجوكر” بشركات الويب , فهو على دراية بكل ما يخص الويب من تطوير واجهات امامية وخلفية و التعامل مع الخادم ورفع المواقع وربط قواعد البيانات واضافة وتعديل الخصائص الخ – من هنا
Machine Learning Nanodegree
تعلم الالة هو المسار الذى لا يحتاج الى تعريفه وانتشر مؤخرا لذلك – من هنا 🙂
Data Analyst NanoDegree
تحليل البيانات لمن يريد العمل على الداتا – من هنا
Predictive Analytics for Business Nanodegree
مسار مهم جداً لمسئولى التسويق للاستفادة من الحملات السابقة وتطوير القادمة وايضا لمحللى البيانات – من هنا
IOS Developer Nanodegree
اذا كنت من محبي شركة أبل ومنتجاتها وتود المشاركة فى تطوير التطبيقات الخاصة بها واستهداف مستخدميها – من هنا
لا تنسى ان تضع تعليقاً يخص المسار الذى تحتاجه وغير موجود , هنا يمكنك ان تتبع خطوات التسجيل فى الموقع بسهولة وشرح الوصول لمحتوى المسار وتحميله من الموقع نفسه مجانًا – من هنا
رابط جروب الفيس بوك الخاص بالتعلم من Udacity مجاناً اذا كان هناك اسئلة او مسارات جديدة ستجدها هناك – من هنا

Sunday, September 10, 2017

الفرق بين واجهة الإستخدام وتجربة المستخدم والعلاقة بينهما


UI _ UX ?

UX - UI
ـ عالم
التصميم
عالم فريد حقا ، قد يعتقد البعض انه مجال مليئ بتفاهات الألوان و التلاعب بالأشكال من أجل الحصول في الأخير على نتيجة إعتباطية ظهرت بمحض الصدفة ، ربما يمكننا ان نقول ذلك عن الفن التجريدي ، لكن الديزاين شيئ مغاير تماما ، التصميم فن قبل كل شيئ ، و إبداع ناتج عن تدفق أفكار تم إكتسابها من خلال الملاحظة ، لذلك لا تعتقد ان التصميم او الديزاين هي مجرد شخبطات ، فلو كانت كذلك ، لما ظهر شيئ إسمه إحتراف التصميم ، بل و أصبح المصممون من أكثر الأشخاص طلبا في مجال الويب و الديزان ، رجعة الى ذلك ، فإن المصممين حاليا في عالم الويب همهم هو إرضاء العميل بتقديم مجموعة من الواجهات التي يستفيد منها المستخدم بشكل حر و يرتاح أيضا اثناء إستخدامها ، و هذا بالضبط ما سنناقشه اليوم ، فتلك الواجهات و التي يمكننا إعتبارها UI / UX هي بالضبط عمل المصمم حاليا ، لكن هناك تضاربات في الآراء حول كل من الUI و الUX ، و ماهية كل واحد منهما ، و حتى الفرق بينهما ، لذلك ، سنستعرض عليك هذا الموضوع الذي سيعالج بإذن الله هذا الأمر .

ـ مرحباً بالجرافيك

ـ عودة بنا الى الماضي
، لم يكن هناك شيئ إسمه الجرافيك ، فالدفعة الأولى من الحواسيب و الأليات كانت تعتمد على الكونسول ، بدل الجرافيك ، بل كانت هذه الحواسيب صعبة الإستعمال بالنسبة للمستخدم العادي ، فإن لم تكن تتقن إحدى لغات البرمجة الخاصة بذلك النظام او الجهاز الذي تستخدمه ، فأنت إذن غير قادر على التعامل معه ، و حتى إن كنت تدرك تلك اللغة البرمجية فأنت دائما معرض لبعض المشاكل أثناء إستخدامك لذلك الجهاز ، ببساطة مبسطة ، إن اردت الدخول الى ملف و نسخ ملف اخر فيه ، فأنت غير قادر على فعل ذلك بنقرة زر فأرة الأيمن و إختيار نسخ و الدخول الى الملف و إختيار لصق ، بل هي سيرورة من الاكواد تتطلب منك حفظا مدققا ، لذلك ، كان إستخدام تلك الأجهزة صعبا على الجميع ، او دعنا نختزل الأمر كما يقوله المبرمج دينيس ريتشي ( وهو مخترع اللغة الC و نظام الUnix ) : " هذه النظم بسيطة جدا ، لكنك تحتاج الى عبقري ليجعلها كذلك ! " ، إذن فهي لم تكن بسيطة بالمرة للمستخدم العادي ، الشيئ الذي توجب التفكير في حل أخر ، الا وهو الجرافيك ، فكانت المايكروسوفت او بيل غيتس و آبل بصانعها ستيف جوبز بشكل أصح اول من أبتكرا شيئا إسمه الجرافيك او الواجهة الرسومية ، فكانت هناك ازرار و كتابات و فأرة ، يستطيع المستخدم العادي إستخدامها بكل بساطة و سلاسة
فمرحبا إذن بالجرافيك

ـ ما هي واجهة المستخدم ؟

User Interface Or UI

هي الواجهة الرسومية و التي توضح واجهة تطبيق ، موقع ، برنامج او اي واجهة لأي جهاز سيستخدمه مستخدم أخير

تم إبتكارها بدل الكونسول و بدل التعامل مع الأكواد ، وتعتبر المرحلة الأخيرة من تصميم اي مشروع او برنامج او تطبيق او موقع و غيرها من المشاريع الأخرى

كونها هي الواجهة التي سيتحدث بها النظام مع المستخدم ، بالنسبة للحواسيب فيمكن تسميتها هي الأخرى

GUI Or Graphic User Interface

وهو مصطلح يطلق كما اخبرناكم سابقا عن التحول الذي شهدته الأجهزة من الكونسول و الأكواد الى الواجهات الرسومية .

الهدف منها أساسا ، هو تكوين بيئة يستطيع المستخدم فيها الإشتغال بكل حرية في التطبيق ، لا يمكننا ان نجعل المستخدم يعبث بأكوادنا ، او حتى ان نجعل أمر تصفح الموقع على سبيل المثال و جلب البيانات او تسجيل بيانات بالأمر الصعب ، بل علينا ان نجعله أسهل من السهل ، خصوصا ان مبدأ المنافسة في هذه المجالات كبير جدا ، و فقط المواقع (على سبيل المثال دائما ) ذات الواجهات الرسومية البسيط و السهلة و الخفيفة و سريعة التصفح من تتصدر لوائح المواقع الأفضل . لذلك ، فان الواجهات الرسومية تلعب دور الحكم بالنسبة للمستخدم ، فالمستخدم سيحكم على موقعك ( او برنامجك او تطبيقك او مشروعك .. إلخ ) عبر الواجهة الرسومية لا غير ، فهو غير مدرك أبدا للأكواد الموجودة خلف تلك الواجهة ، وليس لديه إي إهتمام من أساسه
إن كنت تتسائل عن الأشخاص المسؤولين عن صناعة واجهات المستخدم هذه ، فهم متعددون ، لكن الديزاينرز و محترفي التصميم يترأسون اللائحة ، علاوة على ذلك ، يوجد ايضا الويب ديزاينرز و الذي هم الاخرون قادرون على صناعة واجهات المستخدم بإستخدام الأكواد ، خصوصا مع تطور أكواد الويب ديزاين و تعدد المكتبات و الإطارات الخاصة ببرمجة صفحات ويب و تطبيقات تفاعلية رائعة .

ـ ما هي تجربة المستخدم


User Experience Or UX

لا يخفى عليك انه مصطلح جديد ، فمقارنة مع واجهة المستخدم فهو أحدث بكثير من مصطلح و مفهوم واجهة المستخدم، لا داعي لكي يختلط عليك الأمر بين واجهة المستخدم و تجربة المستخدم، فان تجربة المستخدم لا تختلف كثيرا عن واجهة المستخدم ، ببساطة ، تجربة المستخدم يعتمد على بناء واجهة رسومية بمقومات خاصة تأخذ بعين الإعتبار احتياجات المستخدم الأخير ، لأفسرها لك بأبسط الطرق ، دعني أقتبس لك مثالا بسيطا ، لنفترض انني اريد صناعة برنامج يقوم بتسجيل مجموعة من الزبائن في قواعد البيانات ، و يمكن إستخراج و البحث في هذه البيانات بطرق مختلفة ( مثلا البحث بواسطة الإسم او بواسطة الID مثلا ) ، لذلك ، سيتوجب علينا ان نبني واجهة رسومية ترضخ لمتطلباتنا ، فالبرنامج الذي سنصنعه إذن يجب ان يحتوي اولا على واجهة لتسجيل الزبون ، و ثانيا على واجهة للبحث عن ذلك الزبون في قواعد البيانات ، إذا حققنا هذين الشرطين مبدئيا ، فقد صنعنا واجهة مستخدم بمتطلبات خاصة تفيد المستخدم النهائي للبرنامج من الإستفادة من البرنامج حسب محتواه ، او بلغة اخرة لقد صنعنا تجربة المستخدم .
اذن ، يمكننا ان نستخلص مما سبق ، ان الهدف من تجربة المستخدم هي تقديم واجهة للمستخدم تهدف الى خدمة مصالح المستخدم الأخير ، اي ان المستخدم الأخير لهذه الواجهة يجب ان يتلقى كل ما يريده من أجل التعامل مع البرنامج او الموقع بشكل أفضل ، فإن كان يريد إضافة مستخدم ، يجب ان يجد واجهة إضافة المستخدم ، و إن كان يريد حذف مستخدم ، يجب ان يجد واجهة لحذف المستخدم و هكذا دواليك .
و إن كنت تطرح السؤال مجددا ، من هم الأشخاص القادرين على صناعة تجربة المستخدم ، فهم نفسهم الأشخاص القادرين على صناعة واجهة المستخدم، اي المصممين و الديزاينرز ، و ايضا الويب ديزاينرز .

ـ ما الفرق بين تجربة المستخدم و واجهة المستخدم ؟


بين واجهة المستخدم و تجربة المستخدم فرق كبير ، ربما لا يكون هناك فرق من ناحية الهدف الأخير الا وهو صناعة واجهة بسيطة تتيح للمستخدم الأخير للبرنامج او التطبيق الحرية الكاملة في إستخدامه ، لكن من ناحية العمل و التصميم ، يوجد فرق كبير ، دعونا نبدأ اولا من ناحية التصميم ، فان واجهة المستخدم ليست مقيدة بأي شروط ، يمكنني تصميم واجهة مستخدم كما يحلو لي ، ربما اضع زرا هنا ، و ايقونة هناك ، و ألوانا صفراء و حمراء ميمنة و ميسرة ، ثم سأنشرها على أحد المواقع ليستفيد منها الأخرين ، و إن كنت لا تدري كيف يستفيد الأخرين من واجهة المستخدم ، فهو يصلح بشكل أساسي لإقتباس بعض الأفكار في التصاميم ، و لأكون صريحا معك ، فان تجربة المستخدم تعتمد بشكل كبير على واجهة المستخدم و سنرى هذا ... اما تجربة المستخدم ، فهو مقيد بشروط إلزامية يحددها اما المستخدم الأخير للبرنامج ( حسب حاجيات هذا المستخدم ) او يحددها المبرمج الرئيسي للبرنامج ( الذي يفرض الواجهات المحتملة حسب الأكواد المستخدمة ) او الفكرة الأساسية من البرنامج ( مثلا فكرة جلب مشتركين ستتطلب بناء واجهة مستخدم خاصة بتسجيل المشتركين ) او مبدأ الإعتيادية (مثلا في تطبيقات الأندرويد ، نحن إعتدنا على ان تحميل الصفحة يتطلب سحب إصبعك نحو الأعلى و هبوط الصفحة للأسفل من أجل تحميلها ، فسيكون من غير الإحترافية تغيير هذا المبدئ في واجهة مستخدم جديدة ).
بإختصار شديد ، الفرق بين كل من واجهة المستخدم و تجربة المستخدم ، هو أن الأول غير مقيد بأي شروط لتصميم الواجهات، بينما الأخر ملزم بتصميم واجهات محددة حسب الحاجة

ـ ما العلاقة بين واجهة المستخدم وتجربة المستخدم


ـ قد يعتقد البعض ان مفهوم واجهة المستخدم لم يعد لها مكان في قائمة التصميم و ان تجربة المستخدم قد سيطرت عليها تماما ، لكن العلاقة بين واجهة المستخدم و تجربة المستخدم ليست بعلاقة هينة ، فأنا شخصيا لا يمكنني بناء واجهة تعتمد على تجربة المستخدم دون اللجوء الى واجهة المستخدم، لذلك ، دعونا نتفق على هذا من فضلكم ، من أجل صناعة تجربة المستخدم تفيد المستخدم في الإشتغال الكلي و الإرتياح و راحة في الإستخدام المباشر للتطبيق ، فلا بد من وجود عملية قبلية ، الا وهي الإطلاع اولا على نماذج واجهة المستخدم لنقتبس منها واجهتنا الجديدة ، لذلك ، فسيرورة إنتاج واجهة رسومية حية بتقنيات و تصميمات جيدة ، تتطلب علاقة وطيدة بين الطرفين ، تبدأ بـ واجهة المستخدم و نهاية بـ تجربة المستخدم ، و محال ان يتخلى أحدهما عن الأخر









كتب هذا المقال : عز جابر
Ezz Gaber

Friday, September 1, 2017

ازاى أعمل تمبليت وارفعه على ثيم فورست

ازاى أعمل تمبليت وارفعه على ثيم فورست

هتكلم بالتفصيل فى البوست دة عن ازاى تجهز وترفع شغلك على متجر ثيم فورست.

اولاً:

-----
تصميم التمبلت بتاعك لازم ميكونش متقلد او نسخة من تمبلت تانى انت ممكن تقتبس افكار وتنفذها باسلوبك لكن بلاش تقليد اولا لان الشغل هيترفض ثانيا انت مش هيبقى فى ابداع ومش هيبقى فى تطور.
------------------------------------------------------------------------------------------

تصميم التمبلت لازم تهتم فيه بحاجتين مهمين اوى الاول المسافات والمساحات بين العناصر وبعضها وبين الاقسام وبعضها لازم المسافات ديما تبقى متساوية الاقسام واخر قسم لازم تسيب فيه مسافة فاضية عشان لو حد شال اخر عنصر ميلزقش فى قاع الصفحة ويبقى شكله وحش.

------------------------------------------------------------------------------------------

الحاجة التانية هى الخطوط وتظبيطها اول حاجة عنوان القسم لازم يكون واضح وكبير وتقيل واى وصف ليه تحته يبقى خطه مختلف عن العنوان ميبقاش نفس الاستايل لان شكله هيبقى مش ظريف ولازم يبقى فى مسافة مناسبة بين العنوان والمحتوى بتاع القسم وبالنسبة للعناوين الفرعية للمحتوى بتاع القسم لازم تكون بحجم خط اصغر من عنوان القسم عشان المستخدم يعرف يفرق ويبقى فى ترتيب هرمى مش معقول هتخلى عنوان محتوى اكبر او اد عنوان القسم بحاله.

------------------------------------------------------------------------------------------

وبرضه نراعى فى التصميم الصور لازم تاخد راحتها فى التحجيم يعنى التمبلت هيبقى متجاوب فكل حجم شاشة هيعيد تحجيم الصورة للى يناسبه فنخلى الصور تاخد خاصية Max-width 100% دة بيخلى الصورة تتحجم على حسب المساحة اللى هى فيها مهما تكبر او تصغر هتتمدد او ممكن لو انت شغال بوتستراب تديها كلاس img-responsive .

------------------------------------------------------------------------------------------ 

ثانياً:

----
فى ال html الكود بتاعك لازم يكون كل حاجة معمولها كومنت بحيث ان اللى هيشترى التمبلت بتاعك يعرف راسه من رجليه سواء هو او اللى هيستلم منه التمبلت يعدل عليه ولازم يكون الترتيب شجرى ميكونش كل الاكواد على عمود واحد لا لو عندك مثلا ديف جواه ديفات الديفات اللى جواه ديه تكون واخدة ازاحة بعيد عن العمود بتاعه بحيث يعرف ان المحتوى دة جوة الديف دة وهكذا طبعا كل حاجة فى الصور هتبان.
-----------------------------------------------------------------------------------------

فى ال css الملف يكون فيه فوق وصف للتمبلت بتاعك يعنى بيانات خفيفة كدة عنه ويبقى تحت البيانات ديه زى عمود كدة فى محتوى الملف يعنى انت مثلا فى الملف منسق ال Body وال header وهكذا تكتب فى العمود دة انك ماشى بالترتيب نفسه يعنى اكنه خريطة للملف وكمان فى التنسيق لو انت فى الاتش تى ام ال عامل مثلا سيكشن وجواه هيدنج و ديف و براجراف يبقى لما تيجى تنسقه تمشى بنفس الترتيب تنسق السيكشن وبعدين الهيدنج وبعدين الديف وبعدين البراجراف وهكذا...

-----------------------------------------------------------------------------------------

فى الجافاسكريبت بقى نراعى الاتى اول حاجة اى حاجة هتستخدمها كتير تعملها cash بمعنى تخنزهم فى متغيرات وتستخدم انت المتغيرات ديه براحتك لان دة بيحسن الاداء وبيخفف اللود على الصفحة وكمان ديما تستخدم طريقة ال on بمعنى لو زرار هتدوس عليه متكتبش button.click لا تستخدم 

button.on('click')
وطبعا انك تعمل كومنت لكل حاجة دة شئ مفروغ منه متسبش حاجة غير بكومنت
------------------------------------------------------------------------------------------

ثالثا:

-----
ال Documentation 
هى ملف بسيط جدا انت ممكن تحمله من ثيم فورست اصلا هما عاملين نموذج ممكن تاخده وتحط فيه البيانات اللى انت عاوزها هو اختصارا كدة انت بتشرح الملفات اللى انت عاملها وتحط سكرين شوت من الكود تحت كل شرح وفى الاخر بتاع ال documentation بتحط لينكات للحجات اللى انت استخدمتها بمعنى انت استخدمت البوتستراب والجى كويرى وفونت من جوجل مثلا هتقوم عاملهم لينكات. هرفعلكو الملف فى لينك لما اخلص البوست....
------------------------------------------------------------------------------------------

رابعاً:

------
تجهيز الملفات بقى سهل جدا :
1- التمبلت ملفاته تكون فى فولدر باسمه ويكون التمبلت منظم فى ملفاته يعنى تعمل فولدر لملفات ال css وفولدر لملفات الفونت وفولدر لملفات ال javascript المهم كدة فولدر التمبلت تمام نعلم عليه هو وفولدر ال documentation ونختار add to archive هيطلع نافذة نختار منها zip وندوس اوك هيطلع ملف مضغوط ادى كدة ملف. وطبعا اهم حاجة فى الملفات بتاعة التمبلت اى صور تشيلها خالص وتحط مكانها صور من موقع placehold it
2- نصمم صورة للعرض اللى هى هتبقى البريفيو للتمبلت اللى هى اول حاجة المشترى هيشوفها تكون بالابعاد ديه 590 عرض و 300 طول وطبعا تكون حلوة وبسيطة متعملش فيها فرح عشان متوجعش العين خلى بالك الصورة لوحدها ممكن تكون عامل ان التمبلت يجيب مشترى لانها عامل جذب ولما نعملها نعمل نفس اللى عملناه ندوس كليك يمين عليها ونختار add to archive ونختار zip وندوس اوك.
3- الايقونة ديه بقى مش هنعمل فيها حاجة غير اننا هنصممها بس صورة بحجم 80 فى 80 مربعة يعنى يكون فيها اسم التمبلت مثلا ومش هنضغطها هنسيبها زى ما هى وكدة الملفات جهزت للرفع .
----------------------------------------------------------------------------------------

خامساً:

-------
رفع الملفات :
سهل جدا هنروح الاكونت بتاعنا على ثيم فورست ونجيب ال dashboard وعند خانة Upload an item نختار القسم اللى هنرفع فيه وندوس next 
بعد كدة هتلاقى خانة الاسم وبعدين خانة الوصف هتحط اسم التمبلت فى اول خانة 
تانى خانة بقى فى ملف صغير هرفعه برضه اسمه description >ة ملف Html اهبل خالص مش محتاج حاجة بتعدل عليه عادى وتنسخ الاكواد والمحتوى بتاعه زى ما هو بعد ما تكتب طبعا تعديلك انت فى المعلومات بتاعة التمب وتحطه فى خانة الوصف فى الموقع لان خانة الوصف بتقبل تنسيق ال html والوصف دة اللى بيظهر تحت صورة التمبلت اللى هى صورة العرض 
ومن ضمن الحجات فى الوصف انك تحط برضه اى مصدر انت استخدمته زى البوتستراب والجى كويرى وخطوط جوجل وفى حاجة اضافية اى صور هتستخدمها فى التمبلت فى اللينك اللى هيعمل Live preview يعنى اللينك بتاع المعاينة تبقى صور free من غير حقوق نشر وطبعا فى مواقع كتير بتديك صور ببلاش ومفهاش حقوق نشر زى مثلا pixabay واوعى تجيب صور من جوجل لا خش على الموقع دة ونقى صور واستخدمها براحتك وهو فى صور جميلة وطبعا فى الوصف هتحط لينك الموقع اللى جبت منه الصور.
بعد كدة هتلاقى خانة choose files to upload
هتختار الملفات اللى عملناها اللى هى الملفين المضغوطين وملف الايقونة
وتستنى لما يرفع ويجبلك على كله صح هتلاقى تحت فى خانات فاضية للبريفيو والملفات والايقونة هتفتح كل واحة وتختار الملف اللى يناسبها وهتلاقى كل حقل بيقولك تحط ايه متقلقش.
بعد كدة هتلاقى التصنيف وشوية بيانات كدة انا موضحها فى الصور سهلة جدا يعنى الجزء الصعب خلص فى الاخر هتدوس upload ومبروك عليك التمبلت راحلهم وهيتراجع وهيبعتو ليك اميل بالتفاصيل بعد المراجعة.
------------------------------------------------------------------------------------------

لو فى اى حاجة كلمونى.

































Friday, August 25, 2017

لغات البرمجة والحماية


خطأ شائع

من أكثر المعلومات الخاطئة انتشارا ان php لغة غير أمنة او فيها ثغرات أو ان لغات (أو Frameworks) اخرى زي asp.net أو بايثون لغات أمنة .
في الواقع مسألة الـ security متعلقة بالشخص نفسه كمبرمج وبالكود اللي بيكتبه يعني الـ php بتوفرأدوات الحماية فكون ان المبرمج ما استخدمهاش نتيجة ضعف خبرته فدي مش مشكلة php ..
انت عندك الـ abstraction للـ database من خلال حاجة زي pdo بتوفرلك ادوات الحماية ضد الـ sql-injection، عندك طرق ومكتبات واطر عمل للـ php توفرلك حماية من كل انواع الثغرات .

بيئة التطوير وبيئة المطور

من وجهة نظري ومن خلال تجربتي مع php ومع asp اعتقد سبب انتشار فكرة زي دي ترجع لطبيعة مجتمع اللغتين :
- الـ php لغة سهلة ومرنة ومجانية ومجتمعها مفتوح امام الكل أي حد النهاردة ممكن يتعلم php ويبدأ يكود بيها دا أدى لانتشار كبير للغة php لكن للأسف برده أدى لأن معظم مبرمجين الـ php خبرتهم ضعيفة لأن مفيش معيار معين يقيمهم ولا قيود على اعمالهم كل واحد كتب كود بقى متاح ليه يبني موقع سواء لنفسه أو للناس ويرفعه عالانترنت بسبب سهولة الموضوع وانخفاض تكاليفه وأصبحت السمة المميزة لسوق الـ php النهاردة هي ضعف خبرة المبرمجين .
- أضف الى ذلك ان موضوغ الــ self learn عن طريق قنوات اليوتيوب أصبح سبوبة وأى حد رفع كام فيديو قال عليهم دورة .. واللى دخل شاف الكام فيديو دول قال على نفسه مطور .. من غير ما يكلف نفسه البحث عن جديد أو حتى يعرف ازاى ممكن يحمى موقعه أو يسد ثغراته أو حتى يمكن ميعرفش يعنى ايه حماية

قيود على بيئة التطوير

- في المقابل الـ asp سوقها عليه قيود وبيئة الدوت نت عموما مش سهلة مقارنة مع php ومحتاجة تعمق في شوية امور شوية ولفترة قريبة كانت مغلقة المصدر وغير مجانية فدا أدى لأن سوقها يكون عليه قيود بحيث يبقى مقتصر على الـ enterprise وان مش سهل تعمل بالـ asp تطبيق وترفعه وتشتغل بيه زي php ولا سهل انك تشتغل بيها في السوق لأن طبيعتها بتفرض على المبرمج انه يكون محترف عشان يقدر يلاقي شغل وبسبب كدا هتلاقي ان مجتمع asp سمة مبرمجيه انهم متعمقين في تفاصيل كتير وفاهمين .
عشان كدا ظهرت الفجوة هنا ان تطبيقات asp دايما اكثر امان و php تطبيقاتها فيها ثغرات والفكرة هنا ان الـ asp معظم المواقع اللي بتتبني بيها بناها محترفين في حين ان معظم المواقع اللي اتبنت بـ php بيبنيها هواة او شركات صغيرة مفيهاش خبرات كافية فبينتج عن نقص الخبرة دا ثغرات .
دا ما يمنعش ان بعض اللغات أو اطر العمل وخصوصا asp.net و javaEE ممكن يكون فيهم ادوات تسهل وركز على تسهل دي انك تحقق بعض الأمان لكن دا ما يمنعش انك تقدر تحقق الأمان برده بأي لغة .. والحقيقة ان المبرمج المحترف هيبني تطبيق أمن اي كانت اللغة اللي بيكتب بيها والمبرمج اللي معندوش خبرة هيبني تطبيق سئ وفيه ثغرات أي كانت اللغة اللي بيبني بيها .
#Khaled_Gad

UI-UX-FrontT-Back-FullStack

تعــالوا نعرف بعض المفاهيم اللى بتلخبط فى عالم الويب والفروقات بينهم وهم : 

- UX Designer 

- UI Designer 

- UI Developer 

- Front End Developer 

- Back End Developer 

- Full Stack Developer


بسـم الله ... نمسك واحد واحد ونقول بيعمل ايه بالتفصيل باذن الله

1- الـ UX Designer 

الراجل ده بيكون عنده شويه مهارات فى الديزاين وبيحب السرش الكتيير .. بيجمع المهارات 
اللى عنده ديه عشان يوصل لحاجه واحده بـس .. انه يلـبى طلبات العميل فى افضل صورة 
تكون مريحه ليه والعميل بيحبها .. يعنى بيراعى احتياجات العميل وازاى يخليه يوصل 
للى هو عايزه من خلال اقصر الطرق واكبرها كفاءة 
الراجل بعد ما بيعمل كل الحاجات ديه بيخرج بناتج نهائى وهو حاجه اسمها Wireframes 
وده عبارة عن تصميم للموقع كله شكله بيكون ابيض واسود من غير اى الوان او اى حاجه 
يادوب بيكون تصميم الموقع بصفحاته بكل اشكاله اللى بيكون اتفق مع العميل بيها 
وده مثال على الـ wireframe بيكون بالشكل ده : https://goo.gl/MXTDuM


==================================================

2- الـ UI Designer 

الراجل ده بقى بيستلم الـ wireframe من البرنس اللى قبله وبيكمل بقى على الشكل 
انه بيشوف الالوان المناسبه والعناصر موجوده تمام ولا ويظبط المكونات بتاعه الموقع 
كاملة ويقدر يستخدم الفوتوشوب فى الحوار ده عشان يطلع التصميم مظبوط بالالوان 
ويكون فيه الروح كده بدل ما بيكون ابيض واسود والامثله على الشكل اللى بيطلع 
بيكون اى موقع انت بتشوفه عادى على النت بس كشـكل من غير كود 


=================================================

3- الـ UI Developer 

الراجل الكريم ده بقى بياخد التصميم اللى صممه اللى قبله ويعمل ايه بقى يا باشا ؟ 
بيدأ يكود بقى الموقع باستخدام الـ HTML و CSS و JS وكده 


=================================================

4- الـ Front End Developer 

الراجل ده نفس الكلام بيكود الموقع باستخدام الـ html و Css و js وكده 

=================================================

س : اومال ايه الفرق بقى يا عمنا بين ال UI Developer و Front End ؟؟ 

- بص يا ريس الفرق بسيط جداا وهو كالتالى : 

الراجل UI Developer ده 

- بيكون عنده اهتمااام اكبر بالـ HTML و CSS على حساب الـ JS ومكتباتها 
- بيهتم اكتر هل الصورة موجوده بشكل كويس فى الموقع . هل الزراير مناسبه والونها كويسه - بيهتم بالتقنيات وال methodologies اللى هيا زى ال BEM و OOCSS و SMACSS 
- بيشوفوا الموقع كأجزاء بمعنى ان كل صفحه جزء لوحدها مش كل الصفحات مترابطه ببعض وكمان مش بيهتم انه يخلص المشروع فى وقت معين لأ .. وقت ما يخلص عادى

الراجل الـ Fornt End بقى 

- بيكون عنده اهتمام اكبر بالـ JS ومكتباتها وكمان بيهتم بBackbone.js, React.js
- بيهتم انه يخلص المشروع بتاعه فى وقت معين ومحدد
- بيشوف الموقع كجزء كامل بكل الصفحات يعنى بيشوف الصفحات كلها مترابطه ببعض
ككجزء واحد على عكس ال UI developer
- بيحلل كل اجزاء الموقع ويطور منه بحيث يوصله لافضل شكل مناسب ومريح للمستخدم 


==================================================

5- الـ Back End Developer 

الراجل ده بقى بيهتم بالجانب الغير مرئى من الموقع .. بالمعنى الادق اللى هو ماذا
يحدث وراء الكواليس .. كل الحاجات ديه الراجل ده اللى بيعمها.. شويه امثله
- مثلا لما تيجى تسجل الايميل والباسورد ازاى بيعرف ان هو انت ؟
ببساطه عن طريق ان فيه حاجه اسمها database مكان كده فيه كل الاسماء والباسوردات
اول ما بتدخل اسمك والباسورد يروح يقارنهم ويعرف ان ده انت مش ده حد تانى xD
- بيركز على ازاى يطور الموقع وازاى يأمنه Security بيهتم بيها
- بيسموه برده ال web Developer
- الـ Front يهتم بواجهه وشكل الموقع والـ Back يهتم بتطوير الموقع وتظبيط الامان
والداتا بيز والشغل ده 


=================================================

6- الـ Full Stack Developer الراجل ده بقى اللى فاهم كل حاجه بيجمع ما بين ال Front و Back 

=================================================

أسال الله ان اكون قدمت ولو معلومه بسيطه مفيده فى التعريفات ديه وتكون مفهومه

33 Free Udemy Course


33 كورس مجاني 100% من يوديمي ولفترة محدودة

33 كورس مجاني 100% من يوديمي ولفترة محدودة







33 كورس مجاني 100% من يوديمي ولفترة محدودة 😯😮😲
العروض بتنتهي ف اى وقت يعني ياتلحق يامتلحقش
اشترك فى الكورس اللى يعجبك الان وهيفضل مجاني فى حسابك للابد
وشارك البوست مع كل اللى تعرفه 


#ساعد_غيرك ❤️


==============================
iOS & Swift Developer Masterclass 200$=>>0$
12 Hours
• Learn iOS App Development with Swift & Xcode. Build iOS Apps from Scratch.
-----------------------
The Java Programming Language Course 2017 195$=>>0$
8.5 Hrs
• Learn the complete object oriented Java programming language in 5 weeks - Build Java apps from Scratch in 2017!
-----------------------
Photoshop Compositing For Advertising 100$=>>0$
-----------------------
Learn Professional 2D Game Graphic Design in Photoshop 150$=>>0$
6.5 Hrs
• Learn how you can create your own professional game graphics quickly in Photoshop!
-----------------------
Microsoft Access 2016 Intermediate/Advanced Course 0$
9 Hours
• Get ready to take your Microsoft Access 2016 skills to the next level with this intermediat/advanced Access 2016 course
-----------------------
R Programming Hands-on Specialization for Data Science (Lv1) 135$=>>0$
11 Hrs
• An in-depth course on R language with real-world Data Science examples to supercharge your R data analysis skills
-----------------------
Easy Markdown with VS Code 20$=>>0$
-----------------------
Press Release Marketing A-Z: Beginner's Press Blueprint 45$=>>0$
-----------------------
List Building A-Z: Beginner's List Building Blueprint 40$=>>0$
-----------------------
Blog Marketing A-Z: Beginner's Blogging Blueprint 45$=>>0$
-----------------------
Tyton's Ultimate Wordpress Training Academy 0$
-----------------------
Amazon Marketing A-Z: Beginner's Amazon Blueprint 45$=>>0$
-----------------------
How to Start a Success Social Media Marketing Agency 200$=>>0$
3.5 Hrs
-----------------------
Conversations With Digital Nomads 195$=>>0$
4 Hrs
-----------------------
The End of Chronic Illness and Fatigue 195$=>>0$
4.5 Hrs
-----------------------
Introduction to Chemical Engineering 0$
6.5 Hrs
• Learn the elementary principals of chemical processes and calculus-based calculations
-----------------------
Business Plan: Learn It Fast! 20$=>>0$
-----------------------
Affiliate Marketing + SECRET SOFTWARE 150$=>>0$
-----------------------
CPA Marketing Mastery & Innovation 180$=>>0$
-----------------------
French for beginners - From zero to pro in 60 minutes 30$=>>0$
-----------------------
Twitter Marketing A-Z: Beginner's Twitter Blueprint 45$=>>0$
-----------------------
Craigslist Marketing A-Z: Beginner's Craigslist Blueprint 40$=>>0$
-----------------------
Local Business Marketing A-Z: Beginner's Local Biz Blueprint 45$=>>0$
-----------------------
Build a 2D Unity Game With Unity 3D - Get A High Paid Job 195$=>>0$
-----------------------
P.O.W.E.R Resume System: Proven system to get job interviews 195$=>>0$
-----------------------
Canva Complete Course For Graphics Design | 20 Projects 200$=>>0$
-----------------------
Dream Lab - Everything You EVER Wanted To Know About Dreams 185$=>>0$
5 Hrs
• How to Remember & Understand Your Dreams and Master Lucid Dreaming
-----------------------
Cinematography Course: Shoot Better Video with Any Camera 200$=>>0$
3 Hrs
-----------------------
The Complete Ethical Hacking Course: Beginner to Advanced! 195$=>>0$
24.5 Hrs
• Learn how to do ethical hacking, penetration testing, web testing, and wifi hacking using kali linux! 
-----------------------
Try Django 1.10 | Create a URL Shortening Service 50$=>>0$
5.5 Hrs
• Django is a powerful web framework that makes it easy to build web applications it's why it's the #1 Python library
-----------------------
WordPress Development For Beginners 95$=>>0$
-----------------------
Cisco CCNA Networking Security 200-125 Exam Complete Course 20$=>>0$
4.5 Hrs
-----------------------
Beginning Game Development using Cocos2d-x v3 C++ 100$=>>0$
3.5 Hrs
==============================
معظم كورسات يوديمي بتخفيضات تصل الى 95% 
من هنا : http://bit.ly/2v3eV37
==============================
ندعمكم دائما بافضل الكورسات فلاتبخلو علينا بدعمكم للصفحة باللايك والشير