تجربه ها و توصیه یک برنامه نویس اندروید
سلام دوستان همیشگی در این مقاله می خواهم تجربه چندین ساله رو در برنامه نویسی اندروید براتون بزارم شاید کلی سوال درباره برنامه نویسی اندروید داشته باشید ؟ با ما همراه باشید تا بخشی از تجربه چندین ساله که در این راه به دست آوردم رو با شما درمیان بگذارم در ابتدای کار بگم راه صد ساله رو نمیشه یک شبه رفت مخصوصا توی برنامه نویسی اندروید برنامه نویسی همیشه سخت خواهد بود.
این مطلب شامل اطلاعات تخصصی است که به صورت پی نوشت لینک توضیح آنها قرار میگیرید.
ابتدای مقاله برای دوستانی که تازه وارد برنامه نویسی اندروید شده اند یا می خواهند برنامه نویسی اندروید را شروع کنند اگر حوصله انجام کارهای ساده را ندارید همین الان این صفحه رو بسته و با دنیای برنامه نویسی خداحافظی کنید ? آن دسته از افراد که می گویند برنامه نویسی مقوله ساده ای است به احتمال خیلی بالا سواد و همینطور تجربه ای در برنامه نویسی ندارند زمانی برنامه نویسی را متوجه می شوید که بخواهید یک پروژه رو مهندسی کنید یا حتی به یک خطا بخورید و یک ماه با آن دست و پنجه نرم کنید برنامه نویسی همچین چیزی هست نیازمند ذهن تیتانیومی و صبر بی انتها است شاید برخی از دوستان بگویند برنامه نویسی (برنامه نویسی اندروید) تنها با یک سرچ مشکلش حل می شود شاید بشه گفت با یک سرچ ساده دست و پا شکسته انگلیسی می توان مشکل رو حل کرد ولی Copy و Past برنامه نویسی نیست ! کافیه به یک بچه ده سال همچین چیزی رو یاد بدید یادگیری مهم است نه Copy و Past.
نکات منفی
اگر بخواهید برنامه نویس اندروید کامل و حرفه ای بشید تا آخر عمرتون باید یاد بگیرید هرکی بگه من کل اندروید رو بلدم یک دروغ گویی بیش نیست در زمان فعلی برنامه نویسی سخت ترین شغل هست و سخت تر خواهد شد ! در قدیم برنامه نویسی اندروید (فقط اندروید نه بیشتر زبان های برنامه نویسی) خیلی راحتر از الان بودش یکسری فکر می کنن که این حرف اشتباه هست ولی در واقع درست هست در قدیم انقدر تغییرات وجود نداشت ولی الان وجود داره من از base اندروید میگم تا برسیم به سخت ترین بخشش قبلا Ide که خیلی قابل استفاده بودش Eclipse بودش ولی الان شده اندروید استودیو در واقع Eclipse هیچی نداست و اندروید استودیو (Android Studio) (پی نوشت یک) انقدر ملزومات و همینطور بخش داره که باید یک سال برای یادگیری اندروید استودیو قرار دهید ! گریدل (پی نوشت دوم) مهمترین بخش اندروید استودیو که ما فقط ازش به جرات می تونم بگم که dependencies یا همون کتاب خانه و درنهایت DataBinding رو بلدیم و زمانی که کارمون گیر بکنه در نهایت Multidex رو فعال می کنیم (پی نوشت سوم) خب بهتره سادتر صحبت کنیم تا دوستانی که تازه می خواهند وارد این زمینه برنامه نویسی (برنامه نویسی اندروید) شوند نیز متوجه شوند (کُپ نکنند) در چند سال اخیر هر روز کلی تغییر به زبان های برنامه نویسی اضافه میشه و اصلا بد نیست ولی برای شخصی که سال ها برنامه نویسی کرده لازم هست هر روز خودش رو بروز نگه داره چقدر میشه بروز بود در واقع باید تا آخر عمر به یادگیری بپردازید به طور مثال هر شش ماه یکبار یک نسخه جدید از اندروید منتشر می شود و اندروید استودیو نیز آپدیت می شود و یک قابلیت جدید به آن اضافه می شود هرچند که هر قابلیتی به اندروید استودیو اضافه می شود آن را بهتر از قبل می کند ولی از این نکته نباید گذشت که باید آن را یاد گرفت از این هم نگذریم که در زمانی هستیم که باید برای پروژه های اندرویدی Unit Test بنویسیم (پی نوشت چهارم) و بعد از این کار سخت (کدی باید بنویسید که اتوماتیک برنامه رو تست کنه البته الزامی نیست اطلاعات بیشتر) ! باید برنامه رو با معماری خاصی پیاده سازی کنیم مثل این نیست که مثلا دو دوتا بشه چهار تا باید برای همچین چیزی هم کدی بنویسم که باعث Memory Leak نشود (پی نوشت پنجم) شاید ضرب دو عدد کار ساده ای باشد یا مثلا دریافت اطلاعات از حافظه هم کار ساده ای باشد ولی اگر به درستی پیاده سازی نشود برنامه به قول قدیمی ها دو هزار ارزش ندارد.
در این زمان همه هجوم آوردن به برنامه نویسی اندروید یعنی حدودا 3 تا چهار سالی است که همه می خوان برنامه نویس بشن نسبت به سال 2010 جستجوی ایرانی ها تا از هر 1000 ایرانی 5 نفر دوست داشتن برنامه نویس بشن و بیشتری برای درآمد بالا بود الان 20 نفر شده و از همه اینا 2 نفر درآمد نسبتا خوبی دارند.
درآمد برنامه نویسی اندروید چقدر است ؟
درآمد برنامه نویس اندروید به جرعت از 50 هزارتومان تا 7 میلیون تومان دیده شده ! دولوپرهای کافه بازار با 50 هزار تومان دیجی کالا هم براتون پیاده سازی می کنتد ? (این یک واقعیت هست بهتره که ناراحت نباشید !)
نکات مثبت
اگر می خواهید در برنامه نویسی اندروید موفق باشید این مطلب را ادامه بدید سعی کنید تا جایی که می تونید یاد بگیرید وارد یک شرکت شوید و کارآموزی کنید بهترین راه یادگیری کارآموزی است و هیچوقت نگوید همه چیز اندروید را یاد گرفتم همیشه چیزی هست که بلد نباشید برای حل مشکل کمی فکر کنید سرچ نکنید وگرنه میشد مثل دولوپر های کافه بازار اگر خوب یاد بگیرید درآمد خوبی هم خواهید داشت سعی نکنید حتما اپلیکیشن در کافه بازار یا Google Play ثبت کنید اصلا لزومی ندارد در ابتدای کار اپلیکیشنی ثبت کنید بهترین راه یادگیری تست کد است به صورت خط به خط یاد بگیرید نه کلی مثلا کتاب خانه X برای اینکاره بدونید چی کار می کنه قبل از اینکه برنامه نویسی اندروید رو شروع کنید یکم درباره اش تحقیق کنید مثلا ابزار x که در منو هست برای چی هست یا مثلا ابزار Profiler به چدردی می خورد چه جوری باید استفاده بکنم ازش تا دلتون بخواد آموزش در اینترنت هست فقط این سایت رو منظورم نیست همه چیز آماده شده ولی زمان زیادی برای یادگیری لازم هست همنطور که گفتم اگر می خواهید راه صد ساله رو یک شبه برید بهتره کلا با برنامه نویسی اندروید خداحافظی کنید در ابتدای یادگیری حتما جایی استخدام نشید چون خیلی زود بیرون میفتید بهتره به عنوان کارآموز خبره وارد شوید تا اینکه یک برنامه نویس اندروید که زود از کار کنار زده می شود. بهترین زمینه یادگیری همنطور که در قبل اشاره کردم کارآموزی است.
تجربه در حین کار به وجود می آید
از کجا برنامه نویسی اندروید را شروع کنیم (شروع برنامه نویسی اندروید)
ابتدا کمی با اندروید استودیو کار کنید ولی بهتر است یک زبان ساده را قبلا تست کرده باشید مثلا یکمی در C# یا c++ یا زبان های مشابه کد نویسی کرده باشید چون زبان های برنامه نویسی سطح بالا همشون شبیه هم هستن و زیاد تفاوت ندارند.
در سایت بیش از 700 آموزش برنامه نویسی اندروید قرار دارد می توانید از آنها و همینطور سایت های خارجی استفاده کنید.
لینک آموزش برنامه نویسی اندروید
سختی های برنامه نویسی اندروید
- بروز بودن به صورت ساعتی !
- آشنایی با معماری و Design Pattern های مختلف
- آشنایی با کتاب خانه های معروف مثل RxJava و…
- آشنایی با طراحی Material و Flat
- آشنایی به base برنامه نویسی
سادگی های برنامه نویسی اندروید
- چیز ساده ای وجود ندارد.
و در نهایت آخرین توصیه یاد بگیرید نه Copy و Past کنید انشاالله که این مقاله که در رابطه با برنامه نویسی اندروید بود به شما کمک کرده باشد.
موفق و پیروز باشید.
خوب بود منتها یکم حرفاتون اغراق آمیز بود اینکه برنامه نویسی کلا ساده نیس که واضحه ولی در کل باید میگفتید هرکسی که میاد تو این حوضه باید عاشق این کار باشه و برایه پول نیاد وسط دومین مسئله هم اینه که من از متنتون احساس کردم شما ازون دسته برنامه نویسایید که دوس دارید چرخو دوباره اختراع کنید قطعا استفاده از کتابخونه ها بد نیست وقتی کارتو راه میندازه درصورتی که ابزارش تو اندروید نباشه. ولی برای استارت من معطقدم ادم باید خود زبون برنامه نویسشو عمیق بلد باشه جاوا و کاتلینو خوب بلد باشه یاد گیری بقیه چیزای اندروید کاری نداره خلاصه که یه برنامه نویس باید عاشق کارش باشه تا پولش حداقل تو ایران:) تا موفق بشه
اینم یادم رفت بگم با وجود کلی util که تو جاوا هست قطعا باسرچ ممکنه به api هایی از جاوا برخود کنیم که از نوشت کلی کد اضافه جلو گیری کنه ولی با فکر کردن در مورد چگونه پیاده سازی دیزاین پترنا موافقم
حرف من ساخت چرخ نبود همنطور که دیدید گفته بودم باید از کتاب خانه استفاده بشه نه مثلا 50 تا کتاب خانه آدم بیادش توی پروژه اش استفاده بکنه حرف اصلی استفاده و یادگیری درست اندروید بود یک شخص همون طور که گفتم می تونه کپی و پیست بکنه و مثلا نوشتن رویداد برای شئی های مختلف کار خاصی نیست همینطور Adapter و کلی چیز دیگه نحوه استفاده درست چیست مسئله این است مشکل ما همنطور که اشاره کردید درآمد هست در واقع هرشخصی که عاشق برنامه نویسی است اگر وارد این عرصه بهتر از کلی آدم دیگه است که ایده اصلیشون مثلا ساخت کتاب داستانه ! (بخش فرادرس ساخت کتاب رو چک کنید متوجه می شوید)
ممنون بابت نظرتون
با نظر حسام موافقم . دلیلی نداره چرخ و دوباره اختراع کنیم. شما یکم اغراق آمیز حرف زدید. درسته برنامه نویسی کار سختیه ولی با کمی تمرین و کار هوشمندانه میشه اونو یادگرفت. در کل مقاله خوبی بود ممنون.
سلام وقت بخیر
اینکه میگن قراره اپلیکیشن های موبایل در آینده قراره برن کنار جاشون pwa ها و یا چیزهای دیگه ای جایگزین بشه و اینکه اپلیکیشن هایی که ساخته میشن اکثرشون استفاده نمیشم و …انگیزه مونو میگیره. من میخواستم اندروید ر وشروع کنم ولی همین حرفا در مورد آینده کاریش انگیزه مونو میگیره
نظر شما در این مورد چیه؟
و اینکه کدوم یکی از دو زبان برای اندروید پر کار برد تره جاوا یا کاتلین؟
با سلام و درود
جاوا و کاتلین دو زبان برنامه نویسی مختلف هستند هرکدام خوبی و بدی های خودشون رو دارند نمیشه گفت یکی از این زبان ها بهتر است از دید برنامه نویس ممکنه یک زبان برنامه نویسی بد و دیگری خوب باشد پس نتیجه میشه که باید خودتون انتخاب کنید.