این سوالی بود که مدت ها ذهن منو درگیر کرده بود. دوست داشتم روی یه پروژه بزرگ منبع باز (Open-source) مشارکت کنم. اما نمیدونستم چجوری. خودم برای خودم کد میزدم و تجربه کار کردن تو شرکت رو نداشتم، خلاصه که یه روز تصمیم گرفتم این کار رو بکنم. رفتم توی گیت هاب و دل و زدم به دریا، بعد از چند باری که خواسته بودم توی این فضا کار کنم و چند تا پروژه هم حتی clone کرده بودم اما نمیتونستم حتی ازش سر دربیارم. اما واقعا پروژه هایی مثل پیامرسان سیگنال واقعا داستان داشت، چون فیلتر بود نمیتونستی متوجه بشی که یه باگ هست توی نرم افزار یا تو توی یه باگ بزرگتر داری دست و پنجه نرم میکنی!!
تازه کار کردن روی پیام رسان داستان های زیادی داشت، باید برای تست کردن فیچر ها مخ یکی رو میزدی تا بیاد باهات چت کنه یا تماس بگیره تا بتونی فیچر ها رو تست کنی.
این جا بود که درس اول رو گرفتم،
خوب بعدش با خودم فک کردم که چیکار کنم چیکار نکنم، بیام دنبال یه پروژه خوب بگردم، رفتم دیدم خوب من به چی علاقه دارم؟ اندروید بعدش گفتم خوب حالا مثلا میخوام یه پروژه بروز تر و خفن تر کار کنم نه یه پروژه قدیمی، تا با تکلونوژی های روز آشنا بشم.
یادمه یکی از دوستان لینکدین بهم گفت پروژه باید بزرگ باشه و چندین نفر روش کار کنن، خودمونی بگم باید پول دربیار و بزرگ باشه، تا بعدا از امکاناتی که توش هست بتونی استفاده کنی.
چه امکاناتی؟؟
اها این قسمت مهم داستان هست، مهم ترین چیز نتورک هست، شما با چندین آدم آشنا میشید که از شما خفن تر هستن و اون قدر مهربون هستن که بتونید ازشون چیز یاد بگیرین.
یکی دیگه از اون امکانات، فهمیدن این هست که یه کد بزرگ که چندین هزار یا حتی میلیون نفر دارن ازش استفاده میکنن چجوری کار میکنه. این باعث میشه سطح شما هم تا اون پروژه بالاتر بره، اگه چیزی رو هم متوجه نشدید میتونید یاد بگیرید و سرچ کنید، حتی اگه باز هم اطلاعات بیشتر میخواید میتونید از خود برنامه نویس های اون جا بپرسید. (این جوری هست که نتورک خوب پیدا میکنید، قبلا نمیدونستم چقدر این داستان مهمه، الانم شاید ندونم اما میدونم که از قبلا برام مهم تر شده این قضیه)
دیگه بقیه چیز ها رو هم که خودتون میدونید
رزومه خوب و توانایی این که میتونید با بقیه خوب کار کنید و باز شدن موقعیت های کار جهانی و استخدام توی همون شرکت ها و گرفتن پروژه از همون نتورکی که ساختید و (منظورم ساید پراجکت اون هاست) و غیره رو که فک کنم همه جا دربارش شنیدید و خوندید (راستش منم خوندم اما فعلا هنوز اول راهم)
خوب دیدم بعد از همه این داستان ها چه چیز هایی برام مهمه، مثلا پروژه باید جدید باشه حتما با Kotlin باشه و آخرین پیام نوشته شده تو issue ها حد اکثر مال هفته پیش باشه و امنیت برام مهمه، پروژه باید سعی کنه امنیت کاربران رو حفظ کنه و این ها.
در نهایت رسیدم به اپ اندروید DuckDuckGo
من با داک داک گو رابطه خیلی خوبی داشتم و مدت ها مرورگر های مختلف استفاده میکردم و سرچ انجین های مختلف رو تست میکردم، یکی از همین ها داک داک گو بود، و چون من از Tor هم استفاده میکردم گاهی اوغات که دسترسی به اینترنت کار سختی میشد با این سرچ انجین آشنا شدم. اسم باحالش منو جذب خودش کرد و کلا دوست داشتم ببینم توی یه مرورگر که ادعای امنیت میکنه چی میگذره (بعدا که داستان اش رو خوندم خیلی بیشتر هم باهاش حال کردم)
جدا از این ها پروژه خیلی cool و خفنی هم بود، طنز هستن همه چیز ها و رابط کاربری خیلی خوبی داره (آنبرینگ اش رو هم خیلی دوست داشتم) و میدونید حس یه مرورگر نرمال رو نمیده، شما چندین ابزار جالب دیگه هم توش دارید.
بذار لینک اش رو هم بذارم، آها اینا پیداش کردم :) لینک گیت هاب داک داک گو یا DuckDuckGo
و یه باگ خیلی ریز پیدا کردم (یه لینک تغییر کرده بود و حالا ۴۰۴ میداد) این issue
از فرصت استفاده کردم و زیرش نوشتم که منو راهنمایی کنند تا بتونم توی این پروژه مشاکت کنم،
آماده درس دوم هستید؟
توضیح لازمه؟؟
همه با هم میگویند: نععععععععععععععع نیسسسسستتتتت
برو بعدی
بعدش بهم لینک داکیومنت خود گوگل رو داد.
درس سوم این هست که محتوای تصویری، صوتی و غیره همه زمان بر هستند و اما مقالات و مستندات همه به روز هستند و منطبق با آخرین استاندارد ها هستند. پس برای این که این همه جستجو نکنید سر دوره ها برید بخونید، خوندن خیلی مهمه. راستی نترسید. از این که متوجه نشید یا مطلب رو درک نکید یا هر فکر دیگه ای.
فقط برید بخونید و همین جوری بخونید، لازم نیست همشو هم بخونید بخشیش رو بخونید که به نظرتون طبق تجربه مهمه، سینتکس ها و مقدمات، اگه بخش quick start داره حتما اون رو اول مطالعه کنید. یه چیز تو پرانتز بگم (همیشه تو طول تاریخ دو دسته آدم بودند، اون هایی که دوست داشتند همه بخونند و آگاه بشن و عده ای که دوست نداشتن بقیه بخونند، خلاصه این که با خوندن دوستی کنید، دوست خوبیه)
× نکته: اگه زبانتون خوب نیست، با همین داکیومنت خوندن میتونید تقویتش کنید ( توی پادکست بایوکست، داشتم زندگی نامه جوزف استالین رو گوش میکردم، دیدم اون هم زبان های دیگه رو با خوندن کتاب ها یاد میگرفت، پس زیاد درگیر گرامر و این ها نباشید، شما که نمیخواید کنکور زبان بدید، شما فقط میخواید که منظور جمله رو متوجه شید، سعی هم کنید از دیکشنری انگلیسی به انگلیسی استفاده کنید)
خوب، این چی میگه،
من وقتی داشتم مستندات خود اندروید رو میدیدم، اسم یه پروژه زیاد میومد تو چشمم، این پروژه بعد گفتم برم این رو بخونم ببینم چه خبره،
خلاصه این که شروع کردم به دیدم این پروژه و کلی چیز یاد گرفتم، مهم ترینش این که اصولی بودن چیز ها چجوری تعریف میشه تازه در کنارش هم دیدم برای خوندن یه پروژه کوچیک ساده چیکار میکنم.
آدم ها برای انجام دادن چیز های بزرگ گارد دارند، همش دوست دارند که چیز های کوچک و ساده رو انجام بدن، وقتی نوبت به انجام کار های بزرگ میرسه سر درگم میشن که باید چیکار کنن و چیکار نکنن، پس راه حل این هست که کار های بزرگ رو به کار های کوچک تقسیم کنیم و یکی یکی انجامش بدیم.
شاید معنی جمله بزرگ فکر کن و کوچک قدم بردار همین باشه، کی میدونه؟
از این به بعد میخوام هر روز از کار هایی که برای این که توی DuckDuckGo میکنم تو ویرگول چیز بنویسم (امیدوارم بتونم به این داستان برسم و مثل دفعه های قبلی ول نکنم)
نظر انتقاد پیشنهاد ها تون هم گوش نمیدم :))))))))
شاد باشید و خرم