في الآونة الأخيرة ، اندلعت معارك خطيرة في حبري في التعليقات على مقال
فولستكي - هذه MIDLs الأبدية. لا تتبع هذا المسار إذا كنت لا تريد أن تعانيسأحاول أن أعبر عن وجهة نظري أن المكدس الكامل رائع حقًا ، ولماذا من الجيد السير على هذا المسار.
ربما يساعد النص أدناه شخصًا على السير في هذا المسار ، وربما العكس ، سيحمي العقول الهشة منه. بشكل عام ، مرحبا بكم في القط.
** AHTUNG! كل ما يلي ليس الحقيقة المطلقة وهو رؤيتي الذاتية (لهذا العالم).
للبدء ، دعنا نحدد المصطلحات التي ستتم مناقشتها أدناه لتكون في نفس مجال المعلومات ، لأن يختلف مفهوم fullstack عن الجميع (تمامًا مثل التقسيم إلى جداول تصنيف جونيور / متوسط / كبير وجداول أخرى).
الرأي الأكثر شيوعًا هو أن fullstack هو مطور يمكنه ، في شخص واحد ، العمل على مشروع بمفرده تمامًا ، من الخلف إلى الأمام.
قد يقول بعضكم ، "حسنًا ، في فريقي يمكن أن يكون الوسط" ، والذي (بعبارة ملطفة) غير صحيح في معظم الحالات. إذا كان بإمكان مطور الواجهة الأمامية إصلاح / إضافة شيء ما في رمز النسخ الاحتياطي ، التعمق أكثر في استعلامات قاعدة البيانات ، فهذا لا يزال غير مكدس بالكامل.
بعد كل شيء ، فإن تطوير المشروع ليس مجرد رمز أمامي وخلفي ، بل يقوم أيضًا ببناء / تكوين / دعم البنية التحتية للمنتج الناتج. لا يكفي كتابة التعليمات البرمجية ، لا تزال بحاجة إلى العمل على الكائن. ويمكن أن يكون الكائن VPS بـ 5 دولارات مع LAMP افتراضيًا ، والشبكات السحابية مثل AWS / Azure ، أو حتى البنية التحتية الخاصة بك ، حيث تعيش الأجهزة الحقيقية تمامًا ، من الخوادم / محطات العمل إلى أجهزة التوجيه.
لذلك ، نحن لا نتحدث عن "fullstack-dev" ، بل عن "fullstack-بشكل عام". وهو ما يمكن أن يسحب المشروع شخصًا واحدًا من مرحلة المفاوضات إلى مرحلة التوقيع على وثيقة الإنجاز.
لن أقوم بثني أصابعي ، وأذكر ما يجب أن لا يعرفه أخصائي Fullstack ، لأنه هذه قائمة غامضة للغاية. في النهاية ، تمكن شخص ما من التبرع والترويج لـ "مشاريع أداة واحدة" ، قل في Java باستخدام NoSQL ، لكننا اليوم لن نتحدث عن هذا.
لذا ،
كيف تصبح مطور Fullstack ، هل تحتاج إلى أن تصبح fullstack أو من الأفضل أن تتحرك في اتجاه واحد؟
انتقل لفترة وجيزة فوق السلبيات زائد ملقاة على السطح.
سلبيات
ربما يكون ناقصًا واضحًا - اقبل كحقيقة أنك ستظل دائمًا (
دائمًا ) أدنى من المطورين المتخصصين للغاية في كل شيء - من امتلاك أحدث الأدوات والتقنيات ، إلى جودة الشفرة. إذا كنت طموحًا ، فأنت تريد دائمًا أن تكون في طليعة التقدم ، وتريد أن تثني أصابعك
وتنظر إلى الآخرين على أنها قذرة - Fullstack ليس طريقك.
إن العثور على وظيفة لـ fullstack أسهل بكثير من مطور تقنية واحدة. لكن العثور على وظيفة
بأجر مرتفع لا يزال أصعب. مفارقة ، هاه؟ ومع ذلك ، في الغالبية العظمى من الحالات ، هذا هو الحال (ما لم نرغب بالطبع في استخدام المكدس الكامل كمكدس كامل ، وليس كـ "مبرمج Java"). حيث يدفع الناس الكثير من الأيام / الأشهر الأولى من العمل ، وعادةً لا يحتاجون إلى "كل من ملاجئ وعازلة ، ومتأنق" - هناك تحتاج إلى معدات أخرى جيدة التزييت في آلية مشتركة ستؤدي مهمة واحدة بالضبط وتؤديها بشكل جيد ،
كما قال الجدول الزمني . بالطبع ، هناك استثناءات ، ولكن ليس هناك الكثير كما نود.
العمل في خوذة واحدة يعني نهايه الموارد. أي لا يمكنك تنفيذ منتج برمجي كبير حقًا. حتى لو كان هناك ما يكفي من المعرفة ، فلن يكون هناك وقت كافٍ. لن تكون قادرًا على إطلاق لعبة قاتلة (التطورات الصغيرة المستقلة جيدة ، لكنها لا تتعلق بها) ، أو نظام التشغيل ، أو Mega-Office-XXL. غالبًا ما يحترق الناس إذا أخذوا مشروعًا كبيرًا جدًا دون حساب قوتهم. إذا كنت ترغب في صنع الألعاب ، أو المشاركة في المشاريع الكبيرة (عادة الدولية) ، أو إلى أقصى الحدود ، احصل على راتب جيد بعد الجامعة (2-3 سنوات من العمل النشط) في أي مجال واحد - فأنت لست هنا أيضًا.
عليك أن تدرس طوال الوقت. باستمرار. كثيرًا. لأشياء مختلفة. إذا كنت تتذكر سنوات الدراسة مع ارتجاف ، فإن المؤتمرات والندوات عبر الويب تثير عدم إعجابك ، إذا لم تكن جاهزًا لقضاء ساعات في قراءة الميغا طن من القمامة الإعلامية ، وتبحث عن جزيئات مفيدة ، إذا كنت منزعجًا من التقنيات التي
يجب أن تكون قادرًا على إدارتها ، بغض النظر عن رغباتك وتفضيلاتك - لست بحاجة إلى مسار Fullstack. أنت بحاجة إلى فهم (وقبول) أن بعض Zen مطلوب هنا. عليك فقط أن تجر نفسك بعيدًا عما يحدث ، وهو ليس مع الجميع.
لا تنس أبدًا أن الشخص ، في الواقع ، ماشية ذات مهمة واحدة ، ولكن سيتعين عليك محاكاة أوضاع تعدد المهام باستمرار (لغات مختلفة ، وبيئات تطوير مختلفة ، ونهج مختلفة ، ولكن مفاهيم "كتابة التعليمات البرمجية" و "نشر البنية التحتية" مختلفة). صدقني ، في البداية الأمر صعب للغاية ويؤدي إلى سرعة منخفضة والكثير من الأخطاء.
وأخيرًا ، هناك دائمًا خطر التعرض للرهينة بسبب الموقف والتوقف عن التطور إذا لم يشمل مكان العمل أي سلالم مهنية. ويجلس العديد من العمال المحتملين الممتازين للأسف في مكاتب صغيرة ، ولا يفعلون شيئًا على الإطلاق ما يريدون قبل 10 سنوات. نعم ، يمكنهم القيام بذلك في Windows Server ، في * nix ، ربما في Java و Python ، وهم يدعمون بعض الحرف اليدوية في C # ، منذ وقت طويل تمت كتابة "بوابة الشركة" في PHP + JS ، ولكن لم تعد هناك مهام أخرى ، تم تصحيح كل شيء في المكتب ، كل شيء يعمل.
ومن الجدير أن تخطو الحدود في 35-40 سنة ، عندما يتم تضمين النزعة المحافظة المدمجة في الناس ، مضروبة في هذا المستنقع المريح ، مما يؤدي في النهاية إلى نوع من "حقيبة بدون مقبض". ويصبح كسر هذه الحلقة المفرغة أكثر صعوبة كل عام. كن حذرا من مثل هذه الحالة ، لأن اللحية والسترة تنمو بشكل أسرع من المتخصصين الضيقين الذين يكتبون نفس الشيء لمدة 10 سنوات.
ربما يكفي أفلام الرعب لهذا اليوم ، لنتحدث عن الإيجابيات
يمكنك فعل أي شيء. حسنًا ، أو تقريبًا. من موقع الشركة إلى تطبيق الهاتف المحمول. بعد كل شيء ، لا تقتصر على تقنيات 1-2. يمكنك حتى بناء إمبراطوريتك الصغيرة على إنترانت واحدة.
إذا كنت تعمل في Fullstack لفترة طويلة (والأهم من ذلك - بنجاح) ، يمكنك بسهولة قيادة فريق التطوير. كن مهندسًا معماريًا. أولئك الذين هم في طليعة أي مشروع كبير.
إذا كنت انطوائيًا متجهمًا ، فأنت تحب السيارات ولا تحب الأشخاص - اربح المال على موقع بعيد. تقود العديد من المشاريع على مهل ، يمكنك كسب أموال جيدة دون إنفاق الأعصاب للتواصل مع الفريق.
إذا كنت ترغب في التواصل مع الناس ، فلديك لغة معلقة (أو مدربة) (أو كنت انطوائيًا ماكرًا بقوة الإرادة) - يمكنك كسب المزيد من المال عن طريق اختراق روح العميل.
يجب أن يُفهم أنك لن تترك بدون عمل على الإطلاق. إذا كنت هي المجموعة الكاملة الصحيحة ، فعليك أن تسحب الوسط في أي تقنية. وحتى على "اليد الوسطى العليا" (هذا هو الوقت الذي لن تتولى فيه Google قيادة فريق من الشارع ، ولكن في مشروع أكثر أو أقل جدية - إنه أمر سهل).
وأخيرًا ، بعض النصائح البسيطة والواضحة (للأسف ، ليس للجميع وليس دائمًا). سوف أركز بوعي على قاعدة التعليمات البرمجية ، وليس على البنية التحتية ، حتى لا أتحمل القراء.
نصيحة واحدة.
لا تدع كبريائك يسود عليك . هذا مهم جدا. من المسلم به أن هناك أشخاصًا يفعلون شيئًا أفضل منك. تعلم منهم إن أمكن. نهج "أنتم جميعًا قذرون ، لكنني مجموعة كاملة ، يمكنني أن أفعل كل شيء" خطأ في الجذر ، وغالبًا لا يضرب الغرور فحسب ، بل أيضًا المحفظة. إذا كنت تحب نفسك والمال - اتبع هذه النصيحة.
النصيحة الثانية. مرة أو مرتين في بضع سنوات ، سيكون من الجيد العمل في فريق من المتخصصين الضيقين. هذا يعزز المهارة بشكل كبير ، لأن التكنولوجيا لا تقف ثابتة ، ولكنها تتسرع في سرعة قاطرة ، ويحاول المتخصصون الضيقون أن يكونوا في الاتجاه. إذا كانت هناك مثل هذه الفرصة - لا تفوتها ، فتعلم الكثير ، واعثر على الكثير من الاختناقات في مشاريعك القديمة ولا تسمح بها في مشروعات جديدة.
النصيحة الثالثة. لا تسعى لتعلم كل YaP. أولاً ، هذا مستحيل ببساطة ، وثانيًا ، ليس ضروريًا. استخدم في مشاريعك تقنيات مدروسة جيدًا ، تلك التي أنت حقًا "Signor" فيها. تحتاج إلى دراسة مواد نووية جديدة (على الأقل للتطوير العام) ، ولكن يجب عليك تطبيقها في مشاريع حقيقية فقط بعد أن تصبح واضحة لك حقًا. بشكل مباشر مثل اللغات وكيف ، مع الجودة التي يمكن استخدامها ، ما هي الفوائد التي يمكن اكتسابها من التبديل ، على سبيل المثال ، من Java إلى Kotlin أو Scala. إذا كنت لا تفهم الفوائد ، فإما أن اللغة لم تنضج بعد ، أو (على الأرجح) أنت بنفسك. نهج "إعطاء أسبوعين لقراءة بقعة ، وسأكتب على هذا القرف" نهج سيء.
النصيحة الرابعة. إذا نظرت إلى رمز تطويرك قبل 1-3 سنوات ولا تريد إصلاحه ، فعلى الأرجح أنك تعاني من أزمة ، مثل مطور البرامج (أو رمز مثالي من جميع النواحي ، وهو ما لا يحدث). جرب النصيحة رقم 2.
النصيحة الخامسة. من بداية المسار ، قم بتطوير قاعدة عملاء. بناء سلطتك. يجب أن تعرف أنت وتطوراتك. لا يهم إذا كنت تعمل في الشركة أو تعمل لحسابك الخاص على موقع بعيد. إذا لم تكن تواجه صعوبات في التواصل مع الأشخاص ، فتأكد من قضاء بعض الوقت في التواصل مع العميل. والضروري بشكل مضاعف - للتواصل مباشرة مع أولئك الذين يتعين عليهم العمل مع منتجك. لذلك ستكون قادرًا على التفكير بشكل أفضل من خلال بنية المشروع المستقبلي.
نصيحة سبعة. أدوات القياس والمهام. لا تطلقوا النار من مدفع على العصافير. لا حاجة لنشر بنية تحتية محلية
مع لعبة ورق وفتيات مع مسؤولية اجتماعية منخفضة عن "موقع الشركة" من صفحة واحدة ، لمجرد. يمكنك تخصيصها. ولا تحتاج إلى سحب إطارات JS بحجم 5 ميغابايت إلى هذا الموقع أيضًا (فقط لأنك تستطيع ذلك).
لا حاجة للسحب من الخلف إلى الأمام ما هو المكان على ظهره. على العكس من ذلك ، لا تفعل ذلك. تذكر ، إذا كان لديك فجأة الكثير من العكازات في مشروع لم تتغير مواصفاته الفنية 100500 مرة أثناء التطوير ، فهذا يعني أنك صممت بشكل سيئ الهندسة المعمارية. إذا كان ذلك ممكنًا ، قم بتصحيحه ، إذا لم يكن كذلك ، فتأكد من مراعاة ذلك في المهام التالية.
مجلس الثامن. ضع الأولويات بشكل صحيح. تذكر أن مهمتك هي جعل المنتج ، أولاً وقبل كل شيء ،
مريحًا وموثوقًا قدر الإمكان. حتى إذا كان لديك إحساس متضخم بالجمال ، فيجب إحضار الجمال أخيرًا.
Phew ربما هذا يكفي للبدء.
شكرا لكم جميعا على اهتمامكم.
أوه نعم ، لقد نسيت تقريبا ... دعونا نبدأ srach!