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

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

عند قراءة برمجيات الآخرين فأنت مطالبٌ بالقراءة، الفهم، فك الترابطات، و فهم ال 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
اذا استخدمت ادوات ال AI بالطريقة الصحيحة، ستتعلم انذاك ما هو دورك كمهندس برمجيات، و ليس مبرمج فقط.

- حل المشاكل،
- بناء ال system،
- ال review
- كتابة test edges كافية،
- الاهتمام بال architecture

... وكثير من الأشياء الاخرى..

ليس فقط ال coding.
🔥3
Audio
1
لإستغلال أفضل لل AI في مسألة تعلم/تطبيق اشياء جديدة، كمبرج متمرس أو senior هو أن تستخدم ميزة ال autocomplete suggestions فقط، و تقوم ببناء الأشياء بالطريقة التقليدية..

ومن افضل طرق الاستفادة منه في شركة، او product side يرجع عليك بعائد مادي هو استخدامه بشراهة (طبعا مع وجود review process).

والله أعلم!

#AI #SoftwareEngineering #softwaredevelopment
3
كنتُ أُشتت انتباهي كثيرًا على يوتيوب.. عندما أفتح فيديو لأتعلم شيئًا أو لأركز على مهمة ما... أجد نفسي أتصفح التعليقات أو أنجذب إلى الدردشة المباشرة في ال streamings.. أعتقد أنني لستُ وحدي، فهذا يحدث للكثيرين منا (على ما أظن).

لذا، قبل حوالي عام، قمت بعمل حل بسيط جدًا، لنفسي فقط/أولا.. هكذا بدأت فكرة youtube focus mode.

في البداية، كان الهدف منها حل مشكلتي فقط. لكن لاحقًا لاحظتُ أن الإضافة وصلت عشوائيًا إلى حوالي 20 مستخدمًا.. عندها فكرتُ ربما يكون هذا مفيدًا للآخرين أيضًا، ويستحق المزيد من الاهتمام. الفكرة بسيطة: "إخفاء قسم التعليقات/الدردشة المباشرة بنقرة واحدة"، بحيث يمكنك:

- حظر قسم التعليقات والدردشة المباشرة في البث المباشر

- تشغيل/إيقاف (toggles) كل شيء فورًا

- حفظ إعداداتك على مستوى الجلسات

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

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

أتمنى أن أستمر في منح هذا المنتج الصغير المزيد من الاهتمام.. و دعواتكم لنا.

روابط الإضافة.

https://chromewebstore.google.com/detail/youtube-comments-disabler/cmpdkmpjnbgcpjpihdecfadhhlikoagf?hl=en

https://addons.mozilla.org/en-US/firefox/addon/youtube-comments-disabler/
4
سبحان الله، دائما ما ستجد من يسبك و ينقص منك عندما تتصدر لنشر شيء تعتقد انه نافع..

هذا المقطع مثلا: https://youtube.com/shorts/_cWp_4VVjE8?feature=share

تعليقات و سب لم افهم، لكنه متوقع..
العمل على "الأشياء الصغيرة"، في المهام العملية وفي التعلّم، وتفكيك المشاكل إلى أجزاء بسيطة، ليس انتقاصًا من مهاراتك كمبرمج... بل هو المسار الطبيعي للنمو في البرمجة وفي الحياة عموما، فكبار الأمور تأتي من صغارها..

أكثر الأشياء قيمةً واستمرارية تُبنى بالالتزام والاستمرارية، بالقليل الدائم.

لذلك لا تقسُ على نفسك، ولا تحاول القفز على المراحل للقيام بأشياء أكبر قبل وقتها.

كمهندس برمجيات، ابدأ بالأساسيات:

- ابنِ أساسًا قويًا،
- أنشئ نماذج بسيطة،
- واجهات بسيطة،
- تطبيقات CRUD عادية،
- وأشياء مشابهة...

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

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

قال النبي صلى الله عليه وسلم: "أحب الأعمال الى الله أدومها و إن قل".

#SoftwareDevelopment #Programming #Consistency #SoftwareEngineering
4
السلام ورحمة الله وبركاته،

بناءا على طلب الاخ @Abouayoub123 لمشاركة تجربتي المتواضعة في البرمجة أرتايت أن اكتب هذه الكلمات لعلها تنفع.


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

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

بعد حصولي على البكالوريا، التحقت بمعهد التكنولوجيا التطبيقية هنا في المغرب لدراسة تخصص تطوير المعلوميات. في ذلك الوقت، لم يكن المجال واضحةك المعالم كما هي اليوم، فالدراسة كانت عامة، تشمل بعض الهاردوير، مع تركيز أكبر نسبيًا على البرمجة،، تعلمنا لغة C، وVisual Basic، والقليل من ASP.NET ولكن بطريقة سطحية، ثم HTML وقليل من PHP، إضافة إلى لمحة بسيطة عن هياكل البيانات والخوارزميات و ال binary operations وكفيفية عمل الحواسيب، دون تعمق حقيقي.. بعد سنتين حصلت على دبلوم متخصص في تطوير المعلوميات.

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

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

في تلك المرحلة وضعت خطة، وبدأت أحدد نقاط قوتي ونقاط ضعفي، وشرعت في إصلاحها شيئًا فشيئًا،، ولا زلت إلى اليوم في هذه الرحلة؛ لم أنتهِ من سد فجواتي التقنية، ولا أعتبر نفسي محترفًا أو مكتمل العلم، وهذا ليس تواضعًا زائفًا بل واقعًا أعيشه،،،
من هنا بدأ مسار التطور الحقيقي: تصحيح الأساسيات، تصحيح العقلية، والانتقال من مجرد كودر إلى Software Developer ثم Software Engineer... توقفت عن القفز بين التقنيات، وركزت على مجال محدد، ولغة محددة، وFramework معين، مع توجهي أكثر نحو ال Backend بعد تجربة ال Frontend..

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

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

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

دعواتكم.
8
لماذا التحقق من البيانات ال input validation في ال frontend وحده غير كاف؟

شرح اعتقد انه سريع و في الموضوع مباشرة.

https://youtube.com/shorts/W2Pa3T8E1GI?feature=share