Mohcin Bounouara's Space – Telegram
Mohcin Bounouara's Space
518 subscribers
84 photos
19 videos
8 files
128 links
{فَأَمَّا الزَّبَدُ فَيَذْهَبُ جُفَاءً ۖ وَأَمَّا مَا يَنفَعُ النَّاسَ فَيَمْكُثُ فِي الْأَرْضِ} [الرعد: 17]

خواطر في الدين و الدنيا و هندسة البرمجيات في محاولة لإصلاح نفسي ولعلني اجعل لنفسي أثرا في إصلاح الاخرين.. على قلتهم، لعلنا نلقى الله بهذا.
Download Telegram
من خلال تجربتي في الاشهر الماضية أستطيع القول أن الذكاء الاصطناعي مُفيد للغاية في توليد الأسطر الأولى من أي تطبيق وتشغيله بسرعة.. وهو ممتاز لبناء نماذج إثبات سريعة proof of concept.

لكن عندما يتعلق الأمر بتحويل هذا النموذج إلى تطبيق production-ready، تُصبح الأمور مُعقدة.. يتطلب الانتقال من كود تم انتاجه بالذكاء الاصطناعي إلى كود إنتاج مُستقر مراجعة دقيقة، وإعادة هيكلة، وتحسينًا، وملائمة مع بنيتك ومعاييرك... أي نعم يُسرّع الذكاء الاصطناعي العمل، لكن هذا الانتقال لا يزال يتطلب سير عمل مُحكم و متناغم بين كل الفئات و الادوار المساهمة.

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

#الذكاء_الاصطناعي #تطوير_البرمجيات #برمجيات
3
الآن، وبعد أن أصبح الذكاء الاصطناعي يساعدنا على كتابة التعليمات البرمجية بشكل أسرع، علينا التركيز بشكل أكبر على كتابة unit tests تغطي معظم الحالات، وإجراء functional tests، وإنشاء بيئات محلية موثوقة جد مشابهة لل production و ال staging قدر الإمكان.

يمكن للذكاء الاصطناعي تسريع عملية التطوير، ولكنه قد يُنتج أيضًا، دون قصد، حلولًا مُهندسة بشكل مفرط أو غير ضرورية أصلا.. ال unit و ال features tests اصبحت ضرورة ملحة لحمايتنا من هذه المشاكل...

#unittests #testing
🔥42
This media is not supported in your browser
VIEW IN TELEGRAM
3
نقوم بالأخذ بالأسباب الكاملة للذهاب إلى الطبيب، أو الذهاب إلى مقابلة عمل، أو إلى العمل، أو إلى الجامعة.. وقطعًا نستحضر ازدحام الطرقات، ونستحضر غضب المدير وغضب الأستاذ المحاضر.. ونقوم بكل ما هو لازم من إعلام أهل البيت بتوقيت إيقاظنا، وتجهيز هواتفنا… وكل منا يعلم من نفسه هذا كلَّه أو شيئًا منه.

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

نتهاون في لقاء رب العباد، رازق الناس، ومقسّم الأرزاق…

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

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

وهذه الأسطر هي كلمات و خاطرة كتبتها لنفسي، وكتذكير لي ومحاولة شدٍّ لهمتي.. فإرتأيت ان اشاركها لعلها تنفع، دعواتكم لأخيكم. 

وهذه آيات و أحاديث في هذا السياق:

- قال سبحانه {أَقِمِ الصَّلَاةَ لِدُلُوكِ الشَّمْسِ إِلَىٰ غَسَقِ اللَّيْلِ وَقُرْآنَ الْفَجْرِ ۖ إِنَّ قُرْآنَ الْفَجْرِ كَانَ مَشْهُودًا}(الإسراء:78). 

- قال صلى الله عليه وسلم: [بشر المشائين بالظلم (أي في الظلام) بالنور التام يوم القيامة].

- فمن صلى الفجر في جماعة فهو في ذمة الله لقوله صلى الله عليه وسلم "من صلى صلاة الصبح فهو في ذمة الله" (يعني في حفظه وحمايته وعهده).

- يقول صلى الله عليه وسلم: يتعاقبون فيكم ملائكة بالليل وملائكة بالنهار، ويجتمعون في صلاة الفجر وصلاة العصر، ثم يعرج الذين باتوا فيكم فيسألهم ـ وهو أعلم بهم ـ كيف تركتم عبادي؟ فيقولون: تركناهم وهم يصلون وأتيناهم وهم يصلون. (متفق عليه). 

- أداء صلاة الفجر في جماعة في وقتها مع أداء صلاة العصر في وقتها من أسباب دخول الجنة؛ لأن المصطفى عليه الصلاة والسلام يقول: [من صلى البردين دخل الجنة](متفق عليه)، والبردان الصبح والعصر. وفي صحيح مسلم: [لن يلج النار أحدٌ صلى قبل طلوع الشمس وقبل غروبها].. والمراد بهذا صلاة الفجر وصلاة العصر.

- ففي الحديث: [ركعتا الفجر خير من الدنيا وما فيها]. 

- وقد روى البخاري ومسلم عن أَبِي هُرَيْرَةَ أن رَسُولُ اللَّهِ صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ قال: [إِنَّ أَثْقَلَ صَلَاةٍ عَلَى الْمُنَافِقِينَ صَلَاةُ الْعِشَاءِ وَصَلَاةُ الْفَجْرِ، وَلَوْ يَعْلَمُونَ مَا فِيهِمَا لَأَتَوْهُمَا وَلَوْ حَبْوًا](لفظ مسلم).
9🫡1
السلام عليكم ورحمة الله وبركاته.

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

https://youtu.be/xpZEnG6pbtQ
3
السلام عليكم،

حيل شخصية أستخدمها لزيادة الإنتاجية والتعلم من الذكاء الاصطناعي في آنٍ واحد؛

- دع الذكاء الاصطناعي يُصحّح نسختك الأولى من أي سطر برمجي تكتبه: اكتب النسخة الأولية بنفسك، حتى لو لم تكن مثالية.. ثم استخدم الذكاء الاصطناعي لمراجعتها وتصحيحها.. هذا يدربك على اكتشاف أخطائك وتعلّم أنماط تطوير جديدة.

- استخدم ميزة الإكمال التلقائي للسياق في الذكاء الاصطناعي: لا تُقدم لك مُحررات الذكاء الاصطناعي دائمًا الحل الأمثل، لكنها تُتيح لك نقطة انطلاق سريعة، يُمكنك تحسينها بسرعة.. هذا يُوفر لك الوقت،، دون تخطّي عملية التفكير البرمجي، وهو أمر بالغ الأهمية بالنسبة لك كمبرمج.

- لا تتسرّع/تتعوّد على الانتقال لل "fix this issue" فورًا: قبل أن تطلب من الذكاء الاصطناعي إصلاح مشكلة ما، اقرأ رسائل الخطأ، وحاول فهم السبب الجذري للمشكلة.. هنا ستتعلّم كيف تعطلت الأشياء ولماذا تمّ إصلاحها بطريقة التي أصلحت بها.

هذا يُعطيك نوعًا من التوازن، فأنت تُنجز العمل بشكل أسرع بينما تتعلّم بشكل أعمق في نفس الوقت..

#AI #SoftwareEngineering #SoftwareDevelopment
🔥61👍1
This media is not supported in your browser
VIEW IN TELEGRAM
لطالما أحببتُ تطوير البرمجيات، واستمتعتُ بالتدوين في ما يتعلق بالمجال عموما، لكنني كنت أخشى تحديدًا مما تتحدث عنه هذه التدوينة في ال screenshot ادناه.

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

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

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

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

#software #softwaredevelopment #softwareengineering
5👍4
كتابة الكود أسهل من قرائته مكتوبًا، من طرف مبرمجين آخرين.

عند قراءة برمجيات الآخرين فأنت مطالبٌ بالقراءة، الفهم، فك الترابطات، و فهم ال process كاملاً لكود أنت لست كاتبه من الأساس..

الجيد هنا هو أنك تتعلم بسرعة طرق تفكير اخرى، وطريق كتابة كود جديدة في كل مرة..

فإجعل لك جلسات لقراءة كود الآخرين، ولو function صغيرة، class او feature كاملة اذا سمح وقتك.

#software #softwaredevelopment #coding
7🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
👍2
Mohcin Bounouara's Space
Video message
https://www.buzzsprout.com/1742124/episodes/18294618

These are adapted points (i don't agree with all of them):

- You feel like you are falling behind when you see younger developers using ai. You feel like you are not keeping the same pace.

- You should learn ai and learn how to use it well so you can get better results from it.

- Seniors don't like ai for several reasons; some think it makes you look less skilled. But it doesn't. It actually enjoyable to code with ai. Sometimes you learn from it, and sometimes you correct it and help make its data better. It's a good experience overall.

- If you are a good engineer, ai makes you even better, not the inverse. Over time you also learn how to use it more effectively.

- Getting things done gives dopamine, and running multiple ai agents feels great.

- It takes about a year to really trust ai code and start seeing much better results.

- It's becoming a must to have skill now.

- The better you are as a coder/engineer, the more ai will push you to the top.

- ai will make you more ambitious when it comes to building things.

- The code is still yours ai helps you, but it's not approving anything for you. You are responsible for the final code, it is only a tool.

- ai will be even bigger in the future, but it will never be 100% reliable... it can give you a m 50% boost for example, and over time it will get more helpful.

- Convincing your team to use ai is becoming a must for team leaders and management.

- Trying different ai models and switching between them to find the best fit for your problem is important.

- Rewriting software is now better than fixing it NOW, because with ai you can rebuild things much faster.

- Adopting ai inside an organization is hard, but it will fix a lot of broken processes for sure.

-------

My thoughts about these points: the more you use ai, the more comfortable and productive you feel. It also makes the work more enjoyable for anyone building a product, i can a gree with all of these points.. The point about learning from ai while also teaching the model by correcting it, that's TRUE. I felt that many times myself.

The idea that ai makes senior engineers even better is also valid for sure. But I'm still not fully confident about using multiple ai agents at once, that makes me afraid... I imagine it could be a huge mess. For me and now I'm fine with chat-in-editor, basically one agent under the hood in the Windsurf IDE.

Also, the guest didn't say a single word about the importance of programming fundamentals and software engineering if you want to use ai. That's really important, and i notice it myself whenever i hit gaps while using ai.

Other than that ai is a tool that can't really be avoided anymore.
من بين أفضل طريق عمل debugging ل output معين هو ان تعرف ال input جيدا، و ان تعرف ماذا تعمل له processing اولا.. يعني تعرف ال data flow الخاصة بالشيء الذي تقوم به، هنا ستعرف كيف تكتب debuggers نافعة، وتعرف أين يجب أن تضعها بالظبط في الكود الخاص بك.

مثال، سأمرر متغير عبارة عن props من ال backend الى ال frontend هذا ال props يحتوي على معلومات خاصة ب single product.

ال props يُمرَر بطريقة صحيحة للفرونتآند، لكن كل ال fields عبارة عن null.. هنا ال debugging على مستوى الفرونتآند سيكون مضيعة للوقت..

يجب ان نفحص و نعمل debugging لل method المسؤولة عن تمرير هذا المتغير للفرونتآند، او نقوم بعمل Debugging لل route وهل يمرر ال parameters بالطريقة الصحيحة...

و هكذا..

هنا سنعرف ال entry point الخاصة بالفحص و لا نضيع الوقت..

فهم ما نقوم به اولا، قبل ال تضع اي debugger يسهل الكثير.

#software #softwaredevelopment #coding #ContinuousLearning
👍41
العمل بالقليل(عملاً وتعلّمًا) ليس انتقاصًا من مهاراتك كمبرمج، بل هو سُنّة الحياة.. الأصل هو العمل بالقليل.. وقد نبّه النبي ﷺ إلى هذا المعنى حين قال: «أحب الأعمال إلى الله أدومها وإن قل».
فلا تتكبر، ولا تحاول القفز فوق المراحل لتقوم بأشياء أكبر قبل أوانها..

كمهندس برمجيات،، يجب أن تبدأ بالأمور الصغيرة؛ مثل بناء نماذج بسيطة، واجهات بسيطة، تطبيقات CRUD وما إلى ذلك..

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

أما إن حاولت البدء من القمة، فستضيع كثيرًا وتحرق نفسك.. وهذا مما وقعتُ فيه شخصيًا.. فتقبل نصيحتي.

اللهم علّمنا ما ينفعنا، وانفعنا بما علّمتنا.
6💯5
يجب أن تقول لا لفرص داخل اطار العمل لكي لا تحرق مسارك و نفسك، أمثلة:

- أن لا تقبل يتقديم demo و انت ضعيف في التقديم،
- أن لا تقبل بمنصب team leader و انت لم تمر بمناصب ضرورية قبل..

و هكذا..
تسمية المتغيرات - variables naming - شيء ليس بالسهل، و شيء يدل على فهمك لسياق التغيير الذي تقوم به، و يجعل الذي بقوم بعمل review يفهم أيضا..

فحاول أن تعمل على هذه المسألة.

#software #softwaredevelopment
4