یه مصاحبه فوق العاده کاربردی با جناب مهندس پویا حیدری مدرس دوره های  Java و Android در سماتک و مجتمع فنی تهران , در ابتدای مصاحبه مهندس حیدری از بیوگرافی و رزومه کاریشون می گن در بخش دوم مصاحبه راجع به نحوه تدریس خودشون و همچنین نقشه راه آموزش اندروید صحبت می کنند و در بخش بعدی مصاحبه راجع به انتخاب بین جاوا و kotlin تا ابزارهای cross platform صحبت می کنند و در بخش بعدی راجع به پروژه های منبع باز خودشون روی گیت هاب .

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

متن صدای ویدیو :

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

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

مهندس پویا حیدری: حتما.سلام میکنم خدمت تمام بینندگان.امیدوارم اولا که حال همتون خوب باشه ضمن اینکه این برنامه ، حالا چیزی که داریم صحبت میکنیم بتونه کمک بکنه بهتون برای پیشرفت حالا اگر بشه و بتونیم.

کارشناسان.نت: مرسی ممنون . مهندس جان میخواین اول یه بیوگرافی کوچیکی از خودتون بگین و اینکه اصلا چه جوری وارد دنیای برنامه نویسی شدین؟و علی الخصوص برنامه نویسی اندروید.

مهندس پویا حیدری: بله خواهش میکنم. بخوایم شروع بکنیم،زمانی که من وارد کلا دنیای برنامه نویسی شدم حدودا اوایل دانشگاه بود دیگه اون اوایل دانشگاه شروع شد.که با رشته IT وارد دانشگاه شدم و شروع کردیم به کارای برنامه نویسی و اینجور داستانا با HTML و CSS و PHP شروع شد به اضافه C++ و اینا. تا اینکه آروم آروم اون موقع ها گوشی های اندرویدی داشتن تازه وارد بازار می شدن و جذاب شده بودن دیگه با یه نیم نگاهی به آینده تصمیم گرفتم کم کم برم سراغ اندروید و اینکه حالا دیگه از اون موقع تا حالا همچنان تو این حیطه مونده و هستم.

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

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

کارشناسان.نت: مهندس از کجا شمارو میشناختن؟

مهندس پویا حیدری: توی فضای مجازی یه ذره هست دیگه این مثلا اگر دنبال یه Android Developer بگردید جزو چیزایی که میبینید احتمالا حالا صفحه 10 و 20 گوگل میشه اسم منو ببینید. دیگه بالاخره پیدا کرده بودن از اونجا و تماس گرفته بودن.صحبت کردیم حالا همونطور بهشون گفتم من خیلی سابقه تدریس ندارم.خیلی قدیم زمانی که قبل از اینکه من بخوام وارد دانشگاه بشم من شبکه ای کار میکردم. اون زمان شبکه MCSE و MCSA و اینجور چیزای Microsoft بود، یه دوران خیلی کوتاهی من تدریس کرده بودم. ولی

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

کارشناسان.نت: بسیار عالی. الان چندتا دوره برگزار کردین تو سماتک؟

مهندس پویا حیدری: توی سماتک، عدد دقیق ندارم ولی احتمالا. میدونین که توی سماتک 3 تا دوره داریم اولین دوره اش Java Fundamental  هستش که یه دوره مقدماتی جاوا برای اندروید، بعدشم یه Android basic هستش و دوره Android advanced . سرجمع که همه دوره هارو بخوایم با هم بگیم فکر میکنم یه پنجاه،شصت هایی دوره شده باشه تا الان.

کارشناسان.نت: درسته بسیار عالی.بعد مهندس حالا کسی که میخواد اندروید رو شروع کنه من میخوام از خود شما اینو بدونم که به نظرتون قبلش باید از جاوا شروع کنه یا مستقیم بیاد سراغ خود اندروید؟ نظر شما چیه؟

مهندس پویا حیدری:  یه چیزی خیلی مهمه. به نظرم کسی که تازه میخواد شروع کنه برنامه نویسی اندروید رو، اگر تا به حال برنامه نویسی نکرده، بهترین کاری که میتونه بکنه اینه که از یه زبونی مثله زبون جاوا شروع کنه برنامه نویسی رو یه سری زبونا حالا مثل C++ و حالا یه ذره از اون سطح بالاتر Java، میشه گفت چهار چوب های اصلی رو توی ذهن برنامه نویس قرار میدن. برنامه نویس یه سری مفاهیم پایه رو متوجه میشه و آروم آروم براساس اون هی دانشش رو اضافه میکنه و پیشرفت میکنه. ولی الان همونطور که میدونی مثلا یه زبانی هست که یه یکسالی میشه که گوگل خیلی روش مانور میده و خیلی تبلیغ میکنه زبون خیلی قوی و قدرتمندی هست به اسم kotlin . خیلی ها این سوالو میپرسن میگن از kotlin شروع کنیم یا از java؟

کارشناسان.نت: دقیقا سوال منم هست مهندس

مهندس پویا حیدری: اگر دانش خیلی خوب جاوایی نداشته باشی به نظر من kotlin رو که یک زبان jvm base دیگه هست رو به خوبی متوجه نمیشین. بهترین کار اینه که تا یه حد متوسطی حداقل زبون جاوا رو یاد بگیرید و خوب متوجه بشید و و بعد برین سراغ زبان kotlin که میشه گفت یه مقدار زبان سطح بالاتره و در واقع اتفاقایی که میوفته اینه خیلی از کارایی که شما توی Java باید انجام میدادین رو اینجا یه پوشش و بسته ای روش کشیدن یه سری قسمت هاش که شما دیگه در اون حد در ارتباط نیستین با اون قسمت هاش. یه سری رو خیلی کمتر میبینید و کارت انجام میشه. ولی اگه واقعا برنامه نویس ندونه که اون پشت چه خبره و چه اتفاقایی اونجا داره میوفته قطعا قطعا در طی زمان دچار خیلی مشکلات میشه. در طی فرآیند تولید اپلیکیشنش. به خاطر همین بهترین کار اینه که اون core و هسته قضیه رو بدونید و بعد آروم آروم اونو تقویت بکنیم. ضمن اینکه خودمو اگه زبان جاوا بلد باشیم یادگیری یه زبان jvm base دیگه مثل kotlin دیگه خیلی زمان نمیبره. حداکثر دوره 2 الی 3 ماهه بهش مسلط میشیم 

کارشناسان.نت:  بعد اصلا الان خود اون kotlin حالا تموم موارد رو پوشش میده یا کسی که با kotlin هم بخواد کار کنه نیازه که یه جایی از جاوا استفاده کنه؟

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

کارشناسان.نت: درسته بعد حالا خودتون مهندس اون جاوایی که تدریس میکنین بعد کسی که توی کلاس شما جاوا رو آموزش دید بعدش دیگه باید بلافاصله وارد اندروید بشه یا باز نیازه که بره با جاوا حالا نمیدونم برنامه بنویسه کاری انجام بده قبلش؟یا نه بعدش دیگه یه ضرب میتونه وارد دنیای اندروید بشه؟

مهندس پویا حیدری: ببینین کلاس هایی که ما داریم، قدیم اصلا قدیما کلاس جاوا وجود نداشت java fundamental وجود نداشت. مستقیما Android basic بود و Android advanced . اما یه مشکلی که خیلی توی کلاسا مواجه میشدیم باهاش این بود که بچه ها خیلیاشون مشکل یادگیری اندروید ندارن فقط نمیدونن برنامه ای که نوشتن چجوری داره کار میکنه. خب به هر حال ما برای فریم ورک اندروید داریم به زبان جاوا کد مینویسیم پس باید حداقل به یه سری مباحث اولیش مسلط باشیم. چیزایی که ما باهم دیگه توی کلاس به بچه ها میگیم توی java fundamental خیلی مباحث پیشرفته جاوایی نیست همشون مباحث پایه هستند مثل دستورات شرطی و کنترلی و ...

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

کارشناسان.نت: بعد حالا یه سوال دیگه ای هم هست که خیلی مخاطبان برنامه ما بیشتر .NET کار هستن حالا اگه اینا بخوان وارد برنامه نویسی اندروید شن اینا خب معمولا با C# آشنایی کامل دارن.اینا هم باید برن باجاوا شروع کنن؟یا اینا میتونن مستقیم وارد اندروید شن؟

مهندس پویا حیدری: من توی کلاسام همیشه با شاگردام یه شوخی و بحثی داریم من همیشه میگم از زبان های مایکروسافت و .NET و اینا بدرد نمیخورن ولی خب یکی از خوبیایی که این زبونه داره خب میدونین C# را کلا از روی زبون جاوا اومدن ساختن و سعی کردن یه سری بهبود ها روش بدن. تا اینکه C# متولد شد و ساخته شد.بنابراین اکثر چیزایی که تو این زبان میبینید بسیار بسیار بسیار شبیه جاواست. یعنی حتی تعاریف کلاس ها و متدها و نحوه نامگذاری کلاس ها و اینا خیلی شبیه کلاس های جاواست.کسایی که C#  کار کردن فقط در حد خیلی ابتدایی مسائل خیلی ابتدایی جاوا رو یاد بگیرن خیلی سریع تر میتونن نسبت به بقیه کارشونو انجام بدن. یعنی حتما خیلی نیاز نیست که خیلی عمیق بخونن نمیدونم مثلا هفت هشت دور جاوا بگذرانند.

کارشناسان.نت: درسته. بعد مهندس شما خودتون برای تدریس ، دورتون پروژه محوره یا تئوریه؟یعنی روش تدریستون هم یه توضیح بدین خیلی ممنون میشیم. 

مهندس پویا حیدری: بله حتما. توی کلاس هایی که ما داریم تایممون خیلی محدوده یعنی کلاس جاوامون 12  ساعته کلاس اندروید پایه مون 32 ساعته و اندروید پیشرفته هم 36 ساعته. به خاطر اینکه زمان محدوده در کلاس وقت نمیشه کسی بخواد کاری انجام بده. تو این کلاس ها تنها کاری که من میتونم بکنم اینه که مباحث رو یکی پس از دیگری مطرح بکنم  و فقط مطمئن بشم که اون لحظه بچه ها دارن اون مباحثو همشو متوجه میشن.ولی حتما حتما کسی که داره یه کلاسو شرکت میکنه و یه سری مطالب را یاد میگیره باید حتما اون مطالب را بره و تمرین بکنه و حتما اون کد رو خودش بنویسه. کاری که توی سماتک ما میکنیم ، مثلا بچه ها هرجلسه ای که میرن خونه تا جلسه بعدش وقت دارن که یه سری task هایی که تمام مطالبی که اون جلسه یاد گرفتن رو پوشش می ده ، کامل انجام بدن و تا قبل از جلسه بعدی برامون بفرستن.خب اگه هم نفرستن که عواقب بدی داره دیگه حالا باید جریمه بخرن و از اینجور کارا بکنن.ولیکن که بله هر دونوعه هم تئوریه هم پروژه است و هم آخر دوره هم که دوباره یه پروژه دیگه دارن بچه ها و هم امتحان تستی.

کارشناسان.نت: بسیار عالی.بعد مهندس یه خورده هم راجب بازار کار اندروید صحبت کنید، کسایی که میخوان وارد این کار بشن الان بازار کارش چجوریه مثلا رنجهای حقوقی برای مثلا  حالا یه اندروید کار جونیور تا اون لول سنیورش رنجهای حقوقیش چجوریه.بازار کارش کلا" چجوریه؟

مهندس پویا حیدری: در حال حاضر حالا میدونین هر زمانی هر بازه زمانی چند ساله ای یه پلتفرمی خیلی محبوب میشه و درآمدی که از اون بدست میارین خوب میشه و دوباره هی هرازچندگاهی هم برنامه عوض میشه. یه زمانی بود که اگه خاطرتون باشه وب اینجوری بود که یه نفر اگر از developer بود حالا front و یه ذره هم backend ، درآمد خیلی زیاد و خوبی داشتن. الان در حال حاضر پلتفرم، پلتفرم موبایله. حالا این به این معنا نیست که کسایی که وب کار میکنن حقوقشون کمه ها. الان در حال حاضر اشتیاق شرکت ها و تمام افراد به اینه که یه اپلیکیشن موبایل داشته باشن خیلی زیاده. قبلا بازار اینا نصف نصف بود، توسعه دهندگان اندروید و توسعه دهندگان IOS .ولی مشکلاتی که برای گوشی های IOS پیش اومده دیگه اکثر شرکتها بیشتر علاقشون به اپلیکیشن های اندرویدیه. در حال حاضر خداروشکر خداروشکر.این بازار خیلی خوبه یعنی واقعا اگر یه کسی اندروید رو بخواد کار کنه فقط کاغی یه جستجو تو سایت های آگهی استخدام یه جستجو داشته باشه تا کارهای اندروید براش لیست بشه و میتونه بره جاهای مختلف کار بکنه.حالا هم داخل ایران همینطوریه و هم کسایی که چک کرده باشن خارج ایران هم حقیقتااینطوریه. حالا اونم کار نداریم توی Linkedin و اینجور جاها میتونن یه کشوری رو انتخاب کنند توی قسمت شغلش اندروید رو بزنن ببینن که پنجاه صفحه براش باز میشه که شغل برای اندروید هست.حالا رنج حقوقی که گفتین خیلی بستگی داره به میزان دانش و موارد دیگه. حالا یه میزان خیلی زیادش به دانش ربط داره یه میزان زیادش به مذاکره کردن ربط داره. ولی حالا اگه بخوایم یه رنج خاصی واسش بزاریم،من همیشه سرکلاس به بچه هام میگم

 حداقل حقوق اگر بخوایم یه رنجی براش بزاریم از حدود 500-600 هزار تومان برای کارآموز و کسی که هیچی بلد نیست و اینا شروع میشه تا حالا مخصوصا شهرهایی که جمعیت کمتری دارن تا میره حدودای 15 تومن، حتی 20 میلیون تومن برای کسایی که حالا رهبر یه تیمی میشن، دانششون بیشتر میشه نسبت به بقیه و میتونن یه مجموعه ای از برنامه نویس های موبایلی رو هدایت بکنن و کارشونو انجام بدن. بازه درآمدی خوبیه دیگه حالا اگر 500-600 تومنیه رو بیخیالش بشیم.اگر یه نفر یه ذره تلاش بکنه واقعا در حد چندین ماه خیلی پرفشار اگر تلاش بکنه خیلی راحت به وسطای این رنجه میتونه برسه. یعنی مثلا به 10تومن،8تومن خیلی راحت میتونه دست پیدا بکنه. چیز خیلی دور از ذهن و انتظاری نیست.

کارشناسان.نت: درسته. بعد مهندس فکر میکنم شما خودتون تجربه فریلنسی هم داشتین درسته؟

مهندس پویا حیدری: بله بله یه تایمی

کارشناسان.نت: بعد الان توصیتون چیه برای کسی که میخواد این کارو حالا شروع کنه به نظرتون مثلا بره یه جایی استخدام شه بهتره بره اصلا دنبال کارای فریلنسی؟

مهندس پویا حیدری: خیلی به نظر من مهمه کسی که اول میخواد کارشو شروع بکنه از ابتدا، حتما حتما اگر میتونه بره وارد یه شرکتی بشه به خصوص شرکت هایی که به بیشتر از یه نفر برنامه نویس موبایل دارن اگر میتونه. اگر نه بره حداقل با چندتا برنامه نویس با حداقل یکیشون backend باشه یکی frontend باشه و با آدمای دیگه کار بکنه.دلیل اصلیشم دوتاست ، یکی اینکه بازار فریلنسی توی کشورمون برای خیلیا دائمی نیست واقعا. یه مواقعی هست که خیلی خوب و اوکیه و درآمدش خیلی خوبه ولی یه سری مواقع هم واقعا هستش که خبری نیست دیگه ،کساده بازارش. ضمن اینکه بیشتر پروژه های که میرسه به دست برنامه نویس ها ، اینجوری نیست که توی خونه بشینن مثلا یکی بهشون بگه این پروژه رو انجام بدید. بلکه این مدلیه که باید توی محیط IT ایران مطرح بشن آروم آروم شناخته بشن.

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

کارشناسان.نت: درسته. بعد سوال دیگه ای که هست اینه که شما خودتون الان به قول معروف دیگه تدریسم میکنین و در بالاترین لول اندروید هستین. برای اینکه اون به قول شما رو لبه تکنولوژی موندن ، برای اینکه بتونین اون دانش خودتونو حفظ کنین، الان خودتو از چه منابعی استفاده میکنین؟چجوری مطالعه میکنی اصلا روش مطالعه شما چجوریه؟

مهندس پویا حیدری: اول اینو بگم که نه من حالا حالا ها خیلی مونده که به اون قله برسم ولی توی حیطه اندروید یه مشکلی که واقعا وجود داره اینکه هر روز میشه گفتش که هر روز یعنی واقعا هر روز یه تکنولوژی جدید معرفی میشه و باید کاربر استفاده بکنه، یعنی اگر همین الانو بیایم مقایسه بکنیم با مثلا 3 سال پیش 5 سال پیش، تمام چیزایی که دارن استفاده میشن هیچکدوم وجود نداشتن حتی دوسال پیش، 3 سال پیش و تازه به وجود اومدن یعنی در واقع حداکثر هر 3-2 سال اندروید میشه گفت یه پوستی میندازه تو لایه تکنولوژی و اون تکنولوژی که دارن استفاده میشن کلا تغییر میکنن و عوض میشن.

هر روز واقعا یه اندروید developer باید مطالعه بکنه. یعنی اگر در روز8 ساعت 9 ساعت هرچقدر کار میکنه حداقل بین 1 تا 2 ساعت باید کار مطالعه را انجام بده.وگرنه به سرعت، اینجوری هم نیست که بگم چه میدونم یه ماه دوماه اینکارو نکنم بعدا" این کارو انجام میدم واقعا به سرعت از اون چرخه بیرون میوفته. بهترین کار اینه که مقاله بخونن بچه ها اگر میتونن بهترین کار خوندن مقالست. سایت medium رو هم همه میشناسن دیگه افراد خیلی زیادی میان اونجا شروع میکنن مقاله میزارن و از دانشی که دارن صحبت میکنن. و راجب هرنکته ای شما فکرشو بکنین اونجا مقالش وجود داره.بهترین کار اینه که مقاله بخونن. برای دونستن یه سری چیزای کلی خوندن کتاب خوبه. ولی اگر میخوان به روز باشن کتابه قطعا کمکشون نمیکنه.زمانی که اون طرف کتابو نوشتن تا بیاد منتشر بشه حداقل یه سالی طول میکشه.

تو اون یه سال نصف چیزایی که اون نوشته ، از رده خارج شده. بنابراین مقالات بهترین کمک کننده به افرادن واقعا.ضمن اینکه حالا کرس زیادی هم وجود داره که کسایی که تو یه سری موارد خاص مشکل دارن مثلا اوکی امروز یه نفر متوجه میشه که مثلا باید از کتابخانه ایی dagger باید استفاده کنه برای Dependency Injection و این صحبتا. حالا میخواد یاد بگیره چجوری از اون dagger استفاده کنه؟ دوتا منبع خیلی فوق العاده وجودداره.یکی YouTube که میشه گفتش که از کشور هند تقریبا از هر تابعی که شما فکرشو بکنین تو اندروید اونجا صحبت کردن و وجود داره ولی اگه یه ذره عمیق تر بخوان بشن و یه کرسی ببینن که به جز کارراه اندازی یه دانش خوبی هم ازش کسب بکنن، کرسای شرکت لیندا و udemy و اینجورجاهارو ببینن خیلی بهشون کمک میکنه.خداروشکر که ما اینجا کپی رایت و اینجور چیزا نداریم و یه سرچ بزنن اسمشو به فارسی قطعا پیدا میشه و رایگان میتونن دانلودش کنن.

کارشناسان.نت: بسیار عالی. بعد یه سوال دیگه ای که حالا خیلی میپرسن الان یه سری ابزار هست که حالا جدیدم نیست، خیلی وقته این ابزارا هستش مثل مثلا xamarin،react native، اصلا شما توصیه میکنین؟یعنی به نظر شما کسی که میخواد وارد دنیای اندروید بشه بره سراغ اون ابزارا مثل حالا xamarin،react native، و سایر موارد دیگه ای که هستن یا نه؟به نظر شما این سمت بهتره؟ نظر شما چیه؟

مهندس پویا حیدری: اینو خیلی از بچه ها میپرسن تو کلاس.من یه چیز خیلی مهم همیشه بهشون میگم.میگم که چرا؟چه اتفاقی افتاد که windows mobile و windows phone اینا از بین رفتن؟ و دیگه کسی ازشون استفاده نمیکنه؟با اینکه نسخه موبایلی ویندوز خیلی خوب بود تا این اواخر ولی خب از بین رفت ، به این خاطرکه هیچ اپلکیشنی وجود نداشت برای این محیطه. در نتیجه خب هیچ کاربری هم نمیرفت سراغ خریدن و استفاده کردن از اون. هیچکدوم از شرکتهای بزرگ مثل گوگل مثل اپل، اینا بدشون نمیاد developer بیشتری داشته باشن یا مثلا مثل خود فلاتر گوگل اگر واقعا خیلی قابل اعتماد بود و کارراه انداز بود ، گوگل چه مشکلی داشت میگفت همتون بیاید flutter یاد بگیر یا همه بیاین react native یاد بگیرین با این کد بنویسید دیگه.

اینجوری هم برنامه نویسایی که قبلا جذب کرده بود همچنان وجود داشتن ضمن اینکه یه عالمه برنامه نویس جدید هم جذب میکرد.بهترین کار وقتی که شما میخواین با یه فریم ورکی کار بکنین، کار کردن با اون زبان و سیستم حالا ، IDE حتی رسمی که اون شرکت خودش داره پیشنهاد میده. به دلیل اینکه تمام آپدیت ها،تمام مشکلات امنیتی که رفع میکنن،نمیدونم ابزار های جدیدی که ارائه میکنن همشون برای این سیستم رسمی هست. یعنی اگر شما الان فرض بکنید اندروید 10 اومده مثلا. چه میدونم مثلا یه چیزی مثل نوتیفکیشن بهش اضافه شده.قبل از اینکه این اندروید 10 بخواد بیاد از 5ماه،6ماه قبل SDK های beta هاش منتشر میشه برای برنامه نویسان. برنامه نویسان از اش استفاده بکنند، اپ هاشون رو منطبق بکنن.

ببین الان فرض کنین ما همینکارو بخواین با react native انجام بدیم اندروید 10 اومده نوتیفکیشن اومده،11 و 12 میاد،13 و 15 هم میاد تازه شاید یه نفر بیاد یه ابزاری بنویسه که بتونه Notification را نشون بده توی اندروید 10 با react native. شایدم نیاد هیشکی ننویسه شما این هیچ وقت نتونید این کار رو انجام بدین.پس استفاده کردن از این ابزارهای third party خیلی مناسب نیست حالا یه جاهایی برای یه سری شرکت ها کار راه اندازه اگر هم دقت کرده باشین بیشتر جاهایی استفاده میشن که میخوان که یه محصول MVP رو سریع تولید بکنن بدن تو بازار یه نتیجه ای بگیرن.

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

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

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

این اپلیکیشن خیلی داره روش کارمیشه حالا متاسفانه یه اتفاقایی افتاد که در حال حاضر یه نسخه 1 که وجود داره یه ذره ظاهرش خوشگل نیست یه ذره مشکلات ظاهری داره که در نسخه 2 که انشاالله قراره بیاد این مشکلات قراره برطرف بشه ظاهر جدید ساخته شده و به زودی این اپلیکیشن با یه ظاهر جدید میاد.این اپلیکیشن فقط تو ایران قاعدتا کاربرد داره و و برای ایرانی هایی که خارج از ایران هستن. و حالا سوال دارن راجب کارهای کنسولیشون نمیدونم یه نفر که خارج از ایرانه میخواد ببینه که وضعیت سربازیش تو ایران چی میشه به درد اینجور افراد میخوره به خاطر همین این اپلیکیش تک زبانست و فقط زبان فارسی رو ساپورت میکنه. اپلیکیشن الی گشت هم که شما گفتین 

کارشناسان.نت: آقای مهندس ببخشید این رو تیمی روش کار کردین یا فقط خودتون بودین؟

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

کارشناسان.نت: بعد چقدر نوشتنش زمان برده؟

مهندس پویا حیدری: اگر بخوام وقفه هایی که تو کار افتاده که مربوط به برنامه نویسی نبوده رو کنار بزاریم نوشتن اپلیکیشن اندرویده فکر میکنم یه چیزی حدود 4 ماه زمان برد. ولی خب این پروسه 4 ماهه تبدیل شد به پروسه مثلا تقریبا 10-9 ماهه به خاطر یه سری وقفه ها از طرف کسایی که تصمیم میگیرن برای پروژه بر اساس سیاست های تجاری و چیزایی که دارن میوفته که به دلیل اون یه ذره زمان پروژه طولانی تر شد.

کارشناسان.نت: درسته.بعد راجب الی گشت هم توضیح میدین؟

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

کارشناسان.نت:  بعد اینا جفتش با جاوا بوده دیگه؟ با kotlin که استفاده نشده درسته؟

مهندس پویا حیدری: شهرداد کاملا همش با kotlin نوشته شده، کد جاوایی توش وجود نداره، اپلیکیشن الی گشت بله کاملا با جاوا بود.

کارشناسان.نت: درسته. بعد مهندس من دیدم حالا یه سری پروژه هم دارید، گیت هاب دارید اگر بتونید دکستاپتونو share کنید نمیدونم می تونید مثلا پروژه هاتونم اونجا دونه دونه یه توضیحی بدین 

مهندس پویا حیدری: 4-3 تا دونه فعلا پروژه هست ولی در آینده هم این پروژه ها حالا یه عالمه هست تو سبک اینا آروم آروم رد بکنم بسازمشون و بتونم بزارمشون این رو. حالا به همین ترتیب اومد. یکی از پروژه هایی که هست اسمش موزیک منیجره. خیلی خود این اپلیکیشن کار خاصی نمیکنه میتونین راجب خواننده و جزئیات سرچ بکنین و و آلبوم هایی که وجود داره از اون خواننده رو ببینید بعد نه play میشه کرد نه save میشه کرد. فقط میتونه اون آلبوم و اینارو سرچ کنه خود آهنگو save نمیشه کرد. بعد

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

مهندس پویا حیدری: یه API ای هست برای سایت Last FM وصل میشه به سایت Last FM و دیتاش رو از اونجا میاره. البته بیشتر این پروژه برای این بود که این مباحثی که خیلی در حال حاضر مطرحه توی دنیای برنامه نویسی اندروید اینارو بیشتر نحوه کار کردن باهاشو بچه ها ببینن که چجوریه یکی از همین پروژه هاست

کارشناسان.نت: مهندس یه لحظه برمیگردین همون قبلیه؟

مهندس پویا حیدری: بله بله

کارشناسان.نت: ببینین اینجا 3تا گزینست.حالا API که.بالا بالا بالا یه خورده بیاین بالا.API که مشخصه چیه.اون build و اون code quality میگین یه توضیح میدین راجبش که چی هست؟

مهندس پویا حیدری: بله بله اون دوتا. هرکدوم از اونا نرم افزار سایتن در واقع ، سمت راستیه اون که code quality داره نشون میده کلاس A یه چکی میکنه کدهای پروژه شمارو و حالا بر اساس یه سری معیار هایی که اونجا وجود داره اگر مشکلی تو کدتون باشه یا خوانا نباشه کدتون و کدتون رد کرده باشه و اینجور چیزا بهتون اطلاع میده که کد شما مثلا این مشکلاتو داره و بر اساس حالا میزان مشکلاتی که پروژه میتونه داشته باشه این کدی که شما نوشتین از A تا F رده بندی میشه.

کارشناسان.نت: بعد اینو با گیت هاب یعنی با کدتون چجوری مرتبط میکنین؟از تو IDE تون؟ API داره چجوریه؟

مهندس پویا حیدری: نه نه این اگر روش کلیک بکنید اون سایت اش باز میشه بعد واردش بشید و بعد بگید که حالا میخوام فلان پروژه رو..

کارشناسان.نت:  آها آدرس گیت تون رو اینجا بهش میدید درسته؟

مهندس پویا حیدری: آره اینجا sign up میکنید و کار رو انجام میدید 

کارشناسان.نت:  بعد اون یکی Build چیه؟

مهندس پویا حیدری:  آره اون یکی Build هم کارش اینه که سعی میکنه یبار چیزی که شما اینجا گذاشتین رو Build بکنه از سایت travis سعی میکنه کدای شمارو build بکنه. اگر موفق بشه این کد رو Build بکنه و بسازه یعنی اینکه حداقل این کده هیچ مشکلی وجود نداره که باعث بشه یکنفری که کد شما کلون میکنه و میخواد رو گوشیش نصب بکنه همون اول که میخواد نصب بکنه به مشکل بخوره نصب نشه اپلیکیشن. معنیش اینه که اپلیکیشن با موفقیت build میشه و آماده نصبه.

کارشناسان.نت:  این فقط مخصوصه اندرویده مهندس 

مهندس پویا حیدری: نه نه برای تمام زبان ها وجود داره فقط برای پلتفرم اندروید نیست برای همه چیز میتونیم ازش استفاده بکنیم. مطمئن میشه که پروژه شما حتما حتما build میشه. چون روی پروسه تولید نرم افزار ممکنه که شما یه اشتباهی یه وقت یه جایی بکنین یه commit بکنین که خراب بکنه کلا پروژتون رو و build هم نشه و اگه یک همچین اتفاقی بیوفته این بلافاصله بهتون ایمیل میزنه خبر میده که یه مشکلی پیش اومده که این پروژه شما Build نمیشه. مشکل در قسمت مثلا x هست و مشکلتو حل بکن تا بتونی کارتو ادامه بدی

کارشناسان.نت: درسته بعد الان کسی که بخوان الان از این کد شما استفاده کنن android studio چه ورژنی باید داشته باشن؟ 

مهندس پویا حیدری: با هر ورژنی میتونن استفاده بکنن ولی آخرین نسخه android studio رو من همیشه دارم پیشنهاد میکنم که همیشه هم بچه ها داشته باشن

کارشناسان.نت: api هم 21 دیگه؟

مهندس پویا حیدری: api این چیزی که باهاش پروژه ساخته شده 21 به بالا ساپورت میکنه. android studio من در حال حاضر 1 .5 .3 هستش 

کارشناسان.نت:  بعد اون سایته هم گفتین مثه همون قبلیه آدرس گیت مربوط به repository تون رو بهش میدین درسته؟

مهندس پویا حیدری: بله بله ریپوزیتوری رو میدین و یه فایل .travis.yml هم اینجا بسازید و هرکس خواست میتونه بیاد اینجا ببینه چی باید بنویسه. یه سری دستورات باید بهش بدید از طریق این فایل دستوره بدید که چجوری پروژه شمارو Build بکنه بعد کار رو خودش انجام میده.

حالا یه اپ دیگه هم هست اگه از این اپه سریع بگذریم یه اپلیکیشن اسمش Star wars هستش حالا کارکترهایی که توی استاروار وجود داشت رو سرچ بکنید و یه چیز کلی ازش ببینید اینم بیشتر برای یادگیری اینکه چجوری از این دیتاها بتونیم استفاده بکنیم.

کارشناسان.نت: الان جفتشم با kotlin بود درسته؟

مهندس پویا حیدری: بله

مهندس پویا حیدری: و جفتشونم تو گوگل پلی هستن. خود APK اش رو اگه کسی خواست میتونه اونجا بره ببینه از اون جذابتر، چیزی که من خیلی دوس داشتم این کتابخانه AndroidAppUpdater هست.

کارشناسان.نت:  اینو یه توضیح میدین؟

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

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

کارشناسان.نت:  بعد این با جاواست دیگه درسته؟

مهندس پویا حیدری: نه اینم با kotlin

کارشناسان.نت: اینم با kotlin ، بعد مهندس اون دکمه های بالا Jit Pack و Easy App Updater رو یه توضیح میدین؟

مهندس پویا حیدری: این Jit Pack جایی که این کتابخانه در اون قرار داره و وقتی که یه نفر بخواد این کتابخانه رو به پروژه ای که در حال حاضر داره اضافه بکنه در واقع یه جوری میره از این Jit Pack اینو میگیره. فقط کافیه این لینکی که حالا این دستوری که اینجا وجود داره رو توی gradle پروژه خودش بزاره و اون پشت صحنه خود IDE میره از توی این Jit Pack در واقع این کتابخانه رو دانلود میکنه کدش که کاربر و برنامه نویس بتونه از اون برنامه استفاده بکنه.

کارشناسان.نت:  بعد این Jit Pack یعنی خودتون یبار رفتین اونجا آپلود کردین یا باز فقط آدرس گیت رو بهش دادین؟

مهندس پویا حیدری: اونم نه دیگه اونم کافیه فقط ثبت نام کنید با گیت هاب تون حالا یا لاگین بکنین بعد بگین که کدوم پروژتون به عنوان کتابخانه قراره استفاده بشه یه چندتا دونه دکمه سادست یعنی خیلی کار خاصی نداره 

کارشناسان.نت: بعد این یکی چی Easy App Updater ؟

مهندس پویا حیدری: این یکی سایت android-arsenal هست ، حالا برای کسایی که آشنا نیستند با این سایت بد هم نیست حالا سایته رو بگیم. این سایت یه جاییه که بهترین کتابخانه های اندرویدیی جمع آوری میکنه ، ایرانیم نیست ، سایت خارجیه ، برنامه نویسای مختلف کتابخانه هاشونو ارسال می کنند برای این سایت و این سایت کتابخانه ها رو بررسی میکنه و اگر خوششون بیاد روی سایت خودشون این کتابخانه هارو منتشر می کنند. یکی از چیزایی که یه برنامه نویس وقتی میخواد یه کتابخانه رو انتخاب بکنه میتونه بهش حالا یه نیم نگاهی داشته باشه میتونه ببینه این کتابخانه توی android-arsenal منتشر شده یا نه چون یه چندتا برنامه نویس اندرویدی خوب چکش کردن و از زیر نظر اونا رد شده و اونا قبولش کردن.این کتابخانه Easy App Updater در android-arsenal منتشر شده و این badge که اینجا هست نشون دهنده اینه که این کتابخانه اینجا منتشر شده و اینجا هست و میتونن ببینن.

کارشناسان.نت: بسیار عالی

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

کارشناسان.نت: آهان این مهندس این چی بود یه توضیح میدین؟

مهندس پویا حیدری: آره این از اندروید نمیدونم 6-5 به بعد دیگه شمای برنامه نویس نمیتونین به کاربرتون لودینگ رو در قالب progress dialog نمایش بدین، یعنی یه دیالوگ نشون بدین که یه progress ایی توش باشه و مثلا وقتی دیتایی که خواستین رو فچ کردین و لود کردین بعد اون لودینگه رو از بین ببرید و اگر بخواید همچین کاری انجام بدین باید خودتون بشینین یه دیالوگی بنویسید که خودش یه لودینگ نشون بده و بعدشم که کار تموم شد، محو بشه. این دوباره این اتفاقه خیلی واسه من زمان میبرد یعنی برای هر پروژه همیشه باید مینشستم اون دیالوگه رو مینوشتم ، گفتم یبار بشینم کلا این دیالوگه رو بسازمش از اون به بعد هربار بخوام واسه پروژه ای استفاده کنم از اون progress dialog استفاده بکنم ، از این دیالوگی که ساختم استفاده بکنم، استفاده کردن ازش هم دوباره خیلی آسونه و توی این کتابخانه به خاطر اینکه جزو اولین کتابخانه هایی بود که زمانی منتشر شد که تازه kotlin داشت میومد و این داکیومنتش هم به زبان kotlin نوشته شده هم به زبان جاوا که هر دوتا دسته بتونن ببینند چجوری باید ازش استفاده کنن و کارشونو انجام بدن.

کارشناسان.نت: بسیار عالی. بعد اون انیمیشن وسطش گیفه یا ؟

مهندس پویا حیدری: آها این از یه کتابخانه به اسم lottie مال شرکت airbnb هستش ، با یه سری از این اپلیکیشن دیزاین ها میشه برای این کتابخانه خروجی این مدلی تولید کرد، انیمیشن ها تولید کرد و مثلا یه چیزی شبیه این تولید کرد و خیلی راحت میشه نشونش داد. این ها GIF نیست. در واقع در آخر شما یک فایل JSON به پروژتون اضافه میکنید ولی این JSON جوری نمایش داده میشه.

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

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

کارشناسان.نت: مهندس من تقریبا سوالاتم تموم شده حالا اگر شما فکر میکنید نکته ای جا مونده یا من سوال خوبی بوده که نپرسیدم خودتون میتونین بگین 

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

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

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

ولی واقعا به معنای واقعی برنامه نویسی اینطوری نیست یعنی اگر یک درصد بهش علاقه نداشته باشی اصلا توی این دریایی که داری توش وارد میشی گم میشی.مشکلات خیلی بزرگ و عدیده ای پیش میاد براتون و ضمن اینکه بدون شک و قطعا اواسطش ولش می کنید میره ، یعنی در این حد باید بهش علاقه داشته باشید که اگه به یک مشکلی خوردین ، شاید سه روز یا چهار روز نتونین بخوابین ، یعنی من هنوز هم که هنوزه همینطوری ام ، بعضی وقتا به یه سری مشکل ها میخورم یه سری مسائل رو باید حل بکنم که نمی خوابم واقعا ، شده تاحالا سه روز هم نخوابیدم ، توی سه روز شاید مثلا 2 تا 3 ساعت خوابیدم و تا اون مسئله حل نشه نمیتونم خود به خود بخوابم دست خودم نیست نمیتونم بخوابم باید اون مشکله رو حل بکنم  بایدحتما  بهترین حالت باشه ، مطابق با اخرین تکنولوژی باشم.

همه ی اینها بخاطر این که خیلی خیلی علاقه دارم  و داشتم از قدیم به این حرفه. استیو جابر خدا بیامرز یه  حرف خیلی خوبی می زد هست توی این مخصوصا  صفحات  انرژی مثبت 

اگه نگاه کنید قطعا بهش بر می خورید  یه جایی داره می گه که اگر عاشق کاری که دارید انجام می دید نباشید،  به هیچ عنوان تو اون رشته و کاری که انجام می دید موفق نمی شید توی برنامه نویسی این به نظر من 1000 برابره یعنی ، اگر بهش علاقه نداشته باشید  انقدر شدید اذیت می شید که مثلا از زندگی بیزارت میکنه. مطمئن بشید که علاقه دارین به این کاره بعد  واردش بشین .که حداقل وقتتون تلف نشه .

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

مهندس پویا حیدری: خیلی بستگی داره ، کار خالصی که می کنم حدودا حداقل روزی  10 الی 12 ساعت هست و معمولا حداقل روزی 4 تا 5 ساعت من مطالعه میکنم

کارشناسان.نت: یعنی 5-4 ساعت راجب اندروید مطالعه میکنین؟

مهندس پویا حیدری: بله بله راجب کلا برنامه نویسی ولی معمولا چیزی خارج از اندروید نیست ، حوزه های دانشیم رو چندتاش نکردم نگفتم مثلا می خوام هم اندروید یادبگیم هم آیفون یادبگیرم و هم پایتون و PHP ، کاملا تمام تمرکزم رو روی جاوا و اندروید و kotlin و اینا میزارم آره حدودا" 5-4 ساعت در روز مطالعه میکنم حالا این مطالعه ممکنه خوندن مقاله و کتاب و اینا باشه ممکنه دیدن یک ویدیو آموزشی باشه ، هر جفتشو اسمشو بزاریم مطالعه و حدودا 12- 10 ساعت توی پروژه ها و کارایی که هست کار میکنم.

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

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

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

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

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

کارشناسان.نت: یعنی یکبار نوشته شده و تموم شده

مهندس پویا حیدری: دقیقا 

کارشناسان.نت: هی ورژن نمیخوره

مهندس پویا حیدری: ورژن نمیخوره، بخوره هم سالی شاید چندتایی حذف بشه عوض بشه 100 تا 50 تا اوکی.تهشم بگی یه میلیون بار بوده. ولی این یه میلیونه واقعا و شما یه بار که این مسیر رو برین واقعا مسلط میشین به خاطر همینه که وقتی یک وکیلیه که سنش بالاتره پیدا میکنین چون اون مسیره رو رفته معمولا از یه وکیلی که چمیدونم 6-5 ساله کار میکنه جلوتره به خاطره اینه که چون دیگه مسیر رو رفته تا ته و دیگه به چیزایی که وجودداره مسلط شده. ولی اینجا اصلا اینطوری نیست دیگه واقعا بینهایت اینجا معنی داره هیچوقت کسی نمیتونه بگه من توی فلان حوزه همه چیزو بلدم یعنی این امکان اصلا وجود نداره چون همون لحظه ای که داره میگه من همه چیو بلدم داره یه چیز جدید منتشر میشه ، احتمالا که این ازش خبر نداره ، به خاطر همین خیلی جاها باید تایم گذاشتن روی خوندن ولی خوب اگر دوست داشته باشید خیلی لذت بخشه دیگه یعنی اصلا مثل کار کردن و اذیت شدن نمیمونه واقعا شدیدا لذت بخشه اون قسمتی هم که من خیلی دوس دارم اینه که یه چیزی شما بسازید که همش کار خودته و اینکه بقیه آدم ها میان از کار شما استفاده میکنن و زندگی اونارو داری بهبود میدی یعنی حداقل از این طریق یه ذره خستگی در میره دیگه که به بقیه از یه روشی از یه راهی کمک بکنم و زندگیشونو ساده تر بکنم این از همه چیز مهمتره به نظرم.اینو خیلی توش دوست دارم و باعث میشه که خسته نشم.

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

مهندس پویا حیدری: حتماخیلی از شما تشکر میکنم با این اتفاقه حالا من که اگه اسمشو بزاریم داستان موفقیت خیلی آدم عجیب غریب و موفقی نیستم ولی حالا در حد اینکه دانشی با بقیه به اشتراک گذاشته باشیم این به دردشون میخوره از همه کسایی هم که قراره حالا چه کامل این صحبتای منو ببین چه حالا قراره هی تند تند بزنن جلو ببینن از همشونم تشکر میکنم و امیدوارم که همین چند مدتی که وقت گذاشتن که این برنامه رو دیدن به دردشون بخوره و هم اینکه اون چیزایی که تو ذهنشون دوست دارن بهش برسن رو بهش برسن و براشون اتفاق بیوفته حالا چه توی برنامه نویسی چه توی هر فیلدی که واقعا دوست دارند و راضیشون میکنه از شمام دوباره تشکر میکنم و اینم حرف آخرم بود دیگه 

کارشناسان.نت: ممنون ممنون خداحافظه شما

مهندس پویا حیدری: خداحافظ