عند الانتهاء من قراءة هذا ، ستعرف كيفية الترميز.

ستكون سيئًا في ذلك ، لكن أيا كان.

هذه نسخة مبكرة من فصل من كتاب "عامك الأول في التعليمات البرمجية" ، وهو كتاب عن الإرشادات والنصائح العملية للمطورين الجدد. إذا كنت تفكر في الحصول على وظيفة في مجال البرمجيات ، فتحقق من ذلك على https://leanpub.com/firstyearincode.

هذا ليس دليل ترميز كامل. هذه مقدمة مقدمة إلى ما يكفي من مفاهيم الترميز والكلمات الرئيسية لتنتقل بك من الصفر إلى نص أساسي. إنها قراءة لمدة 30 دقيقة.

أنا أكتب هذا من أجل:

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

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

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

هيا بنا نبدأ.

ما هو برنامج الكمبيوتر؟

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

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

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

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

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

إذا كان هناك أي خلل في هذه التعليمات - أي شيء من الخطأ المطبعي لإكمال التفسير الخاطئ للبيانات - فلن يعمل Twitter. إما أن تظهر رسالة "خطأ" أو تعطل التطبيق أو تعاني في صمت ، وتقوم سراً بأشياء مع بياناتك التي تفضلها.

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

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

أدوات التجارة

تتكون مجموعة أدوات المبرمج عادة من بضعة أشياء:

  • كمبيوتر.
  • اتصال بالإنترنت. تحتاج إلى اتصال بالإنترنت حتى تتمكن من استخدام Google. عندما لا تعرف كيفية القيام بشيء ما (والذي يحدث حوالي 787283493857 مرة في اليوم) ، فأنت Google عليه. عندما يمنحك تطبيقك رسالة خطأ ، فأنت تقوم بذلك من Google. أنت جوجل كل شيء.
  • محرر الكود (أو IDE ، وهو محرر الكود على المنشطات). فكر في الأمر كـ Microsoft Word (أو الأفضل من ذلك ، إدوارد التطبيق) للترميز. يساعدك على تنظيم وتصحيح التعليمات البرمجية الخاصة بك.
  • مترجم أو مترجم فوري. هذا هو البرنامج الذي يقرأ الكود الخاص بك ، ويحاول العثور على الأخطاء حتى يتمكن من إخبارك بها ، ويجمع الكود الخاص بك في حزمة صغيرة لطيفة ، ثم يمررها إلى الكمبيوتر لتنفيذه. إنها تفعل الكثير من الأشياء الأخرى ، ولكن هذه هي الأشياء التي تحتاج إلى معرفتها الآن.
  • زوج جيد من سماعات الرأس. هذه تساعدك على تجاهل الناس حتى تتمكن من التركيز.

ربما لديك بالفعل جهاز كمبيوتر. نظرًا لأنك تقرأ هذا ، فمن المؤكد أن لديك اتصال بالإنترنت ومترجم شفوي (يحتوي Internet Explorer و Google Chrome على مترجمين فوريين). هناك الكثير من برامج تحرير الشفرة المجانية المتاحة على الإنترنت (مثل هذا واحد). لا يمكنني مساعدتك في سماعات الرأس ، ولكن البديل الجيد هو التحديق في الناس حتى مغادرتهم.

إذن أنت كلهم ​​على حق ، أليس كذلك؟

لغات البرمجة

هناك الآلاف من لغات البرمجة في العالم. كثير منهم غبية وغير مجدية. يمكن أن يكون لديك مهنة طويلة وسعيدة تعرف فقط ثلاث أو أربع - ولكن لا تقلق ، فهذا ليس صعباً مثل تعلم ثلاث أو أربع لغات بشرية.

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

لا تحتاج إلى معرفة معنى كل هذه الكلمات. ما تحتاج إلى معرفته هو أن لغات البرمجة ذات النماذج المشابهة عادة ما يكون لها بناء جملة مماثل - أي المفردات والقواعد. لذلك بمجرد أن تتعلم لغة واحدة (مثل جافا سكريبت) ، فأنت بالفعل 75٪ من الطريق لتعلم لغات مماثلة ، مثل بيثون وروبي.

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

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

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

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

وضع البيانات في التعليمات البرمجية

خلفية كافية: دعنا نكتب بعض الرموز. لبنة البناء الأساسية لبرنامج كمبيوتر هو متغير. المتغير هو اسم جزء من البيانات ، مثل رقم أو جملة. يجب عليك تسمية بياناتك.

هناك سببان لتسمية بياناتك:

  1. أنت لا تعرف ما هو عليه مسبقا. هل يعرف Facebook عيد ميلادك قبل كتابته؟ لا بالطبع لأ. يستخدم رمز Facebook اسمًا مثل dummy's_birthday خلف الكواليس (الشرطة السفلية موجودة لأن الأسماء المتغيرة لا يمكن أن تحتوي على مسافات). وهو يربط هذا الاسم بأي عيد ميلاد تكتبه. وبهذه الطريقة ، يمكن أن يكون الكود هو نفسه تمامًا سواء كان عيد ميلادك هو 10 يونيو أو 9 سبتمبر أو 86 ديسمبر. إنه يتحرك فقط في أيام الميلاد في البرنامج حتى يصل إلى كمبيوتر مستودع قبيح.
  2. أنت لا تريد أن تنسى ما يعنيه. لنفترض أن برنامج الكمبيوتر يحتاج إلى معرفة أن 86 ديسمبر ليس تاريخًا حقيقيًا. لذا في مكان ما يجب أن تخبره أن شهر ديسمبر لديه 31 يومًا. 31 رقم ، قطعة من البيانات. ولكن إذا كنت تستخدم الرقم 31 في جميع أنحاء الشفرة الخاصة بك ، وكذلك تستخدم أرقامًا مثل 30 و 28 (لأن الحمد لله ، فلن يكون شهر كانون الأول (ديسمبر) هو الشهر الوحيد) ، فسيكون رمزك مربكًا في القراءة. ما هي كل هذه الأرقام ل؟ لذلك سمها ما شئت. 31 يصبح the_umber_of_days_in_december ، وتصبح الشفرة ذاتية. جميلة.

تتوقع أجهزة الكمبيوتر منك إعلان متغيراتك. إعلان متغير يشبه شهادة الميلاد لجزء من البيانات. تبدو هكذا:

var the_number_of_days_in_december

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

شيء آخر تفعله مع المتغيرات هو تعيينها. هذا هو المكان الذي تعلق فيه الاسم على جزء من البيانات. تبدو هكذا:

the_number_of_days_in_december = 31

الاشياء سهلة. تقوم بتعريف المتغير ، ثم تقوم بتعيينه ، ثم في أي وقت تريد فيه استخدام الرقم 31 في البرنامج ، يمكنك كتابة the_number_of_days_in_december وسيعلم الكمبيوتر ما الذي تعنيه.

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

يمكن أن تعقد المتغيرات أكثر من مجرد أرقام وتواريخ. على سبيل المثال ، يمكنك إعلان سلسلة ، أو جزء من النص:

var great_song_lyrics = 'لا لا لا ، لا لا لا الليلة'

قف. كيرفبول. لقد أعلنت مجرد متغير وخصصته في نفس الوقت. أنا أتحقق من الكفاءة. أحضر هذا الرجل جريب فروت.

الآن يمكنني كتابة great_song_lyrics في شفرتي ، أينما أريد ، وسيعلم الكمبيوتر أنني أقصد "La la la، la la la الليلة". يبدو الأمر وكأننا نتحدث ... في الكود.

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

قد يتم محاذاة هذا إلى الحافة اليمنى أو السفلية للمتصفح.

تأكد من تحديد علامة التبويب "وحدة التحكم". انقر في المساحة الفارغة بجوار الرمز ، واكتب إعلانًا وتعيينًا متغيرًا ، واضغط على Enter:

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

الصيحة! وحدة التحكم (وهو مترجم) يفهم المتغير الخاص بك. تم تقييم المتغير great_song_lyrics (كان مفهومًا) كـ "La la la، la la la الليلة". هذا مثالي (بالمناسبة ، لا يهم إذا كنت تستخدم علامات اقتباس مفردة أو علامات اقتباس مزدوجة "طالما استخدمتها في مطابقة أزواج).

سنتحدث عن أشياء أخرى يمكن للمتغيرات الاحتفاظ بها في ثانية واحدة فقط.

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

أنواع معقدة

شاء

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

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

في التعليمات البرمجية ، يمكنك القيام بذلك مع كائن. الكائن عبارة عن مجموعة من البيانات التي يتم تنظيمها جميعًا معًا. يمكننا أيضًا تسمية هذا بالصفيف الترابطي أو القاموس أو الخريطة. ولكن في معظم الأحيان أقول فقط كائن.

في JavaScript ، يتم تعريف الكائنات وتعيينها مثل المتغيرات الأخرى. إليك كائن مثال:

فار دمية = {
    المعرف: 12884002 ،
    العمر: 28
    الاسم: "بوب" ،
    favorite_song: "الصورة الفوتوغرافية ، بقلم Nickelback"
}

كل جزء من البيانات في كائن يشبه الأرجوحة. الاسم على اليسار ، البيانات على اليمين ، وهناك: في المنتصف للتوازن. في الحقيقة ، كل ما قمنا به هو إعلان أربعة متغيرات: الأولان هما الأرقام ، والآخران عبارة عن سلاسل. لكنهم منظمون معًا حتى نتمكن من العثور عليهم كلما احتجنا إلى معرفة شيء ما عن دمية. وبدلاً من أن نطلق عليها "المتغيرات" ، فإننا نسميها "خصائص" أو "حقول". يمكن أن يحتوي أي كائن على أي خصائص تريدها ، طالما قمت بتجميعها جميعًا داخل {curly brackets}.

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

dummy.id
dummy.name
dummy.age
dummy.favorite_song

كل من هذه تماما مثل أي متغير آخر. يمكننا تخصيص شيء له والإشارة إليه لاحقًا. هل تريد تغيير اسم بوب؟ سهل:

dummy.name = 'Alice'

وهذا هو الذي. إنها ترقية جيدة حقًا ، أليس كذلك؟ من الآن فصاعدًا ، كلما قمت بكتابة dummy.name ، فسيشير إلى "Alice".

المصفوفات

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

مثال جيد هو كل ما تبذلونه من التغريدات الغبية. لا يعرف Twitter عدد التغريدات التي ستكتبها. لقد بدأت في 0 ، وانظر أين أنت الآن. يستخدم Twitter صفيفًا للاحتفاظ بها جميعًا. المصفوفات في JavaScript تشبه هذا:

var dumb_tweets = ["مرحبًا ، Twitter!" ، "أصدقائي رائعون للغاية" ، "هل يريد أحد LaCroix؟"]

تذكر كيف تستخدم الكائنات {curly brackets}؟ استخدام المصفوفات [الأقواس المربعة]. تحتوي هذه المجموعة على ثلاثة سلاسل ، مفصولة بفواصل. ونعم ، إنه متغير تمامًا مثل أي شيء آخر. يمكنك استخدام dumb_tweets في أي مكان في الكود الخاص بك ، وسوف يشير إلى المجموعة التي حددناها للتو.

إذا كنت تريد الإشارة إلى سلسلة محددة في المصفوفة ، فستفعل ذلك كما يلي:

dumb_tweets [0]
dumb_tweets [1]
dumb_tweets [2]

نستخدم اسم المصفوفة ، dumb_tweets ، ثم داخل [الأقواس المربعة] نستخدم رقم (أو فهرس) الشيء (أو العنصر) الذي نريد الإشارة إليه. أعرف أنه من الغريب أن العنصر الأول في الصفيف هو الرقم 0. لكن هذه هي حياتك الآن. من هذا اليوم فصاعدًا ، ستبدأ دائمًا العد عند 0. إنها طريقة المبرمج.

كل تعبيرات أعلاه (تعبير هو أي رمز يتحول إلى جزء من البيانات عند تشغيله) هو متغير. يمكنك تعيين شيء جديد لها ، إذا كنت تريد.

dumb_tweets [2] = 'أنا آسف حرفيًا على كل ما قلته'

كل ما حدث لـ "هل يريد أحد أن يكون لاكروا؟" لقد ذهب إلى الأبد. ابتلعت من قبل الهاوية. G'bye!

يمكن أن تحتوي المصفوفات على سلاسل وأرقام وتواريخ وكائنات وحتى صفائف أخرى. يمكنك وضع المصفوفات داخل المصفوفات داخل المصفوفات داخل المصفوفات.

أي رمز وقت أو بيانات يحصل على كل التهيئة ، هكذا نقول أنها متداخلة.

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

var nested_object = {
    مجموعة: [
        {
            another_array: [
                {
                    بعد آخر: [
                        {
                            الرسالة: "وميض مرتين إذا كنت بحاجة إلى مساعدة"
                        }
                    ]
                }
            ]
        }
    ]
}

للوصول إلى الرسالة ، يمكنك الكتابة:

nested_object.an_array [0] .another_array [0] .yet_another [0] .message

وسيعلم الكمبيوتر أنك تعني "وميض مرتين إذا كنت بحاجة إلى مساعدة".

الكائنات (تابع)

جزء إضافي ثلاثي ، ومن ثم يمكننا الانتقال إلى الأشياء الممتعة.

كل شيء في جافا سكريبت يعد كائنًا سراً (لا تخبر! سيكون والداه مجنونين). على سبيل المثال ، تحتوي مجموعة dumb_tweets على خاصية لم نعلنها مطلقًا:

dumb_tweets.length

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

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

الوقت لقصة المعسكر مخيف.

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

Sheesh ، كانت مجرد قصة. اهدأ.

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

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

كيف يمكنك استخدام هذا الرمز غيبوبة؟ نسخ و لصق؟ في بعض الأحيان ، نعم ، ولكن ليس في كثير من الأحيان. في معظم الأحيان ، ستتمكن من الوصول إليه من خلال واجهة برمجة التطبيقات. واجهة برمجة التطبيقات (API) عبارة عن مجموعة مجمعة من الخصائص والأساليب (أجزاء من التعليمات البرمجية المبنية لهذا الغرض) تتم تسميتها ، مثل المتغيرات ، بحيث يمكنك الرجوع إليها باسمها والسماح لها بالقيام بعملها. يفعلون جميع أنواع الأشياء المفيدة لك.

صفائف JavaScript لها واجهة برمجة تطبيقات خاصة بها. الخاصية طول جزء من API هذا. جزء آخر منه هو طريقة الدفع ، التي تضيف عنصرًا إلى نهاية الصفيف:

dumb_tweets.push ("رجل أكره المواقف الجيدة")

الطريقة تشبه خاصية لأنك تصل إليها بنقطة. طريقة مختلفة عن خاصية لأنه يجب عليك وضع (الأقواس) بعد ذلك. تحتفظ هذه الأقواس بالبيانات التي نريد إضافتها إلى صفيفنا. الآن dumb_tweets أربعة عناصر. تبدو هكذا:

["مرحبًا يا Twitter!" ، "أصدقائي رائعون للغاية" ، "أشعر بالأسف حرفيًا لكل ما قلته من قبل ،" رجل أكره المواقف الجيدة "]

تذكر أن فهرس هذا العنصر الأخير هو 3 (لأنك بدأت العد عند 0) لذلك يمكنك الإشارة إليه باسم dumb_tweets [3]. وسيتم الآن تقييم dumb_tweets.length إلى 4.

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

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

المهام

وظيفة هي كلمة أخرى للطريقة. إنه مجرد رمز يقوم بشيء وله (عادة) اسم. من السهل الإعلان عن الوظائف في JavaScript:

وظيفة GiveMeOne () {
    عودة 1
}

نبدأ مع وظيفة الكلمة. ثم نعطي الوظيفة اسمًا ، تمامًا كما لو كنا نعلن عن متغير (هنا استخدمت الحروف الكبيرة ، بدلاً من الشرطة السفلية ، لفصل الكلمات). ثم نستخدم الأقواس (سترى السبب في الثانية). ثم نستخدم {curly brackets}. داخل الأقواس المعقوفة توجد جميع أسطر التعليمات البرمجية التي نريد تنفيذها كلما تم استدعاء الوظيفة (كلما أشار تعبير إليها بالاسم).

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

var the_loneliest_number = GiveMeOne ()

هذا ليس صعبًا جدًا ، أليس كذلك؟ نعلن متغير اسمه the_loneliest_number. يستدعي جزء المهمة في بياننا GiveMeOne () ، وحيث أن هذه الوظيفة تشير إلى الإرجاع 1 ، فإن حرف 1 يخرج. لذلك سوف يحتفظ المتغير لدينا بالرقم 1. تابع وقم بتنفيذ كلتا الكتلتين من التعليمات البرمجية في وحدة تحكم المتصفح. ثم اكتب the_loneliest_number ، واضغط على Enter ، وسترى أنه يتم تقييمه على الرقم 1.

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

GiveMeOne () هو نوع من مثل dumb_tweets.push (). الاختلافات الرئيسية هي:

  1. GiveMeOne () هي وظيفة كتبناها بأنفسنا. push () هي وظيفة كتبها بعض الغرباء. لا بأس ، فهم لا يمانعون إذا استخدمناها.
  2. push () عبارة عن طريقة dumb_tweets (وأي صفيف آخر سننشئه على الإطلاق). GiveMeOne () عالمي ، وهذا يعني أننا لسنا بحاجة إلى الرجوع إلى كائن معين من أجل استخدامه.

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

الوظيفة addTheseNumbersTogetherPlz (number1 ، number2) {
    إرجاع رقم 1 + رقم 2
}

هذه الوظيفة لا تختلف كثيرا عن GiveMeOne (). ولكن بدلاً من الأقواس الفارغة ، تحتوي هذه الأسماء على أسماء متغيرة ، مفصولة بفاصلة. هذه هي حججنا. تعمل عبارة الإرجاع تمامًا كما تبدو ، فهي تضيف الرقم 1 والرقم 2 معًا ، ثم تنبثق النتيجة. يمكنك استدعاء الوظيفة مثل هذا: addTheseNumbersTogetherPlz (3 ، 4). وسوف تخرج 7.

أوه! الرياضيات! مخيف ، أليس كذلك؟ تتيح لك جميع لغات الترميز تقريبًا كتابة تعبيرات الرياضيات بالطريقة نفسها التي استخدمتها لكتابتها في تلك الآلات الحاسبة TI الخفية التي استخدمتها في المدرسة الثانوية. يمكنك استخدام + لإضافة ، - للطرح ، / القسمة ، * للتضاعف ، (الأقواس) لفرض ترتيب العمليات ، ٪ للحصول على ما تبقى من التقسيم ، و ^ لنمو ربطة العنق على الفور (لا ، لا لا تفعل الأس ، فأنت بحاجة إلى واجهة برمجة تطبيقات لذلك).

يمكنك أيضًا كتابة الوظيفة بهذه الطريقة:

الوظيفة addTheseNumbersTogetherPlz (number1 ، number2) {
    فار سوم = رقم 1 + رقم 2
    المبلغ المقابل
}

هذه الوظيفة تفعل بالضبط نفس الشيء. ويستخدم فقط متغير اسمه المبلغ كوسيط.

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

يجب أن تكون البرامج مكتوبة لكي يقرأها الأشخاص ، وأن يتم تنفيذها بالمناسبة. ~ هارولد أبيلسون

الفروع والمقارنات المنطقية

هذا هو المكان الذي يحصل فيه الكود على المزيد من المتعة. (كان ممتعا بالفعل.)

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

يجب أن تستجيب البرامج للمواقف المختلفة. لديهم لاتخاذ القرارات. وهذا هو المكان الذي تحدث فيه الأشياء مثل:

لنفترض أننا نكتب تطبيقًا يحدد ما إذا كان مسموحًا لشخص معين بدخول ملهى ليلي. تظاهر أن هناك طريقة في JavaScript API تحصل على عمر المستخدم. سنطلق عليه getUserAge (). سوف نتخيل أيضًا أن هناك طريقتين أخريين ، السماح لـ ThemInTheNightclub () و throwThemOutOnTheirButt (). كيف يمكننا أن نساعد برنامجنا على تحديد أي من هاتين الطريقتين الأخيرتين للاتصال ، بناءً على القيمة التي تم إرجاعها من الطريقة الأولى؟

فار العمر = getUserAge ()
إذا (العمر> = 21) {
    allowThemInTheNightclub ()
} آخر {
    throwThemOutOnTheirButt ()
}

ترى كيف لطيف المحاذاة على الجانب الأيمن؟ monotype للفوز.

أنت تعرف بالفعل ما يفعله السطر الأول. سن يحمل قيمة مثل 13 أو 21 أو 101. الآن نحن بحاجة إلى معرفة: هل سن 21 أو أكثر؟ إذا كان الأمر كذلك ، فيمكنهم الاحتفال بعيدًا. إذا لم يكن الأمر كذلك ، فسوف يحتاجون إلى المغادرة.

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

  • === (ثلاث علامات متساوية) تقارن القيم على كلا الجانبين لمعرفة ما إذا كانت متساوية تمامًا. إذا كانوا متساوين ، فإن النتيجة صحيحة. 6 === 6 سيكون صحيحا.
  • ! == يقارن القيم الموجودة على كلا الجانبين لمعرفة ما إذا كانت غير متساوية تمامًا. إذا لم تكن متساوية ، فإن النتيجة صحيحة. 6! == 3 سيكون صحيحا.
  • > يتحقق لمعرفة ما إذا كانت القيمة على الجانب الأيسر أكبر من القيمة على الجانب الأيمن. 6> 3 سيكون صحيحا.
  • <يتحقق لمعرفة ما إذا كانت القيمة على الجانب الأيمن أكبر من القيمة على الجانب الأيسر. 3 <6 سيكون صحيحا.
  • > = يتحقق لمعرفة ما إذا كانت القيمة على الجانب الأيسر أكبر من أو تساوي القيمة على الجانب الأيمن. 6> = 6 و 6> = 5 كلاهما صحيح.
  • <= يتحقق لمعرفة ما إذا كانت القيمة على الجانب الأيمن أكبر من أو تساوي القيمة على الجانب الأيسر. 6 <= 6 و 6 <= 7 كلاهما صحيح.

إذا كانت البيانات تقيّم المقارنة التي تعطيها لهم. إذا تم تقييمه إلى صواب ، فسيقومون بتنفيذ التعليمات البرمجية داخل الكتلة الخاصة بهم (خطوط التعليمات البرمجية داخل {curly brackets}). إذا تم تقييمها إلى "خطأ" ، فإنها تخطي هذا الرمز.

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

مهلا ، لقد قدمنا ​​لتوه الحارس (تم استبداله برنامج كمبيوتر). أليس هذا شعور جيد؟

الحلقات

في بعض الأحيان ، لا سيما عند العمل مع صفيف ، تريد تنفيذ مجموعة من التعليمات البرمجية عدة مرات متتالية. ليس هذا هو الوقت المناسب لاستخدام النسخ واللصق. بدلاً من ذلك ، يجب عليك استخدام حلقة. أبسط أنواع الحلقة في JavaScript هي حلقة من الوقت:

var the_real_slim_shady = ["اسمي" ، "اسمي" ، "اسمي" ، "واكا وا سليم شاديي"]
فار مؤشر = 0
بينما (الفهرس 

بينما تستخدم الحلقات نفس بناء الجملة كما لو كانت عبارات. يمكنك استخدام الأقواس ، وتمرير في المقارنة ، ومتابعته مع كتلة. لكن كتلة if تنفذ فقط الشفرة بداخلها مرة واحدة (أو صفر مرات ، إذا تم تقييم المقارنة إلى false). كتلة بينما ينفذ الكود بداخله مرارا وتكرارا حتى الشرط غير صحيح. وهذا هو ، فإنه يقيم الحالة ؛ إذا كان هذا صحيحًا ، فإنه ينفذ الكتلة ؛ ثم يقيم الحالة مرة أخرى ؛ إذا كان هذا صحيحًا ، فإنه ينفذ الكتلة مرة أخرى ؛ ثم يقيم الحالة مرة أخرى ؛ وهلم جرا ، إلى الأبد. لقد اخترعت واجهة برمجة تطبيقات وهمية هنا تحتوي على طريقة rap () ، ولكن كل شيء آخر هو JavaScript عادي.

كم مرة سوف تنفذ الحلقة؟ حسنًا ، في المرة الأولى التي تقوم فيها بتقييم المقارنة ، تتحقق لمعرفة ما إذا كان الفهرس (وهو 0) أصغر من the_real_slim_shady.length (وهو - تابع ، عدهم - 4). بما أن المقارنة صحيحة ، فإنها تنفذ الكود ، الذي يغتصب the_real_slim_shady [0] ، لأن الفهرس لا يزال 0. ثم يحدث السحر: يتغير الفهرس إلى الفهرس + 1 ، أو 0 + 1 ، وهو 1. ثم يقوم بتقييم التعبير مقارنة مرة أخرى. لا يزال الرقم 1 أقل من 4 ، لذلك ينفذ الكتلة مرة أخرى - لكن هذه المرة ، بما أن الفهرس هو 1 ، فإنه يغتصب the_real_slim_shady [1]. احصل عليه؟ سيتوقف تنفيذ الكتلة عندما يساوي الفهرس 4 ، وهذا أمر جيد لأن the_real_slim_shady [4] غير موجود. عندما تعمل حلقة على عناصر متعددة في صفيف ، فإننا نقول إنها تكرار.

لاغية وغير محددة

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

يحتوي JavaScript أيضًا على قيمة خاصة تسمى null. وهذا يعني تقريبا نفس الشيء غير معرف. في الحقيقة لم يكن يجب عليهم تضمين الكلمتين في اللغة. لكنهم فعلوا وبعد فوات الأوان.

نطاقات

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

يعمل whatHappensInVegas () {
    var wildIndiscretions = ['partied'، 'dancing']
    عودة "أنا لا أعترف بشيء"
}
whatHappensInVegas ()
whatHappensInVegas ()
whatHappensInVegas ()
إذا (wildIndiscretions.length> 0) {
    الحصول على الطلاق()
}

لدينا وظيفة بسيطة جدا. تعلن المتغيرات البرية المتنوعة ، لكنها لا تعيدها. العالم الخارجي لا يعرف شيئًا عن ذلك! لقد قمنا بتشغيل الوظيفة ثلاث مرات ، لأننا شباب ومليئون بالقدرة على التحمل. تحاول عبارة if اقتحام الحياة الشخصية للوظيفة ، لكنها لا تستطيع ذلك. لن يتم تنفيذ الكود الموجود داخل كتلة if. في الواقع ، ستؤدي المقارنة wildIndiscretions.length> 0 إلى حدوث خطأ (لن تنجح وستظهر لك رسالة توضح السبب) لأن wildIndiscretions غير معرف خارج الوظيفة whatHappensInVegas. ليس لديها أي خصائص ، ناهيك عن الطول.

ومع ذلك ، إذا قمت بنقل ذلك إذا تم حظره داخل كتلة الوظيفة (قبل بيان الإرجاع ، بالطبع) ، فسيتمكن من الوصول إلى التقديرات البرية. آمل أن يكون لديك prenup ، بوب!

تعليقات

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

الوظيفة حتي (العدد) {
    // تحدد هذه الوظيفة ما إذا كان "num" متساويًا أم غريبًا.
    // إذا كان الأمر كذلك ، فإنه يعود صحيحًا. إذا كانت غريبة ، فإنها ترجع كاذبة.
    // TO DO: أضف وسيطة ثانية تتيح لك تحديد
    // رسالة ليتم عرضها إذا كان "num" غريبًا.
    العائد (الأسطوانات٪ 2) === 0
    // مهلا ، يو ، افعلها مثل إسحاق
    / / إذا لم تكن معي ، فالطفل ليس من الحكمة
}

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

يا شجرة جوجل ، يا شجرة جوجل ...

آخر وأهم شيء يمكنني تعليمه هو: عندما لا تعرف كيفية القيام بشيء ما ، انتقل على الفور إلى google.com واسأل. كرم مجتمع البرمجة سيذهلك. شارك الآلاف من المطورين في جميع أنحاء العالم بحرية شفراتهم ومعرفتهم على مواقع مثل GitHub و Stack Overflow ، مما يعني أن كل ما تحتاجه لتصبح خبيراً في أي لغة برمجة هو اتصال إنترنت ثابت وقدرة على القراءة.

استفسارات Google الجيدة تأخذ القليل من التدريب على الكتابة. القالب الجيد هو شيء مثل هذا:

[لغة البرمجة] كيفية [شيء]

على سبيل المثال ، هل تريد معرفة كيفية إزالة عنصر من صفيف في JavaScript؟ لن أعلمك. حاول كتابة هذا في Google: "JavaScript كيفية إزالة عنصر من صفيف". يجب أن تعطيك النتائج القليلة الأولى جميع المعلومات التي تحتاجها (مع أمثلة!)

نتيجة الجمع بين الطريحة والنقيضة

تستخدم معظم التطبيقات واسعة النطاق جميع المفاهيم والكلمات الرئيسية التي وصفتها. يتكون الكود الخاص بهم من آلاف إلى آلاف أسطر الكود ، وكلها مبنية من هذه العناصر الأساسية نفسها. إذن ماذا يفعلون؟

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

صانع الجليد هو تشبيه جيد لبرنامج كمبيوتر. مدخلاتها هي المياه والكهرباء (تأتي من API المعروفة باسم "المرافق البلدية"). ناتجها هو الجليد (الذي يتم تقديمه إلى API المعروفة باسم "كوب طويل القامة من كوكاكولا"). هل تهتم بما يحدث في الوسط؟ ليس الآن ، ما دمت تحصل على الجليد دون الكثير من المتاعب. ولكن في يوم من الأيام سوف ينهار صانع الجليد. وأي شخص يتعين عليه إصلاحه ، سوف يهتم كثيرًا بمدى سهولة مكوناته الداخلية القوية والمتينة والبناء عليها.

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

استنتاج

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

قد لا تزال تشعر أنك تفتقد إلى بعض المعلومات الحيوية. و انت. لكنك لن تتعلم كل شيء مطلقًا ، وهذه بداية جيدة.

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

حظا طيبا وفقك الله!

قراءة متعمقة

  • كيف تفكر كعالم كمبيوتر ، ألن داوني ، جيفري إلكنر وكريس مايرز. هذه نسخة مكتوبة جيدًا وشاملة (ولكن يمكن القول أنها أقل إمتاعًا) لما كتبت هنا ، موجهة نحو لغة برمجة بايثون.

اقرأ هذه القصة في وقت لاحق من مجلة.

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