تنزيل المقال تنزيل المقال

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

    • المنطق
    • الرياضيات المتناهية
    • لغة برمجة (يفضّل لغات C++/ Java/ Python للمبتدئين)
    نصيحة الخبراء

    Gene Linetsky, MS

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

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

  1. يمكنك استخدام أي حزمة قواعد بيانات بسيطة لتحقيق ذلك، ومنها:
    • MS Access
    • DB V
    • Fox Pro
    • Paradox
    • MySQL قواعد بيانات جيدة للتعلّم لكونها مجانية وشائعة الاستخدام، ويتم الوصول إلى قواعد البيانات عادةً من خلال استعلامات SQL.
  2. يصنّف المبرمجين عادةً إلى أحد التصنيفات التالية:
    • مبرمج ويب
    • مبرمج برامج حاسب آلي
      • مبرمج أنظمة تشغيل (متخصّص في نظام تشغيل واحد أو أكثر من نظام تشغيل)
      • مبرمج برامج منصّات متعدّدة
    • مبرمج تطبيقات موّزعة
    • مبرمج مكتبات/منصّات/بيئات عمل/أنوية
    • مبرمج نظم
      • مبرمج أنوية
      • مبرمج تعريفات
      • مبرمج أدوات ترجمة
    • عالم برمجة
  3. تعرّفك الأقسام التالية بتصنيفات أنواع البرمجة المختلفة.
طريقة 1
طريقة 1 من 6:

برمجة ويب

تنزيل المقال
  1. برامج الويب هي مكونات برمجية يتم تصميمها للعمل على هيكلية الإنترنت. يعني ذلك أن الوصول إلى البرامج يتم من خلال متصفّحات الإنترنت مثل Firefox أو Internet Explorer. لا يعني تصميم البرامج اعتمادًا على هيكلية الإنترنت أنها تتطلّب بالضرورة وجود اتصال بالإنترنت. يعني ذلك أن تطبيقات الويب تصمّم اعتمادًا على تقنيات الويب القياسية مثل:
  2. (انقر على زر الفأرة الأيمن، ثم اختر خيار عرض مصدر الصفحة (View Source)، أو اضغط على الزر F12). ركّز بحثك على تنوّع نوع ومحتوى المواقع الإلكترونية عوضًا عن تركيزه على كم المواقع الإلكترونية التي تقوم بزيارتها. بشكلٍ عام، سيتوجب عليك زيارة موقع واحد في كل نوعٍ من أنواع المواقع الإلكترونية التالية:
    • مواقع المؤسسات التجارية (الشركات التجارية والمؤسسات غير الربحية والهيئات الحكومية).
    • محرّكات فهرسة الويب (محرّكات البحث ومواقع بحث البيانات الفوقية ومحرّكات البحث المتخصّصة والأدلة).
    • مواقع استخراج البيانات.
    • المواقع الشخصية.
    • الصفحات المعلوماتية/الموسوعية (مواقع wikiوجداول البيانات ومواقع المواصفات التقنية وأدلة سرد بيانات المستخدم والمدوّنات ومواقع وكالات الأخبار والمواقع الإخبارية وصفحات أدلة العناوين والهاتف وما إلى ذلك).
    • المواقع الاجتماعية (الأدلة الاجتماعية ومواقع العلامات المرجعية ومواقع تدوين الملاحظات).
    • مواقع العمل الجماعي (تتضمّن هذه المواقع تصنيفات أخرى مذكورة سابقًا، مثل مواقع wiki والمدوّنات).
  3. تعلّم طريقة استحثاث أفكار واحدة على الأقل وبرنامجًا واحدًا لتطبيق هذه الطريقة. على سبيل المثال: مخطّطات استحثاث الأفكار وبرنامج MS Visio.
  4. يعني ذلك إنشاء مخطّطات ويب تصوّرية وخرائط المواقع ومخطّطات التصفّح.
  5. حاول أن تتعلّم برنامج تحرير رسوميات واحد على الأقل (اختياري، ولكن ينصح به بشدة)
  6. يتضمّن ذلك أخذ فكرة عامة عن:
    • بروتوكولات خدمات ويب الأساسية (HTTP, FTP, SMTP, and POP3 or IMAP4)
    • برامج خوادم ويب (يفضّل الاطّلاع على أحد المنصّات التي ستستخدمها بشكلٍ منتظم)
    • برامج تصفّح ويب
    • خوادم البريد الإلكتروني وبرامج الوصول إلى الخدمة
  7. قد ترغب أيضًا باستخدام برنامج "What You See Is What You Get (WYSIWYG)" لكتابة رموز HTML.
  8. تعلّم تقنية XML والتقنيات المتعلّقة بها، مثل XSL و XPath (اختياري، ولكن ينصح به).
  9. يختار معظم المستخدمين تعلّم لغة JavaScript، ويختار بعضهم تعلّم لغة VBScript، إلا أنها غير مدعومة في معظم المتصفّحات.
  10. حاول الوصول إلى أقصى قدراتك باستخدام هذه اللغة فقط. لا تنتقل للخطوة التالية إلا بعد امتلاك الخبرة في لغة برمجة جانب العميل التي اخترتها.
  11. إن اخترت حصر نفسك في برنامج خادم واحد، تعلّم أحد لغات البرمجة التي يدعمها هذا البرنامج. إن اخترت التعامل مع أكثر من خادم، تعلّم لغة برمجة واحدة على الأقل لكل خادم ستتعامل معه.
  12. امتلك موقعك الإلكتروني الخاص وابدأ بتطبيق ما تعلّمته على صفحات موقعك.
طريقة 2
طريقة 2 من 6:

برمجة تطبيقات الحاسوب

تنزيل المقال
  1. يقوم معظم مبرمجي برامج الحاسوب ببرمجة تطبيقات للشركات، لذا فإن امتلاك فكرة عن الشركات وعن هيكلها التنظيمي والمالي سيوفّر عليك الكثير من الوقت.
  2. يمكنك الاستفادة من دورة تدريبية بسيطة في digital circuits و computer architecture، إلا أن البعض يرى ذلك مستوى متقدّم في هذه المرحلة، لذا فإن قراءة مقال أو مقالين إرشاديين سيكفي في ذلك (مثل هذا المقال و هذا ) يمكنك العودة إلى هذه الخطوة لاحقًا بعد تعلّم أحد لغات البرمجة.
  3. لا تخجل من تعلّم هذه اللغات لأنك أكبر من السن الذي تم تصميم هذه اللغات له. Scratch أحد الأمثلة لهذه اللغات البرمجية. يمكن أن تسهّل هذه اللغات من العناء الذي ستواجهه عند تعلّم لغة برمجة لأول مرة بشكلٍ كبير. ولكن، هذه الخطوة اختيارية. يمكن تنفيذ هذه الخطوة قبل الخطوة السابقة أيضًا.
  4. procedural programming languages. بغض النظر عن لغة البرمجة التي ستختار تعلّمها لاحقًا، سيتطلّب ذلك معرفةً بالبرمجة الإجرائية في مرحلة ما. أضف إلى ذلك أن البرمجة الإجرائية تعدّ أحد أسهل أنواع البرمجة التي يمكن البدء بها لتحصيل فكرة عامة عن البرمجة.
  5. يمكنك الاستفادة من تدريبات البرمجة التي توجد عادةً في كتب تعليم لغات البرمجة. استخدم أداةً لكتابة البرامج بلغة البرمجة التي تتعامل معها.
  6. احرص على فهم المفاهيم التالية جيدًا واحرص على تمكّنك من تطبيقها بسهولة قبل الاستمرار:
    • إدخال وإخراج البيانات من البرنامج.
    • المخطّط المنطقي (logical flow) والمخطّط التنفيذي (execution flow) للبرنامج في اللغات الإجرائية.
    • تعريف، وتعيين، ومقارنة المتغيرات.
    • تراكيب البرمجة الفرعية، مثل if..then..else and select/switch..case.
    • تراكيب التكرار، مثل while..do, do..while/until, for..next.
    • صيغة لغة البرمجة المستخدمة لإنشاء واستدعاء الإجراءات والدوال.
    • أنواع البيانات وطريقة التعامل معها.
    • أنواع البيانات التي يعرّفها المستخدم (السجلات والوحدات والثوابت) واستخدامها.
    • إن كانت لغتك تدعم overloading functions، تعرّف على طبيعة هذا الأمر.
    • طريقة الوصول إلى الذاكرة في لغة البرمجة التي اخترتها.
    • إن كانت لغتك تدعم operators overloading، افهم طبيعة هذا الأمر.
    • إن كانت لغتك تدعم مؤشرات الدوال والممثّلات (delegates/function pointers)، افهم ذلك جيدًا.
  7. احضر دورة تدريب تقديمية في لغة برمجة أخرى على الأقل بنموذج برمجة مختلف. يُنصح بتعلّم لغة برمجة واحدة لكل نموذج، ويفعل معظم المبرمجين المتقدمين ذلك، ولكن يمكنك البدء بلغة واحدة عادةً، ثم العمل على تطبيق ما تعلّمته لفترة وتعلّم لغة أخرى بعد امتلاك خبرة حقيقية في البرمجة. جرّب أحد مجالات لغات البرمجة التالية:
    • نموذج البرمجة المنطقي (Logic programming paradigm).
    • نموذج البرمجة الوظيفي (Functional programming paradigm).
  8. قيّم نقاط قوتك وضعفك في كل لغة. يتم تحقيق ذلك عادةً عن طريق:
    • أخذ نماذج بسيطة من أعمالك بلغة البرمجة الأولى وكتابتها من جديد باستخدام لغتك الثانية.
    • إنشاء مشروع جديد ومحاولة تطبيقه بلغتي البرمجة. قد لا تتمكن أحيانًا من تطبيق المشروع بأحد اللغتين، وذلك اعتمادًا على المشروع واللغات التي تتعامل معها.
    • كتابة ملخّص بسيط أو جدول مقارنة يحوي التراكيب المتشابهة في لغتي البرمجة والخصائص الفريدة في كل لغة.
    • حاول إيجاد طرق لتقليد المميزات الفريدة في أحد اللغتين باللغة الأخرى.
  9. تمتلك كل لغات البرمجة تقريبًا إصدارات/مكتبات تدعم البرمجة الرسومية، وأخرى تدعم البرمجة النصّية. يمكن تحقيق ذلك من خلال:
    • تعرّف على البرمجة حدثية التوجّه (event-driven programming). تعتمد معظم لغات البرمجة الرسومية على الأحداث (events) والتعامل معها بشكلٍ أو بآخر (باستخدام لغة البرمجة التي اخترتها).
    • جرّب أكبر كمية ممكنة من برامج الحاسوب لتفهم طبيعة عمل البرنامج. تقدّم معظم شركات تطوير البرمجيات إصدارات تجريبية من منتجاتها يمكن استخدامها لاختبار البرنامج. تابع تطوّر واجهات المستخدم (user interface) باستمرار.
    • اقرأ بعض المقالات أو الكتابات الإرشادية الخاصة بواجهات المستخدم الرسومية.
  10. حاول تطبيق خبرتك على المشاكل التي تواجهها بشكلٍ يومي. على سبيل المثال، اكتب برنامجًا يمكنه إعادة تسمية مجموعة كبيرة من الملفات مرة واحدة أو برنامج يقارن الملفات النصّية رسوميًا أو ينسخ أسماء الملفات الموجودة في مجلد إلى الذاكرة/ملف نصّي، وأشياء من هذا القبيل. اجعل الأمر بسيطًا في البداية.
  11. قم بإنهاء هذا المشروع حتى نهايته، واستخدم فيه تقنيات البرمجة الرسومية التي تعلّمتها.
  12. وسّع مداركك حول بيئة/مكتبة/حزمة الرسوميات التي تعلّمتها قبل الانخراط في دورات تدريبية متقدمة، وانتبه خلال ذلك إلى التفاصيل وتعلّم المزيد من الخدع والإرشادات الخاصة بالبيئة التي تتعامل معها من مصادر الإنترنت.
  13. ابحث عن حزم/مكتبات عناصر رسومية تخصّ لغات البرمجة التي تستخدمها وتعلّمها.
  14. يساعد هذا الأمر المبرمجين الذين يرغبون بتصميم عناصر واجهة جذابة.
  15. تعدّ برمجة الألعاب، بوجهٍ أو بآخر، نوع من أنواع برمجة برامج الحاسوب. إن كنت ترغب بأن تصبح مبرمج ألعاب، سيتوجب عليك تعلّم المزيد عن برمجة الألعاب قبل إنهاء هذه الخطوات. دورة الرسوميات أمر ضروري بالنسبة لمبرمجي الألعاب، ويجب أن تكون لغة البرمجة الثانية التي تم ذكرها في الخطوات السابقة لغة برمجة منطقية/وظيفية (يفضّل أن تكون Prolog أو Lisp)
طريقة 3
طريقة 3 من 6:

برمجة التطبيقات الموزّعة

تنزيل المقال
  1. تعدّ برمجة Distributed application بالنسبة للكثيرين أحد أصعب أنواع البرمجة التي يمكن تعلّمها حيث أنها تتطلّب معرفةً متنوعة بأجهزة الحاسوب وتقنيات الاتصال.
  2. هذه الخطوة اختيارية، إلا أنها مفيدة جدًا في فهم مخطّطات الشبكات.
  3. تعرّف على هيكليات أدوات الشبكات، وعلى أجهزته مثل الموزّعات (hubs)، والمحوّلات (switches)، وأجهزة الراوتر (routers).
  4. تحتاج إلى فهمٍ جيد لطراز OSI Open Systems Interconnection (OSI)، و Ethernet، و IP، و TCP، و UDP، و HTTP قبل البدء ببرمجة التطبيقات الموزّعة.
  5. بالنسبة لنظام ويندوز، يعني ذلك تعلّم أي لغة كتابة تعمل على Windows Scripting Host. بالنسبة للنظام لينكس، يكفي التعرّف على Bash scripts و Perl. يُنصح بتعلّم JavaScript بشدة على نظامي التشغيل للأسباب التالية:
    • هذه اللغة مدعومة من قبل كل أنظمة التشغيل ولغات النصوص المكتوبة تقريبًا (يدعم Windows Scripting Host لغة JavaScript افتراضيًا، وتمتلك معظم توزيعات لينكس حزمًا لدعم البرمجة باستخدام JavaScript).
    • تعلّم هذه اللغة أسهل بالنسبة للكثير من المبرمجين.
    • طريقة كتابة الأوامر البرمجية مشتقة من نظام ALGOL الذي يعرّفك بالكثير من لغات البرمجة الأخرى عند قيامك باختيار لغة برمجة ثانية (الأوامر مشتقة من نظام ALGOL في لغات C, C++, C#, Java and J#).
    • يؤدّي تعلّم JavaScript إلى تعريفك ببرمجة برامج جهة المستخدم (client-side) في صفحات الويب، الأمر الذي يعدّ فائدة إضافية.
  6. لا تستخدم لغة كتابة النصوص التي اخترتها إلا مع البرمجة الإجرائية (procedural programming) في البداية. يمكنك استخدام تقنيات برمجة ونماذج متقدمة لاحقًا حسب لغة كتابة النصوص التي اخترتها والخيارات التي تدعمها. لكل لغات كتابة النصوص مناحٍ إجرائية بشكلٍ ما.
  7. استخدم لغة كتابة النصوص التي تعلّمتها لكتابة نصوص برمجية للتواصل بين الأجهزة المختلفة. تعلّم الأمور التي يجب استيفائها لتحقيق ذلك. لا تحتاج سوى لتواصل بسيط بين الأجهزة.
  8. يفضّل اختيار لغة متعدّدة النماذج مثل لغة Python. تعرّف على اللغة الثانية بشكلٍ عام. يفضّل معظم المبرمجين لغة Java للكثير من الأسباب، إلا أن لغة C# تمتلك سمعة كبيرة في هذا الصدد. يفضّل تعلّم لغة C# أو Java للأسباب التالية:
    • هذه اللغات لغات غرضية التوجّه (object oriented) مما يقي المبرمج من الكثير من تفاصيل التطبيق حيث أن هذه اللغات تدعم المكونات (components) (أجزاء جاهزة ومترجمة من النصوص تقوم بأداء مهمة معيّنة، ويمكن استخدامها في برامج أخرى).
    • تدعم هذه اللغات البرمجة حدثية التوجّه (event-driven)، والبرمجة الغرضية (Object-Oriented)، والبرمجة الإجرائية بشكلٍ (procedural programming) أو بآخر.
    • يتم توزيع بيئة عمل اللغة بشكلٍ طبيعي (في حالة Java).
    • وجود الكثير من الحزم الجاهزة التي تتعامل مع الشبكات، على شكل رموز مفتوحة المصدر وحزمٍ في بيئة العمل مما يجعل الاستفادة من عمل الآخرين أمرًا ممكنًا.
  9. لا تشغل بالك كثيرًا بعناصر واجهة المستخدم كالمخرجات وتصميم النوافذ وعناصر واجهة المستخدم.
  10. يمكن تحقيق ذلك من خلال الكتب، والمقالات الإرشادية على الإنترنت، والدورات التعليمية. إن فهم هيكلية التطبيقات الموزّعة ومفاهيمها أمر ضروري.
  11. تعلّم تصميم الخدمات services و المكونات المعتمدة على الخدمات باستخدام لغة البرمجة التي تختارها.
  12. ينصح بامتلاك فهمٍ عام على الأقل لكل التقنيات التالية. لا يكتفي معظم مبرمجي التطبيقات الموزّعة بتعلّم لغة أو لغتين من لغات البرمجة، فهم يقومون بتعلّم لغة برمجة واحدة على الأقل على كل نظام تشغيل. سبب ذلك هو أنك ترغب بأن يكون البرنامج "موزّعًا"، ولذا يجب عليك تقديم إصدارٍ واحدٍ على الأقل لكل نظام تشغيل كبير.
    • Common Object Request Broker Architecture (CORBA)
    • Simple Object Access Protocol (SOAP)
    • Asynchronous JavaScript and XML (AJAX)
    • Distributed Component Object Model (DCOM)
    • .NET Remoting
    • XML Web Services
طريقة 4
طريقة 4 من 6:

برمجة المكتبات/البيئات/المنصّات/الأنوية

تنزيل المقال
  1. مبرمجو الأنوية هم مبرمجون متقدمون انتقلوا من برمجة التطبيقات إلى برمجة وحدات الرموز التي يمكن للمبرمجين الآخرين استخدامها لتصميم البرامج.
  2. تعلّم لغة برمجة تدعم تصميم المكونات/الحزم القابلة لإعادة الاستخدام إن لم تكن قد فعلت ذلك بالفعل.
  3. يستخدم معظم مطوّري المكتبات كلا اللغتين أو أحدهما.
  4. تعلّم تقنيات ومفاهيم البرمجة التركيبية (modular)، والبرمجة الموجّهة بالمكونات (component-based)، والبرمجة غرضية التوجّه (object-oriented)، والبرمجة حدثية التوجّه (event-driven) على الأقل. كلما تعلّمت نماذج ولغات برمجة أكثر، كلما كان نجاحك في برمجة المكتبات/الحزم أكثر.
  5. تعلّم المزيد عن أنظمة التشغيل المختلفة وبيئات البرمجة التي تدعمها هذه الأنظمة.
  6. ركّز جهودك على تعلّم البيئات غير المعتمدة على نظام تشغيل، وعلى لغات البرمجة والتقنيات.
  7. إن كانت لغات البرمجة التي تعلّمتها حتى الآن تحتوي على مقاييس ANSI / ISO / IEEE / W3C ، تعرّف على هذه المقاييس. جرّب استخدام الرموز القياسية عند التمكن من ذلك.
  8. حاول أن تقوم بتقليد المكتبات البسيطة الموجودة بالفعل، خصوصًا تلك مفتوحة المصدر. هذا الأمر مفيد خلال مراحل برمجة المكتبات/الحزم الأولى. ابدأ بحزم بسيطة مثل حزم تحويل الوحدات وحزم العمليات الحسابية العلمية المتوسطة. إن كنت طالبًا في الجامعة، استفد من المناهج التي لا تتعلّق بالبرمجة عن طريق محاولة تطبيق معادلاتها في المكتبات التي تبرمجها.
  9. قم أولًا بتنزيل الملفات التنفيذية للحزمة، ثم حاول استخدامها وابحث عن نقاط قوتها ونقاط ضعفها. بعد فعل ذلك، نزّل رمز المصدر وحاول أن تتعرّف على طريقة عملها. حاول إنشاء هذه المكتبات بنفسك أو إنشاء جزء منها. في البداية، افعل ذلك بعد رؤية الرمز المصدري، ثم افعل ذلك لاحقًا قبل الاطّلاع عليه. حاول بعد ذلك تحسين هذه المكتبات.
    • يفكّر مبرمجو المكتبات/الحزم عادةً بشكلٍ تكراري في كل المشكلات التي يواجهونها. حاول التفكير في كل مشكلة على أنها مجموعة من المشاكل الأصغر( سلسلة من المهمات الأبسط)، أو كعملية متكرّرة من تقليل إطار المشكلة إلى أطر أصغر ثم بناء هذه الأطر على بعضها.
    • يميل مبرمجو المكتبات/الحزم إلى التعميم. يعني ذلك أنه عند مواجهتهم لمشكلة محدّدة، يميل أولئك الأشخاص إلى التفكير في مشكلة أكبر ومحاولة حلها مما سيؤدّي إلى حل المشكلة الأصغر تلقائيًا.
طريقة 5
طريقة 5 من 6:

برمجة النُظُم

تنزيل المقال
  1. يتعامل مبرمجو النظم مع "علم" البرمجة وليس مع تطبيقاتها. لا تحصر نفسك في بيئة معيّنة.
  2. يمكن تحقيق ذلك من خلال:
    • التعرّف على طريقة تثبيت أنظمة التشغيل.
    • تعلّم تثبيت أنظمة تشغيل مختلفة على جهاز حاسوب واحد (اختياري، ولكن ينصح بذلك).
    • تثبيت أكثر من نظام تشغيل واحد. لا تقم بتثبيت أي حزم مساعدة على الأنظمة واستخدم خصائص أنظمة التشغيل فقط.
  3. افهم لغة التجميع (assembly language) الخاصة بمنصّة العتاد أو نظام التشغيل الذي تختاره. ستتعلّم لاحقًا لغة تجميع الأنظمة والمنصّات الأخرى.
  4. تعلّم لغات ANSI C و C++، إضافة إلى مفاهيم البرمجة الإجرائية (procedural programming).
  5. اهتمّ على وجه الخصوص بمكتبة (STL) و أيضًا (ATL).
  6. ابحث عن مصادر وكتب ودورات على الإنترنت لفهم مدى تدخّل لغة C في المنصّة التي تتعامل معها.
  7. يكون هذا الأمر أسهل إن اخترت نظام تشغيل مبني على منصّة Unix. افهم النظام الذي ستتعامل معه لاحقًا بشكل جيد.
  8. ابدأ أولًا بتصميم أدوات نظام صغيرة. قد يفيدك:
    • محاولة تصميم أدوات صغيرة موجودة على النظام بالفعل.
    • محاولة إنشاء أدوات مشابهة للأدوات الموجودة على الأنظمة الأخرى.
  9. هذا هو المكان الوحيد الذي يهم فيه تحديد لغة البرمجة الأولى. تعلّم ANSI C أولًا، وليس C++ أو C# أو Java أو D، ثم تعلّم C++.
    • سبب حصر لغة البرمجة الأولى على C وحدها هو أن برمجة أنظمة التشغيل تتطلّب فهم المبرمج للمفاهيم التالية:
      • ترجمة (compilation) الرمز البرمجي بشكلٍ كاملٍ وحقيقي.
      • ملفات خرج غرضية منخفضة المستوى (Low-level object output).
      • ملفات ربط تنفيذية (Linking binaries).
      • برمجة بلغة برمجة أساسية أو تجميعية. يقول البعض أن لغة C هي إصدار أسهل في التعلّم من لغة assembly. تدعم اللغة أيضًا إدراج رموز assembly في الرمز البرمجي عند الرغبة بذلك كما أن اللغة إجرائية فقط (مثل لغة assembly)
طريقة 6
طريقة 6 من 6:

علم البرمجة

تنزيل المقال
  1. علماء البرمجة هم مبرمجون متقدّمون يعملون على تطوير تقنيات مُعالجة البيانات عوضًا عن العمل على برمجة التطبيقات، ومن التقنيات التي يعمل أولئك العلماء على تطويرها التشفير (encryption)، ولغات البرمجة (programming languages)، وخوارزميات استخراج البيانات (data mining algorithms). لا يصل أي شخص إلى هذا المستوى المتقدّم دون دراسة أكاديمية وتفانٍ تام، إلا في حالات فردية.
  2. يمكن تحقيق ذلك من خلال:
    • تحصيل درجة علمية فعلية (وهذا ما يحدث عادة).
    • الاطلاع على المناهج التي تقدّمها الجامعات العصرية في هذا التخصص ودراستها دراسة ذاتية أو كمناهج منفصلة. يمكن تحقيق ذلك نظريًا، إلا أن السبيل الأول هو السبيل الذي يُنصح بسلوكه.
  3. كلّما كان التخصص أكثر تحديدًا، كلما كان ذلك أفضل. يعتمد هذا الأمر على اختيارك أنت. على أي حال، إليك قائمة بأهم الموضوعات التي تخص علم البرمجة:
    • علم تصميم الخوارزميات (البحث، والفرز، والتشفير، وفك التشفير، واكتشاف الأخطاء في التواصل بعض أمثلة ذلك)
    • تصميم/تنقيح لغات البرمجة/المُترجِمات
    • مجالات الذكاء الاصطناعي (التعرف على الأنماط، والتعرف على الصوت، ومُعالجة اللغات الطبيعية، والشبكات العصبونية)
    • الروبوتات
    • البرمجة العلمية
    • الحوسبة الخارقة (Supercomputing)
    • النمذجة/التصميم المُساعد بالحاسوب (CAD/CAM)
    • الواقع الافتراضي
    • رسوميات الحاسوب (يتم الخلط عادة بين رسوميات الحاسوب والتصميم الرسومي أو تصميم واجهات المستخدم الرسومية. مجال رسوميات الحاسوب هو مجال دراسة كيفية تمثيل ومُعالجة الرسوميات على أنظمة الحاسوب).
  4. من المفيد السعي لنيل درجة الماجستير أو الدكتوراه.

أفكار مفيدة

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

المزيد حول هذا المقال

تم عرض هذه الصفحة ١٤٬٥٧٣ مرة.

هل ساعدك هذا المقال؟