ask bashmohandes
All answers

حضرتك شايف انهي technology فالـbackend الي بتخلي الشخص يحتك بمشاكل is big deal فالـsystems الكبيره .. انا عارف ان الـproject الي هعمله بالـtechnology .. بس انا لسه مخلص الاساسيات وعملت شويه concurrency و socket programming ب c++ مع بروجكتس low level شويه .. بس انا عايز اتعلم الباك اند كويس .. يعني زي ما انا مثلا بدات اتعلم برمجة بcpp فخلتني احتك ب low level concept وهي لغه strong tayped lang فخلتني افهم الكمبيوتر والبرمجة بشكل احسن .. هل نفس الكونسبت فالباك اند اصلا ؟ ولو اه اي ال technology او ال framework الي تحقق دة .. شكر جدا لحضرتك واسف علي الاطاله

Anonymous ·

Mohamed ElsherifMohamed Elsherif
AI-assisted

هو في رأيي framing السؤال نفسه محتاج يتعدل شوية: مفيش backend technology بعينها هي اللي "بتخليك تحتك بالمشاكل الكبيرة". المشاكل الكبيرة غالباً بتيجي من ظروف السيستم: low latency، traffic عالي، throughput، consistency، حجم data، failure modes، deployment، observability… مش من اسم اللغة أو ال framework.

لو انت لسه بتبني أساس قوي في backend، فالأهم مش تختار framework مشهور، الأهم تختار stack يديك exposure للحاجات دي بإيدك: HTTP، databases، caching، queues، concurrency، networking، Linux، monitoring، و debugging. يعني مثلاً اشتغل بأي لغة server-side محترمة زي Go أو Java أو C# أو حتى Node.js/Python، بس ابعد شوية في البداية عن إن الframework يخبي عنك كل حاجة. اعمل service بسيطة من غير magic كتير، حط معاها PostgreSQL، Redis، message queue، Docker، وجرّب بنفسك rate limiting، retries، timeouts، connection pooling، background jobs، pagination، idempotency، و load testing. هنا فعلاً هتبدأ تشوف مشاكل "big deal".

ولو سؤالك: هل فيه في backend حاجة زي C++ خلتك تفهم low level concepts؟ آه، لكن مش بنفس الشكل. في backend الفهم الأهم بيبقى systems thinking أكتر من syntax أو framework. يعني تفهم request lifecycle، memory/CPU trade-offs، blocking vs async، database isolation، CAP-ish trade-offs بشكل عملي، وليه service تقع تحت الضغط. لو عاوز اختيار عملي مباشر: Go اختيار كويس لأنه بسيط نسبياً وبيقربك من concurrency و networking والruntime behavior من غير تعقيد frameworks ضخم. Java برضه ممتاز جداً لو عاوز تتعلم systems على scale في بيئات enterprise لأن ecosystem فيه عميق. لكن بصراحة، نفس الشخص ممكن يتعلم ده على أي stack لو كان بيبني مشاريع صح وبيسأل الأسئلة الصح.

فأنا لو مكانك: ما أقعدش أدور على "أنسب technology للمشاكل الكبيرة"، أنا أدور على roadmap فيه مشاريع backend متدرجة وتحتوي مشاكل تشغيل حقيقية. لأن المشكلة عادة مش التقنية نفسها، المشكلة نوع الحمل والقيود اللي السيستم عايش فيها.