پیشتر در پست چگونه یک برنامه نویس شویم توضیحات کلی و اولیه برای یادگیری یک زبان برنامه نویسی نوشته ام. اما این پست اختصاصی برای برنامه نویسی برای سیستم عامل اندروید است.
در حال حاضر اگر بخواهید یک برنامه نویس اندروید یه به اصطلاح یکه توسعهدهنده اندروید (Android Developer) شوید، روشها و زبانهای تفاوتی هست که هر کدام مسیر ما را در آینده مشخص میکند و یا میتواند به کلی تغییر دهد. در این پست تلاش میکنم با توجه به تجربه شخصی خودم که با زبان جاوا برای اندروید استفاده میکردم، از آموزش زبان برنامهنویسی تا بازار کار توضیح دهم.
سیستم عامل اندروید هنوز هم یک سیستم عامل نوپا به حساب می آید و گوگل همچنان در حال پایدار کردن، ایمن کردن و در تلاش برای Stable و Scalable کردن هرچه بیشتر این محصول خود است. از این رو اگر شما از سالهای نخست همراه با گوگل یک اپ اندروید را توسعه و پیشتیبانی میکردید با تمام فراز و نشیب های آن آشنا هستید و چه بسا سختی های بسیاری سپری کردید و اما در حال حاضر توسعه دهندگان گوگل به یک اتفاق نظر رسیدن که برای توسعه محصول از یک زبان خاص و یک سری کتابخانههای خاص با یک معماری به اصطلاح تمیز با نام اندروید جت پک استفاده کنند که محصول نرمافزاری پایدار و مقیاسپذیر توسعه و پشتیبانی کنند.
برنامه نویسی اندروید را از کجا آغاز کنیم؟
- یادگیری برنامه نویسی پایه
- سپری کردن یک دوره اندروید و آشنایی با محیط توسعه اندروید
- یادگیری نحوه کار با پایگاه داده با استفاده از Room
- یادگیری ارتباط با سرور به واسطه api ها به کمک کتاب خانه های Retrofit یا OkHttp
- ساخت یک اپ ساده(شاید شما یک ایده در ذهن دارید، بسیار خب همان را اجرا کنید) اگر ایده نداشتید اپ دفترچه یاداشت روزانه یک ایده خوب برای تمرین است. با اضافه کردن ویژگیها، هروز بهترش کنید.
- آشنایی با اصول مهندسی نرم افزار
- یادگیری اصول برنامه نویسی SOLID (کتاب ترجمه فارسی صدرا املشی، عالی است )
- یادگیری Design Pattern های زبان برنامهنویسی
- خواندن و بررسی یک سورس کد های یک نرمافزار متن باز
برای نوشتن یک اپ اندروید می توان از روش های بسیاری و زبان های متفاوتی با توانایی های منحصر به فرد خود استفاده کرد. مثل: جاوا، کاتلین، دارت، C/C++ و تعدادی دیگر است.
گام نخست انتخاب یک زبان برنامه نویسی و سپس یادگیری زبان برنامه نویسی در حد پایه است. توجه داشته باشید که اصول پایه را به خوبی درک کنید تا بتوانید بروی همین بنیان، آینده شغلی که وابسته به تخصص شماست قرار بگیرد. ( خشت اول چون نهد معمار کج – تا ثریا می رود دیوار کج!!)
یک نکته برای رشد در این حرفه، بایستی زبان انگلیسی را بلد باشید، نه اینکه بدون زبان انگلیسی شما نتوانید، خیر ولی به جرات می توان گفت که بدون زبان انگلیسی شما حرفه ای نمیشوید. پس اگر زبان انگلیسی شما ضعیف است همراه با یادگیری زبان برنامهنویسی زبان انگلیسی خود را تقویت کنید. یوتیوب یک کلاس رایگان برای آغاز یادگیری هرچیزی است از آنجا یادگیری زبان را آغاز کنید.
چه زبان برنامه نویسی برای توسعه اندروید مناسب است؟
از آنجایی که منطق زبان های برنامه نویسی نزدیک به یکدیگر هستند در نتیجه با یادگیری برنامه نویسی پایه می توانید به زبانهای دیگر با سرعت بالا مهاجرت کنید.
توضیح مختصر برای کاربرد و مزایای به زبان ساده برای هر زبان برنامه برنامه نویسی برای این سیستم عامل در این قسمت بنویسم ولی برای آگهی بیشتر، نام زبان را گوگل کنید و یک بررسی دقیق و تخصصی بخوانید.
جاوا [Java] :
جاوا یک زبان برنامه نویسی با قابلیت های بسیار زیاد و توانایی ساخت نرم افزار برای سیستم عامل های ویندوز، لینوکس، اندروید، مک را می دهد. جاوا سینتکس بسیار خوانا و قابل فهمی نسبت به سایر زبان ها دارد که برای ابتدای برنامه نویسی می تواند در درک برنامه نویسی پایه بسیار کمک کند.
مالک این زبان شرکتی به نام اوراکل است که در چند سال گذشته شاهد اختلافات عمیقی بین این شرکت و گوگل شدیم که شاید یکی از علت های روی آرودن گوگل به یک زبان جدید برای توسعه اندروید میتواند همین باشد.
یک منبع خوب برای یادگیری جاوا، کتاب “گونه با جاوا برنامه نویسیم” ترجمه آقای قلزم است که با توجه به حجیم بودن کتاب به راحتی تا فصل های آن پست سر هم ورق می خورند.
** تمام آموزش های جدید گوگل بر اساس زبان کاتلین است. پس هر ویدیو آموزشی انگلیسی مشاهده کنید قدیمی به حساب می آیند.
کاتلین[Kotlin]
کاتلین نوجوان، یک زبان برنامه نویسی تازه کار است که گوگل حسابی بروی آن مانور داده است. این زبان هم با سوار شدن بروی ماشین مجازی جاوا قابلیت ساخت نرم افزار برای همه سیستم عامل ها را دارد.
این زبان توسط تیم برنامهنویسان JetBrains طراحی شده است و گوگل چارچوب جدید برای توسعه نرم افزار اندروید را با نام Android jetpack این زبان را به عنوان زبان پیشنهادی و رسمی خود انتخاب کرده است.
سایت های بسیار به آموزش این زبان زیبا پرداخته اند که در ابتدا سایت کاتلین فارسی که برای آن هم زحمت بسیاری کشیده اند گزینه مناسبی برای استارت است.
منابع برای آغاز :
- kotlinfarsi.com
- یک دوره رایگان کامل با جدیدترین استاندارد های گوگل (پیشنهاد من) https://www.udacity.com/course/kotlin-bootcamp-for-programmers–ud9011
- https://kotlinlang.org/docs/tutorials/
دارت[Dart]
این روزها نام فلاتر در سایت های کاریابی و فریلنسری به چشم میخورد. یک باره حجم زیادی و یا حداقل حجم قابل توجهی به فلاتر مهاجرت کردهاند. از آنجایی که گوگل فلاتر در سال ۲۰۱۷ این Ui framwork را منتشر کرده است تعداد بسیار خوبی کتابخانه توسط توسعه دهندگان منتشر شده است. زبان برنامه نویسی در فریمورک فلاتر دارت است که می توانید با یک منبع کد برای اندروید، iOS و وب خروجی قابل اجرا بگیرید. به همین سادگی شما می توانید یک موبایل دولوپر شوید.
منابع برای یادگیری:
پیشنهاد من :
اگر قصد مهاجرت دارید یادگیری فلاتر با زبان دارت گزینه مناسبی است ولی اگه قصد دارید یک اپ با پرفورمنس بالا بنویسید زبان کاتلین بهترین گزینه است و آن دوره گوگل که معرفی کردم یک دوره کامل و باتوجه با استاندارد های خود گوگل است. که می توانید اپ های باکیفیت طراحی و توسعه دهید.
ابزار لازم برای یادگیری برنامهنویسی اندروید
تخصص برنامه نویسی تنها مزیتی که دارد این است که ابزاری که در اختیار یک دانشجو در سیلیکونولی از سانفرانسیسکو است با یک کشور جهان سومی کاملا برابر است و به عبارتی میتوان گفت تقریبا جنگ، جنگ برابر است.
برای ابتدا راه یک لپتاپ با مشخصات متوسط کافی است اما بعد ۲ سال تجربه کاری، یک لپتاپ حرفه ای تر نیازش احساس میشه!
حداقل مشخصات یک سیستم کامپیتور:
- ویندوز ۷ – ۱۰ : (۶۴bit)
- رم : ۸GB
- پردازنده : core i5
- تصویر : ۱۲۸۰*۸۰۰
مراجع خوب توسعه اندروید
- یکی از مهم ترین منابع و اخبار رسمی گوگل این کانال یوتوب است، حتما پینشهاد میشه در بالاترین اولیت Subscribe the official Android Developers YouTube.
- برای افزایش مهارت خود در زبان کاتلین این سایت از دست ندید Kotlin Weekly
- یک پادکست خوب برای گفت گوی توسعه دهندگان از سراسر دنیا در این پادکست Fragmented Podcast
- پادکست توسعه دهندگان اندروید تیم مهندسی گوگل : Android Developers Backstage podcast
- اخبار، اطلاعات جدید دنیای اندروید در این گروه Participate in Android thread on Reddit
- مقالات جذاب اندرویدی توسط کارمندان قسمت اندروید گوگل در این وبلاگ Read official Android Developers blog
- گروه تلگرامی برنامه نویسان اندروید به زبان فارسی
درآمد برنامه نویسی اندروید
درآمد برنامه نویسان به فاکتورهای متفاوتی بستگی دارد، نمیتوان یک معیار خاصی برای سنجش میزان حقوق افراد تعیین کردن، این حقوق میتواند به دانش شما، تجربه شما، میزان ارزش آوری شما برای یک مجموعه، مهارت های نرم شما (Soft Skills)، سابقه کاری شما در آن مجموعه، میزان بزرگی یا کوچکی آن شرکت و هزاران دلیل دیگر بستگی داسته باشد.
درآمد برنامه نویسان اندروید به نرخ بازار بینالمللی به گفته سایت کاریابی indeed سالیانه بین ۳۷۰۰۰$ تا ۲۱۵۰۰۰$ است.
برای بازار کار ایران هم میتوان بین ۱۲ میلیون و ۳۰۰ میلیون تومان درامد سالینه در نظر گرفت.
آینده برنامه نویسی اندروید
وقتی شما این رشته انتخاب به عنوان تخصص خود انتخاب کردید یعنی اینکه پذیرفته اید تا آخرین روز پیش از بازنشستگی همواره در حال یادگیری باشید. برای منی که این از کار تکراری متنفر هستم این شاید یک دلیل خوب برای انتخاب این رشته باشد.
این موضوع را مطرح کردم اگر در آینده روزی سیستم عامل اندروید کلا منقرض شود( اتقافی که برای سیستم عامل سیمبین نوکیا افتاد)، به هیچ عنوان نگران نشوید، شمایی که حداقل ۵ سال در این حوزه تجربه دارید به راحتی می توانید یک زبان جدید، یک فریمورک جدید را یاد بگیرید.
در آینده نزدیک گوگل چه برنامه ای برای اندروید دارد؟
گوگل تمرکز خود را بروی زبان کاتلین و توسعه محصول با Android Jetpack را گذاشته است. حتما این کتابخانه ها که در این به اصطلاح فرمیورک معرفی شده بررسی کنید و تمرین کنید.
در آخر تیم Jetbrains هم در حال تلاش برای توسعه محصول با زبان kotlin برای سیستم عامل iOS است. این اواخر هم خبرساز شد که شرکت نتفلیکس توسعه نرم افزار اندروید و ios با زبان کاتلین توسعه خواهد داد.
بازار کار برنامه نویسی اندروید
بازار کار برنامه نویسان موبایل، چه اندروید و چه iOS در تمام دنیا بسیار پر رونق است. چرا که امروزه تمام افراد به گوشی به اصطلاح هوشمند خود وابسته هستند و کسب کار های بسیاری وجود دارد.
چطور اولین شغل برنامهنویسی پیدا کنیم؟
سایت های کاریابی بسیاری وجود دارد که در ادامه به تعدادی از اونجا اشاره خواهم کرد.
کارآموزی در یک شرکت نرمافزاری
اگر تجربه کافی نداشته باشید بسیار طبیعی است که در مصاحبه تایید نشوید، اما پیشنهاد من این است که از آن شرکت تقاضا کنید که به عنوان کارآموز به شرط استخدام در آن شرکت آن کار کنید.(اگر شرکت معتبر است و تعداد نیروی فنی کافی دارد. مثلا حداقل ۱۵ کارمند دارد)
یعنی به مدت یک سال دوره کارآموزی خود را سپری کنید و پس از رسیدن به دانش مورد نیاز آن مجموعه، برای شما یک حقوق مشخص تعیین شود و استخدام شوید. این بهترین انتخاب است که میتوانید به سرعت خوبی رشد کنید و از تجربه افراد با سابقه استفاده کنید است.
تجربه شما!
پیشنهاد شما برای یادگیری برنامه نویسی چیست ؟ حتما در دیدگاه ها با ما(من و مخاطبین سایت) در میان بگذارید.
[…] چگونه یک برنامه نویس اندروید شویم؟ – ۱۳۹۹ […]
[…] چگونه یک برنامه نویس اندروید شویم؟ – ۱۳۹۹ […]
سلام وقتتون بخیر
من لیسانس it گرفتم طی مراحل تدریس یه کلاس مون اندروید بود اما الان میخوام شروع کنم اینم بگم سه سالی هست فاصله گرفتم سرفصل های اندروید رو میشه اعلام کنین 🌹
درود و وقت بخیر
شما همون دوره Udacity گوگل که پیشنهاد دادم بررسی کنید به سطح خیلی خوبی می رسید
سلام ببخشید من سیستمم رمش ۴ گیگ هستش برای شروع برنامه نویسی خوبه؟ در ضمن من هنوز تازه میخوام وارد عرصه برنامه نویسی بشم و دارم رشته کامپیوتر میخونم دوست دارم نصیحت هایتون رو بشنوم
برای یادگیری برنامه نویسی یک کامپیوتر ساده هم کافیه، ولی بیشتر باید گفت که بستگی داره که چه زبانی قصد دارین یاد بگیرین!
مثال بزنم اینکه قصد دارین چه چیزی بساید! نرمافزار موبایل، وب اپلیکیشن، بکاند یک اپ، یا یک بازی خفن ؟
سلام خیلی دوست داشتم نرم افزار موبایل بسازم میشه با اینن کامپیوتری که من دارم ساخت؟
مشخصات کامپیوتر شما چیه؟
سلام من میخواستم بدونم برای انجام پروژه های برنامه نویسی از جمله ساخت ماژول التراسونیک باید به چه حدی در برنامه نویبسی برسم و روی کدوم دروس مسلط باشم؟
درود
پرسش کلی هست، بیشتر توضیج بدین
میخواین که التراسونیک با کابل به گوشی اندرویدی متصل کنید ؟
سلام از طرف کلاس برنامه نویسی ازم خواستن که این پروژه رو انجام بدم هم طراحی بکنم هک کدنویسی کنم براش فکر کنم همینطوری هست که شما میگید این دستگاه به زبان اردوینو طراحی شده و من میخوام با زبان مورد نظر خودم کد نویسی بکنم ایا میشه با زبان سی یا سی پلاس اینکارو بکنم؟ از کدوم کتاب به نظرتون استفاده بکنم؟و چه تغییراتی میتونم توی دستگاه ایجاد بکنم؟ ایا علاوه بر دروس برنامه نویسی نیازمند پیشرفت در سایر دروسی مثل ریاضیات هم باید باشم؟
هم
من با ادرینو آشنایی ندارم
سلام بله اسمش اردوینو هست توی الکترونیک باهاش کار میکنن
بلی درسته
سلام وقتتون بخیر من ترم ۱ علوم کامپیوتر هستم و میخوام خودم جدا از دانشگاه خیلی حرفه ای بشم توی برنامه نویسی و قصد مهاجرت دارم یا به المان یا کانادا و بیشتر هدف برای برامه نویسی برای اپلیکیشن هست میخواستم بدونم چه زبانی رو باید یاد بگیرم و چطوری اموزش پیدا کنم ؟؟؟
بری موقعیت های شغلی باز شرکت های کشور مورد نظر بخونید، اونجا نوشته چه فلید های کار مکنند وچه چیز هایی باید شما یاد بگیرید
Awesome! Its genuinely remarkable post, I have got much clear idea regarding from this post