بيثون للويب: ما يحتاج صغار أن يعرفوه للعمل والنمو

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




المواضيع الرئيسية:

  • ما هي المعرفة التي يحتاجها المبرمج المبتدئ؟
    تطوير الشبكة؟
  • ماذا يتوقع أصحاب العمل من المطورين؟
  • ما يجب القيام به للعثور على عمل دون خبرة؟
  • كيف يمكن لمطور بيثون تطوير؟

بيثون جونيور بودكاست هو بودكاست البرمجة لأولئك الذين يرغبون في فهم بيثون بشكل أفضل. تتم قيادة الموجات الهوائية من قبل التبشيريين في مجتمع MoscowPython ومعلمي دورات Learn Python .

المحادثة المعنية:

  • فالنتين دومبروفسكي ، المؤسس المشارك لـ MoscowPython
  • زلاتا أوبوخوفسكايا ، قائد الفريق نفيديا
  • غريغوري بيتروف ، المبشر من MoscowPython
  • أليكسي Shtyrnyaev ، المطور في FinEx ، مدرس دورات تعلم
    الثعبان

لماذا بيثون جيدة لتطوير الشبكة


فالنتين دومبروفسكي: لماذا تعد بيثون مناسبة لتطوير الشبكة؟ لماذا لا PHP أو جافا سكريبت ، على سبيل المثال؟

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

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

دعونا نلقي نظرة على الخيارات الممكنة.

  • C # إن Microsoft رائعة حقًا ، فقد صنعوا .NET Core ويقومون بترويجها بكل الطرق. ولكن ، أولاً ، هذه تقنية جديدة مشتركة بين الأنظمة الأساسية ، وكل شيء لا يسير بسلاسة هناك. ثانياً ، أنها مكلفة للغاية ، فهناك عدد قليل من مطوري C # - لأنه ببساطة لا يحظى بشعبية.
  • جافا. هذا معقد. إنشاء موقع عادي في Java ليس 10 أسطر من التعليمات البرمجية ، كما في Python. هذا كثير من التعليمات البرمجية ، وهذه أطر عمل ، وتحتاج إلى معرفة تفاصيل إعداد خوادم Java. بشكل عام ، الألم المستمر والمعاناة.
  • PHP. في الإصدارات الأخيرة ، إنه لأمر رائع. سأقول هذا: PHP 7.2 ليس أسوأ من بيثون. لكن لا يمكنك فقط استخدام PHP 7.2 واستخدامه. إذا قام مطور منتظم وغير متقدم بإنشاء موقع في PHP ، فلن يكتب 7.2 فقط: لا يزال يتعين عليك قراءة بعض الكتب المدرسية والبرامج التعليمية ، وفي كل مكان مجموعة من التعليمات البرمجية القديمة ، وهذا ليس جيدًا جدًا.
  • جافا سكريبت و Node.js. هذا رائع وحديث للغاية عندما تكون لغة واحدة في الواجهة الأمامية والخلفية. فقط ليست مستقرة جدا. Node.js شيء جيد ، لكن من الصعب نشره في الإنتاج بحيث لا يسقط ويعمل بشكل ثابت. بالإضافة إلى ذلك ، إذا أردنا أن نكتب شفرة JavaScript بجودة عالية ، فلن نحتاج إلى JavaScript ، ولكننا بحاجة إلى TypeScript. لكن TypeScript معقد بشكل غير متوقع ، على مرأى منه ، يتطور المطور العادي.

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

ما هي المعرفة اللازمة لدخول المهنة


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

لا يزال يتعين عليك أن تتخيل على الأقل تقريبًا كيفية ترتيب الواجهة الأمامية في مشاريع الويب: ما هو HTML و CSS و JS.

أليكسي Shtyrnyaev: ومعرفة أين تكمن الوثائق. هذا هو الشيء الأكثر أهمية.

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

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

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

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

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

ما هو مدرج في أساس تطوير شبكة بيثون


  • أطر الويب Django ، Flask ، aiohttp ، Tornado ، وما إلى ذلك (ومعرفة وجود البقية).
  • البروتوكولات وواجهات برمجة التطبيقات: في المقام الأول HTTP و JSON-RPC و Protocol Buffers و gRPC.
  • ORM والهجرات ، قواعد البيانات العلائقية ، SQLAlchemy ، SQL ، PostgreSQL ، MySQL.
  • أساسيات HTML و CSS و Bootstrap وكذلك أطر JS و JQuery.
  • مبادئ التطبيقات على الإنتاج ، الاختبار ، اختبارات الوحدة ، الاختبارات الآلية ، أنظمة التحكم في الإصدار ، بوابة.

هل يحتاج جونيور إلى خوارزميات؟


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

غريغوري بتروف: أريد إضافة الزيت إلى النار. إذن ، من أين تأتي شغفنا بالخوارزميات؟

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

إنهم يحاولون القيام بذلك ، ولكن لدينا هنا قصة هوجورتس: لا يمكننا إنشاء مدرسة للمعالجات حتى يتوفر لدينا معالج واحد. لذلك ، ما الذي ينبغي على الجامعة أن تأتي إليه وتسأل: "البدء في تدريب المبرمجين" ، لكن ليس لديهم مبرمجين ، لأن الجميع يعملون في Mail.ru و Rambler و Yandex ، هل هم جيدون هناك؟

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

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

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

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

يحل معظم المبرمجين مشاكل العمل حيث لا تكون هناك حاجة للخوارزميات وهياكل البيانات.


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

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

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

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

ما تحتاجه لإيجاد وظيفة أولى كمطور


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

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

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

لكن ما زلت أرغب في محاولة إعطاء وصفة للمبتدئين.

الخطوات الأولى لمطور مبتدئ


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

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

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

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

فالنتين دومبروفسكي: يمكنك خفض مشاريعك أو القيام بمشاريع بسيطة على أساس مستقل وإرسال سير ذاتية في وقت واحد.

ما هي آفاق مطور بايثون؟


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

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

***

هذا ليس سوى جزء من إصدار Python Junior . يمكنك الاستماع إلى النسخة الكاملة من الحلقة.

أو حتى انظر:


بودكاست RSS

شكرًا على القراءة أو الاستماع أو المشاهدة.

Source: https://habr.com/ru/post/ar446668/


All Articles