ما الذي تتوقعه إذا كنت تريد أن تصبح مطور iOS؟

ما الذي تتوقعه إذا كنت تريد أن تصبح مطور iOS؟

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

ومع ذلك، يذهب المطورون إلى هذا المجال، وبمجرد الوصول إليه، يشعرون بالرضا.

هذه المرة أخبرنا مارات نورغالييف وبوريس بافلوف عن تجربتهما - كيف تعلما المهنة، وكيف اجتازا المقابلات الأولى، ولماذا تلقيا الرفض. وعمل أندريه أنتروبوف، العميد، كخبير كلية تطوير iOS في GeekBrains.

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

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

من هم مطورو iOS؟

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

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

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

اللغات - Swift أو Objective-C

تتم جميع عمليات تطوير iOS تقريبًا باستخدام لغة البرمجة Swift. ظهرت منذ خمس سنوات وهي الآن تحل تدريجياً محل لغة Objective-C القديمة، والتي استخدمتها شركة Apple في جميع تطبيقاتها منذ أكثر من 30 عاماً.

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

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

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

تدريب

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

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

يضيف الربع الثاني Objective-C. يتم إجراء دورة حول الهندسة المعمارية وأنماط البرمجة الأساسية. وفي الربع الثالث، يقومون بتعليم الأسلوب الصحيح لكتابة التعليمات البرمجية. فهو يشرح ما هو المصنع، وكيفية كتابة الاختبارات بشكل صحيح، وإنشاء المشاريع، وما هو Git-Flow، والتكامل المستمر من خلال Fast Lane. أما الربع الرابع والأخير فهو مخصص للعمل الجماعي والمهام العملية والتدريب الداخلي.

يقول مارات: "كان الربع الأول سهلاً، ولكن بعد ذلك بدأت في تعلم البرمجة بلغة Objective-C، ودراسة أنماط التصميم، ومبادئ Solid، وGit-Flow، وهندسة المشروع، واختبار الوحدات وواجهة المستخدم للتطبيقات، وإعداد الرسوم المتحركة المخصصة - وبعد ذلك أصبحت الدراسة مثيرة للاهتمام."

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

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

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

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

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

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

ما الذي تتوقعه إذا كنت تريد أن تصبح مطور iOS؟

تستطيع أن ترى أكثر من غيرها أحدث الوظائف الشاغرة لمطوري iOS والاشتراك في مطورين جدد.

عمل

لكن لم يجد مارات ولا بوريس عملاً بهذه السهولة.

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

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

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

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

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

الرواتب

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

ما الذي تتوقعه إذا كنت تريد أن تصبح مطور iOS؟

وفقًا لحاسبة رواتب My Circle، فإن متوسط ​​راتب مطور iOS أقل قليلاً 140 روبل 000.

"غالبًا ما يعمل المبتدئ بمستوى منخفض جدًا مجانًا أو مقابل أموال رمزية - 20-30 ألف روبل. إذا تم نقل المبتدئ عمدا إلى منصبه، فسوف يحصل على من 50 إلى 80 ألف. يتلقى الوسطاء من 100 إلى 150، وأحيانًا يصل إلى 200. أما كبار السن فلا يحصلون على أقل من 200. أعتقد أن رواتبهم في حدود 200-300. وبالنسبة لقادة الفريق، فإن العدد يزيد عن 300”.

ما الذي تتوقعه إذا كنت تريد أن تصبح مطور iOS؟

مقابلات

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

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

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

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

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

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

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

مجتمع

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

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

قائمة الأدبيات الموصى بهامستوى المبتدئين:

مستوى متوسط:

مستوى متقدم:

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

إضافة تعليق