نکاتی برای موفقیت در برنامه‌نویسی اندروید

نویسنده : سید ایوب کوکبی ۱۳ خرداد ۱۳۹۸
نکاتی برای موفقیت در برنامه‌نویسی اندروید

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

شناخت خوب از فریم ورک اندروید

منظور از شناخت، آشنایی کلی با فریم‌ورک و کاربردهای آن نیست؛ بلکه مقصود، فهمِ عملکرد آن است. اینکه بدانید Android SDK چگونه کارها را انجام می‌دهد و چیزهای دیگری مثل:

  • آشنایی با مکانیزم عملکرد کدهای نوشته شده در فریم‌ورک اندروید؛
  • دانستن اینکه چطور یک کار یکسان به روش‌های مختلف انجام‌شدنی است؛
  • و … .

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

یادگیری جاوا اسکریپت

با توجه به اینکه اندروید بر مبانی ++C/C و جاوا توسعه داده شده، اغلب توسعه‌دهندگان اندروید کم‌وبیش با این زبان‌ها آشنا هستند به‌خصوص زبان جاوا که زبان اصلی اندروید است. ولی به توصیۀ بزرگان هیچگاه خودتان را محدود به یک زبان نکنید و در اولین فرصت شروع کنید به یادگرفتن زبان جدید.

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

حالا چرا جاوا اسکریپت؟ چون:

  • چون مهم‌ترین زبان توسعۀ فرانت اند محسوب می‌شود. تقریبا هر سایتی که می‌بینید حاوی کدهای جاوا اسکریپت هست. به بیان دیگر وب امروز به جاوا اسکریپت وابسته است؛
  • این زبان ظرفیت بالایی دارد. در حال حاضر با تکنولوژی‌های قدرت گرفته از جاوا اسکریپت مثل الکترون می‌توان اپلیکیشن‌های کراس پلتفرم ساخت یا با React native می‌توان اپ‌های اندرویدی ساخت. نمونه‌اش برنامۀ Facebook اندروید که با همین React ساخته شده است؛
  • اگر جاوا اسکریپت را خوب بلد باشید، می‌توانید با کمک آن و HTML5 و CSS3 برنامه‌های اندرویدی فوق‌العاده‌ای بسازید.

بنابراین در صورتی که دنبال یادگیری زبان جدیدی هستید. جاوا اسکریپت را در اولویت اول قرار دهید.

توجه به اندروید ۹ یعنی Android Pie

در کنفرانس اخیر Google I/O، نسخۀ جدید اندروید (پای) معرفی شد و گفته شد که یادگیری ماشینی در این نسخه از اندروید نقش پررنگی خواهد داشت. به عنوان مثال چند ویژگی جالب این نسخه عبارتند از:

  • قسمت مدیریت باتری در اندروید پای هوشمندتر شده است و به کمک یادگیری مصنوعی برنامه‌های کم‌استفاده به منظور کاهش مصرف باتری محدود می‌شوند؛
  • اکشن‌های جدید با کمک یادگیری ماشینی، کاربردهای مختلف برنامه را به شکل ساده‌تری در اختیار می‌گذارد؛
  • اعلان بیومتریک و StrongBox امنیت اندروید را در سطح بالاتری قرار داده است.
  • و … .

این ویژگی‌ها را بررسی و در برنامه‌های جدید از آن‌ها استفاده کنید.

یادگیری هوش مصنوعی و واقعیت افزوده

در کنفرانس I/O 2018 تکنولوژی جدیدی به توسعه‌دهندگان اندروید معرفی شد ولی همانطور که قبلاً اشاره کردیم قابلیت‌های زیادی بر مبنای یادگیری ماشینی در نسخۀ جدید اندروید اضافه شده است. این یعنی باید کم کم باید سراغ هوش مصنوعی بروید. معمولاً کنفرانس‌های برنامه‌نویسی گوگل فرصت خوبی برای پیش‌بینی آینده است. یک توسعه‌دهنده زیرک از این فرصت استفاده می‌کند و خود را در مسیر یادگیری فناوری‌های جدید قرار می‌دهد.

مثلاً تکنولوژی گوگل دوپلکس که سروصدای زیادی به راه‌انداخت فرصتی بی‌نظیر برای شرکت‌ها پدید می‌آورد تا از این تکنولوژی در اپلیکیشن‌های خود استفاده کنند. چرا شما کار با این تکنولوژی را یاد نگیرید و در برنامۀ خود از آن استفاده نکنید؟ همین موضوع برای تکنولوژی واقعیت افزوده (AR) نیز صدق می‌کند. گوگل ARCore را خریداری کرد تا به برنامه‌نویسان این فرصت را بدهد که قابلیت واقعیت‌افزوده را در برنامه‌های خود قرار دهند. بنابراین اگر واقعاً می‌خواهید جایگاه خود را به عنوان یک توسعه‌دهنده در این بازار رقابتی حفظ کنید باید تکنولوژی‌های جدید را یاد بگیرید.

یادگیری دارت و فلاتر

در خلال کنگرۀ جهانی موبایل ۲۰۱۸، گوگل خبر از انتشار نسخۀ بتای فلاتر (Flutter) داد. فلاتر فریم‌ورکی است که به کمک آن برنامه‌نویسان می‌توانند برنامۀ خود را یکبار بنویسند و به شکل استاندارد برای چندین پلتفرم خروجی بگیرند. درواقع این ابزار چیزی شبیه فون‌گپ، React Native و … است که به کمک آن می‌توان برنامه‌های کراس‌پلتفرم ساخت. فریم‌ورک فلاتر با زبان دارت (Dart ساختۀ گوگل) نوشته شده است. این زبان برای توسعۀ اپلیکیشن‌های اینترنت اشیاء به کار می‌رود. بسیار واضح است که چنین تکنولوژی جدیدی را هرچه زودتر یاد بگیرید به نفع شماست.

اطلاع از آخرین اپلیکیشن‌های موفق اندروید

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

بررسی کد برنامه‌های موفق

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

آموختن کار با اندروید استودیو

به عنوان شخصی که مدت‌ها با اندروید استودیو یا هر ابزار دیگری کار می‌کنید اگر آشنایی خوبی با آن نداشته باشید قطعاً انرژی و زمان زیادی تلف کرده‌اید. برای اینکه به یک کدنویس حرفه‌ای تبدیل شوید حتماً باید کلیدهای میانبر اندروید استودیو را یاد بگیرید؛ فقط Ctrl+C و Ctrl+V نیست. خیلی امکانات دیگر هست که باید یاد بگیرید. بد نیست خودتان با ور رفتن با امکانات مخفی اندروید استودیو یا جستجو در اینترنت ترفندهای استفاده از آن را فرا بگیرید. تعدادی از این ترفندها واقعاً باعث صرفه‌جویی در زمان و لذت بردن از کدنویسی می‌شوند.

بخوانید  انتشار برنامه اندروید مثل یک حرفه‌ای

را یاد بگیرید؛ فقط Ctrl+C و Ctrl+V نیست. خیلی امکانات دیگر هست که باید یاد بگیرید. بد نیست خودتان با ور رفتن با امکانات مخفی اندروید استودیو یا جستجو در اینترنت ترفندهای استفاده از آن را فرا بگیرید. تعدادی از این ترفندها واقعاً باعث صرفه‌جویی در زمان و لذت بردن از کدنویسی می‌شوند.

اجرای دو نسخۀ از اندروید استودیو

بهتر است در هنگام کدنویسی دو اندروید استودیو کنار هم باز کنید؛ یکی برای کارهای روتین و دیگری برای تست قابلیت‌های جدید روی یک پروژۀ فرضی. این کار ریسک خراب شدن پروژه به خاطر ناآگاهی از قابلیت‌های جدید را کاهش می‌دهد؛ اگرچه بهترین روش برای مراقبت از پروژه استفاده از سورس کنترلی مثل گیت است.

آشنایی با معماری برنامه و سازماندهی آن

پروژه‌های اندرویدی معمولاً حاوی کدهای فراوانی هستند که در فایل‌ها، اکتیویتی‌ها و فرگمنت‌های متعددی تقسیم شده‌اند. خوشبختانه اندروید با طول عمری کمی که داشته توجه افراد زیادی را به خود جلب کرده و best practiceهای زیادی برای آن نوشته شده که پیروی از آن‌ها کار مدیریت، توسعه و نگه‌داری پروژه را آسان‌تر می‌کند. معماری تمیز و الگوهای طراحی مختلف نمونه‌هایی هستند که نباید نسبت به آن‌ها بی‌تفاوت باشید. در همین رابطه خواندن کتاب Clean Code را توصیه می‌کنیم.

یادگیری واسط[تجربه] کاربری

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

بروزرسانی مرتب کتابخانه‌ها

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

آشنایی با تکنیک‌های بهبود پرفرمنس برنامه

شاید یکی از مهم‌ترین دلایلی که یک برنامه‌نویس را خوب و دیگری را مبتدی یا معمولی نشان می‌دهد سطح آشنایی او با تکنیک‌های بهبود پرفرمنس برنامه است. گلوگاه اصلی برنامه‌ها در سیستم عامل اندروید که باعث کاهش کارایی و سرعتشان می‌شود پرفرمنس (Performance) برنامه است. برنامه‌نویسی نه‌فقط در اندروید بلکه در هر پلتفرم دیگری اینگونه نیست که شما هر کدی را بتوانید به دلخواه بنویسید و به نتیجۀ مورد نظر برسید.

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

یادگیری آموزش‌های گوگل

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

استفاده از دو دستگاه مجزا برای توسعه و تست

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

عادت به توسعۀ آزمون محور

در میان روش‌های کدنویسی شاید هیچ الگویی به اندازۀ TDD یا Test Driven Development که در فارسی توسعۀ آزمون محور ترجمه شده کارساز نباشد. در توسعۀ آزمون محور مبنای کدنویسی تست است. یعنی شما فقط به اندازه‌ای کد می‌نویسید که تست‌ها را پاس کنید. این خیلی بهتر از آن است که خود را درگیر کدنویسی کنید و بعد عمل تست را انجام دهید. TDD مزایایی زیادی دارد ولی مهم‌ترین مزیت آن صرفه‌جویی در زمان و کدنویسی به اندازۀ نیاز است؛ نه بیشتر و نه کمتر.

تمرکز روی تست و کیفیت برنامه

گاهی عواملی مثل سود کوتاه مدت وسوسه‌تان می‌کند که بدون ارزیابی کیفی و از سرِ عجله برنامه را در مارکت منتشر کنید. شاید از دید بازاریابی این کار منافعی هم داشته باشد و اصلاً یک تکنیک فروش تلقی شود ولی وقتی به دید درازمدت به آن نگاه می‌کنیم چیزی جز ضرر نمی‌بینیم. عجله در انتشار برنامه و تعویق ارزیابی کیفی آن ممکن است منجر به بروز باگ‌هایی در برنامه شود که روی پرفرمنس و جنبه‌های امنیتی آن تاثیر سوء داشته باشد.

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

اتوماسیون انتشار برنامه

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

بخوانید  نوروز 97 مبارک

اولویت‌بندی یادگیری

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

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

تست روش‌های جدید

برای تبدیل شدن به یک برنامه‌نویسی بهتر باید کمی به Best Practiceها توجه کنید. همیشه از یک روند ثابت کدنویسی استفاده نکنید. شاید مسئله‌ای که با آن مواجه هستید قبلا توسط افراد دیگری حل شده باشد. الگوهای طراحی را یاد بگیرید. با استانداردهای کدنویسی آشنا شوید. بررسی کنید افراد حرفه‌ای از چه روش‌هایی در برنامه‌نویسی استفاده می‌کنند. ببینید از چه اشتباهاتی دوری می‌کنند و … .

مشارکت در پروژه‌های متن باز

شاید هیچ روشی به اندازۀ مشارکت در پروژه‌های متن باز نمی‌تواند یک برنامه‌نویس را به سطوح بالاتر ارتقاء دهد. خواندن کتاب، تماشا کردن فیلم‌های آموزشی، مشارکت در فروم‌ها و … با همه مزایایی که دارند انگشتِ کوچک مشارکت در پروژه‌های متن‌باز هم حساب نمی‌شوند؛ چون بدون تمرین همۀ آنچه آموخته‌اید کشک است! چیزی که پیکاسو را یک نقاش معروف کرد تمرین زیاد او بود و الّا قلم همان قلمی است که در دست من و شماست.

سعی کنید با فعالیت در سایت‌هایی مثل گیت‌هاب که اقسام پروژه‌ها به زبان‌های مختلف در آن هست سطح دانش عملی خود از برنامه‌نویسی را بیشتر کنید؛ کما اینکه با مشاهدۀ اینکه تغییرات شما در پروژه اعمال شده و عموم کاربران از آن استفاده می‌کنند انگیزۀ شما بیشتر هم خواهد شد. برای شروع کار با گیت‌هاب توصیه می‌کنیم ابتدا راهنمای مقدماتی گیت را بخوانید.

بررسی آخرین ترندهای برنامه‌نویسی اندروید

برای تاب آوردن در عرصۀ برنامه‌نویسی باید خودتان را با ترندها همراه کنید. برنامه‌نویسی اندروید همانطور که اشاره کردیم بسیار گسترده است و با یکی دو تا کتاب نمی‌توان سر و تهِ آن را جمع کرد. تازه بعد از چند سال کدنویسی کار شما شروع می‌شود. جامعۀ برنامه‌نویسی بیکار ننشسته و هر روز سروکلۀ تکنولوژی‌های جدیدی مثل Flutter، React Native و … پیدا می‌شود. لزوماً نیازی نیست همۀ این ترندها را تمام و کمال بلد باشید ولی بی‌اطلاع هم نباشید. طوری نباشید که در لاک تنهایی خود برنامه‌ بنویسید و کاری هم به دنیای بیرون نداشته باشید. سایت‌های مهم برنامه‌نویسی اندروید را دنبال کنید تا در جریان آخرین ترندها قرار بگیرید.

یک تکنیک خوب برای اینکار اضافه کردن کلمات کلیدی مثل Android, Android apps, Android Development به گوگل آلرت است. با این کار هر وقت در هر جایی از اینترنت (هر جایی که زیرنظر اسپایدر گوگل است) خبر جدیدی از یکی از این کلمات ظاهر شد، گوگل شما را طبق زمان‌بندی تعیین شده (فوری، روزانه، هفتگی و …) مطلع می‌کند.

فعالیت در Reddit و Quora

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

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

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

دنبال کردن سایت‌ها و بلاگ‌های مهم

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

نوشتن تجربیات شخصی

در هرم یادگیری ادوارد دیل، یکی از موثرترین روش‌های یادگیری، آموزش به دیگران است. نه خواندن، نه گوش دادن، نه فیلم تماشا کردن و نه هیچ چیز دیگری به اندازۀ نوشتن و آموزش به دیگران به شما یاد نمی‌دهد. نوشتن، ضعف‌های انسان را رو می‌کند. وقتی می‌نویسید، وقتی قرار است چیزی که خودتان فهمیده‌اید را به دیگران آموزش دهید نمی‌توانید قسر در بروید. تازه وقتی می‌نویسید می‌فهمید چه چیزهایی را نادیده گرفته‌اید. این کار روش خوبی برای تثبیت آموخته‌ها نیز هست. نوشتن زمان‌بر است ولی بسیار موثر است.

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

بخوانید  درس‌هایی از 21 برنامه‌ی اندرویدی

ارتباط با سایر توسعه‌دهندگان اندروید

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

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

توجه به پادکست‌ها و وبینارها

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

در این پادکست‌ها غالباً راجع تکنولوژی‌ها روز اندروید و مسائل برنامه‌نویسی بحث و گفتگو می‌شود و از آنجایی که می‌توان در هر جایی به آنها گوش داد طرفداران زیادی پیدا کرده است. بعضی از پادکست‌ها دربارۀ تجربیات تیمی و پروژه‌هایی که روی آن کار می‌کنند در اختیار شما قرار می‌دهند که می‌تواند حس حضور در یک تیم برنامه‌نویسی را به شما بدهد و از نزدیک با روال کاری آن‌ها آشنا شوید.

توجه به رویدادها و کنفرانس‌های اندروید

در حوزۀ اندروید، رویدادها و کنفرانس‌های مختلفی در سراسر دنیا برگزار می‌شود که دو نمونه از مهم‌ترین‌ها کنگرۀ جهانی موبایل و دیگری کنفرانس Google I/O است. این رویدادها همه ساله برگزار می‌شوند و در آن جدیدترین اتفاقات روز برنامه‌نویسی اندروید بیان می‌شود. ولی رویدادها محدود به این دو مورد نیست. شرکت‌های بزرگ در قالب‌های مختلفی مثل وبینار، گردهمایی‌های حضوری یا ویدیوکنفرانس چنین رویدادهایی برگزار می‌کنند که در خلال آن‌ها اطلاعات خوبی ردوبدل می‌شود.

توصیه می‌کنیم با جستجوی چنین رویدادها و کنفرانس‌هایی در جریان آخرین اتفاقات دنیای اندروید قرار بگیرید. اخیراً در کشور خودمان برگزاری این رویدادها جان گرفته و استقبال خوبی از آن شده است. سایت فارسی ایوند فهرست کاملی از رویدادها را در اختیار شما قرار می‌دهد که می‌توانید در هر یک که مایل بودید به صورت آنلاین ثبت‌نام کنید. تعداد زیادی از آن‌ها رایگان و بدون هزینه هستند و فقط همت رفتن می‌خواهند.

تعیین اهداف

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

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

مقابله با خستگی و ایجاد انگیزه

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

بالاخره این مسیر سرراست و بدون دردسر نیست. اما مشکلات فقط مختص برنامه‌نویسی نیست. در هر بخش دیگری از زندگی و در هر رشتۀ دیگری هم این سختی‌ها وجود دارد. مهم این است که نفسی بگیرید و با انگیزه‌ای نو به مسیر ادامه دهید. آن‌هایی که سخت‌گیرانه و با پشتکار فروان مسیر رویاهای خود را پیموده‌اند یقیناً به آرزوی خود هم رسیده‌اند. چرا شما اینطور نباشید؟

افزایش بهره‌وری

یکی از مشکلاتی عمدۀ کاربران کامپیوتر (چه برنامه‌نویس، چه گرافیست، چه تحلیلگر و …) بهره‌وری (Productivity) پایین است. همین که پشت سیستم حاضر می‌شویم خودمان را در ایمیل‌ها، سایت‌ها، وبلاگ‌ها، شبکه‌های اجتماعی و … غرق می‌کنیم و بعد از چند ساعت می‌فهمیم که ای دلِ غافل وقتمان به بطالت رفت؛ قرار بود امروز روی فلان باگ برنامه کار می‌کردم یا فلان فیچر را اضافه می‌کردم. امروز می‌خواستم واسط کاربری برنامه را درست کنم.

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

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

یادگیری، تمرین و اشتراک مدام دانسته‌ها

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

سید ایوب کوکبی

نویسنده و مترجم...

مطالب مرتبط

0 دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *