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

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

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

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

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

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

بعد JavaScript و HTML و CSS ، يمكنك البدء في تعلم أطر العمل الأمامية. بعد 3-4 أشهر ، يمكنك بالفعل كتابة طلبك البسيط في الزاوي أو التفاعل. في السابق ، عندما رأيت مجموعة من الأخطاء في وحدة التحكم ، كنت خائفًا: "يا إلهي ، ما هذا؟! .." الآن أنت تنظر إليها بهدوء ، وتبدأ في google وتستكشفها ، ما السبب. عند ذكر جيثب ، لم تتعرّض لعرق بارد: فأنت تعلم أن هذا القط لطيف ، وهو أمر مناسب لجميع المبرمجين. ربما تكون ضحكة مكتومة بالفعل في أحد أصدقاء العلوم الإنسانية الذي يريد فجأة أيضًا أن يتعلم كيفية البرمجة. إنه لا ينجح ، إنه يجلس ولا يفهم ما يحدث له. وسترى أنه نسي القوس فقط في مكان ما.
مبرمج - كفنان
أنت الآن تتقن البرمجة بشكل جيد ويمكنك الذهاب إلى ما يسمى هندسة البرمجيات. نفس الأشخاص يعيشون هناك الذين يكتبون كل أنواع الأشياء المعقدة في Java و C # و C ++ و Python وما إلى ذلك. وهذا ليس بالأمر الصعب للغاية: في هذه اللحظة أنت تدرك بالفعل أن المبرمج يشبه الفنان. لقد تعلم ببساطة التفكير مثل الكمبيوتر ونقله إلى رمز - مع بعض القواعد الصارمة. ليس للفنان إطار صارم ، لكنهم في البرمجة. لكنك تفهم بالفعل: من حيث المبدأ ، ليس من الصعب للغاية ، يمكنني التعامل معها.

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

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

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

مقياس البرودة

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

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

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

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

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

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

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

إذا كنت تريد أن تذهب إلى تكنولوجيا المعلومات ، والشيء الرئيسي - لا تخافوا. تحتاج إلى التغلب على الخوف ، لا تخافوا لكتابة التعليمات البرمجية. لسبب ما ، يفكر الجميع في البرمجة ، وهذا أمر صعب للغاية. حتى الأطفال الذين أدرسهم يخشون أحيانًا تشغيل برنامج كتبوه بأنفسهم: "الآن سيكون هناك خطأ ، كل شيء سوف يسقط ، ولن أكون قادرًا على فهم السبب." الشيء الرئيسي هو التغلب على هذا الخوف. يمكنك البدء بالويب ، إنه بسيط للغاية. وتذكر: الممارسة ، الممارسة والكثير والكثير من الممارسات. لن يعمل شيء بدونها!
جميع التقارير الواردة من "
المحتوى " - وهي عبارة عن 16 ساعة من المعلومات المفيدة ، و 26 خطابًا ، و 3 مناقشات حول كيفية جعل محتوى رائع حول التقنيات واستخدام التقنيات - موجودة في تنسيق الفيديو
هنا . خصم لمستخدمي Habr برمز الترويجي habr_online_promo.
لدعم المؤتمر ، نشكر الرعاة: