Ahmed Saber - Channel @ahmed0saber_channel Channel on Telegram

Ahmed Saber - Channel

@ahmed0saber_channel


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

Ahmed Saber - Channel (Arabic)

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

Ahmed Saber - Channel

27 Dec, 14:04


الفرق الحقيقي بين المكتبات و أُطُر العمل !
https://www.linkedin.com/posts/ahmed0saber_06-the-real-difference-between-libraries-activity-7278409967731134464-w_hd?utm_source=share&utm_medium=member_android

Ahmed Saber - Channel

25 Dec, 17:39


Introducing saber-colors.js, a light-weight JavaScript library providing essential color manipulation utilities.
https://www.linkedin.com/posts/ahmed0saber_github-ahmed0sabersaber-colors-a-light-weight-activity-7277739551119323136-pSCo?utm_source=share&utm_medium=member_android

Ahmed Saber - Channel

24 Dec, 10:55


ايه الفرق بين ال flexbox و ال grid غير الفرق اللى كل الناس عارفاه ؟


مقال جديد متعلق بال css على منصة Eqraatech - اقرأ-تِك ، تقدر تقرأ المقال من خلال الرابط التالي
https://eqraatech.com/flexbox-vs-grid-in-css/

Ahmed Saber - Channel

06 Dec, 14:17


تعرف ايه عن ال ASI في جافاسكريبت ؟
https://www.linkedin.com/posts/ahmed0saber_ahmed0saber-activity-7270803282623692800-WUTG?utm_source=share&utm_medium=member_android

Ahmed Saber - Channel

03 Dec, 15:12


ازاى حسنت من عملية و نتائج البحث فى موقع Intern2Grow ؟
https://www.linkedin.com/posts/ahmed0saber_ahmed0saber-activity-7269730097455132672-0a9P?utm_source=share&utm_medium=member_android

Ahmed Saber - Channel

15 Nov, 16:05


تفتكر الأسود خسر ليه ؟ بص على التعليقات 👀

Ahmed Saber - Channel

12 Nov, 20:39


جربت تبنى template engine بنفسك قبل كدا ؟ (زى blade و ejs و pug و twig مثلا)


من يومين كنت بتصفح repo على github اسمها build-your-own-x بتشجع المبرمجين على إنهم يبنوا ال tools & software اللى بيستخدموها و لكن بنفسهم من الصفر عشان يتعلموا اكتر عن ازاى الحاجة دى بتشتغل و يكون عندهم فهم عميق ليها ، ف مثلا هتلاقى فيها tutorials تساعدك تبنى library بنفسك أو code editor أو حتى لعبة (تم تجربتهم مسبقا)

و كذلك tutorials تساعدك على بناء template engine ، ف حبيت أجرب الموضوع دا بنفسى و الأمر طلع بسيط نوعا ما (على الأقل أبسط من المتوقع بمراحل)

كل اللى انت محتاجه لبناء template engine هو
- تحديد syntax معين لل templates
- كتابة regex patterns تقدر تmatch ال syntax دا
- تحديد extension معين لكل ملفات ال templates
- كتابة برنامج بيscan ال directory باحثا عن الملفات دى ، عشان ياخد المحتوى بتاع كل ملف منهم ، و يستخدم ال regex patterns عشان يحدد أماكن ال variables و ال conditionals و ال loops ، و يستبدلها بالنتيجة المرغوبة ، ثم كتابتها فى ملف مختلف

و دا رابط ال repo على github لو حابب تلقى نظرة على الكود بغرض التعلم أو اقتراح أى تعديلات
https://github.com/ahmed0saber/build-your-own-template-engine

ال template engine مش tested من ناحية ال edge cases و مش مؤهل للاستخدام فى مشاريع واقعية ، و لكن الغرض الوحيد منه هو تجربة مختلفة لتعلم أمور جديدة فقط لا غير

Ahmed Saber - Channel

11 Nov, 16:24


اسمه ternary operator ولا conditional operator ؟

Ahmed Saber - Channel

04 Nov, 15:01


مهم جدا تكون عارف ازاى تكتب documentation ل سوفتوير معين


أغلب المشاريع ال open source على github هتلاقى فيها ملف README (أو اى اسم تاني مفيش مشكلة) بيشرح فكرة المشروع ، ازاى تشغله على جهازك ، التكنولوجيز المستخدمة فيه ، ازاى تساهم فى تطويره ، و غيرهم

كذلك المشاريع اللى مش open source و مش على github ، لأن وجود ال documentation مهم جدا لأعضاء اى تيم شغال على سوفتوير و بالأخص لما يكون فى onboarding لشخص جديد

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

كذلك ال APIs ضروري تكتب لها docs (أو تعمله auto generate ب أى طريقة اخرى)

دا موقع بيشرح لغة ترميز اسمها markdown بتستخدم فى كتابة ال docs
https://www.markdownguide.org/basic-syntax/

Ahmed Saber - Channel

28 Oct, 15:01


ليه else if فى جافاسكريبت بتتكتب بالشكل دا ؟ ليه مش كلمة واحدة elif زى بايثون ؟


أعتقد الموضوع دا مش فى جافاسكريبت فقط و لكن عدة لغات برمجة شائعة

الفكرة كلها إن لغة بايثون فيها كلمة محجوزة أو keyword لل else if و هى elif ، على عكس جافاسكريبت اللى مفيهاش كلمة محجوزة لل else if ، ف بنحتاج ندمج ال if مع ال else بالشكل المذكور فى الصورة التانية عشان تطلع نفس ال behaviour المتوقع

و بما إن ال block of code الخاص بال else فيه statement واحدة فقط و هى ال if ، يجوز حذف ال curly braces لتصبح على الشكل الموجود فى الصورة الأولى و هو الشكل المتعارف عليه لل else if و اللى بنستخدمه فى أغلب الأحيان لأنه أوضح و أسهل فى القراءة

معلومة بسيطة حبيت اتكلم عنها لأنى لاحظت ناس كتير مفكرة ال else if حالة مختلفة من ال else و ليها شرح و استخدام مختلف

Ahmed Saber - Channel

23 Oct, 13:29


يعنى ايه Big O Notation ؟ و ازاى نحدد ال Time Complexity للخوارزميات عن طريقها ؟


بمجرد مشاهدتك للفيديو دا هيكون عندك فكرة ابتدائية عن ال Big O Notation ، و هتكون قادر على تحديد ال Time Complexity الخاص ببعض الخوارزميات ، و مقارنة أداء الخوارزميات المختلفة عن طريق ال Time Complexity الخاص بكل منهم لمعرفة أيهم أفضل من ناحية الأداء

رابط الفيديو على اليوتيوب
https://youtu.be/M90dbZg7OFg?si=_J_wyr3fzfhjBEX9

Ahmed Saber - Channel

21 Oct, 15:01


معلومة بسيطة عن ال API و ال UI


كلمة api هى اختصار ل application programming interface أو الواجهة البرمجية للتطبيق ، اللى بنقدر من خلالها نجعل تطبيق آخر يتواصل مع التطبيق دا ، ولا يشترط إن التواصل دا يتم عن طريق http request ولا يشترط إن التطبيق دا يكون backend service

فمثلا ممكن تقابل browser APIs بتسمح لل client-side web application بتاعك أنه يتواصل مع المتصفح بدون إرسال أى http request لأن المتصفح بيستضيف تطبيقك حاليا

كذلك ال operating system APIs اللى بشكل برمجي ممكن تسمحلك بالتواصل مع نظام التشغيل عشان ينفذ بعض المهام اللى تطبيقك ميقدرش ينفذها بنفسه زى التعامل مع الملفات مثلا

جدير بالذكر إن ال UI هى اختصار ل user interface و هى واجهة برضو و لكن للتواصل بين اليوزر و التطبيق ، و لا يشترط إن الواجهة دى تكون رسومية أو graphical (مكونة من أزرار و حقول إدخال و غيرهم من العناصر الرسومية) ، ممكن تكون command line أو voice أو غيرهم

Ahmed Saber - Channel

14 Oct, 15:01


ال optimistic update من أحد ال techniques ال tricky لتحسين تجربة المستخدم


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

المشكلة هنا إن بعض اليوزرز هيلاحظوا إن الموضوع بياخد وقت ملحوظ و بعد كل ضغطة لايك هيكون واقف منتظرها تغير شكل الزرار عشان يتأكد إن اللايك اتعمل ف يقدر يكمل scroll بعدها

و البعض الآخر من اليوزرز هيضغط على الزرار اكتر من مرة لأنه شايف إن مفيش اى تفاعل من ناحية الزرار ف ممكن يكون مهنج مثلا

احنا بقا بنقدر نحل المشاكل دى ب technique بسيطة جدا اسمها optimistic update أو التحديث المتفائل (أو المستبشر) ، و من اسمه نقدر نفهم أنه بيتفائل بإن ال api request هينجح ف بيغير من شكل و لون الزرار لحظيا منغير ما ينتظر ال response ، بالتالي بمجرد ما اليوزر يضغط على الزرار هيلاقى الزرار شكله اتغير ف هيحس إن الأداء عالي و التطبيق سريع ف هيكمل scroll و يشوف البوست اللى بعده

طيب هنا احنا كننا بنفترض إن ال request هينجح و هو دا اللى المفروض يحصل بنسبة أكبر من ٩٩٪ ، و لكن لازم نعمل حساب إن الريكويست ممكن يفشل برضو ، فى الحالة دى بنرجع شكل الزرار كما كان و ننبه اليوزر إن فى خطأ حدث أثناء الإعجاب بالمنشور ، بالتالي اليوزر ممكن يتأكد من اتصاله بالانترنت و يجرب تاني

ممكن تلاحظ ال technique دى مستخدمة فى تطبيقات كتير بتستخدمها بشكل يومي ، و هى أكيد مش حاجة خاصة ب زرار اللايك فقط ولا منصات التواصل و لكنها كانت مجرد أمثلة ، ممكن مثال آخر يكون عن زرار ال add to cart/wishlist فى موقع e-commerce مثلا

Ahmed Saber - Channel

07 Oct, 15:01


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


لنفترض انك بتحفظ todo items فى ال local storage ب key و ليكن مثلا اسمه tasks ، و حبيت فى يوم من الأيام تخليها items ، تفتكر المفروض تعمل ايه ؟

لو فتحت الكود بتاعك و غيرت tasks إلى items فقط يبقى انت ناوي على مشاكل مع اليوزرز ، لأن كل يوزر منهم عنده تاسكات متخزنة بالفعل تحت اسم tasks ف لما فجأة الكود يبقى بيتعامل على اساس key اسمه items ، يبقى انا كا يوزر هسيب شوية تاسكات على الموقع بليل و اجى تاني يوم الاقى الموقع اتحدث و بيقول ملكش تاسكات عندنا !

بالتالي الحل دا مش هينفع ، و نحمد ربنا انها جات على قد كدا لأنك لو غيرت اسم property جوا object متخزن فى ال local storage سواء بشكل مباشر أو بداخل array of objects ممكن يوصل بيك الحال إلى undefined تتعرض قدام اليوزر أو ايرور يعطل الكود

طيب هنتعامل مع الموقف دا ازاى ؟

هتحتاج تكتب كود إضافي يعمل التعديل بشكل تلقائي عند كل مستخدم يدخل الموقع ، يعنى مثلا هياخد الداتا من ال localStorage tasks و يروح يحطها فى ال items و بعدها يحذف ال tasks ، ف لما الكود يطلب ال items هيلاقيها بدون مشاكل

أو ياخد الداتا و يloop عليها عشان يغير اسم property بداخل ال objects مثلا ، و يرجعها لل local تاني

طيب أفرض حبيت أعمل تعديل تاني على شكل الداتا ؟

حاليا هيكون عندك يوزرز لسا عندهم الداتا بصورتها الأولى اللى هى tasks مثلا و يوزرز عندهم الداتا بصورتها التانية اللى هى items ، و مطلوب نوصل بيهم الاتنين لصورة تالتة خالص

هنا مش هينفع نفس الكود يمشى مع كل المستخدمين و يوصل بيهم لنفس النتيجة المطلوبة ، ف هتحتاج تخزن version بداخل ال localStorage عشان تحدد على أساسه إذا كان اليوزر دا عنده الداتا على الحالة الأولى ولا التانية ولا التالتة ، عشان تعرف أنت المفروض تrun اهنى فانكشن ، ولا متعملش حاجة خالص لأن الداتا موجودة ب اخر شكل مطلوب ليها بالفعل

Ahmed Saber - Channel

15 Sep, 17:56


٨٠٪ من النتيجة المرغوبة بيجى بواسطة ٢٠٪ من المجهود المبذول
https://www.linkedin.com/posts/ahmed0saber_ahmed0saber-activity-7241142376797224961-Rc_T?utm_source=share&utm_medium=member_android

Ahmed Saber - Channel

13 Sep, 14:57


عُدنا
https://www.linkedin.com/posts/ahmed0saber_%D8%A7%D8%AD%D8%AA%D8%B1%D8%B3-%D9%87%D8%B0%D8%A7-%D8%A7%D9%84%D9%85%D9%86%D8%B4%D9%88%D8%B1-%D8%BA%D9%8A%D8%B1-%D9%85%D8%AC%D8%AF%D9%88%D9%84-%D8%AD%D8%AF-%D8%B2%D9%87%D9%82-activity-7240369265902542850-94OF?utm_source=share&utm_medium=member_android

Ahmed Saber - Channel

08 Jul, 15:28


مُغلَق مؤقتا!
https://www.linkedin.com/posts/ahmed0saber_%D9%85%D8%BA%D9%84%D9%82-%D9%85%D8%A4%D9%82%D8%AA%D8%A7-%D9%81%D9%89-%D8%A7%D9%84%D8%A3%D8%B4%D9%87%D8%B1-%D8%A7%D9%84%D8%A3%D8%AE%D9%8A%D8%B1%D8%A9-%D9%83%D9%86%D8%AA-%D9%85%D9%86%D8%B4%D8%BA%D9%84-activity-7216100655399133185-ppVh?utm_source=share&utm_medium=member_android

Ahmed Saber - Channel

08 Jul, 01:01


كل عام وانتم بخير ، عام هجري مليء بالبركات إن شاء الله ❤️

Ahmed Saber - Channel

05 Jul, 13:55


ايه اللى حصل فى موقع Intern2Grow خلال الفترة الأخيرة ؟
https://www.linkedin.com/posts/ahmed0saber_intern2grow-news-activity-7214989998343786497-ISoJ?utm_source=share&utm_medium=member_android

Ahmed Saber - Channel

26 Jun, 20:33


تخفيف أحمال !

ويبسايت Intern2Grow أقترب من الوصول لل limits بتاعة ال free plan الخاصة ب Vercel بعد ما عملوا تعديلات مفاجأة فى ال limits و أضافو limit جديد و هو 100,000 invocations لل serverless functions

و لو وصلنا لل limit دا ، الويبسايت هيتوقف عن العمل و بقيت الويبسايتس الموجودة على الاكونت كذلك

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

الويبسايت هيرجع يشتغل عند كل الناس بشكل طبيعي من أول الشهر إن شاء الله

و جاري إيجاد حل للمشكلة دى بحيث متتكررش ، لكنها لازالت حركة غدر وحشة أوى من Vercel

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

Ahmed Saber - Channel

26 Jun, 15:57


I'm excited to announce the launch of my new project, ContentAt !
https://www.linkedin.com/posts/ahmed0saber_ahmed0saber-activity-7211759357535911938-jGHD?utm_source=share&utm_medium=member_android

Ahmed Saber - Channel

25 Jun, 20:00


التكبر ، الخجل ، التسرع ! صاحبهم إن أردت الفشل

لو عاوز تفشل بسرعة ف الخطوات سهلة جدا ، و هنتكلم عنها النهارده

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

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

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

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

Ahmed Saber - Channel

25 Jun, 14:02


متصفح chrome من فترة طويلة شوية بقا بيوفر APIs ل جافاسكريبت تقدر من خلالها تعمل face detection فى المتصفح منغير ما تستخدم مكتبة ولا تعمل machine learning model بنفسك ، و من قريب بقا بيوفر APIs أكتر للرد على الأسئلة و الترجمة و تصحيح ال grammar و غيرهم

طيب هل دا معناه أنك لو بتبنى ويبسايت تقدر تعتمد على ال APIs دى بشكل أساسي ؟
- لا للأسف ، لأن مش كل المستخدمين عندهم أحدث إصدارات chrome ولا كلهم بيستخدموا chrome حتى ، ف هتلاقى ال feature شغالة عند يوزر لكن مش شغالة عند غيره

ممكن تلجأ أنك تعمل fallback لل feature دى على المتصفحات اللى مش بتدعم ال APIs بشكل افتراضي زى firefox و safari و opera و edge و غيرهم ، و تستخدم مكتبة أو machine learning model خاص بيك على المتصفحات دى ، لكن على chrome تستخدم المتاح ، دا ممكن يحسن شوية من تجربة المستخدمين على chrome

بس أدرس جوانب الموضوع كويس

لو تقدر تلزم جميع المستخدمين باستخدام إصدار معين من chrome ممكن تستخدم ال APIs دى بكل أريحية ، الموضوع دا ممكن يحصل - مثلا - لو بتبنى desktop application ب electron.js لأنها بتنزل chromium engine بداخل البروجيكت بتاعك و تستضيف البروجيكت عليه كما لو كان صفحة بس فى صورة تطبيق ديسكتوب

دا بيخلى تطبيقات الديسكتوب المصنوعة ب electron.js تقيلة شوية فى الأداء و الحجم - زى vs code حبيبنا و github desktop - بس سهل جدا تعمل تطبيق ديسكتوب بمعرفة بسيطة ل html & css & js منغير ما تعطى اى اعتبار لل browser compatibility لأن كدا كدا البروجيكت بتاعك بيتفتح من خلال chrome بإصدار معين

Ahmed Saber - Channel

24 Jun, 10:51


تعرف إن وجود # فى اسم ملف ممكن يخليك انت و الويبسايت تلفوا حوالين نفسكم ؟
https://www.linkedin.com/posts/ahmed0saber_rename-your-files-activity-7210957438223609857-dIHp?utm_source=share&utm_medium=member_android

Ahmed Saber - Channel

22 Jun, 19:53


كل ما مستواك يزيد بتلاحظ إن نظرتك للأمور بتختلف و يمكن تتعكس تماما !
https://www.linkedin.com/posts/ahmed0saber_%D9%83%D9%84-%D9%85%D8%A7-%D9%85%D8%B3%D8%AA%D9%88%D8%A7%D9%83-%D9%8A%D8%B2%D9%8A%D8%AF-%D8%A8%D8%AA%D9%84%D8%A7%D8%AD%D8%B8-%D8%A5%D9%86-%D9%86%D8%B8%D8%B1%D8%AA%D9%83-%D9%84%D9%84%D8%A3%D9%85%D9%88%D8%B1-activity-7210369101502861312-5dIH?utm_source=share&utm_medium=member_android

Ahmed Saber - Channel

21 Jun, 23:05


بترفض الفرص اللى بتتعرض عليك ازاى ؟
- مش برد خالص
- بقول انى مش مهتم
- بقول انى مهتم و بعدها مش بدخل الانترفيو

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

اومال المفروض أرفض ازاى ؟
- توضح أنك مش مناسب لل position أو إن ال position مش مناسب ليك
- توضح السبب لو أمكن
- توضح أنك مهتم بالشغل معاهم و لكن السبب دا منعك
- تعرفهم أنك مهتم بالفرص المستقبلية و أنكم تفضلوا على تواصل مع بعض بحيث لو فى فرص جديدة أو أنت ظروفك اتغيرت و بقيت متاح (أو مناسب للفرصة)

ممكن ناخد مثال بسيط على شخص داخل يعرض عليك فرصة frontend developer بخبرة ٣ أعوام ، بس أنت عندك خبرة عام واحد فقط ، ف بالنسبة لى الرد التالي ممتاز جدا فى الموقف دا

"انا سعيد جدا بتواصلكم معايا و انكم شايفين انى مناسب للوظيفة دى ، و لكن الوظيفة بتطلب ٣ أعوام من الخبرة و أنا عندى عام واحد فقط من الخبرة ، فهل متاح وظيفة مناسبة ليا حاليا ؟ و لو مش متاح حاليا ، انا مهتم بالشغل معاكم فى المستقبل إن شاء الله ، و اتمنى أننا نكون على تواصل بشكل دائم لو فى فرص مناسبة أننا نشتغل مع بعض إن شاء الله ، و بالتوفيق ليكم." ، غيرها بما يناسبك ، دى مش تمبليت ثابتة تاخدها copy & paste و لكن مثال لإيضاح الفكرة

طيب لو مفيش حد بيعرض عليك فرص اصلا ؟
- دا معناه أنك مش بتظهر قدام الناس اللى عندها فرص شايفه أنها مناسبة ليك ، أو أنك بتظهر بس مقدرتش تثبت لهم أنك مناسب ، أو بتظهر و الناس بتبعت لك connection عشان يكلموك بس انت كاريزما بتعلق ال connections

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

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

اتعرف على الناس و كبر شبكة علاقاتك
- سيب كومنت على بوست بتوضح فيه رأيك
- سيب كومنت عند زميلك عشان تشجعه على إنجاز بيشاركه
- أو تشارك فيه معلومة بتكمل بوست معين حتى لو بسيطة
- أو تجاوب على سؤال مطروح فى بوست معين

اقبل ال connections من الناس اللى فى نفس مجالك ، و ابعت connection للناس اللى بتتكلم عن و بتشارك أمور تهمك

Ahmed Saber - Channel

20 Jun, 21:54


الترافيك على ويبسايت Intern2Grow خلال ال ٨ ساعات الأخيرة أكبر من الترافيك اللى حصل خلال ال ٢٩ يوم و ١٦ ساعة اللى قبل ال ٨ ساعات دول ، يعنى بيمثل اكتر من ٥٠٪ من الترافيك اللى الويبسايت مر بيه خلال اخر ٣٠ يوم

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

لأنها كانت هتظهر ل آلاف أو عشرات الآلاف من المستخدمين و تديهم انطباع سئ عن الويبسايت و ممكن ميجوش هنا تاني بل ممكن يحذروا الناس من أنهم ييجوا هنا و يستخدموا الويبسايت

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

ازاى بقا بنحاول بقدر الإمكان نقلل من الايرورز أو ال bugs اللى ممكن تطلع production و تتصدر للمستخدمين بالأخص فى اللحظات اللى زى دى ؟

- بالنسبة لل testing ، لازم تعمل testing لل features الجديدة اللى ضيفتها ، على الأقل manual testing ، لكن لو ال cases كتيرة هيفضل أنك تعمل automation testing لأن الموضوع هياخد منك وقت طويل و هتسقط بعض ال cases غصب عنك

- بالنسبة لل version control ، مينفعش طبعا تشتغل على ال production branch ب اى شكل من الأشكال إلا لو fix سريعة ضرورية ، ف لازم يكون عندك branch مختلف لكل feature و بعدها تعمل لهم merge سوا ، و تبقى تطلعهم production لما تتأكد ٱن كل feature لواحدها تمام و كلهم سوا تمام

- بالنسبة للكود ، بقدر الإمكان قلل اعتمادية الأجزاء المختلفة فى الكود على بعضها ، مينفعش تبقى بتعدل على feature فى الشرق ، تلاقى feature فى الغرب باظت منك ، ف حاول تعمل refactor بشكل مستمر

- محتاج staging branch بيعكس ال production بأكبر قدر ممكن و تعمله deploy و تخلى بعض الناس تجرب السوفتوير بتاعك قبل ما يطلع للكل و تاخد منهم فيدباك

- لما تطلع بال release الجديد ، يفضل أنك متعملش announcement على السوشيال مباشرة ، أو أنك ماتظهرش ال features الجديدة عند كل اليوزرز فى نفس اللحظة ، و لكن خد الأمر بشكل تدريجي لغاية ما يوصل لليوزرز كلهم ، بحيث لو قابلنا مشكلة فى البداية مش هتكون اتعرضت لناس كتير لسا ف هنقدر نعالجها ، و غالبا المشاكل اللى هتبدأ تظهر متأخر لما عدد اليوزرز بقا كتير هى مشاكل فى حاجات فرعية لدرجة إن المستخدمين اللى قبلهم تجاهلوها أو مش واخدين بالهم منها اصلا

- محتاج تعمل monitoring لبعض الأجزاء من السوفتوير بتاعك عشان تتأكد إن كل حاجة ماشية حسب المتوقع و مفيش حد بيقابل مشاكل لأن اليوزر ممكن يقابل مشكلة و ميفهمش أنها مشكلة أو يفهم بس ميقولكش

- محتاج يبقى عندك خطة عن ازاى ترجع لأقرب version مستقر لو ظهرت مشكلة غير متوقعة فى ال production و حلها محتاج وقت

دى كانت الخطوات اللى بمشى عليها قبل أى release لأى سوفتوير شغال عليه و مطروح بالفعل للمستخدمين فى الوقت دا

لكن طبعا لو ال first release و السوفتوير محدش بيستخدمه لسا ولا يعرفه ، ف فى أمور ممكن تتغير زى مثلا مفيش خطة rollback أو أنك ترجع لإصدار سابق ، و ممكن عدد ال branches يكون أقل ، لكن بقيت النقاط هتحتاجها فى أغلب الأحيان

Ahmed Saber - Channel

20 Jun, 13:07


لو بتبحث عن internship ، ف Intern2Grow أتحدث و بقا بيوفر نوع مختلف من ال internships !
https://www.linkedin.com/posts/ahmed0saber_ahmed0saber-activity-7209542010385408001-c1m6?utm_source=share&utm_medium=member_android

Ahmed Saber - Channel

17 Jun, 19:16


متبقاش متحيز لمكتبة أو إطار عمل معين سواء كنت developer أو recruiter !
https://www.linkedin.com/posts/ahmed0saber_ahmed0saber-activity-7208547893283037184-fw7r?utm_source=share&utm_medium=member_android

Ahmed Saber - Channel

17 Jun, 18:07


الاكونتات اللى بتتسرق على لينكدان وراها قصة غريبة ، يعنى مثلا دا اكونت لواحد زميلنا اسمه أحمد بهنسى ، دلوقت بقا موجود مع واحدة اسمها آنيا و شغالة senior data engineer ، صعب تكون شغالة كدا فعلا و بتسرق اكونتات الناس ، فين أقل الأخلاقيات اللى المفروض تكون عندها ، و بعدين مكتوب أنها شغالة فى ديزنى و منزلة بوست عن ديزنى ، بغض النظر عن ميول الشركة لكن هى شركة كبيرة و معروفة و صعب الموظفين بتوعها يعملوا كدا أو هى تسمحلهم بكدا لأن دا هيشوه صورتها

ف بدأت أحس أنهم ناس عاديين خالص بيعملوا login عادي خالص بيلاقوا اكونت تاني خالص فتح معاهم ، بس ليه و ازاى ؟ معنديش فكرة للأسف

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

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

اخيرا ، مينفعش البورتفوليو بتاعك اللى هو معرض أعمالك ميكونش فيه مجموعة من وسائل التواصل زى الواتس أو تليجرام أو فيسبوك أو لينكدان أو الايميل

Ahmed Saber - Channel

15 Jun, 16:00


كل عام وانتم بخير وسعادة ، عيد أضحى مُبارَك عليكم وعلى أسركم جميعا ❤️

لا تنسوا أهالي غزة والسودان فى دعائكم وجميع المسلمين فى شتى بقاع الأرض

Ahmed Saber - Channel

12 Jun, 20:56


إن شاء الله هكون موجود فى سيشن اونلاين مع شباب gdsc لمعهد العبور غدا الساعة ٩ مساء بتوقيت القاهرة ، تقدروا تنورونا لو حابين
https://www.linkedin.com/posts/gdsc-obour_gdscabrobour-gobletofgdsc-activity-7206702884208443392-Fjem?utm_source=share&utm_medium=member_android

5,047

subscribers

55

photos

2

videos