اگر می خواهید یک توسعه دهنده iOS شوید چه انتظاری دارید؟

اگر می خواهید یک توسعه دهنده iOS شوید چه انتظاری دارید؟

از خارج از iOS، توسعه می تواند مانند یک باشگاه بسته به نظر برسد. برای کار، شما قطعا به یک کامپیوتر اپل نیاز دارید؛ اکوسیستم به شدت توسط یک شرکت کنترل می شود. از درون، گاهی اوقات می توانید تناقضاتی را بشنوید - برخی می گویند که زبان Objective-C قدیمی و دست و پا چلفتی است و برخی دیگر می گویند که زبان جدید سوئیفت بیش از حد خام است.

با این وجود، توسعه دهندگان به این منطقه می روند و پس از رسیدن به آنجا، راضی می شوند.

این بار، مارات نورگالیف و بوریس پاولوف در مورد تجربه خود به ما گفتند - چگونه این حرفه را یاد گرفتند، چگونه اولین مصاحبه خود را پشت سر گذاشتند، چرا از آنها امتناع شد. و آندری آنتروپوف، رئیس، به عنوان یک متخصص عمل کرد دانشکده توسعه iOS در GeekBrains.

در سال 2016، مارات نورگلیف از منطقه آستاراخان برای استخدام به عنوان توسعه دهنده تلفن همراه در یک شرکت تلویزیونی محلی آمد. این اولین مصاحبه او بود. او تازه از سربازی برگشته بود، بدون تمرین و تجربه، حتی تئوری را که قبلاً با آن مشکل داشت، فراموش کرده بود. تنها تجربه مارات در توسعه تلفن همراه، پایان نامه او در مورد تجزیه و تحلیل جریان های نشت اطلاعات از طریق برنامه های اندروید بود. در این مصاحبه، از او در مورد مطالعات، OOP و سایر نظریه‌ها پرسیده شد، اما مارات نتوانست شکاف‌های دانش خود را پنهان کند.

با این حال، او رد نشد، اما یک وظیفه عملی به او محول شد - اجرای نمایش لیستی از اخبار با استفاده از API در دو هفته. هم برای iOS و هم برای اندروید. اگر تجربه ای در اندروید داشتم، حتی ابزاری برای ایجاد نسخه iOS وجود نداشت. محیط توسعه برنامه iOS فقط در مک در دسترس است. اما دو هفته بعد برگشتم و نشان دادم که در اندروید چه کاری می توانم انجام دهم. با iOS من باید آن را در پرواز کشف می کردم. در نهایت مرا بردند. سپس در آستاراخان زندگی کردم. هر شغل IT با حقوق بالای بیست برای من مناسب بود.»

توسعه دهندگان iOS چه کسانی هستند؟

توسعه دهندگان موبایل برای هر دستگاه قابل حمل اپلیکیشن می سازند. گوشی‌های هوشمند، تبلت‌ها، ساعت‌های هوشمند و تمامی پلتفرم‌های دیگری که از اندروید یا iOS پشتیبانی می‌کنند. اصول اساسی توسعه موبایل هیچ تفاوتی با توسعه متعارف ندارد، اما به دلیل ابزارهای خاص، در جهت جداگانه ای تفکیک شده است. از ابزارها، زبان های برنامه نویسی و فریمورک های خود استفاده می کند.

برای کار با iOS، به یک مک بوک نیاز دارید، زیرا فقط آن محیط توسعه Xcode لازم را دارد. رایگان است و از طریق AppStore توزیع می شود. برای نصب باید اپل آیدی خود را داشته باشید نه چیز دیگری. در Xcode می توانید برنامه های کاربردی را برای هر چیزی توسعه دهید - تلفن، تبلت، ساعت. آندری آنتروپوف، رئیس بخش توسعه iOS در GeekBrains می گوید: یک شبیه ساز و ویرایشگر داخلی برای همه چیز وجود دارد.

اما اگر از Hackintosh استفاده می کنید، محیط توسعه را می توان روی ویندوز نصب کرد. این یک گزینه کارآمد، اما دوربرگردان است - هیچ یک از توسعه دهندگان جدی این کار را انجام نمی دهند. مبتدی ها یک مک بوک قدیمی می خرند. و افراد با تجربه معمولاً می توانند آخرین مدل را بخرند.»

زبان ها - Swift یا Objective-C

تقریباً تمام توسعه iOS با استفاده از زبان برنامه نویسی Swift انجام می شود. پنج سال پیش ظاهر شد و اکنون به تدریج جایگزین زبان قدیمی Objective-C شده است، که اپل بیش از 30 سال است که در تمام برنامه های خود از آن استفاده کرده است.

یک پایگاه کد عظیم در Objective-C انباشته شده است، بنابراین بسته به شرکت، وظایف و برنامه های کاربردی آن، همچنان به توسعه دهندگان به هر دو زبان نیاز است. برنامه هایی که سال ها پیش نوشته شده اند بر اساس Objective-C هستند. و تمام پروژه های جدید به طور پیش فرض در سوئیفت توسعه می یابند. اکنون اپل کارهای زیادی انجام می دهد تا توسعه همزمان تلفن، تبلت، ساعت و مک بوک را تا حد امکان راحت کند. همان کد را می توان کامپایل کرد و در همه جا اجرا کرد. قبلا این اتفاق نیفتاد برای iOS ما در سوئیفت توسعه دادیم، برای MacOS از Objective-C استفاده کردیم.

به گفته آندری، سوئیفت یک زبان بسیار ساده است که برای مبتدیان دوستانه است. این به شدت تایپ شده است، که به شما امکان می دهد خطاهای زیادی را در مرحله کامپایل پروژه بگیرید و کد نادرست به سادگی کار نخواهد کرد.

Objective-C یک زبان نسبتا قدیمی است - هم سن با زبان C++. در زمانی که توسعه یافت، الزامات زبان ها کاملاً متفاوت بود. وقتی Swift بیرون آمد، باگ بود، عملکرد محدود بود، و نحو ناهموار بود. و مردم دست خود را با Objective-C پر کرده بودند. چندین سال است که بهبود یافته است، تمام خطاهای موجود در آن اصلاح شده است. اما اکنون فکر می کنم سوئیفت به خوبی Objective-C است. اگرچه حتی اپل همچنان از هر دو در پروژه های خود استفاده می کند. زبان ها تا حد زیادی قابل تعویض و مکمل یکدیگر هستند. ساختارها و اشیاء یک زبان را می توان به اشیا و ساختارهای زبان دیگر تبدیل کرد. دانستن هر دو گزینه خوب است، اما برای مبتدیان Objective-C اغلب ترسناک و گیج کننده به نظر می رسد."

پرورش

مرات می‌گوید: «در اولین کارم، رئیسم به من آموزش داد، در پیاده‌سازی و راه‌اندازی پروژه به من کمک کرد، اما کار همزمان روی اندروید و iOS دشوار است. بازسازی، جابجایی از پروژه ای به پروژه دیگر، از زبانی به زبان دیگر زمان می برد. در نهایت به این نتیجه رسیدم که باید یک رشته را انتخاب کنم و آن را مطالعه کنم. من با رابط Xcode و نحو ساده سوئیفت فروخته شدم."

مارات وارد بخش توسعه iOS در GeekBrains شد. در ابتدا خیلی راحت بود، چون خیلی چیزها را از روی تجربه کاری می دانست. دوره سالانه به چهار فصل تقسیم می شود. به گفته آندری، اولین مورد فقط اصول اولیه را ارائه می دهد: "اساس زبان سوئیفت، دانش چارچوب های اساسی، شبکه، ذخیره سازی داده ها، چرخه عمر برنامه، کنترل کننده، معماری های پایه، کتابخانه های اصلی که همه استفاده می کنند، چند رشته ای و موازی سازی در برنامه های کاربردی."

سه ماهه دوم Objective-C را اضافه می کند. دوره ای در مورد معماری و الگوهای برنامه نویسی اولیه برگزار می شود. در سه ماهه سوم سبک صحیح کدنویسی را آموزش می دهند. توضیح می دهد که کارخانه چیست، چگونه تست ها را به درستی بنویسیم، پروژه ها ایجاد کنیم، Git-Flow چیست، یکپارچه سازی مداوم از طریق Fast Lane. سه ماهه چهارم و آخر به کار تیمی، تکالیف عملی و کارآموزی اختصاص دارد.

مارات می‌گوید: «سه ماهه اول آسان بود، اما پس از آن شروع به یادگیری برنامه‌نویسی در Objective-C، مطالعه الگوهای طراحی، اصول Solid، Git-Flow، معماری پروژه، تست واحد و رابط کاربری برنامه‌ها، تنظیم انیمیشن سفارشی کردم. - و سپس من مطالعه جالب شد.

بوریس پاولوف می‌گوید: «برای من در GeekBrains خیلی راحت شروع نشد، و مسیر او برای توسعه iOS به طور کلی مستقیم‌ترین راه نبود. پسر توسط مادربزرگش بزرگ شد. او یک معمار، ریاضیدان و طراح بود و عشق به طراحی را در بوریس القا کرد و به او یاد داد که با دست طراحی کند و طراحی کند. عمویش یک مدیر سیستم بود و به برادرزاده اش علاقه مند به کامپیوتر بود.

بوریس دانش آموز ممتازی بود، اما علاقه خود را به مطالعه از دست داد و پس از نه کلاس مدرسه را ترک کرد. پس از کالج، دوچرخه سواری را آغاز کرد و کامپیوترها در پس زمینه محو شدند. اما یک روز بوریس دچار آسیب دیدگی ستون فقرات شد که او را از ادامه فعالیت ورزشی خود باز داشت.

او تحصیل ++C را با معلمی در موسسه فیزیک خورشیدی-زمینی ایرکوتسک آغاز کرد. سپس به بازی سازی علاقه مند شدم و سعی کردم به C# روی بیاورم. و سرانجام مانند مارات اسیر زبان سوئیفت شد.

تصمیم گرفتم در دوره مقدماتی رایگان GeekBrains شرکت کنم. بوریس به یاد می آورد که صادقانه بگویم، او بسیار خسته کننده، تنبل و نامفهوم بود، "معلم در مورد ویژگی های زبان صحبت کرد، اما بدون اینکه ماهیت آن را آشکار کند، از موضوعی به موضوع دیگر عجله کرد. وقتی دوره به پایان رسید، من هنوز چیزی نفهمیدم.»

بنابراین، پس از دوره مقدماتی، بوریس در یک دوره آموزشی یک ساله ثبت نام نکرد، بلکه در یک دوره کوتاه سه ماهه ثبت نام کرد، جایی که آنها اصول اولیه این حرفه را آموزش می دهند. من معلمان بسیار خوبی را در آنجا پیدا کردم و آنها همه چیز را کاملاً واضح توضیح دادند.

"ما اغلب مورد انتقاد قرار می گیریم، ظاهراً دستورالعمل های آموزشی ما کاملاً به روز نیست، نادرستی وجود دارد. اما دوره ها دائماً به روز می شوند و معلمان همیشه در مورد نوآوری ها صحبت می کنند. از گروه هایی که من رهبری می کنم، بسیاری از آنها پس از سه ماهه اول کار پیدا می کنند. البته معمولاً اینها افرادی با تجربه برنامه نویسی هستند، از طرف دیگر، تمام دانش را نمی توان در یک دوره منتقل کرد. تعامل با مشتری شبکه در زندگی نمی تواند در ده سخنرانی دو ساعته قرار گیرد. و اگر فقط به دوره ها بروید و هیچ کار دیگری انجام ندهید، دانش کافی نخواهید داشت. اگر تمام سال را هر روز مطالعه کنید، با این سرعت فقط افراد تنبل شغلی پیدا نمی کنند. زیرا تقاضا در این حرفه بسیار زیاد است.»

اگر می خواهید یک توسعه دهنده iOS شوید چه انتظاری دارید؟

شما می توانید بیشترین را ببینید آخرین جای خالی برای توسعه دهندگان iOS و مشترک شدن در موارد جدید.

کار

اما نه مارات و نه بوریس به این راحتی شغل پیدا نکردند.

برخی از شرکت‌های بزرگ مدت‌هاست که برنامه‌های iOS را در Objective-C توسعه داده‌اند و همچنان به حفظ پایه کد قدیمی ادامه می‌دهند. متأسفانه، من استدلال قانع‌کننده‌ای ندارم که آنها را مجبور به استفاده انحصاری از سویفت کنم. مارات می‌گوید، به‌ویژه کسانی که از قانون «به چیزی دست نزنید» استفاده می‌کنند، «در Geekbrains توجه کمی به جهت Objective-C می‌شود. بیشتر جنبه اطلاعاتی دارد. اما هر شرکتی که برای آن مصاحبه کردم در مورد 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 متر به بالا می خزد و شب ها 1 متر پایین می آید. چند روز دیگر او به سمت بالا می خزد؟» و چند مورد مشابه دیگر.

سپس سوالات بسیار عجیبی وجود داشت - چرا من عاشق اپل هستم و چه احساسی نسبت به تیم کوک دارم. من گفتم که شرکت در کل نسبت به او مثبت است، بلکه منفی است، زیرا پول برای او مهم است نه محصولات.

وقتی سؤالات درباره سوئیفت شروع شد، دانش من فقط برای الگوهای برنامه نویسی و اصول اولیه OOP کافی بود. خداحافظی کردیم، یک هفته بعد با من تماس گرفتند و گفتند مناسب نیستم. در واقع، من تجربه عظیمی از این به دست آوردم: شما به دانش نیاز دارید، شما به مقدار زیادی از آن نیاز دارید - هم تئوری و هم عمل.

آندری می گوید: «اولین چیزی که در طول مصاحبه از همه پرسیده می شود چرخه زندگی کنترل کننده است. آنها واقعاً دوست دارند یک الگوی برنامه نویسی ساده بخواهند. آنها قطعاً در مورد تجربه شما از استفاده از کتابخانه های محبوب سؤال خواهند کرد. قطعاً سؤالی در مورد تفاوت انواع ارزش سوئیفت با انواع مرجع، در مورد شمارش خودکار مرجع و مدیریت حافظه وجود خواهد داشت. آنها ممکن است بپرسند که چگونه ذخیره سازی داده را در برنامه ها پیاده سازی کرده اند و آیا درخواست های شبکه را پیاده سازی کرده اند یا خیر. آنها در مورد اصول REST و JSON سوال خواهند کرد. از جونیور چیزها و ظرافت های خاصی خواسته نمی شود. حداقل من نمی پرسم."

بوریس تجربه متفاوتی داشت: «حتی وقتی درخواست کارآموزی کردم، کارهای فنی را انجام دادم و گفتم که حقوق برایم مهم نیست، تا زمانی که برای اجاره آپارتمان کافی است، باز هم از من رد شد. من مقالاتی را خواندم، سعی کردم بفهمم که یک استخدام کننده از یک تازه وارد چه نیازی دارد. اما آنها بیشتر در تئوری ها شکست خوردند. آنها به دلایلی از لیگ های بزرگ سؤالاتی پرسیدند که به تازه واردها مربوط نمی شد.

مارات خوش شانس تر بود. او اکنون در یک شرکت حمل و نقل کار می کند و به تنهایی مسئول بخش iOS است و در عین حال در دانشکده ادامه می دهد. "از آنجایی که من تنها مسئول iOS هستم، کار من فقط با توانایی من در اجرای وظایف محول شده به من ارزیابی می شود و نه با دانش تئوری."

انجمن

آندری در نیژنی نووگورود زندگی می کند و می گوید که حتی در آنجا یک جامعه بزرگ تشکیل شده است. روزی روزگاری او یک توسعه دهنده باطن در پایتون بود، اما دوستانش او را به سمت توسعه موبایل کشاندند - و حالا خودش همه را تشویق به انجام این کار می کند.

جامعه جهانی معمولاً از طریق توییتر ارتباط برقرار می کند. مردم وبلاگ های خود را می نویسند، در یوتیوب ویدیو ضبط می کنند، یکدیگر را به پادکست دعوت می کنند. یک روز در مورد ارائه ای سوال داشتم که در آن رهبر تیم HQTrivia صحبت کرد. این یک بازی مسابقه آمریکایی است که به طور همزمان توسط چندین میلیون نفر انجام می شود. من در توییتر برای او نوشتم، او جواب من را داد، صحبت کردیم و من از او تشکر کردم. جامعه بسیار دوستانه است، که عالی است.»

فهرست ادبیات توصیه شدهسطح مقدماتی:

سطح میانی:

سطح پیشرفته:

منبع: www.habr.com

اضافه کردن نظر