العودة إلى المدونة
أساسيات البرمجةقراءة ١٥ دقيقة

كيف تبدأ البرمجة؟ الطريق الصحيح من الصفر

خارطة طريق كاملة وصادقة للمبتدئين — ما هي البرمجة فعلاً، والأساسيات التي لا تتغيّر، وكيف تختار بين الواجهة الأمامية والخلفية والموبايل دون إهدار سنة.

محتويات المقال

الجميع تقريباً يبدأ بالطريقة نفسها. تقرّر أنك تريد تعلّم البرمجة، تفتح يوتيوب أو محرك بحث، وخلال عشر دقائق تكون قد جمعت قائمة تبدو هكذا: Python و JavaScript و React و Laravel و Flutter و Node.js و TypeScript و Django وتعلّم الآلة وشيء عن الذكاء الاصطناعي الذي سيحلّ محل المبرمجين. كل فيديو واثق من نفسه. وكل خارطة طريق تناقض التي قبلها. فتسأل السؤال الوحيد الذي يهمّك الآن — من أين أبدأ فعلاً؟

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

ما هي البرمجة فعلاً

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

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

اللغة وإطار العمل والمكتبة وحزمة التقنيات

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

  • لغة البرمجة هي الصياغة التي تكتب بها التعليمات. PHP و JavaScript و Python و Dart و ‏C++‎ لغات.
  • المكتبة هي شيفرة كتبها غيرك وتستدعيها عند الحاجة. وتبقى أنت المتحكّم في سير البرنامج.
  • إطار العمل هو بنية تبني بداخلها. يستدعي شيفرتك بقدر ما تستدعيه، ويحدّد جزءاً كبيراً من شكل تطبيقك. Laravel و Next.js أُطر عمل.
  • حزمة التقنيات هي ببساطة التركيبة التي تستخدمها معاً — مثل Laravel مع MySQL و React.

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

المرحلة الأولى: تأسيس البرمجة

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

  • المتغيّرات وأنواع البيانات — كيف تُخزَّن القيم وما الأنواع الموجودة.
  • المعاملات والتعبيرات — الحساب والمقارنة والدمج المنطقي.
  • الشروط — التفرّع باستخدام if و else و switch.
  • الحلقات — تكرار العمل باستخدام for و while، ومعرفة متى يناسب كل منهما.
  • الدوال — تسمية قطعة من المنطق، وإعطاؤها مدخلات، وإرجاع نتيجة.
  • المصفوفات والنصوص — المجموعتان اللتان ستتعامل معهما كل يوم.
  • النطاق — أين يوجد المتغيّر وأين ينتهي وجوده.
  • معالجة الأخطاء — ماذا يحدث عندما تسوء الأمور، وكيف تفشل بوضوح.
  • التنقيح — قراءة رسالة الخطأ، وتكوين فرضية، واختبارها.
  • نموذج ذهني عملي عن الذاكرة — أن القيم تعيش في مكان ما وأن المراجع تشير إليها.

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

// The same four ideas appear in every language you will ever learn:
// a typed value, a condition, a loop, and a named piece of logic.

int applyDiscount(int priceInCents, bool isMember) {
    if (priceInCents <= 0) {
        return 0;              // guard against invalid input first
    }

    int discount = isMember ? 10 : 0;
    return priceInCents - (priceInCents * discount / 100);
}
الصياغة تختلف بين اللغات. أما شكل هذا المنطق فلا يختلف.

بأي لغة تبدأ؟

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

ومع ذلك، ‏C++‎ لغة ممتازة لبناء الأساسيات، ويستحق الأمر أن تفهم لماذا بدلاً من التعامل معها كطقس عبور. لأن ‏C++‎ صريحة بشأن الأنواع والمراجع وكيفية ترتيب القيم، فهي تُظهر مفاهيم تتولّاها اللغات الأسهل بهدوء نيابة عنك. ستشعر بالفرق بين نسخ قيمة والإشارة إليها. وستكوّن حدساً بشأن التكلفة. وهذه الحدوس تنتقل معك بشكل دائم، حتى إلى لغات تخفي عنك أكثر.

الحجّة المضادة العملية حقيقية بالقدر نفسه: إذا كان هدفك بناء واجهات ويب، فالبدء بـ JavaScript يعني أن شهرك الأول سينتج شيئاً تراه في المتصفّح، والتقدّم المرئي يبقي الناس مستمرّين. كلا الطريقين ينجح. ما لا ينجح هو أن تبدأ ‏C++‎ هذا الأسبوع، وتنتقل إلى Python الأسبوع القادم لأن فيديو قال إنها أسهل، ثم تجرّب JavaScript الأسبوع الذي يليه.

البرمجة كائنية التوجّه

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

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

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

هذه المفاهيم تتوقّف عن كونها مجرّدة في اللحظة التي تنمذج فيها شيئاً حقيقياً. خذ نظام تجارة إلكترونية. لديك مستخدم ومنتج وطلب ودفعة. الطلب يعرف عناصره وإجماليه؛ ولا ينبغي أن يعرف كيف تُخصم البطاقة الائتمانية. وقد تكون الدفعة بطاقة أو دفعاً عند الاستلام أو محفظة — الطلب يستدعي الدالة نفسها على كل منها ولا يعنيه أيّها استلم. هذا هو تعدّد الأشكال وهو يؤدّي عملاً حقيقياً، لا مثالاً من كتاب عن حيوانات تُصدر أصواتاً.

هياكل البيانات

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

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

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

الخوارزميات والتعقيد

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

وإلى جانبها يقف ترميز Big O، وهو ببساطة طريقة لوصف كيف ينمو العمل كلما نمت المدخلات. وهو أقل ترويعاً بكثير ممّا يبدو:

  • ‏O(1)‎ — ثابت. قراءة عنصر من مصفوفة بالفهرس تستغرق الوقت نفسه مهما كان الحجم.
  • ‏O(log n)‎ — تنصيف مساحة البحث في كل خطوة، كما في البحث الثنائي. مضاعفة البيانات تضيف خطوة واحدة.
  • ‏O(n)‎ — خطّي. النظر إلى كل عنصر مرة واحدة.
  • ‏O(n²)‎ — تربيعي. حلقة داخل حلقة. لا بأس به مع المدخلات الصغيرة، ومؤلم كلما كبرت.

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

حل المسائل، والغرض الحقيقي منه

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

إيقاع متواضع ومستدام أفضل من شهر مكثّف يتبعه احتراق. بضع مسائل في الأسبوع، تُحلّ بإتقان ثم تُراجَع، ستفيدك أكثر من خمسين مسألة تُنجَز على عجل. وحين تنتهي من واحدة، اقرأ حلّ شخص آخر — فهناك يحدث معظم التعلّم فعلياً.

أدوات يحتاجها الجميع: Git والطرفية وواجهات API

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

Git و GitHub

يسجّل Git تاريخ مشروعك ويتيح لك العمل دون خوف من فقدان شيء. لست بحاجة إلى استخدام متقدّم في اليوم الأول. أنت بحاجة إلى init و clone و add و commit و branch و merge و pull و push، وثقة كافية لحلّ تعارض بسيط دون ذعر. ثم يمنح GitHub هذا التاريخ بيتاً، وهو المكان الذي يصبح فيه عملك مرئياً للآخرين.

سطر الأوامر

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

واجهات API وبروتوكول HTTP

واجهة API هي الاتفاق الذي يتحدّث به برنامجان. في عمل الويب والموبايل، يرسل العميل — متصفّح أو تطبيق — طلب HTTP إلى خادم، فيعيد الخادم استجابة، عادةً بصيغة JSON. والأفعال الرئيسية هي GET للقراءة و POST للإنشاء و PUT أو PATCH للتحديث و DELETE للحذف. وفهم هذا التبادل هو ما يجعل الواجهة الأمامية والخلفية تتوقّفان عن الشعور بأنهما عالمان منفصلان.

GET /api/products/42

{
  "id": 42,
  "name": "Wireless Keyboard",
  "price_cents": 24900,
  "in_stock": true
}
طلب واستجابته بصيغة JSON — المحادثة التي يُبنى عليها كل تطبيق ويب وموبايل.

اختيار مسارك

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

الواجهة الأمامية

الواجهة الأمامية ليست React. الترتيب الذي ينجح هو HTML ثم CSS ثم JavaScript — بشكل صحيح، شاملاً DOM والأحداث وطلبات HTTP والشيفرة غير المتزامنة بـ promises و async/await. وعندها فقط يصبح إطار العمل منطقياً، لأن إطار العمل حلّ لمشكلات لا بدّ أن تكون قد شعرت بها أولاً.

بعد JavaScript، يستحق TypeScript الإضافة — فهو يلتقط فئة كاملة من الأخطاء قبل تشغيل الشيفرة. ثم اختر إطار عمل واحداً. React هي المنظومة الأكبر وتقترن بـ Next.js للتوجيه والعرض والنشر. و Vue بديل جيد فعلاً ويقترن بـ Nuxt. وهما بديلان لا خطوتان: تعلّمهما معاً في البداية يشتّت انتباهك دون فائدة.

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

الواجهة الخلفية

عمل الواجهة الخلفية يدور حول البيانات والصحّة والثقة. أياً كانت اللغة التي تختارها، فالمفاهيم مشتركة: HTTP ودورة حياة الطلب والاستجابة، وتصميم واجهات REST، وقواعد البيانات و SQL، والعلاقات والفهارس، والتحقّق من المدخلات، والمصادقة والتفويض، والأمان، والتخزين المؤقّت، والطوابير والمهام الخلفية، وتخزين الملفات، والسجلّات، والاختبار، والنشر.

طريقان شائعان: PHP وصولاً إلى Laravel، أو JavaScript و TypeScript وصولاً إلى Node.js مع Express أو NestJS. لا أحدهما صحيح على إطلاقه. يمنحك Laravel مجموعة أدوات متكاملة ومتناسقة بشكل غير معتاد منذ البداية. ويبقيك Node في لغة واحدة عبر المنصة كلها إن كنت قادماً من الواجهة الأمامية. اختر بناءً على وضعك، ثم لاحظ أن المصادقة وتصميم قواعد البيانات والتخزين المؤقّت تتصرّف بالطريقة نفسها مفاهيمياً في كليهما.

تستحق قواعد البيانات اهتماماً حقيقياً بدلاً من معاملتها كمكان تختفي فيه البيانات. تعلّم قواعد البيانات العلائقية أولاً — MySQL أو PostgreSQL — بما في ذلك الجداول والمفاتيح الأساسية والخارجية والعلاقات وعمليات الربط والفهارس والمعاملات. أما قواعد بيانات NoSQL مثل MongoDB فمفيدة لأشكال معيّنة من المشكلات، لكنها ليست ترقية تلقائية على SQL، واختيارها تهرّباً من تعلّم النمذجة العلائقية ينتهي عادةً نهاية سيئة.

لاحقاً، بعد أن تكون قد أطلقت شيئاً، تنفتح الطبقة الأعمق: أنماط التصميم و SOLID والمعمارية النظيفة وطبقات الخدمات والتخزين المؤقّت بـ Redis والطوابير والعمّال الخلفيين و WebSockets وتحديد معدّل الطلبات والمراقبة و CI/CD و Docker و Linux و Nginx. هذه القائمة خريطة لسنوات، لا متطلّباً مسبقاً. لا أحد يتعلّمها دفعة واحدة.

الموبايل

الخياران المهيمنان عبر المنصات هما Flutter الذي يستخدم Dart، و React Native الذي يستخدم JavaScript أو TypeScript مع React. إن كنت تعرف React أصلاً، فـ React Native هو الطريق الأقصر ويعيد استخدام معظم نموذجك الذهني. وإن كنت تبدأ من الصفر وتريد واجهة متّسقة جداً عبر المنصات، فـ Flutter خيار قوي. ولا أحدهما فائز قاطع — الإجابة الصادقة تعتمد على خلفيتك وفريقك ومنتجك.

تحت أي من الإطارين، تنطبق الاهتمامات نفسها في الموبايل: التنقّل، وإدارة الحالة، والتكامل مع واجهات API، والمصادقة، والتخزين المحلي، والسلوك دون اتصال، والنماذج، والإشعارات الفورية، والأذونات، والوصول إلى الكاميرا والملفات، ودورة حياة التطبيق، والأداء، وعملية البناء، وواقع النشر على App Store و Play Store. ومراجعة المتاجر وآليات الإصدار تفاجئ مطوّري الموبايل لأول مرة أكثر من أي تفصيلة في إطار العمل.

ماذا تعني Full Stack فعلاً

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

أخطاء شائعة يستحق تجنّبها

  • تعلّم عدة لغات في آنٍ واحد بدلاً من الارتياح الحقيقي في واحدة.
  • البدء بـ React قبل فهم JavaScript، ثم إلقاء اللوم على React في الارتباك.
  • مشاهدة الدروس دون كتابة شيفرة. التعرّف على الشيء ليس كالقدرة عليه.
  • تغيير المسار كل بضعة أسابيع، ما يعيد تصفير تقدّمك في كل مرة.
  • حفظ الصياغة اللغوية بدلاً من فهم النموذج الكامن خلفها.
  • نسخ مشاريع كاملة دون القدرة على شرح أي قرار بداخلها.
  • تجنّب Git حتى يكون المشروع قد ضاع أو تشابك بالفعل.
  • التعامل مع التنقيح كمقاطعة بدلاً من كونه المهارة الجوهرية التي هو عليها.

استخدام الذكاء الاصطناعي دون إفراغ مهاراتك

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

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

استخدم الذكاء الاصطناعي لتتعلّم أسرع، لا لتتخطّى التعلّم. المطوّر الذي لا يستطيع قراءة الشيفرة لا يستطيع معرفة متى أخطأت الآلة.

خارطة الطريق في سبع مراحل

  1. أساسيات البرمجة — المتغيّرات والشروط والحلقات والدوال والمصفوفات والنصوص والنطاق والأخطاء والتنقيح، بلغة واحدة.
  2. البرمجة كائنية التوجّه وهياكل البيانات والخوارزميات، مع حسّ عملي بالتعقيد.
  3. ‏Git وسطر الأوامر و HTTP وواجهات API، وعادة ثابتة في حل المسائل.
  4. اختر مساراً واحداً — واجهة أمامية أو خلفية أو موبايل — والتزم به.
  5. ابنِ مشاريع حقيقية تتضمّن بيانات ومستخدمين وحالات لم تخطّط لها.
  6. تعلّم اهتمامات الإنتاج — المصادقة والأمان والاختبار والأداء والنشر.
  7. تخصّص وتعمّق، ولا تضف مساراً ثانياً إلا بعد أن يترسّخ الأول.

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

  • Roadmap
  • Beginners
  • Fundamentals
  • Career

أحمد العايدي

مطوّر Full-Stack

أبني أنظمة إنتاجية متكاملة — أنظمة Laravel الخلفية، وواجهات React و Next.js، وتطبيقات الموبايل، ولوحات التحكم، وواجهات API. وأكتب عن القرارات وراء الأنظمة التي تصل إلى مستخدمين حقيقيين.

اقرأ أيضاً

واتساب