بايثون للويب: ما يحتاج المبتدئ إلى معرفته للعمل والتطوير

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

بايثون للويب: ما يحتاج المبتدئ إلى معرفته للعمل والتطوير

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

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

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

المشاركون في المحادثة:

  • فالنتين دومبروفسكي,أحد مؤسسي موسكو بايثون
  • زلاتا أوبوخوفسكايا، قيادة فريق نفيديا
  • غريغوري بيتروف، المبشر موسكوبايثون
  • أليكسي شتيرنيايف، مطور في FinEx، مدرس دورات Learn
    Python

لماذا تعد لغة بايثون مفيدة لتطوير الويب؟

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

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

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

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

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

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

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

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

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

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

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

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

أليكسي شتيرنيايف: بحاجة إلى دورة Bootstrap الأساسية. وأساسيات HTML.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ما تحتاجه للعثور على وظيفتك الأولى كمطور

أليكسي شتيرنيايف: ربما لا توجد وصفة عالمية لكيفية طبخ الصغار.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

***

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

أو حتى أنظر:

لعب الفيديو

بودكاست آر إس إس

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

المصدر: www.habr.com

إضافة تعليق