Category

programming

Problem Solving كيف أبدا

ازاي تبدأ Problem Solving ؟

بوست طويل شوية انا آسف بس الموضوع فيه كلام كتير وده مش كل حاجة اكيد في اكتر من كده ولكن ده كويس كبداية

أولاً ايه أهمية ال Problem Solving ؟

بتعلمك اهم مهارتين محتاجهم أي Programmer وهما How To Think وديه هتتعملها من خلال انك هتمر بأفكار كتير منهم السهل ومنها المتوسط وصولا للصعب والاصعب ف ده هيبني عندك خلفية واسعة عن انك تطور من نفسك ومن الحلول المتاحة قدامك لما تقابلك مشكلة في كود بعد كده لما تدخل اي مجال …الحاجة التانية هي How To Search وديه هتتعملها من خلال انم هتواجه Errors , Exceptions , Time Limit Exceeded خلال الحل ف ده هيخليك تبحث وتدور ازاي تحل الError ده لان اكيد مش كل مرة يواجهك Error هتروح تسال في حد او حد أكبر منك مثلا .

ايه اللي محتاجه علشان تبدأ تحل Problems ؟

مش محتاج حاجات كتير يعني ممكن مثلا تتعلم Basics بتاع لغة برمجة وتبدأ تحل عليها واثناء حلك تكمل مذاكرة تذاكر Object Oriented Programming + Algorithms + Data Structures لان دول اهم 3 حاجات محتاج تعرفهم بعد ما تتعلم لغة برمجة هيفرقوا معاك جدا وهيوسعوا من نطاق فهمك واستيعابك للي انت بتعمله ايه بقا المصارد والمواقع اللي تحل عليها ؟

قناة Arabic Competitive Programming ديه تبقا مرجع وقم واحد عندك وانت في البداية الدكتور مصطفى سعد ربنا يباركله على مجهوده يعني هتلاثي محتوى محتوى محترم بدايه من لينك الفيديو ده اللي فيه شيت لمسائل من موقع Codeforces لحد شرح اغلب الاساسيات اللي قولتها ديه بال C++ ده اذا ما كانش كلها يعني هنا هتلاقي شرح للشيت والقناة مليانة شروحات خاصة بال

https://www.youtube.com/watch?v=c3lmvYBxgwE&t=33s2-

لو انت هتشتغل ب Java ف انت تقدر تحل نفس الحاجات ديه برضو باي لغة برمجة لكن الحاجة اللي فرقت معايا جدا في وانا في البداية الكورس من ده موقع Hackerrank محتاج تبقا مستوى متوسط في الانجلش علشان تفهمه كويس انما هو كل فيديو وراه Problem مرتبكة بموضوع الفيديو والكورس بصراحة جميل جدا

https://www.hackerrank.com/domains/tutorials

ده شيت من جامعة اسيوط ال Problems مترتبة فيه Categories بداية من ال Variables , Loops , Conditions وصولا لمسائل عامة كل اللي مطلوب تعمله تسجل في الموقع وتدخل على اللينك تنزل لتحت هتلاقي Member management تسجل as Participant


https://codeforces.com/group/MWSDmqGsZm/contests

البشمهندس محمد أيمن عامل مجهود محترم في الRepository ديه عن ال Problem Solving برضو وكويس جدا ليك شوف المصدر اللي ترتاح معاه وذاكر منه كلهم يأدوا نفس الغرض بس شدوا حيلكم

https://github.com/cs-MohamedAyman/Problem-Solving-Training?fbclid=IwAR2pWQxGceLuI-wPSiL_KYUft6_mdGwqxSb9_KDk_NjslMIEsw-y9VZOy6g

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

كتاب في لغة ال Java

https://drive.google.com/file/d/1ymuWO1-KbGYKP_HBa-msTaTMUkrXImy0/view?usp=sharing2-

كتاب في لعة ال C++

https://drive.google.com/file/d/1dN2kVq37hl3LhqOpkMkXH7C_zjck4Qzw/view?usp=sharing3

كتاب عن ال Algorithms + DS بال Java

https://drive.google.com/file/d/1kxL8HkuTtfUkq3FX_TWRUydOTd-XtkSr/view?usp=sharing4-

كتاب مهم جدا بس مش دلوقتي لما تذاكر Problem Solving كويس بص ع الافكار اللي هنا من Interviews خاصة باكبر الشركات Google ,Amazon , Microsoft ..etc

https://drive.google.com/file/d/1aglioqjt_jsp6DLs8S5LZCv7fP1Ah5Wn/view?usp=sharing

وده لينك الحلول من Github المصدر

https://drive.google.com/file/d/1U_HQm42Tr9ufNHTBT58r7CSRixfDQzbl/view?usp=sharing5-

ده كتاب لو حد يعرف لغة C++ ,Java , Python وحابب يراجع عليها مثلا الكتاب ده جميل جدا هتلاقي في بدايته شرح لكل لغة منهم

https://drive.google.com/file/d/1s7kvvXhDKTOhZdTtmY3ZgSgdkJK6lKdP/view?usp=sharing

آخر حاجة وديه نصيحة في البداية هتواجه مشاكل كتير في التعامل مع المواقع وهيقابلك Errors , Exceptions وحوارات كتير علشان تكمل لازم نفسك يبقا طويل وتصبر لان اي حد في البداية كده محدش اتولد تنين مجنح في البرمجة والا حد كان بيحبي على Keyboard وهو صغير مثلا لازم تصبر وتكمل علشان لمستوى يرضيك الحاجة التانية مش مطلوب منك تقعد طول عمرك تحل Problems كفاية سنة اولى مثلا او تانية بس تذاكر بضمير هيفرق معاك جدا وبعد كده تذاكر مجال تشتغل بيه ويب – اندرويد – الخ من المجالات يعني واتمنى ليكم كل التوفيق يارب ♥️🙏

Front End أفضل الطرق لتصميم الواجهة الأمامية

ما هي أفضل وأشهر طرق العمل للواجهة الأماية Front End ؟

تستعمل أطر عمل للواجهة الأمامية لتحسين واجهة وتجربة المستخدمن، لذا يوجد العديد من الخيارات لاختيار إطار مناسب لبناء تطبيقات سهلة الاستخدام وجذابة للمستخدم.

سنتعرف على بعض الأطر التي توفر العديد من التقنيات المطوَّرة والجاهزة من أجل بناء موقع أو تطبيق ويب من الصفر.

React.js

تم تطويره من قِبل شركة Facebook، فهو أول إطار يعتمد على البنية القائمة للمكونات، ويجعل التلاعب بالـ DOM أسرع بكثير وذلك باستعمال “JSX Syntax”، وأيضاً يمكن استخدامه بجانب الخادم ويُنصح به لبناء تطبيقات “PWA” التي هي تطبيقات الصفحة الواحدة.

Vue.js

تم تطويره من قِبل المطور “Evan You” لتحقيق الأداء الأمثل في التطبيق ومعالجة التعقيدات، كما أنه سهل التعلم ويتيح الرؤية البصرية للـ DOM والبنية القائمة للمكونات ومعروف بأنه نظام ملزم ذو اتجاهين، أي يمكنه التعامل مع كل من العمليت البسيطة والديناميكية بسهولة.

Angular.js

لقد تم تطويره من قِبل شركة Google، ويعتبر الأفضل لبناء تطبيقات الويب والموبايل ولديه خاصية ربط البيانات ثنائية الاتجاه، معناه أنه يوجد تزامن بين النمودج “Model” والعرص “View”، يعكس أي تغيير في النموذج على العرض والعكس بالعكس، وأصبح يعتمد على Typescript.

Ember.js

تم تطويره عام 2011، ويعتمد أيضاً على البنية القائمة للمكونات، ويقدم ربط البيانات ثنائة الاتجاه مثل “Angular”، وهو في اتساع مستمر مع ميزات جديدة، ومستخدم من قِبل شركات كبيرة مثل : Google، Netflix…

Svelte.js

وهو إطار مفتوح المصدر مكتوب بــ Typescript، فهو عكس React و Vue ليس لديه DOM افتراضي ولا يحتاج إلى معالجة متصفح عالي.

Backbone.js

هو إطار سهل يسمح لك بتطوير وبناء تطبيقات الصفحة الواحدة، وهو يقوم على نمط MVC وهو خيار مثالي لاستخدامه في الواجهة الأمامية والخلفية، لأنه يتوافق مع Rest API ويقدم تزامناً سلساً.

ما هي الخطوات لتعلم البرمجة

ما هي الخطوات الفعلية لتعلم البرمجة ؟

 بصراحة يا صديقي تعلم البرمجة بسيط وليس معقد كما يعتبره الآخرون

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

والان اول خطوة في تعلم البرمجة هي تحديد الهدف!

ما هو هدفك من تعلمها؟ هل لبناء تطبيقات الاندرويد؟ او تطبيقات الايفون؟ ام انها تطبيقات الكمبيوتر؟؟

وهل هو مجال مختلف مثل مجال بناء المواقع؟ او تصميم وبرمجة الالعاب؟

هذه كلها مجالات برمجة ويوجد غيرها الكثير ولكن هذه مجالات اساسية وعامة بعالم البرمجة

والان انت اخترت مجال واحد من هذه المجالات ستبدأ الان بالقراءة ومشاهدة الفيديوهات الخاصة بهذا المجال حيث ستبحث عن معلومات تخص مجالك اللذي اخترته

t

 ما هي اللغات البرمجية المستخدمة في مجالي؟؟

ستبحث عن هذه المعلومات وستبدا بالتعلم فورا…!

اكتب على اليوتيوب: كورس تعلم (اسم المجال) وسيظهر لك الكثيييير من الفيديوهات لتعلمه.. بعد ان تعلمت اساسيات لغة البرمجة الخاصة بمجالك ولنفرض انها لغة جافا!

ولغة جافا او java خاصة ببناء تطبيقات الاندرويد ستتعلم كيف تعمل اللغة وكيف تكتبها وما هي المصطلحات العامة وبعد الانتهاء من كورس الاساسيات ستتعلم الخوارزميات لفهم الاكواد بطريقة معمقة وسهلة…

بعد ذلك ستتعلم على برنامج اندرويد ستوديو لكتابة اكواد الجافا وتحويلها الى تطبيق اندرويد كامل!

وطبعا يوجد الكثير من الشروحات اللتي تقدم لك شرح شامل عن البرنامج وشروحات عملية لبناء تطبيقات مختلفة

والان مهمتك الرئيسية في هذه المرحلة هي التدريب! والتدريب اهم مرحلة… حاول تكتب كل شيئ تعلمته بالسابق وتحويله الى مشاريع موجودة بالفعل وممكن ان تستعين بمواقع مثل موقع hacker rank لمشاهدة تدريبات عملية وحل اسئلة باللغة اللتي تستخدمها بمجالك…

Ionic ما هو الأيونيك

ما هو الأيونيك Ionic ؟

هو حزمة أدوات تطوير مفتوحة المصدر لتطوير التطبيقات الهجينة لأنظمة تشغيل الهواتف الذكية، Ionic مبني بشكل أساسي على Angular JS وCordova، يقدم Ionic العديد من الأدوات لتطوير التطبيقات الهجينة للهواتف الذكية عن طريق استخدام تقنيات الوب مثل الـ SASS وCSS وHTML5، يتم إنشاء التطبيقات عن طريق تقنيات الوب ثم يتم نشرها على متاجر التطبيقات الخاصة بأنظمة التشغيل عن طريق Cordova.


تم تطوير Ionic من قِبل “مكس لينش”، “بن سبيري”، و”آدم برادلي” من شركة “ديرفتي” عام 2013.

🔸 ما هي مميزات التطبيقات الهجينة :

  1. يمكن تشغيل التطبيق على أي نظام تشغيل (Android، iOS، Black beery)، أي أنه متعدد المنصات “Cross Platform”.

  2.  عملية تصميم وبناء التطبيق أكثر سهولة وأقل جهداً، حيث ستتم عن طريق لغات الويب مثل CSS وHTML.

  3.  لا يحتاج لمعرفة برمجية قوية بلغات برمجة أخرى، فمن أجل التطوير على جميع الأنظمة كل ما تحتاجه هو فهم لغات الويب والـ Angular.

  4. إنشاء Ionic يتم عبر سحب وإفلات أدوات البناء الخاصة بالواجهة؛ التطبيق الذي يتم بناءه باستخدام إطار Ionic يتم تقديمه من Apperz.io.

React js ما هو

ما هي الـ React js ؟

React أو React.js  هي مكتبة تم بناؤها على لغة JavaScript، وتعتمد على مفهوم المُكونات و تُستخدم في بناء واجهات تفاعلية تعتمد على “virtual dom” في تحديث مكونات الصفحة، يمكن استخدامها لإنشاء تطبيقات من صفحة واحدة (spa)، تم بناء هذه المكتبة من طرف Facebook، هناك من يعتبر React إطار عمل لكنها في الحقيقة مكتبة.

▫ ما هي مميزات وخصائص الـ React js ؟

بُنيت React على أساس مفهوم الـ Component، إذ يمكن تقسيم صفحة الويب إلى مكونات (Component)، مثلاً بمكن اعتبار الـ “Navbar” مكون مستقل والـ “Footer” مكون مستقل وهكذا ..
يمكن إعادة استخدام هذه المكونات بسهولة فائقة دون الحاجة لبنائها مرة أخرى في كل مرة.

تَستخدام React ما يعرف بـ JSX

مثال :

<h1>Hello world!</h1>

إن الصياغة أعلاها التي تحتوي على وسم h1 هي ليست سلسلة نصيّة ولا حتى HTML. بل هي عبارة عن JavaScript تُستخدم لعرض ما يحتاجه المطور على شاشة المستخدم، تتشابه الـ JSX بالشكل مع HTML مما يسهل على المبرمجين التعامل مع الرياكت. ولكن ما يحدث في الحقيقة وفي الخفاء، هو أنه يتم تحويل الكود أعلاه إلى “جافاسكريبت فنكشن _ JavaScript Function”
مثال :

React.createElement(“h1”, null, “Hello world”)

يتم استخدام الـ Virtual DOM في الـ React مما يجعلها أكثر كفاءة وسرعة، كما توجد العديد من الميزات الأخرى والكثيره للرياكت

مصارد تساعدك على تعلم React.js :

https://www.udemy.com/course/react-redux/
https://www.w3schools.com/REACT/DEFAULT.ASP

أفضل 4 مصادر عربية لتعلم البرمجة

هل يمكن تعلم البرمجة باللغة العربية ؟

بطبع يمكن تعلم البرمجة باللغة العربية ولا يعني أن عملة الترميز وكتابة الكود تكون باللغة الانجليزية في معظم المرات الا انه يمكنك تعلم البرمجة بأي لغة أو طريقة تريد وهذه هي أفضل المصادر لتعلم البرمجة باللغة العربية :

 قناة Elzero Web School


القناة رائعة ويبقى العمل الذي يقوم بها الأستاذ أسامة رائع جداً ويشكر عليه، أكثر مايمزها هو المحتوى المتنوع والمنظم المنشور على القناة.

منصة مليون مبرمج عربي


مبادرة أطلقها “محمد بن راشد آل مكتوم” حاكم إمارة دبي في عام 2017 وتديرها مؤسسة “دبي للمستقبل” و”داماك العقارية”، وهي منصة تعليمية تقدم برامج تدريبية مجانية للأفراد المهتمين بتطوير المهارات الرقمية.

 قناة TheNewBaghdad


القناة لـ “حسين العراقي” الذي يقدم محتوى رائع، وواحد من القدماء الذين ساهموا في المجال وقدموا محتوى عربي محترم في المجال.

 منصة سطر


واحدة من أحدث المنصات في المحتوى العربي يسهر عليها “الاتحاد السعودي للأمن السيبراني و البرمجة والدرونز”، توفر المنصة التعليمية محتوى متنوع ومتكامل يساعدك في تعلم البرمجة بكل سهولة ومتعة.

Udemy ما هي منصة يودمي

ما هي منصة يودمي Udemy؟

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


في الوقت الحالي ركز موقع Udemy اهتمامه بطلاب الجامعة حيث عمل على تبني دورات تخص تحسين مهارات الطالب والشيء الذي يجب عليه إتقانه؛ هناك بعض الدورات على المنصة والتي تمكن المشاهِد في نهاية المطاف من نيل شهادة تقنية ذات اعتبار وليس اعتماد في بعض البلدان المتقدمة.

اعتباراً من عام 2019 هناك أكثر من 100.000 دورة مجانية ومدفوعة على الموقع.
وفقاً للموقع الرسمي فإن منصة Udemy ليست مؤسسة معتمدة ولهذا لا يُمكن استخدام الشهادة كاعتماد رسمي لأي دورة قمت بدراستها؛ كما أن نسبة كبيرة من الكورسات لا يتوفر بها أية أسئلة أو اختبارات لتقييم المتعلمين.

MATLAB معلومات عن برنامج

MATLAB 

ما هو برنامج MATLAB  ؟

برنامج MATLAB هو برنامج متخصص في كل المعادلات الرياضية (وله استخدامات أخرى)، قوي جداً في تحليل وتمثيل البيانات و يملك لغة برمجة خاصة به وهي الـMatlab، ومعترف بها بالكثير من التصنيفات..

تتميز لغة البرمجة الخاصة به باعتمادها على المصفوفات بشكل رئيسي، فكل شيء يتعرف عليه على أنه مصفوفة بدءاً من الرقم المفرد وصولاً للصور أو الفيديوهات  وهي “تعتبر لغته سهلة نسبياً”.

برنامج MATLAB

برنامج MATLAB

ما هو مكونات برنامج MATLAB ؟

يحتوي برناج MATLAB على ثلاثة أمور أساسية وهي :

  1.  البرمجة.

  2.  الواجهات الرسومية.

  3.  المحاكاة.

ويتميز بالمواضيع التالية :

1- الذكاء الصناعي بفروعه :

  1.  الشبكات العصبونية

  2. تدريب الآلة

  3. التعلم العميق

2- معالجة الصور

3- محاكاة الأنظمة المختلفة :

  1.  الميكانيكية

  2.  الكهربائية

  3.  الإلكترونية

  4.  الروبوتات

  5.  أنظمة الاتصالات

بعض الميزات التي يُقدمها:

يقوم هذا البرنامج بعمل التفاضل والتكامل والمعادلات الجبرية والتفاضلية ذات المستوى العالي، التي قد تكون صعبة للغاية، كما يقوم بعمل العديد من المسائل التفاضلية والرياضية الصعبة التي يعلم عنها المهندسين والفيزيائيين وغيرهم قدر صعوبتها.

يُستخدم برنامج MATLAB في مجالات هندسية كأنظمة التحكم والمجالات الميكانيكية ومحاكاة الإلكترونيات وصناعة السيارات وكذيك مجال الطيران والدفاع الجوي.

واجهاته الرسومية تعتبر ضعيفة إلى درجة كبيرة ولا يتم العمل على تطويرها من قِبل شركة mathworks، فأنت لا تستكيع عن طريق MATLAB القيام بتصميم برنامج رائع مهيأ للبيع مثلاً، لكن تستطيع برمجة برنامج لك أو لشركتك ليُسهل عليك العمليات الرياضية والبرمجية وغيرها..

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

المهارات التقنية التي يجب على كل مبرمج معرفتها

ما هي المهارات التي يجب علي كمبرمج امتلاكها ؟!

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

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

في هذا المقال سأشرح ما هي المهارات التي يجب عليك امتلاكها لتصبح مبرمجا محترفا وناجحا :

مهارات المبرمجين

1- الخوارزميات وحل المشاكل برمجياً: بحيث يتمكن المبرمج من تحليل مشكلة معينة وتحويلها إلى أكواد باستخدام عناصر البرمجة الأساسية مثل الجمل الشرطية (مثل if) وجمل التكرار (مثل for و while) واستخدام المصفوفات (arrays) وغيرها.

2- البرمجة الكائنية Object-Oriented: بحيث يتمكن المبرمج من تمثيل الأشياء في الحياة الواقعية على هيئة Classes و Objects، واستخدام المفاهيم المساعدة مثل Inheritance و Abstraction و Encapsulation و Polymorphism.

3- تراكيب البيانات Data Structures: وهي حاويات لحفظ عناصر داخلها بترتيب معينة، بحيث يكون الوصول إلى عناصرها وإجراء بعض العمليات عليها (مثل search و sort) ذو كفاءة عالية. ومن أمثلتها: List, Queue, Set, Tree, Map.

4- أنماط التصميم البرمجية Design Patterns: وهي عبارة عن حلول ونماذج جاهزة تستخدم لتصميم هيكلة الـ Objects وطرق إنشائها وكيفية التواصل بين بعضها البعض. من أمثلتها: Singleton, Builder, Factory method, Adapter, Composite, Decorator, Facade, Command, Iterator, Strategy, Visitor.

5- البرمجة المتوازية Concurrent Programming: بحيث يتم تنفيذ البرنامج باستخدام أكثر من Thread. كل Thread يقوم بتنفيذ عدة أوامر متتالية، والـ Threads جميعها يتم تنفيذها بشكل متزامن أو في آن واحد. توجد مفاهيم ذات علاقة، مثل: synchronization, locks, mutex, semaphore, race condition.

6- التعامل مع الملفات: يجب على المبرمج أن يفرق بين الملفات النصية والملفات الغير نصية (binary) (مثل ملفات الصور والفيديو وغيرها) وكيفية قراءتها وتخزينها على المساحة التخزينية، ويتعرف على مفهوم الـ Encoding (مثل UTF-8) وهي الطريقة المستخدمة لتمثيل النصوص على هيئة binary.

7- الملفات النصية الشائعة: هناك عدة أشكال formats تستخدم لتخزين البيانات على هيئة نصوص. مثل: CSV, XML, JSON, YAML.

8– التعابير المنطقية Regular Expressions أو اختصاراً Regex: وهي سلسلة من الحروف تستخدم للبحث عن تطابق داخل نص معين، ويمكن استخدامها أيضاً لتبديل كلمات بأخرى داخل النص أو للتحقق من مدخلات نصية Text Validation. أنصح باستخدام هذا الموقع أثناء بناء regex معين: https://regex101.com

9- التعامل مع قواعد البيانات Databases: بحيث يتمكن المبرمج من كتابة برنامج يتصل بقاعدة بيانات ويستخدم لغة SQL للبحث داخل الجداول أو لإضافة أو تعديل سجلات. معظم لغات البرمجة بها أدوات تساعد في هذه العملية. فمثلاً في لغة جافا، يمكن استخدام JDBC.

 

10- استخدام أدوات إدارة وحفظ الأكواد Version Control Systems: وهي أدوات تساعد في حفظ الأكواد مع جميع التغييرات التي طرأت عليها، مع إمكانية استرجاع نسخ سابقة من الكود. من أشهرها: git أيضاً GitHub.com يعتبر أشهر المواقع التي تستضيف برامج مفتوحة المصدر داخل مستودعات git.

11- استخدام بيئات التطوير IDEs: وهي برامج ومحررات نصوص مع العديد من الأداوت التي تسهل من عملية كتابة الأكواد. أنصح باستخدام الاختصارات shortcuts والتعود عليها بشكل دائم للقيام بالمهام والعلميات داخل الـ IDE والتي تزيد من الإنتاجية. أنصح الجميع بالـ IDEs الرائعة من تطوير @JetBrains

12- قراءة التوثيق الرسمي للغة البرمجة documentation: وهو مستند يحتوي على وصف لجميع الـ classes والدوال الموجودة في مكتبات اللغة الرسمية مع توضيح لطريقة عملها. مثلاً في لغة جافا، لا غنى عن JavaDoc.

https://docs.oracle.com/en/java/javase/11/docs/api/index.html

13- مهارة الـ debugging: بحيث يتمكن المبرمج من إيجاد الأخطاء البرمجية داخل الكود. ويمكن استخدام الـ debugger Tools التي تزودها اللغة أو تجدها داخل الـ IDE. ملاحظة: أحياناً طباعة جمل معينة على الـ console بداخلها قيم لمتغيرات داخل الكود تكون عملية كافية وسريعة لإيجاد الأخطاء.

14- استخدام الـ Build Tools: وهي أداوت تسهل عملية الترجمة compiling وإدارة الـ dependencies وبناء الحزم النهائية للبرنامج مع الأخذ بالاعتبار اختلاف البيئات. في لغة جافا مثلاً، يوجد maven و gradle.

15- اختبار البرمجيات: وهي القيام بكتابة أكواد جانبية تختبر جميع وظائف البرنامج الأساسية للتأكد من صحة عملها. بحيث لو تم تغيير جزء من البرنامج الأساسي، تكشف هذه الاختبارات عن أي خلل في التغيير. أشهر مثال على هذه الاختبارات: Unit Testing. وفي لغة جافا، أشهر مكتبة للقيام بذلك هي JUnit.

16- التعامل مع HTTP: وهو بروتوكول الإنترنت الأشهر، ويستخدم للتواصل بين الـ Client والـ Server لإرسال بيانات. يجب معرفة الفروقات بين الـ HTTP Methods، وأشهرها GET و POST. أيضاً يجب معرفة مكونات الـ HTTP Request والـ HTTP Response ومعرفة أشهر الـ HTTP Headers و HTTP Status Codes.

17- التعامل مع RESTful Web Services: الـ REST هو آلية لتنظيم الخدمات الموجودة على سيرفر على هيئة APIs، بحيث يمكن لأي Client استخدام هذه الخدمات بالاتصال عبر البروتوكول HTTP. أنصح أي مبرمج بالاطلاع على GitHub REST API كمثال وكتابة HTTP Client يستخدمها: https://developer.github.com/v3

Firebase ما هو

ما هو ال Firebase ؟

يُعد Firebase نظامًا أساسياً لتطوير تطبيقات الجوّال والويب. باستخدام Firebase، يمكنك بسرعة إنشاء تطبيقات عالية الجودة وتنمية قاعدة مستخدمين متفاعلين وتحقيق المزيد من الأرباح. ويتضمن النظام الأساسي العديد من الميزات المدمجة والمترابطة التي يمكنك مزجها ومطابقتها، بما في ذلك الإحصاءات وخلفية تعتمد بشكل أساسي على الجوّال وأدوات زيادة تطوير التطبيق وتحقيق الربح المادي منه للمساعدة في تحقيق أقصى نجاح للتطبيق.