المحتوى عن 'مراجع'.



مزيد من الخيارات

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المُحتوى


التصنيفات

  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • نصائح وإرشادات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • مقالات عامة
  • التجارة الإلكترونية

التصنيفات

  • PHP
    • Laravel
    • ووردبريس
  • جافاسكريبت
    • Node.js
    • jQuery
    • AngularJS
    • Cordova
  • HTML5
  • CSS
    • Sass
    • إطار عمل Bootstrap
  • SQL
  • سي شارب #C
    • منصة Xamarin
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • برمجة أندرويد
  • لغة Swift
  • لغة R
  • سير العمل
    • Git
  • صناعة الألعاب
    • Unity3D
  • مقالات عامّة

التصنيفات

  • تجربة المستخدم
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
    • كوريل درو
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • مقالات عامّة

التصنيفات

  • خواديم
    • الويب HTTP
    • قواعد البيانات
    • البريد الإلكتروني
    • DNS
    • Samba
  • الحوسبة السّحابية
    • Docker
  • إدارة الإعدادات والنّشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • مقالات عامة

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • استسراع النمو
  • المبيعات

التصنيفات

  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • مقالات عامة

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
  • أندرويد
  • iOS
  • macOS
  • ويندوز

التصنيفات

  • شهادات سيسكو
    • CCNA
  • شهادات مايكروسوفت
  • شهادات Amazon Web Services
  • شهادات ريدهات
    • RHCSA
  • شهادات CompTIA
  • مقالات عامة

أسئلة وأجوبة

  • الأقسام
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة البرمجة
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات
    • أسئلة الشهادات المتخصصة

التصنيفات

  • ريادة الأعمال
  • العمل الحر
  • التسويق والمبيعات
  • البرمجة
  • التصميم
  • DevOps

تمّ العثور على 2 نتائج

  1. في المصنفات التي تحتوي على أكثر من ورقة عمل، نحتاج أحيانا إلى الرجوع إلى خلية أو نطاق من الخلايا في أوراق متعددة ذات نمط متشابه عند كتابة صيغة ما. في هذه الحالة يمكننا تجّنب الصيغ المعقدة، أو نسخ الخلايا من ورقة إلى أخرى باستخدام المراجع ثلاثية الأبعاد. البنية العامة للصيغة هي: =Function (first worksheet:last worksheet!cell reference) Function: أي دالة تريد استخدامها، كدالة الجمع، المعدل... إلخ. First worksheet: اسم ورقة العمل الأولى في النطاق. Last worksheet: اسم ورقة العمل الأخيرة في النطاق. Cell reference: اسم الخلية التي تريد تطبيق الدالة عليها في جميع الأوراق ضمن النطاق. وسنوضّح طريقة كتابة الصيغة ثلاثية الأبعاد في الأمثلة التالية: مثال1: في هذا المثال لدينا درجات الاختبارات لمجموعة من الطلاب لأربعة أشهر، وقد تم إدخال درجات كل شهر في ورقة منفصلة (... ,Month1, Month2). المطلوب هو حساب قيمة متوسط الدرجات في ورقة منفصلة (Average): سنقوم أولا بتحديد الخلية التي نريد إظهار نتيجة المتوسط فيها، وهي الخلية B2 في الورقة "Average". ثم سنكتب الصيغة التالية: =average( سننتقل إلى الورقة الأولى في النطاق "Month1"، سنلاحظ في شريط الصيغة إدخال اسم الورقة تلقائيا في الصيغة متبوعا بعلامة تعجب (!)، وهذا يدل على استخدام الورقة الأولى كمرجع: بعدها سنحدد أول قيمة نريد إدخالها في دالة المتوسط، وهي درجة الطالب "زيد ثابت" في الشهر الأول، أي الخلية B2 في الورقة "Month1": ثم سنضغط المفتاح Shift وننقر على آخر ورقة في النطاق "Month4" مع الاستمرار بالضغط، ثم Enter لتطبيق الصيغة: وبذلك تم إيجاد قيمة المتوسط لدرجات اختبارات الطالب الأول للأشهر الأربعة في الورقة "Average" (لاحظ الصيغة في شريط الصيغة). أي ببساطة أننا قمنا بإخبار البرنامج أن يقوم بإيجاد المتوسط لجميع القيم في الموقع B2 من الورقة الأولى حتى الورقة الأخيرة في النطاق. بعد ذلك سنقوم باستخدام التعبئة التلقائية لتطبيق الصيغة على بقية الخلايا في الجدول: من فوائد المراجع ثلاثية الأبعاد هي أنّ قيمة المتوسط ستتغير تبعا لأي تحديث نجريه على أي ورقة من أوراق النطاق. ولكي تتوضح الخطوات السابقة أكثر، شاهد الصورة أدناه: مثال2: هذا المثال يحتوي على ثلاثة أوراق. تحتوي الورقة الأولى "الفرع الأول" على مبيعات الفرع الأول لأحد المتاجر لمجموعة من المنتجات، الورقة الثانية "الفرع الثاني" على مبيعات الفرع الثاني... وهكذا. المطلوب هو إيجاد مجموع المبيعات لكل منتج لكل فرع وللأرباع الأربع: سنقوم أولا بتحديد الخلية التي سيظهر فيها ناتج المجموع للمنتج الأول، وهي B4 في الورقة "المجموع"، ثم سنستخدم دالة الجمع بالصيغة التالية: =sum( ثم سننتقل إلى الورقة الأولى "الفرع الأول" ونحدد الخلية B4: نضغط المفتاح Shift ونحدد الورقة الثالثة "الفرع الثالث" مع الاستمرار بالضغط ليتحدد جميع نطاق الأوراق، ثم نضغط Enter لإيجاد النتيجة: وسنستخدم التعبئة التلقائية لتطبيق الصيغة على جميع الخلايا في الجدول. الصورة أدناه توضح خطوات هذا المثال من البداية: فيما يلي مجموعة الدوال التي تدعم استخدام المراجع ثلاثية الأبعاد في اكسل: SUM: لإيجاد مجموع مجموعة من القيم الرقمية AVERAGE: لإيجاد متوسط مجموعة من القيم الرقمية AVERAGEA: لإيجاد متوسط مجموعة من القيم الرقمية، النصية، والمنطقية COUNT: لحساب عدد الخلايا التي تحتوي على أرقام COUNTA: لحساب عدد الخلايا غير الفارغة MAX: لإرجاع أكبر قيمة ضمن مجموعة من الخلايا MAXA: لإرجاع أكبر قيمة ضمن مجموعة من الخلايا، بما فيها النصوص والقيم المنطقية. MIN: لإرجاع أصغر قيمة ضمن مجموعة من الخلايا MINA: لإرجاع أصغر قيمة ضمن مجموعة من الخلايا، بما فيها النصوص والقيم المنطقية. PRODUCT: لإيجاد حاصل ضرب مجموعة من القيم الرقمية STDEV ،STDEVA ،STDEVP ،STDEVPA: لحساب الانحراف المعياري لمجموعة من القيم المحددة استنادا إلى عينة أو لمحتوى بأكمله. VAR ،VARA ،VARP ،VARPA: لإرجاع قيمة التباين لمجموعة من القيم المحدد استنادا إلى عينة أو لمحتوى بأكمله.
  2. إن القدرة على البرمجة هي مهارة رائعة حيث تعطيك شعورًا بالرضى على المستوى الشخصي والمهني، بالإضافة إلى أنها تمكّنك من البناء وحل المشاكل والاختراع. كما تستطيع أن تفتح لك أبوابًا لكل أنواع المهن بفوائد كبيرة، كمرتبٍ محترم أو حرية العمل من أي مكان وفي أي وقت، أو كلاهما معًا. من الطبيعي إذن أن نرى تزايد عدد الأشخاص من مختلف الخلفيات الذين يقررون أنهم يرغبون بتعلّم البرمجة. ولكنهم يصطدمون في بداية الطريق بحقيقة غير سارّة: تعلم البرمجة أمرٌ صعب. هناك الكثير من التعقيد والارتباك، وسيكون كل شيءٍ تقريبًا في البداية غير منطقي. وعلى عكس التوقعات، قد يستمر شعور "لا أفهم ذلك" لوقتٍ طويل من الرحلة تلك، دافعًا العقول المتحفزة للتعلم إلى الشعور باليأس، الضياع أو الرّغبة بالاستسلام. العبرة من القصة هي أنه عليك أن تكون مستعدًا. إن الطريق إلى فردوس البرمجة هو طريقٌ طويل، وبدون العقلية الصحيحة في البدء، سوف يفقد الطريق بريقه بسرعة. في هذا المقال، سأحاول تقديم بعض الإرشادات حول ما يجب توقعه في هذه الرحلة، وكيف تواجه ذلك، وماهي الأدوات والمصادر لتساعدك في رحلتك. ما يجب توقعهقد يبدو الأمر بديهيًّا، ولكن أول أمر عليك إدراكه هو أن البرمجة في جوهرها موضوعٌ تقني. المهارات التي ستكتسبها في البداية ستتطلب الكثير من "الدّقة" و "الصحة" ومحاولات المراوغة لن تفيدك إطلاقًا. عليك أن تتعلم قليلًا من الرياضيات، وكذلك الكثير من الأمور التي قد "تبدو" وكأنها رياضيات، مثل المنطق العمليّاتي. خلاص القول هي أن تعلم أساسيات البرمجة يتطلب الكثير من التركيز والتدريب. ولكن اعلم أن عددًا لا يحصى من الأشخاص، التقنيين وغير التقنيين، نجحوا باجتياز هذه الرحلة قبلك، فلا تشعر بالتثبيط. وكما سترى هناك كميّة هائلة من المصادر لأشخاص مثلك تمامًا للمساعدة على جعل هذه العملية أسهل ما يمكن. إن منحنى تعلم البرمجة أكثر ما يكون انحدارًا في بدايته. هناك كمية كبيرة من الأساسيّات التي عليك استيعابها، وذلك يتضمن الأجزاء المختلفة من لغة البرمجة (التعابير expressions، المُتغيّرات variables، أنماط البيانات data types، العمليات operators، الحلقات loops، الجمل الشرطيّة conditional statements، التوابع functions، الأصناف classes)، والتقنيات لفهم كم من الوقت والذاكرة سيستخدم حاسوبك لتنفيذ نصك البرمجيّ (درجة التعقيد). ستكتب الكثير من البرامج التي لن تعمل في أول مرة، وبالتالي ستتأقلم مع كابوس كل مُبرمج: التّنقيح debugging. عند تعلّمك كيفيّة كتابة البرنامج، ستصبح قادرًا على تعلم كيفيّة كتابة برنامج جيّد. إن كتابة برنامجٍ فعّال، سهل الفهم والقراءة ومن السهل تطويره، هو فنّ، وهذا أمر يتطوّر بشكلٍ مستمر. سوف تتمكن من البدء باستكشاف فلسفات برمجيّة وتنتقل من مجرد كونك "مُبرمج" إلى "مهندس برمجيّات". وهذه عملية تتطلب أيضًا الكثير من الوقت والتدريب، ولكن كلما تفوّقت في ذلك، فُتحت أمامك فرصٌ أكثر. كيف تتعلم البرمجةتختلف الرحلة إلى فردوس البرمجة من شخصٍ لآخر، ولكن هناك مبادئٌ مشتركة يمكن أن يستفيد منها جميع المسافرون. هذه العملية البسيطة التي أوصي بها إن كنت تبدأ بتعلم البرمجة الآن: 1. قم باختيار وجهتك: اختر لغة، أية لغةإن كنت جديًا في موضوع تعلم البرمجة، فلن يُهم كثيرًا أية لغة تختار، حيث تحمل معظم لغات البرمجة الرائجة نفس المفاهيم الأساسية، وعندما تتمكن من البرمجة في اللغة التي تعلمتها في البداية، سيكون من السهل أن تتعلم لغة أخرى بسهولةٍ أكبر. إن كنت تتعلم البرمجة ضمن برنامج جامعي، أو ما شابه، فمن المرجح أن يتم اختيار اللغة بالنيابة عنك. بكل الأحوال، إن لم تكن تعلم تمامًا ماذا تريد القيام به على المدى البعيد، هناك خمسة لغات فقط أنصح بالتفكير بها، وهي تحقّق توازنًا بين سهولة التعلم، تعدد استخدامات المعرفة التي ستكتسبها، والمجال الواسع من فرص العمل على المدى الطويل: Ruby، JavaScript، Python، C و Java. وهذه ملاحظاتٌ عامّة عن كل لغة لتساعدك على الاختيار: اللغات المفسرةمن الأسهل البدء باللغات المفسّرة Interpreted Languages، وهذا لأنه يمكن تنفيذ النص البرمجي بمجرّد أن تتم كتابته، بينما تتطلب اللغات المجمّعة compiled languages، خطوة إضافية بين كتابة وتنفيذ البرنامج. كنتيجة، تسمح اللغات المفسرة ببرمجةٍ أسرع، ولكنها لا تستخدم موارد الحاسوب بالشكل الأمثل، ومن السهولة أن تمر الأخطاء دون الانتباه إليها. فهي مناسبة للتطبيقات التي لا يكون للأداء فيها أولوية. هذه اللغات رائجة في مجال تطوير الويب، حتى أن أحدها، JavaScript، هي اللغة الوحيدة التي يمكن تنفيذها مباشرة من متصفح إنترنت، مما ساهم بانتشارها كأحد أكثر اللغات المُربحة حتى الآن. تستخدم عادة من أجل المساوئ الميزات اللغة تطبيقات الواجهة الخلفية Backend ألق نظرة على Ruby on Rails - قد تؤدي المرونة الزائدة إلى كثير من الغموض حول ما يتم فعليًا - الأداء البطيء يجعلها غير مناسبة للتطبيقات المتقدمة. - قواعد كتابة شديدة المرونة. - سهلة البدء بها. - الطلب العالي عليها يؤمن الكثير من الوظائف. Ruby - تطبيقات الواجهة الأمامية، انظر React,Angular, Ember, jQuery . - تطبيقات الخلفية الخلفية، انظر Node.js . - قواعد الكتابة المعقدة قد تجعلها مُربكة أحيانًا. - تشكل تحدي للمبتدئين أكثر من Ruby و Python. - الخيار الوحيد لتطبيق مُضمّن في المتصفح. - ضرورية لكل موقع حديث. - الطلب العالي جدًا يؤمن وظائف كثيرة بمرتبات JavaScript - تطبيقات الواجهة الخلفية، انظر Django. - البحث العلمي والأكاديمي، انظر . SciPy. - الأداء البطيء يجعلها غير مناسبة للتطبيقات المتقدمة. - قابلية منخفضة للتوّسّع Scalling، تصميم اللغة يجعلها غير مناسبة للبرامج الضخمة. - أنيقة، قواعد الكتابة فيها محبوبة من طرف ممارسيها. - سهل البدء فيها. Python اللغات المجمعة Compiled Languagesبعد أن يتم تجميع النص البرمجي، يتم تحويله من نصٍ برمجي يمكن قراءته من قبل البشر إلى نصٍ أمثل للآلة، قبل أن يتم تنفيذه. وتكون النتيجة أسرع وأكثر فعاليّة من اللغات المفسرة. والمجمّع (compiler) الذي يقوم بذلك، عليه كجزء من وظيفته أن يتأكد من أن كل ما في النص البرمجي "منطقي"، وبالتالي يستطيع أن يتعرف ويمنع أنماطًا عديدة من الأخطاء التي تكون اللغات المفسرة عُرضة لها. ولهذا السبب من الصعب اللوذ بالأخطاء أو البرامج السيئة مع هذه اللغات. كما ستُجبرك على اكتساب فهمٍ أعمق لما يجري فعلًا "تحت الغطاء"، وستتعلم أكثر بكثير عن كيفيّة عمل الحاسوب. والثمن، هو أن هذه اللغات تتطلب الكثير من الجهد، وتشكل تحديًا أكبر للمبتدئين. تستخدم اللغات المجمعة في التطبيقات التي تتطلب أداءًا وموثوقية، ويتضمن ذلك التطبيقات المضمنة، التي تعمل على عتادٍ ذو قدرات محدودة وتطبيقاتٍ ضخمة ومعقدة، حيث يؤدي خطأٌ صغير إلى كوارث ضخمة. تستخدم عادة من أجل المساوئ الميزات اللغة - أنظمة التشغيل. - ألعاب الفيديو المتطورة. - النظم المضمنة. - علم الروبوت والذكاء الصنعي. غالبًا الأكثر صعوبة للتّعلم في هذه القائمة. - بإمكانها توفير أداء أفضل أي من اللغات عالية المُستوى. - أكثر اللغات التي ستعلمك كيفية عمل الحاسوب. C - تطبيقات المشاريع الضخمة. - تطوير الويب. - تطوير تطبيقات الأندرويد. - قواعد الكتابة المعقدة قد تكون مرهقة للقراءة والعمل. - يعتبرها الكثيرون قديمة الطراز، غير مرنة وشعبيتها آخذة بالانخفاض. - بشكل عام، اللغة الأكثر استخدامًا. - صرامة الكتابة تفرض طريقة تفكير واضحة وفعّالة. Java HTML و CSS ليست لغات برمجةيجب الإشارة إلى أن HTML و CSS المستخدمة في كل صفحات الويب التي سبقت لك زيارتها ليست بلغات برمجة. إنما هي لغاتٌ وصفية presentational languages، تستخدم لتحديد كيف يجب أن تبدو الأشياء وماذا يجب أن تتضمن، ولكن لا تحدد كيف يجب أن تتصرف. ولكنها قد تكون مكانًا جيدًا للبدء لأنها سهلة التعلم، وستعلمك كيف تقوم بطباعة الأشياء بشكلٍ صحيح. وإذا كنت تنوي الخوض في مجال تطوير الويب عليك تعلمهما بأي حال من الأحوال. 2. ابدأ بشكل صغيرالتعلم سيأخذ وقتًا، وهنالك الكثير ليتم استيعابه. إذا حاولت بناء تطبيقٍ كامل في يومك الأول، لن تصل إلى نتيجة. كي تجنب نفسك الإحباط، ابدأ بحل مشاكل صغيرة وبسيطة، وتدرّج صعودًا من ذلك. على سبيل المثال، إن أول برنامج يتم كتابته عند تعلم أي لغةٍ جديدة هو برنامج "Hello, World !" (مرحبا بالعالم) والذي يقوم ببساطة بطباعة عبارة "Hello, World !" على الشاشة. وفي معظم لغات البرمجة من المستحيل كتابة برنامجٍ أبسطَ من ذلك. ووضوحًا لا يقدم هذا البرنامج الكثير من الفائدة، ولكنه يستلزم العديد من أساسيات اللغة لكتابته، فهو مثاليٌ لتتعرف على كيفية الكتابة في هذه اللغة. من هنا يمكنك البدء بكتابة برامج تطرح أو تضيف بعض الأرقام، ومن ثم شيئا تطبيقا يقرأ ما يكتبه المستخدم. بعد ذلك يمكنك تعلّم الجمل الشرطية، التي هي طريقة لاتخاذ قرارٍ ما، والحلقات التي تقوم بإعادة تنفيذ مهام معينة. وسرعان ما يصبح بإمكانك كتابة أول كائن Object، ومن هناك تستطيع تجريب بناء تطبيقاتٍ كاملة. 3. كن صبوراقد تشكل المفاهيم الجوهرية للبرمجة تحديًا حقيقيًا. ومعظمها لا يكون بديهيًا إن لم تكن تعلم كيف يعمل الحاسوب بشكلٍ مُعمّق. على سبيل المثال، عندما بدأت بالتعلم وجدت عملية التّنقيح debugging مثيرة للحنق، ولم أشعر أنها برمجة حتى. فعوضًا عن كتابة نصٍ برمجي جديد يقوم بأشياء جديدة ظريفة، كنت أمضي يومًا كاملًا في قراءة نصي البرمجي في محاولة لفهم أين أخطأت هذه المرة. في النهاية أكتشف أنني نسيت أن أضع فاصلةً منقوطة في مكانٍ ما، أو أني استخدمت عدة فراغاتٍ عوضًا عن فراغٍ واحد، وحين يصبح برنامجي جاهزًا للعمل يكون قد انتهى اليوم، وأشعر أني غبيٌ جدًا، وأن ما أقوم به هو إضاعة للوقت. سيحصل هذا الأمر معك، ويدفعك إلى الجنون. ولهذا فإن أحد عوامل النجاح هي أن تكون صبورًا، ولا تقسُ على نفسك. وتوصي بعض أفضل النصائح في هذا الموضوع أن تركز على العملية وليس الأهداف. فإن قمت بالتركيز على الهدف النهائي ("أريد بناء موقع في نهاية الشّهر القادم") سوف تشعر بالإحباط، وبأنك فاشل. بينما من خلال السماح لنفسك أن تأخذ كل الوقت اللازم لتحرزَ تقدمًا، سوف تحقق نجاحًا أكبر. 4. تدرب تدرب تدربومثل أية مهارة، سوف يتحسّن مستواك من خلال التدريب. لا يوجد شيء مماثل للجهد المبذول في شيء في سبيل تعلم القيام به. حتى لو خصصت بضعة ساعات أسبوعيًا، إن استمريت بالتدرب بانتظام، سوف تتمكن، يومًا ما، من كتابة البرامج. في النهاية سوف تكتسب حدسًا للأمور، وسيصبح أمرٌ تطلب منك يومًا كاملًا في البدء (مثل البحث عن خطأ ما)، يأخذ فقط بضع ثواني. حين تشعر أنك تمكنت تقريبًا من أساسيات البرمجة، فإن البدء بمشروعك الأول هو طريقةٌ رائعة للتدريب. فكر بتطبيقٍ بسيط ترغب ببنائه، مثل قائمة مهام، أو برنامج آلة حاسبة (مجددًا، ابدأ بشكل صغير)، وجرب القيام به. سيعلمك ذلك كيف تحل مشاكل هيكلية وتصميمية، وبناء أجزاء مختلفة تعمل معًا بشكل جيد. هذه هي المهارات الأساسية التي ستخولك أن تعتبر نفسك مبرمجًا. المراجعوفقًا لأهدافك، أسلوب التعلم الذي ستختاره وأساليبه قد ترغب باستخدام مصادر مختلفة خلال رحلتك. لمساعدتك على اختيار الأساليب المناسبة لك، هذا ملخص لبعض الأدوات التي تستطيع استخدامها، مُرتبة تقريبًا من التعلم الأكثر هيكلية إلى الأقل هيكلية. التعليم المنظم (ذو هيكلية)هذه هي الفئة التي تقدم مدربين، وظائف، اختبارات، درجات، مواعيد نهائية، وعواقب حقيقية في حال لم تضع دراستك في قمة أولوياتك. هذه الخيارات التي ستُجبرك على الذهاب إلى الدرس أو الرسوب في البرنامج. شهادة جامعة رسميةهي الخيار الأكثر كلفة، ولكن بالنسبة لكثيرين، الخيار الأكثر قيمة، ستقدم لك شهادة جامعية رسمية أفضل أساسٍ لحياة مهنية مزدهرة في البرمجية وتقنية الحاسوب. ستتلقى اعترافًا بإنجازاتك على شكل شهادة (أفضلية كبيرة عند دخول سوق العمل). ولكن الأهم من ذلك هو أنك ستتخرج ولديك فهمٌ عميق لكل ما يتعلق بالحاسوب، وقدراتك على كتابة برمجياتٍ فعّالة ومتطوّرة حقيقة، ستعكس ذلك. هذه الأمور التي ستتعلمها غالبًا بشكلٍ معمّق خلال أي برنامج جامعيّ محترم، والذي قد يصعب العثور عليه في أي مكان آخر للتدريب. الدارات الكهربائية – الأساس الفيزيائي لتقريبًا كل عتاديات الحاسوب.الدارات المنطقية الرقمية – كيف يمكن تمثيل الحقيقة والبنى المنطقية باستخدام الدارات.المعالجات الصغرية والأنظمة الحاسوبية – كيف تتحول الدارات المنطقية عند جمعها إلى آلة حاسوبية قابلة للبرمجة. وماذا يحصل على كل تلك الرؤوس المعدنية الصغيرة والأسلاك المطبوعة.أنظمة التشغيل – كيف تبرمج حاسوبًا ليدير، ينظم، يحمي نفسه ويمكّن أكثر من تطبيق من العمل جنبا إلى جنب بشكل آمن.قواعد البيانات – كيف تخزّن وتنسخ كميات كبيرة من البيانات دون خسارتها، إضرارها، أو جعل الوصول إليها مستحيلا.الشبكات – كيف تقوم حواسيب مختلفة وغير مرتبطة بالتحدث مع بعضها البعض.رياضيات متقدمة – متضمنةً الحساب والجبر الخطي. الأمر الأساسي لأي مهنة في المجالات المتطورة والمتقدمة.معالجة الإشارة – كيف تتخطى الحدود بين العالم التماثلي والعالم الرقمي وبالعكس.الأساليب العددية – عندما لا تتوافق مشاكل العالم الحقيقي كليًا مع الحاسوب.سوف ترهقك كلية الهندسة وعلوم الحاسوب، وعليك أن تضحي وتتفانى كي تكملها. ولكن الجائزة تستحق ذلك. جاهدتُ كثيرًا للحصول على شهادتي، ولكن ما يزال يوم قمت بتلقّي شهادتي أحد أكثر الأيام فخرًا في حياتي. الورشات المكثفة Bootcampsظهر مؤخرًا ما يدعى بـ "الورشات المكثفة" لتلبية حاجات أولئك الذين لا يملكون الوقت أو الموارد للحصول على شهادات جامعية، ولكنهم مستعدون للعمل بجدّ والحصول على الحد الأدنى للبدء بحياة مهنية في تطوير البرمجيات. ومن حيث الكلفة والالتزام المطلوب، تقع الورشات المكثفة بين الشهادة الجامعية وخيارات التعليم الذاتي التي سنتحدث عنها بعد قليل. تمتد هذه الورشات بين 8-12 أسابيع من الدراسة المكثّفة وتكلّف حوالي 10،000 US$. يتم تغطية كمية كبيرة من المواد خلال وقت قصير، ستُضطر خلاله بالتضحية بكل التزاماتك الأخرى. ولكنها تعدك بتحضيرك لتصبح قادرًا على تطوير برمجيات بما يناسب العالم الحقيقي، ووضعك على طريق سريع لحياة مهنية في البرمجة. معظم الورشات تحاول تأمين وظيفة لك فور تخرجّك. وهي ظاهرة حديثة. بالتالي من الصعب قياس معدل نجاحهم، وما زال على العديد منهم تطوير سجلٍ مُثبت لتأمين وظائف لخرّيجيهم. وبعد قول ذلك، لا يمكن أن نتوقع إلا أن تتحسن البرامج المتوافرة حاليًا في ظل نمو هذه الظاهرة. طالما تقوم بالبحث بحذر، قد تجد أن هذا الخيار مثاليٌّ بالنسبة لك. معظم الورشات المكثفة هي برامجٌ محليّة، فعليك البحث عن ما هو متوافرٌ في منطقتك. التعلم شبه المهيكلتتزايد المصادر المتوافرة يوميًا لأولئك الذين يعملون بالشكل الأفضل مع عنصر من التنظيم، والإرشاد، ولكن لا يملكون الوقت أو الموارد للالتزام في برنامج جامعيّ، أو ورشة مكثّفة. تتوافر هذه الخيارات عادة كليًا على الإنترنت، والعديد منها هو مجانيٌّ بشكلٍ كامل. ونظرًا لتزايد الطلب على هذه الخدمات، فقد تطورت هذه الأدوات بشكل كبير من حيث التعقيد والقيمة المُقدمة. قادت معظم هذا التطور طبعًا مساقاتٍ MOOCs في تطوير البرمجيات، حيث يقدم تعلّم وتعليم البرمجيات من خلال برمجيات فوائدَ واضحة. مساقات على الإنترنت مفتوحة وضخمة MOOCsإن هذه المساقات هي مصادرٌ هائلة، وتقدم خطواتٍ كبيرة في مجال المساواة وكلفة التعليم. فهي تقدم معظم هيكلية وإرشاد صفوف أعرق جامعات العالم، بشكل مفتوح، في أي مكان، لأي شخص يملك اتصالًا بالإنترنت. والعديد من هذه المساقات مجانيٌّ كليًا، بالرغم من أنه مع مبلغٍ إضافي (وتعهد بالدراسة)، يمكن الحصول على شهادة مُكتسبة للعديد من الصفوف، بشكل مكافئ لشهادة الجامعة. هناك العديد من منصات متوافرة على الإنترنت مع مساقاتٍ يقوم بتدريسها أساتذة من أعرق جامعات العالم، ومنصات اجتماعية بحيث تقوم أنت وزملاؤك حول العالم بمساعدة بعضكم البعض على التعلم. هذه بعض أفضل المصادر: CourseraEdXUdacityيجب أن تعلم، أن هذه المساقات تجري متابعة مكافئة لتلك التي تجدها في الجامعة، لذا كن مستعدًا للعمل بجد لاجتيازها. مواقع تعليمية مرشدةإن كنت تحب الهيكلة والإرشاد ولكنك لا تحبذ المواعيد النهائية، هنالك العديد من المنصات التي تقدم تدريب "خطوة بخطوة" مؤتمت، باستخدام عدة طرق للإيصال. بعضها يستخدم الفيديوهات التعليمية، وأخرى النصوص. يتضمن العديد منها محررات تفاعلية للنصوص البرمجية كي تتدرب ضمن متصفحك. تعطيك هذه مرونة للعمل وفق السرعة التي تختارها، سواءٌ كان ذلك بمعدل نصف ساعة يوميًا، أو عشر ساعات في عطلة نهاية الأسبوع. في حين تطلب العديد من هذه المنصات رسمًا اشتراكيًا للوصول إلى محتواها، تقدم معظمها فترةً تجريبية بحيث يمكن البدء بها فورًا، وتقرر بعد ذلك إن كانت تناسبك أم لا. Kahn AcademyUdemyCodecademyCode AvengersCode SchoolTreehouseLyndaPluralsightهذه قائمة قصيرة فقط، أجر بعض البحث واستكشف ماذا يوجد هنالك أيضًا. التعليم غير المهيكللأولئك الذين يرغبون بالبحث عن طريقهم الخاص، أو تطوير معرفتهم في أوقات فراغهم، دون ضغط الدروس المُهيكلة، تقدم الأدوات التالية مقاربة ذاتية التوجيه. وحتى لو قمت باعتماد أحد المقاربات السابقة، ستجد العديد من هذه المصادر مساعد في تقوية عملية التعلم الخاصة بك، أو منصّة لتتدرب من خلالها. مواقع للتدريبإذا كان هدفك فقط هو حل مشاكل برمجية، فإن الإنترنت ستقدم لك ذلك. تقدم المواقع التالية مجموعات متزايدة باستمرار من تحديات البرمجة، إلى جانب واجهة تفاعلية لكتابة النصوص البرمجية، لحل المشاكل، لتقييم حلولك بشكل آني، وكيف تبدو مقارنةً مع حلول مستخدمين آخرين. Exercism.ioCheckiOCodeChefCodeEvalCodewarsCodilityHackerRankالفيديوهاتأظن أنه من غير العملي تعلم البرمجة بشكل خامل/غير تطبيقي، ولكن إن أردت استيعاب بعض المفاهيم العميقة، بين الاجتماعات ربما، فإن سلاسل المحاضرات هذه هي من أفضل الموجود. إن كنت تحب مثل هذه الأمور ابحث عن مصادر أخرى مشابهة على YouTube والويب. MIT OpenCourseWareStanford University Lecture Seriesالكتبحتى مع كل الروائع التي تقدمها التكنولوجيا، مازال البعض يفضل الاستغراق في قراءة كتاب للوصول إلى فهم أعمق للموضوع. إن كنت تحب التعلم بهذه الطريقة، فهناك الكثير من الكُتب المجّانية المتوفرة على الإنترنت مثل هذه القائمة List of Free Learning Resources. في الختام تعلم البرمجة هو رحلة شخصية جدًا، يبدأ الجميع من مصادر وأهداف مختلفة، ويواجهون تحديات وفرص مختلفة كذلك خلال الطريق. لا تقلق حول ما يقوم به الآخرون أو كيف وصلوا إليه. حتى بالنسبة لبعض المبرمجين ذوي الخبرة، فإن هذه الرحلة لا تنتهي حقًا، فهنالك دائمًا أشياء جديدة يمكن تعلّمها. ترجمة -وبتصرف- للمقال: Learn To Code: Tips and Tools لصاحبه: Nick McCrea. حقوق الصورة البارزة: Designed by Freepik.