برمجيات مصممة لطريقة عملك.مصر · السعودية · الإمارات

خطة تعلم Data Engineering من الصفر: من SQL لحد Spark

الخطة كاملة لو بتبدأ من الصفر: 7 مراحل بالترتيب، في كل واحدة إيه تتعلمه بالظبط، ومشروع تعمله بإيدك، ومدة تقريبية، وإزاي تعرف إنك جاهز للي بعدها.

أي تقرير بتشوفه في أي شركة، فيه حد بنى الطريق اللي البيانات مشيت فيه لحد ما وصلت. وده الـ Data Engineer.

يعني هو اللي بيعمل المواسير اللي البيانات بتجري فيها: بيسحبها من أماكن كتير، وينضفها، ويحطها في مكان واحد، علشان المحلل يفتحها يلاقيها جاهزة. والترتيب: SQL ومعاها Python، وبعدهم Data Modeling، وبعدين ETL، وبعدها الـ Data Warehouse، وبعدها Airflow، وفي الآخر Spark.

علّم على كل حاجة تخلصها وانت ماشي، علشان تعرف انت فين، وترجع تكمّل من نفس المكان.

قبل ما تبدأ

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

المرحلة 1 من 7

SQLلغة الكلام مع قواعد البيانات

المدة: 4 لـ 6 أسابيع

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

ومعاها لغة Python. حطيتها المرحلة اللي بعدها علشان تركز في واحدة، بس لو حابب تمشّيهم مع بعض، تمام.

هتتعلم إيه

0 من 10

اعمل بإيدك

Database لمكتبة. صمّم جداول لمكتبة: كتب، وأعضاء، واستعارات. واملاها بيانات تجريبية، واكتب 15 query: أكتر الكتب استعارة، والأعضاء المتأخرين في الرجوع، وعدد الاستعارات كل شهر، وأكتر عضو استعار في كل شهر بـ Window Function.

تعدّي للمرحلة اللي بعدها لما

  • بتكتب JOIN و GROUP BY والـ CTEs من غير ما تبص على شرح
  • تقدر تعمل database صغيرة من الصفر: جداول، وعلاقات، وبيانات
  • لما query تبقى بطيئة، بتعرف تبدأ تدوّر فين

المرحلة 2 من 7

Pythonاللي بيربط كل حاجة ببعض

المدة: 6 لـ 8 أسابيع

Python هي اللي هتربط بيها كل حاجة: تسحب البيانات من API، وتقرا ملفات، وتنضف، وتكتب في الـ database. وأدوات زي Airflow و Spark اللي جايين في الخطة، هتكتبلهم بـ Python برضه.

مش محتاج هنا تبقى مبرمج تطبيقات. محتاج تكتب scripts نضيفة، تشتغل كل مرة بنفس الشكل، ولو حاجة فشلت تقولك فين.

هتتعلم إيه

0 من 10

اعمل بإيدك

Script بيجمع بيانات من API. اختار API مجاني، زي Open-Meteo للطقس، واكتب script بيجيب بيانات آخر 30 يوم، وينضفها، ويحطها في جدول في PostgreSQL. ولو اتشغل مرتين، البيانات متتكررش.

تعدّي للمرحلة اللي بعدها لما

  • بتكتب script بيقرا من مكان ويكتب في مكان تاني من غير ما تنسخ من حد
  • الـ script بتاعك لو اتشغل مرتين، النتيجة هي هي
  • كودك على GitHub، وفيه README بيقول يتشغل إزاي

المرحلة 3 من 7

Data Modelingترتيب الجداول

المدة: 3 لـ 4 أسابيع

Data Modeling يعني ترتّب الجداول إزاي، علشان البيانات متتلخبطش، والسؤال عليها يبقى سريع.

لو الجداول متصممة غلط، كل حاجة بعد كده هتبقى أصعب: الـ queries تطول، والأرقام تتكرر، وكل تقرير يطلّع رقم شكل. فالمرحلة دي مش طويلة، بس أثرها في كل اللي جاي.

هتتعلم إيه

0 من 10

اعمل بإيدك

Star schema لمتجر. خد database متجر جاهزة، زي Chinook، وصمّم منها star schema للتحليل: fact table للمبيعات، و dimensions للعميل والمنتج والتاريخ. ارسم الـ ERD، واكتب الـ SQL اللي بيعمل الجداول الجديدة.

تعدّي للمرحلة اللي بعدها لما

  • تقدر ترسم ERD لأي سيستم بسيط من وصفه
  • بتحدد الـ grain بتاع أي fact table قبل ما تبنيه
  • بتعرف تشرح إمتى تعمل normalization وإمتى لأ

المرحلة 4 من 7

ETLتسحب وتنضف وتحط في مكان واحد

المدة: 4 لـ 6 أسابيع

ETL يعني إنك تسحب البيانات من أماكن كتير، وتنضفها، وتحطها في مكان واحد: Extract و Transform و Load.

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

هتتعلم إيه

0 من 10

اعمل بإيدك

Pipeline من 3 مصادر. اسحب بيانات من API، ومن ملف CSV، ومن database، ونضفها، واكتبها في جداول الـ star schema اللي صممتها. كل ده بـ Python و SQL، ويتشغل بأمر واحد، ولو اتشغل مرتين النتيجة متتغيرش.

تعدّي للمرحلة اللي بعدها لما

  • الـ pipeline بتاعك بيتشغل من الأول للآخر بأمر واحد
  • لو مصدر وقع، بتعرف ده من الـ logs، مش لما حد يشتكي
  • عندك checks بتمسك البيانات الغلط قبل ما توصل للجداول

المرحلة 5 من 7

Data Warehouseالمخزن الكبير

المدة: 3 لـ 4 أسابيع

الـ Data Warehouse هو المخزن الكبير اللي التحليل كله بيتعمل منه. كل البيانات اللي سحبتها ونضفتها بتوصل هنا، مترتبة بالشكل اللي صممته في الـ Data Modeling.

وده المكان اللي المحلل والـ dashboards بيقروا منه. يعني لو الشغل هنا مظبوط، كل اللي بعده هيبقى مظبوط.

هتتعلم إيه

0 من 10

اعمل بإيدك

Warehouse لبيانات المتجر. حمّل اللي الـ pipeline بتاعك بيطلّعه في DuckDB أو BigQuery، واعمل بـ dbt طبقة staging وطبقة marts، وحط tests على الأعمدة المهمة: مفيش NULL، ومفيش تكرار. وفي الآخر اكتب 5 queries يحتاجها محلل، واتأكد إنها سهلة وسريعة.

تعدّي للمرحلة اللي بعدها لما

  • بتعرف تشرح الفرق بين الـ database والـ warehouse والـ data lake
  • الـ transformations بتاعتك models ليها tests، مش queries متفرقة
  • محلل يقدر يفتح الـ marts بتاعتك ويفهمها من غير ما يسألك

المرحلة 6 من 7

Airflowالخطوات تتشغل لوحدها

المدة: 3 لـ 4 أسابيع

Airflow أداة بتشغّل الخطوات دي لوحدها كل يوم في ميعادها: تسحب، وبعدين تنضف، وبعدين تحمّل، بالترتيب. ولو خطوة فشلت، تعيدها أو تبلّغك.

من غيرها، انت اللي هتصحى كل يوم تشغّل الـ scripts بإيدك. ومعاها، الـ pipeline بقى سيستم شغال لوحده.

هتتعلم إيه

0 من 10

اعمل بإيدك

الـ pipeline يتشغل لوحده كل يوم. حوّل الـ pipeline بتاعك لـ DAG في Airflow: يسحب، وبعدين ينضف ويحمّل، وبعدين يشغّل dbt والـ tests، كل يوم في ميعاد ثابت. وبوّظ مصدر بإيدك، واتأكد إن الـ task بتفشل وتعيد المحاولة وتبلّغك.

تعدّي للمرحلة اللي بعدها لما

  • الـ pipeline بتاعك بيتشغل كل يوم من غير ما تلمسه
  • لما task تفشل، بتعرف السبب من الـ logs في دقايق
  • تقدر تعيد تشغيل يوم فات من غير ما البيانات تتكرر

المرحلة 7 من 7

Sparkلما جهاز واحد ميشيلش

المدة: 4 لـ 6 أسابيع

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

وعلشان كده هي آخر مرحلة: بيانات كتير مش محتاجاها، و SQL في الـ warehouse بيكفيها. بس لما تحتاجها، هتفهمها بسرعة، لأنها DataFrames و SQL، وانت عارفهم.

هتتعلم إيه

0 من 10

اعمل بإيدك

نفس الشغل على بيانات كبيرة. خد dataset كبيرة، زي بيانات رحلات تاكسي نيويورك المنشورة للعامة، واعمل عليها بـ PySpark تنضيف وتجميع زي اللي عملته قبل كده، واكتب النتيجة Parquet متقسمة بالشهر. وجرّب نفس الشغل بـ pandas على جزء منها، وقارن.

تعدّي للمرحلة اللي بعدها لما

  • بتعرف تقرر إمتى Spark يستاهل وإمتى لأ
  • بتكتب PySpark job بتقرا وتحوّل وتكتب Parquet
  • بتفتح الـ Spark UI وتلاقي الخطوة البطيئة

سلم المشاريع

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

  1. Database لمكتبة

    SQL و PostgreSQL

    جداول وعلاقات و 15 query بتجاوب على أسئلة حقيقية. أول مرة تكلم database بجد.

  2. Script بيجمع بيانات من API

    Python و PostgreSQL

    بيانات بتيجي من برة وتتحط في جدول، ولو اتشغل مرتين ميكررش حاجة.

  3. Pipeline من 3 مصادر

    Python و SQL و star schema

    أول pipeline حقيقي: مصادر مختلفة، وتنضيف، وجداول متصممة للتحليل.

  4. Pipeline بيشتغل لوحده

    Airflow و dbt و DuckDB أو BigQuery

    نفس الـ pipeline، بس بقى بيتشغل كل يوم، وعليه tests، وبيبلّغك لو حاجة وقعت.

  5. مشروع الـ portfolio: من المصدر للـ dashboard

    Python و Airflow و dbt و Spark

    اختار مصدر بيانات حقيقي بيتحدث كل يوم، وابني الطريق كله: سحب بـ Python، و warehouse، و dbt، و Airflow بيشغّله كل يوم، و Spark لو البيانات كبيرة، وفي الآخر dashboard بسيط بيقرا من الـ marts. ارسم الـ architecture في الـ README. خد فيه من 3 لـ 5 أسابيع، وحط لينكه في الـ CV بتاعك.

مصادر مجانية

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

كورس من الأول للآخر

SQL

Python

Data Modeling و Warehouse

Airflow

Spark

أكتر الأخطاء اللي بشوفها

  • إنك تبدأ بـ Spark والأدوات الكبيرة قبل SQL. Spark آخر حاجة في الخطة مش صدفة: هي بتحل مشكلة بيانات كبيرة انت لسه مقابلتهاش. ومن غير SQL قوية و Python، هتشغّل الأداة من غير ما تفهم هي بتعمل إيه.
  • إنك تجمع أدوات بدل ما تفهم الأفكار. كل شوية فيه أداة جديدة، لكن الأفكار ثابتة: ETL، و modeling، و idempotency، و orchestration. اتعلم الفكرة بأداة واحدة، وأي أداة تانية هتاخدها في أيام.
  • إنك تبني pipeline من غير checks ولا logs. الـ pipeline اللي بيفشل وهو ساكت أخطر من اللي بيقع: الأرقام الغلط بتوصل للتقرير، وحد بياخد قرار بيها. حط checks على البيانات، وخلّي أي فشل يبان.
  • إنك تحط كل حاجة في جدول واحد كبير. ده بيبان أسهل في الأول، وبعد شهرين كل query بقت معقدة وكل رقم مشكوك فيه. ارجع لمرحلة الـ Data Modeling.
  • إنك متسيبش مشروع شغال كل يوم. الـ script اللي بتشغله مرة على جهازك مش هيعلمك اللي بيحصل لما pipeline يشتغل شهر: مصادر بتقع، وبيانات بيتغير شكلها. سيب مشروعك شغال، واتعلم من اللي بيحصله.

بعد كده

لما تخلص الخطة دي وتعمل مشروع الـ portfolio، دي الخطوات اللي بعدها:

  • الـ Streaming: بيانات بتتعالج أول ما تحصل، مش مرة كل يوم، بأدوات زي Kafka. ابدأها لما يبقى الـ batch عندك مفهوم كويس.
  • الـ Cloud: تشغّل كل ده على AWS أو Google Cloud أو Azure، وتتعلم الـ services بتاعتهم للبيانات. ولو عايز أساس Docker والـ Cloud و Terraform، بص على خطة DevOps.
  • الـ Lakehouse: صيغ جداول زي Apache Iceberg و Delta Lake، بتخلي الـ data lake يتعامل كأنه warehouse.

ورأيي إن الشغلانة دي أقرب لبناء السيستمز منها لتحليل الأرقام. فلو انت بتحب تبني، ممكن يكون ده مكانك.

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

لديك مشروع يحتاج من يبنيه؟

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

ابدأ مشروعكاختر الخدمة المناسبة