أجهزة الكمبيوتر شبابيك إنترنت

لغة رفيعة المستوى لكتابة البرامج. اختيار لغة البرمجة. مستويات لغة البرمجة

لغات البرمجة المختلفة ومجالات تطبيقها. محاضرة في ياندكس

قررنا تكريس أول مشاركة لنا هذا العام لموضوع أساسي للغاية ، محاضرة تم إلقاءها في Small SHAD. يشارك طلاب المدارس الثانوية المهتمون بالتكنولوجيا في ذلك ، ومن هنا تأتي خصوصية العرض التقديمي - ستكون المحاضرة مثيرة للاهتمام بشكل خاص لأولئك الذين بدأوا للتو في البرمجة ويفكرون في الاتجاه الذي سيطورون فيه. بالنسبة لهم ، لدى Yandex دورة تدريبية بعنوان "مقدمة في البرمجة (C ++)" ، والتي يمكن أخذها على منصة Stepic.org.

نطاق البرامج والتطبيقات

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

المحاضر ميخائيل جوستوكاشين - أمين البرامج الأكاديمية في Yandex ، مدير مركز أولمبياد الطلاب ، كلية علوم الكمبيوتر ، HSE. قام ميخائيل بتدريب العشرات من الفائزين والفائزين بجوائز أولمبياد البرمجة لعموم روسيا.

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

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

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

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

تاريخ لغات البرمجة

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

حسنًا ، كيف جعل الحياة أسهل؟ بدلاً من تذكر أن هناك نوعًا من الشفرة "السحرية" للفريق ، تم استخدام جميع أنواع الكلمات المشابهة لكلمة "إنسان" إنجليزي- البعض يضيف أو يحرك - ثم تم تعداد السجلات أو مناطق الذاكرة ، المتغيرات التي يجب تنفيذ هذه العمليات بها. ولكن من الواضح أن هذا ، بشكل عام ، يتطلب أيضًا قدرًا كبيرًا بما يكفي من الجهد الذهني لتذكر ما هو السجل الذي لدينا ما يكمن ، وأين المتغيرات وما يحدث بشكل عام. لماذا حدث هذا؟ لأن أجهزة الكمبيوتر كانت "غبية" ولم تستطع فهم أي شيء أكثر "ذكاء". في الواقع ، يستغرق تجميع كود الآلة من المُجمِّع أيضًا وقتًا ، وذاكرة (في ذلك الوقت ، بالطبع ، لم يكن هناك ما يكفي منه).

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

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

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

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

اللغات القديمة والميتة

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

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

ما هي لغات البرمجة؟

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

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

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

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

لغات قديمة لكنها حية

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

أساسي. ربما لا يزال بعض الناس يكتبون شيئًا ما عليها ، وفقًا لـ على الاكثرلقد رأيت ذلك في بعض المؤسسات التعليمية يقومون بالتدريس في QBasic - مثل هذه النافذة الزرقاء حيث تقول "1989". بشكل عام ، يعيش "مع القوة والرئيسية"! تم اختراعها كلغة لغير المبرمجين. في ذلك الوقت ، كان المبرمج مهنة متخصصة للغاية. وهنا يقولون لك: "لدينا هنا لغة أساسية رائعة ، وأي شخص عاقل يأخذ برنامجًا ويكتب فيه - بسهولة". مرة أخرى ، أن BASIC و BASIC الحديث يمثلان فرقًا كبيرًا. كل هذه الأسطر مرقمة كل 10 ، وجميع أنواع GOTO وغيرها من الرعب - ليس لها علاقة بـ BASIC الحديث ولا علاقة لها بـ BASIC of 89.

تاريخ لغات البرمجة

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

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

ما هي لغات البرمجة؟

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

ما هو الفرق بين لغات البرمجة العليا والسفلى

أولاً ، لغات البرمجة الأعمق أقرب إلى أكواد الآلة وعادة ما يتم تجميعها.

وأخيرا ،. اخترع المهندسين Xi. إذا اخترع عالم باسكال ، ثم اخترع Cernighan و Ritchie ، فقد عملوا كمهندسين في Bell. كيف حدث ذلك؟ في ذلك الوقت ، كان من المستحيل كتابة أي شيء منهجي بهذه اللغات (يشير المحاضر إلى Fortran و COBOL و Algol). ما هو "النظامي"؟ على سبيل المثال ، نظام تشغيل ، بعض برامج التشغيل ، شيء آخر. كانت هذه اللغات للرياضيات ، للأعمال التجارية ، لكل تلك الأشياء. وكل شيء آخر كتب في المجمع. كانت هناك بعض اللغات ، لقد ماتوا الآن ، أي أن لغة C لم تظهر على الفور من Assembler ، ولكن من خلال بعض الأشياء الوسيطة.

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

ما هو الجوهر؟ أحب Kernighan و Ritchie لعب لعبة Asteroids - مركبة فضائية تطير ، وهناك كويكبات ، أطلق عليها الرصاص ، وانهارت. كان لديهم خادم يلعبون عليه ، ولكن كان هناك الكثير من الأشخاص ، وكانت اللعبة تتباطأ. واكتشفوا في مكان ما في مكاتبهم أن لديهم نوعًا من الكمبيوتر لا يستخدمه أحد. ولكن كانت هناك مشكلة - كانت بنية مختلفة ، وكانت اللعبة مكتوبة بلغة Assembler.

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

ما هو المطلوب للبرمجة؟

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

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

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

ما هي العناصر الموجودة في لغة البرمجة؟

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

وفقًا لذلك ، كانت هي اللغة الرئيسية في Unix - وهو نظام تشغيل كان أكثر شيوعًا في ذلك الوقت مما هو عليه الآن. وبحلول الثمانينيات تقريبًا ، كان الوضع شيئًا من هذا القبيل (يظهر المحاضر بلغات Basic و C واللغات الأخرى المذكورة). لنفترض أن كل هذا قد مات بالفعل على الخبيث (المحاضر يمسح الإشارات إلى Assembler و Fortran و Algol) ... وفي الثمانينيات ، أصبحت أجهزة الكمبيوتر أصغر حجمًا وأكثر ذكاءً وأرخص ثمناً ، وأراد الناس كل أنواع الشذوذ ، بالترتيب لتعيش بشكل أفضل ، لتعيش أكثر متعة.

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

ما هي لغة البرمجة

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

لغات موطنها الثمانينيات

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

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

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

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

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

لغات البرمجة من التسعينيات

لكن الوقت لم يتوقف ، في الثمانينيات حدثت الكثير من الأشياء المثيرة للاهتمام. لكن في مكان ما في مطلع الثمانينيات والتسعينيات ، أصبحت أجهزة الكمبيوتر جيدة جدًا لدرجة أنه كان من الممكن بالفعل القيام بأشياء غريبة جدًا وغير فعالة للغاية. على وجه الخصوص ، كانت هذه لغات برمجة نصية لم يتم تجميعها في كود الآلة ، ولكن تم تفسيرها. تم تفسير BASIC أيضًا في وقت ما ، لكن لغات البرمجة النصية هذه كانت مخصصة أساسًا لمعالجة النصوص - على سبيل المثال ، Perl و Python (لم تكن مشهورة جدًا في ذلك الوقت) و PHP و Ruby - هذه هي لغات البرمجة النصية الموجودة في واحد أو بدرجة مختلفة لا يزالون يعيشون (تمكنوا جميعًا من الظهور قبل عام 2000 ، حتى قبل ذلك بكثير).

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

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

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

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

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

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

بايثون وروبي: روبي أقل شهرة الآن ، وبايثون أفضل نوعًا ما "قطع" ، فلنتحدث عنها لاحقًا. من الواضح أنه في تلك الأيام (يشير المحاضر إلى Perl و Python و Ruby و PHP) كانت هذه اللغات عالية التخصص لأغراض عالية التخصص. بشكل عام ، لم يكن هناك برمجة نظام ، ولم يتم كتابة أي منطق عمل فيها في ذلك الوقت ، والآن لا تفعل الكثير منها.

اللغات المترجمة من التسعينيات

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

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

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

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

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

هذا هو ، إذا كان في C ، في C ++ ، في Python ، في أي شيء ، يمكننا حل نوع من القمامة المخيفة من مشروعنا ، حيث لدينا كل شيء مختلط ، مجمّع لساعات وهناك شيء آخر. في Java ، يمكنك أيضًا إذابة سلة المهملات ، لكن لهذا تحتاج بالفعل إلى بذل بعض الجهد. وهذا يعني ، افتراضيًا ، أنه لا يتحول إلى "كومة قمامة" ، فقد تظهر مشاكل أخرى ، أن شيئًا ما قد ورث أو موروث هناك - بشكل عام ، بالنسبة لخط واحد ذي معنى ، هناك عشرة غير ذات مغزى. من ناحية أخرى ، ربما يمكن لمبرمج متوسط ​​المهارة كتابة رمز عالي الجودة إلى حد ما.
نحن على وشك الانتهاء. معنا ، الشيء التالي الذي ظهر هو .Net (سيصل) ، حسنًا ، وعلى وجه الخصوص نحن مهتمون بـ C # (تقريبًا نفس الشيء [يشير المحاضر إلى Java] ، أي أن هناك اختلافات في التفاصيل ، إذا تختار بينهم - انظر أين تدفع المزيد من المال).

وشيء آخر هو JavaScript. لا علاقة له بلغة جافا ، التي ظهرت في نفس العام - كانت الكلمة عصرية ، مرخصة العلامة التجاريةليستخدم.

ما هو الشيء الرئيسي الذي يجب الانتباه إليه؟ (يرسم المحاضر الأسهم من C ++ إلى Java و .Net و C # و JavaScript و PHP). لكتابة برنامج بسيط بإحدى هذه اللغات ، وفي كثير من اللغات الأخرى - إذا كنت تعرف C ++ ، فلن تحتاج عمومًا إلى معرفة أي شيء آخر - تأخذ وتكتب بلغة C ++ ، ثم تضيف دولارات في البداية ، هناك شيء آخر يفعل الأشياء الصغيرة ويبدأ في العمل من أجلك على أي شيء (يشير المحاضر إلى اللغات التي تم تخصيص الأسهم من C ++ لها). أي أنها متشابهة للغاية في بعض الأشياء البسيطة. إذا قمت بحل بعض المشكلات المدرسية ، أو المهام التعليمية ، أو شيئًا آخر (أنت لا تصمم مشروعًا كبيرًا - لديك ملف واحد يقرأ الأرقام ، ويعرض الأرقام في وحدة التحكم ، ويفعل شيئًا آخر) ، فلا يوجد فرق تقريبًا بين هذه اللغات. من الواضح أن JavaScript و PHP متخصصان ، ولديهما كل شيء بشكل مختلف قليلاً. وهنا (يشير المحاضر إلى Java و C #) يوجد اختلاف بسيط جدًا بشكل عام.

منذ ذلك الحين ، ظهرت كل أنواع الأشياء الأخرى المثيرة للاهتمام ، لكن ليس من الواضح ما إذا كانت ستعيش أو تموت بنجاح. ما الذي يستخدمونه الآن ، لأي مهام؟

اختيار اللغة حسب المهمة

لنفترض أنك تواجه مهمة كتابة برنامج تشغيل لبطاقة فيديو. ما اللغة التي ستستخدمها اليوم؟ (صرخ من الجمهور: جافا!) لماذا ... جافا رائعة ، ولكن لماذا لا تستخدم لغة Ruby أو PHP؟ (المحاضر يتكلم بسخرية).

البرمجة منخفضة المستوى

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

برمجة الويب

لنفترض أنك تريد كتابة Facebook جديد ( شبكة اجتماعية). على ماذا ستكتب هذا؟ (من الجمهور الذي يتحدثون عن HTML و CSS.) HTML ، CSS هو التصميم ، ونريد أن نكون قادرين على إضافة الصور والأصدقاء وترك التعليقات هناك.

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

والمثير للدهشة أنه مكتوب بلغة PHP - و Facebook والعديد من المشاريع الكبيرة الأخرى. بالطبع ، كان علي أن أكتب بعض الأشياء الخاصة بي بحيث لا تزال تعمل بشكل جيد ، وليس مثل "خطأ tyap-blooper" ، لكنهم فعلوه. في الأساس ، لا يهم حقًا ما تكتبه ، لكنني لا أوصي بـ Perl. هنا والآن ، بالطبع ، لا أحد يكتب أي شيء من الصفر للويب. الجميع يكتب نوعًا من الإطار أو شيء من هذا القبيل. التسوق عبر الانترنت؟ لقد قمنا بتنزيل إطار عمل لمتجر عبر الإنترنت - حسنًا ، لقد كتبنا متجرًا عبر الإنترنت.

برمجة الأعمال

بعد ذلك ، تريد كتابة بعض التطبيقات المصرفية الممل. أو ، على سبيل المثال ، هل لديك شخص يبيع بطاقات sim؟ ربما اشتريت هاتفًا أو شيئًا آخر وقالوا لك: "النظام معلق ، لا يمكننا فعل أي شيء". على ماذا ستكتب مثل هذا التطبيق؟ (صرخة من الجمهور حول بايثون) لا يمكنك كتابة مثل هذا الشيء بلغة بايثون ، فماذا أنت ؟! لا يستحق كتابة أي شيء للأعمال في بايثون. لماذا ا؟ لأنه عندما تكتب شيئًا في بايثون ، لا يمكنك العثور على عدد كبير من الأخطاء في عملية الكتابة. يتم كتابة Python ديناميكيًا بكل الطرق الممكنة ، وبشكل عام يمكنك إخفاء خطأ بحيث يظهر في موقف لا يمكنك حتى فهم ما فعله هؤلاء المستخدمون المنحرفون هناك ، وأن كل شيء قد تعطل من أجلك. أي أنه من الأفضل أن تكتب نصوصًا صغيرة لنفسك في بايثون - فأنت تفهم ما يحدث هناك وما الذي يتم فعله. حسنًا ، أو شيء ليس من المؤسف التخلص منه: تريد طرح شيء ما قبل منافسيك ، فماذا لو كان سيحدث كل مرة. لقد كتبت بلغة Python وهذا كل شيء - لقد استولت على السوق. وإذا كتبت شيئًا ما لفترة طويلة ، على سبيل المثال ، نوع من التطبيقات المصرفية (بحيث يوافق على القروض ، شيء آخر) - فأنت تكتبه بلغة جافا. لأن هناك أمرًا خطيرًا ، قطعًا من الورق ، أو المال ، أو المستندات ، أو شيء آخر ، ولكن لا يمكنك العبث بها كثيرًا لدرجة أن كل شيء سينهار ، وإلا فسيتم إهانة الناس - فقد ذهبت أموالهم ولم تصل إلى أي مكان ، لحظة تحول السلسلة إلى رقم أو العكس. لذا ، فهذا يعني أنك تأخذ Java بطريقة منهجية وتكتب ، أو تكتب ... حسنًا ، أو on.Net ، مثل هذه المواقف ، من حيث المبدأ ، تحدث أيضًا. هناك ، بالطبع ، يمكنك أيضًا أن تواجه مشكلات ، لكن احتمال حدوث ذلك أقل إلى حد ما.

برمجة للجيش والفضاء

تخيل الآن أنهم قرروا إرسالك إلى القمر في صاروخ. ما الذي تفضل استخدامه لكتابة الكود الذي يتحكم في محركات الصاروخ؟ لنرى. هذا ، على الأرجح (يظهر المحاضر في Perl و Python و PHP و Ruby) ، لا يستحق كل هذا العناء - إنه يبطئ ، يحدث شيء آخر ، حسنًا ، بشكل عام ، لن أوافق على الطيران على مثل هذا الصاروخ. في C ++؟ لأكون صادقًا ، لن أثق بي أيضًا ، لأن هناك العديد من الطرق لقتل نفسك في C ++. عندما تكون في مكان ما في الفضاء ، فهذا ليس جيدًا جدًا.

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

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

استخدام عدة لغات في آن واحد لتطوير البرمجيات

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

في تطوير بعض التطبيقات ، حتى الكبيرة منها ، يفعل الناس أحيانًا ماذا؟ يأخذون ويكتبون نموذجًا أوليًا في بايثون (كيف سيعمل كل شيء) ، يرسمون ، ويفكرون في نوع من الهندسة المعمارية. الكتابة عليها سريعة جدًا حقًا - لقد ألقوا نموذجًا أوليًا وجربوه وقالوا: "Wo! ذاك لطيف جدا! " وأعيد كتابتها بالكامل. يبدو أنهم قاموا بالمهمة مرتين ، واستغرق الأمر ضعف المدة (حسنًا ، واحد ونصف). لكن لا! غالبًا ما يتضح أن هذه الطريقة ليست سيئة ، لأنك إذا كتبت على الفور في شيء ما ، على سبيل المثال ، في Java ، ثم قررت: "لا ، دعنا نعيد البناء ، ونغير البنية بالكامل ، وكل ذلك" ، حينئذٍ ستنفق 10 أضعاف الوقت ... مثل هذه الأشياء موجودة وتعيش أيضًا.

شروط نجاح أي لغة برمجة

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

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

ما المشكلة؟ لماذا استحوذت بعض اللغات مثل Python ، التي لم تدعمها أي شركة في البداية ، على السوق. PHP ، المصممة أيضًا بشكل سيئ ، استولت أيضًا على السوق (معظمها) واستحوذت على نفسها. وتم استثمار كل أنواع المليارات من الدولارات (يشير المحاضر إلى Ada) ولم يذهب إلى أي مكان ، ولم يحدث شيء. ما هو سبب ذلك؟ هذا يرجع إلى حقيقة أنه لا توجد بنية تحتية حول هذه اللغات. بمعنى ، قد تكون اللغة ممتازة ، ولكن طالما لا توجد وثائق ، طالما لا يوجد مجتمع يمكنه الإجابة على الأسئلة (على Stack Overflow) ، وأخيراً ، الأهم من ذلك ، طالما لا يوجد عدد كبير من المكتبات ، اللغة لا تطلق. هذا ، على سبيل المثال ، أردت كتابة موقع ويب على أوبيرون. لما لا؟ ويبدأ الالتباس ... لا يمكنك رفع خادم الويب الخاص بك على Oberon من أجل الاختبار بسهولة ، ولا يمكنك الاتصال بأي مكتبات ، لأنها ليست على Oberon. وكل هذا يتم من خلال نوع من العكازات ، والقوى تختفي ، وبشكل عام تقوم بالبصق وكتابة موقعك في نقاء C بدلاً من Oberon. وتعيش تلك اللغات القادرة على استخدام مكتبات من لغات أخرى بشكل جيد. نفس لغة بايثون في تلك الأماكن التي تتباطأ فيها. حسنًا ، بشكل عام ، كل أنواع الأشياء القياسية مثل الفرز وشيء آخر مكتوبة بلغة C ، وهو (Python) يعرف كيف يتفاعل معها.

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

لغة البرمجة والتوجيه الوظيفي

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

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

إذا كنت ترغب في كتابة أي تطبيقات ، أو بعض المستعرضات ، أو بعض الألعاب ، أو شيء آخر ، فإن C ++ رائعة. إذا كنت ترغب في كتابة مواقع الويب ، فهذه هي اللغات التي تختارها (يظهر المحاضر بلغة Perl و Python و PHP و Ruby) ، فلا يوجد فرق كبير. الشيء الوحيد هو أن PHP ستموت قبل Python ، لذلك إذا كنت كسولًا لتعلم أشياء جديدة ، فتعلم Python. لن تلاحظ فرقًا كبيرًا ، لكنك ستستمر لفترة أطول.

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

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

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

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

ما هو وضعنا مع القبول في الجامعة (أنت الآن تدرس في المدرسة)؟ أثناء وجودك في المدرسة ، عليك أن تفهم أن الخطوة التالية هي التسجيل والاعتناء بها. اجتياز الامتحان أو الفوز في الأولمبياد. في الامتحان ، يمكنك استخدام Pascal و C ++ (بما في ذلك Pure C) و Python (لن أذكرها أكثر). في الأولمبياد - نفس Pascal ، ونفس C ++ ، ونفس Python (سنتحدث عن مشاكله الآن) ، وغالبًا ما توجد Java. لا يزال هناك أي شيء يمكن أن يحدث اعتمادًا على الأولمبياد ، ولكن ليس الجوهر.

كيف يبدو الرسم البياني لتوزيع اللغات في أولمبياد عموم روسيا للمعلوماتية؟ الأشخاص الذين يشاركون في أولمبياد عموم روسيا ، أروع الألعاب الأولمبية ، على ماذا يكتبون؟ تبدو هكذا (هنا تعني باسكال ، وهنا حوالي 2000 ، وهنا تساوي الصفر تقريبًا ، هنا C ++ ، وها هي 2015).

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

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

ما هو الأفضل للاختبار؟ بالنسبة للاختبار ، من الأفضل (إذا كنت لا تعرف أي شيء ولا يعلمونك أي شيء في المدرسة) أن تتعلم بايثون. يتم حل بعض مهام الامتحان بشكل مثالي. في الأولمبياد ، بشكل عام ، اتضح أن C ++ (مستخدمة) ، لأن Python بطيئة جدًا ، ولم يتم حل كل شيء هناك.

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

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

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

ثم تأتي دورة "الخوارزميات" ومنفصلة مشروع الدورة... الخوارزميات الكلاسيكية مع التنفيذ. لا يعني ذلك أننا أخذنا شيئًا نظريًا ، بل حسبنا درجة التعقيد. في المحاضرة ، أخذناها ، وحسبنا درجة التعقيد ، في الندوة - أخذناها ، ونفذنا الخوارزمية. يدور المشروع حول قيام الطلاب بشيء انتهى. على سبيل المثال ، كان أحد المشاريع: العد ... لنفترض أن لديك الكثير من الشقق في موسكو وأنت تفهم: "أوه ، لدي الكثير من الأشياء غير الضرورية ، سأؤجر بعضها. وقد حددوا سعراً ، ولا أحد يريد أن يستأجر منك شقة - ربما تكون باهظة الثمن. أو طرحوا نوعًا من السعر ، ثم خلعوه على الفور وتعتقد: "أوه ، ربما فاتني الأمر بثمن بخس ،" وأنت مستاء أيضًا. بمعنى ، كان من الضروري حساب تكلفة استئجار شقة؟ أنت تقود البيانات - تبني تقديرًا لك. مثل هذا الموقع ، الذي يتكون من عدة أشياء: أخذ الاقتراحات ، والتحليل ، وتطبيق نوع من خوارزمية التعلم الآلي (على الأرجح) متواضع ، وإنشاء وجه ويب جميل يمكنك من خلاله اختيار شيء ما ، وقيادة شيء ما ، وبعض الأمتار ، وأي عدد من الغرف وعدد حمامات الساونا وعدد الجاكوزي في شقتك وتقدير التكلفة تقريبًا. هذا هو ، نوع من الانتهاء ، وليس جدا شيء صعب... هنا يعني (يشير المحاضر إلى الدورة التدريبية حول الخوارزميات) مثل C ++ النشط ، مع وحدة التحكم I / O. حسنًا ، هنا (يشير المحاضر إلى "مشروع" النقش) هو شيء يخضع لإرشاد معلم ، ربما مع قواعد بيانات ، ربما بتحليل النصوص وبشيء آخر.
ثم يأتي الفصل الثالث - مادة تسمى "أنظمة الحاسب الآلي". هناك قدر كبير من المُجمِّع للفهم (القليل جدًا) وبعد ذلك ، شيء مشابه لـ C النقي والتفاعل مع أنظمة التشغيل ، برمجة النظام في جوهرها. ومشروع الندوة هو أيضًا شيء يتعلق بموضوع جميع تفاعلات الشبكة ، بمستوى منخفض جدًا: تطوير بعض الأدوات ، على سبيل المثال rsync (التزامن ، ربما تعلم. الذي سيكون لديك عبر مجلدات مزامنة الشبكة مع جميع عمليات الوصول إلى الملفات ، وما إلى ذلك).

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

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

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

كيف يبحث المبرمج عن وظيفة

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

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

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

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

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

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

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

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

البرمجة للمبتدئين

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

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

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

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

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

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

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

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

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

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

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

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

من بين العديد من لغات البرمجة ، يمكنك دائمًا العثور بالضبط على اللغة المناسبة لحل مهمة معينة. عندما يظهر نوع جديد من المشاكل ، ينشئ الناس لغات جديدة.

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

0010 1010 0001 1101

رقم الأمم المتحدة 1100 1010 1111

0101 ONO 1101 0101

1101 1111 0010 1001

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

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

ضع في اعتبارك لغات البرمجة الرئيسية والشائعة

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

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

فورتران- لغة برمجة عالية المستوى طورتها شركة IBM عام 1956 لوصف الخوارزميات لحل المشكلات الحسابية. ينتمي إلى فئة اللغات الإجرائية المنحى. أكثر إصدارات هذه اللغة شيوعًا هي Fortran IV و Fortran 77 و Fortran 90. وهي مستخدمة في جميع فصول الكمبيوتر. يستخدم أحدث إصدار له أيضًا على أجهزة الكمبيوتر ذات الهندسة المعمارية المتوازية.

جحيم- لغة برمجة عالية المستوى تركز على التطبيق في أنظمة الوقت الفعلي ومصممة لأتمتة مهام التحكم في العمليات و / أو الأجهزة ، على سبيل المثال ، في أجهزة الكمبيوتر (السفن والطيران وما إلى ذلك). تم تطويره بمبادرة من وزارة الدفاع الأمريكية في الثمانينيات. سميت على اسم عالم الرياضيات الإنجليزي Ada Augusta Byron (Lovelace) ، الذي عاش في 1815-1851.

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

باسكالتم تطوير باسكال من قبل المُنظّر الشهير ن. ويرث على أساس أفكار ألغول -68 ، وكان الهدف الأساسي منه هو تعليم البرمجة. مبني على مبدأ "ضروري وكافي" ، فهو يحتوي على تحكم قوي في النوع ، وبنيات لوصف هياكل البيانات التعسفية ، ومجموعة صغيرة ولكنها كافية من مشغلي البرمجة المهيكلين. لسوء الحظ ، فإن الجانب السلبي للبساطة والصرامة هو الأوصاف المرهقة لتركيبات اللغة. التطبيق الأكثر شهرة - Turbo / Borland Pascal - على الرغم من الاختلافات عن معيار باسكال ، هو بيئة ومجموعة من المكتبات التي تتكون من لغة التدريسنظام صناعي لتطوير البرامج في بيئة MS-DOS.

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

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

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

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


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

جافاكمثال رئيسي على التخصص ، لغة جافاظهرت استجابة للحاجة إلى لغة محمولة تمامًا ، برامج تعمل بكفاءة من جانب العميل من WWW. نظرًا لخصائص البيئة ، يمكن أن تكون Java اختيار جيدلنظام يعتمد على تقنية الإنترنت / الإنترانت.

الغول- لغة برمجة عالية المستوى تركز على وصف الخوارزميات لحل المشكلات الحسابية. تم إنشاؤه في عام 1958 من قبل متخصصين من دول أوروبا الغربية للبحث العلمي. تم اعتماد نسخة Algol-60 من هذه اللغة من قبل المؤتمر الدولي في باريس (1960) واستخدمت على نطاق واسع على أجهزة الكمبيوتر من الجيل الثاني. إصدار Algol-68 ، الذي طوره مجموعة من المتخصصين من الاتحاد الدولي لمعالجة المعلومات (IFIP) في عام 1968 ، حصل على حالة لغة برمجة عالمية تركز على حل ليس فقط المشاكل الحسابية ، ولكن أيضًا مشاكل المعلومات. على الرغم من عدم استخدام Algol في الوقت الحاضر عمليًا ، إلا أنه كان بمثابة الأساس أو كان له تأثير كبير على تطوير المزيد اللغات الحديثة، على سبيل المثال ، Ada و Pascal وما إلى ذلك.
إذا كنت تريد طرح سؤال حول لغة معينة ، فاستخدم المنتدى للمبرمجين
نفسه لغة أفضلغير موجود. إذا كنت ستصبح محترفًا في كتابة البرامج ، فأنت بحاجة إلى تعلم إحدى لغات البرمجة عالية المستوى (لغة البرمجة الأكثر شيوعًا هي C ++) ، بالإضافة إلى إحدى لغات برمجة قواعد البيانات ( على سبيل المثال ، SQL). بعد تعلم لغة البرمجة C ++ ، لا يمكنك أن تخطئ. بمعرفة هذه اللغة ، يمكنك دائمًا العثور على وظيفة في أي شركة برمجة.

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

إذا كنت ستعمل بمفردك ، فمن الأفضل أن تتعلم كيفية الإنشاء البرامج الخاصةلقواعد البيانات. للقيام بذلك ، ستحتاج إلى تعلم لغات البرمجة مثل SQL أو VBA ، والتي يتم استخدامها في Microsoft Access. لإنشاء صفحات ويب ، تحتاج إلى معرفة HTML ، بالإضافة إلى القليل من المعرفة بلغات Java و JavaScript و VBScript ولغات البرمجة الأخرى للإنترنت. ستكون لغة البرمجة الأكثر أهمية هي التي ستتيح لك حل المهام الموكلة إليك بسهولة وسرعة. يمكن أن تكون لغة C ++ أو BASIC أو Java أو SQL أو لغة التجميع.
في الختام ، نلاحظ أنه من وجهة نظر مهنية ، ليس من المهم جدًا في أي لغة وفي أي بيئة يعمل المبرمج ، وكم يقوم بعمله. المعدات تتغير و نظام التشغيل... تنشأ المهام الجديدة من مجموعة متنوعة من المجالات الموضوعية. إنهم يتراجعون إلى الماضي وتظهر لغات جديدة. لكن يظل الناس - أولئك الذين يكتبون وأولئك الذين كتبت لهم برامج جديدة والذين تظل متطلبات جودتهم كما هي بغض النظر عن هذه التغييرات.
هنا قمنا بمراجعة أساسيات البرمجة ولغات البرمجة الرئيسية.

أتمنى لك حظًا سعيدًا في تعلم البرمجة!