فعالیت‌های روزمره‌ای که به شما کمک می‌کند برنامه‌نویس بهتری شوید

ترجمه و تالیف : علیرضا معمارزاده
تاریخ انتشار : 22 اردیبهشت 99
خواندن در 6 دقیقه
دسته بندی ها : برنامه نویسی

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

در زیر لیستی از فعالیت‌های جانبی که خودم انجام می‌دهم را می‌توانید مشاهده کنید. امیدوارم که این لیست باعث شود شما به آن‌ها ترغیب شوید و تلاش خود را آغار کنید.

پس با من در ادامه این مقاله از راکت همراه باشید.

فعالیت‌های جانبی که می‌توانید امروز آغاز کنید!

تمایل دارم با این نکته شروع کنم که خوب است که به طور موازی روی چندین فعالیت کار کنید.

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

1. چالش‌های کدنویسی الگوریتمی

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

توصیه من این است که این کار را با دوستان خود انجام دهید.

من همین کار را با همکارانم در شرکت قبلی خود انجام داده‌ام. صبح، ما یک چالش را انتخاب می‌کردیم و 15 دقیقه برای حل آن به خودمان وقت می‌دادیم.

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

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

دو وبسایت مشهور وجود دارد که می‌توانید از آنها استفاده کنید: FreeCodeCamp  و HackerRank .

من هر دوی آنها را دوست دارم! آنها ویرایشگرهای درون صفحه‌ها را پیشنهاد می‌کنند و برای هر سطحی از افراد چالش برانگیز هستند. علاوه بر این، هر دوی آن‌ها معمولا برای هر چالش چند راه‌حل از کم‌ترین مطلوبیت تا بیشترین مطلوبیت ارائه می‌دهند.

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

2. مشارکت در پروژه‌های متن‌باز (Open Source)

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

فوائد زیادی برای این‌کار وجود دارد. دو مورد از آن‌ها این است که شما درک عمیقی از پروژه بدست می‌آورید. 

علاوه بر این ممکن است شما با برنامه‌نویسانی که نمی‌شناسید وارد کار شوید، با آن‌ها تعامل برقرار کنید که این یک تجربه ارزشمند در همکاری است.

اگر در مشارکت در یک پروژه متن‌باز ترس دارید، نگران نباشید! راه‌حل‌هایی در اینجا وجود دارد:

  • اولین پروژه همکاری (First Contributions) با هدف ارائه راهنمایی برای تازه‌کارهایی که می‌خواهند کار اول خود را انجام دهند صورت گرفته‌است.
  • GitHub Help Wanted یک برنامه است که به شما اجازه می‌دهد فیلترهایی برحسب زبان و موضوع برچسب اعمال کنید تا پروژهای که می‌توانید در آن کمک کنید را پیدا کنید.

فعالیت‌های روزمره‌ای که به شما کمک می‌کند برنامه‌نویس بهتری شوید

3. ایجاد یک پکیج

روش دیگری برای انجام پروژه‌های متن‌باز است.

بیایید بگوییم که شما باید یک چیز عالی برای واکنش برنامه‌ی خودتان بسازید چون شما نمی‌توانید یکی در NPM (node package manager) پیدا کنید که به درستی همان کار را انجام دهد. ایجاد یک پکیج از آن می‌تواند خوب باشد و همچنین می‌تواند توسط برنامه نویسان دیگر نیز مورد استفاده قرار گیرد.

من اولین پکیج خود را چندی پیش ایجاد کردم! ویژگی‌ای که برای محصول خود در محل کار به آن نیاز داشتیم.

در حالی‌که من تمام تلاش خود را در کار کردم تا اطمینان حاصل کنم که هیچ اشکالی در این ویژگی وجود ندارد، تبدیل آن به یک NPM باعث شد که بخواهم، این چیزی فراتر از بدون اشکال باشد!

این کدگذاری در  پروژه‌های دیگر استفاده می‌شود و اگر در پروژه من کار کند برای هر یک از آن پروژه‌ها نیز کار خواهد کرد. بنابراین، من زمان بیشتری را صرف آن کردم، تا به خوبی مستند شود (چه کسی می داند ممکن است یک برنامه‌نویس آن‌را پیدا کند و بخواهد کمک کند!) تا هر خط از آن به خوبی قابل فهم باشد.

این بسیار خوشحال کننده است که ببینم میزان دانلود پکیج‌های من بالا می‌رود (فقط چند صدبار تاکنون اما هنوز هم افزایش می‌یابد!).

4. محصول خود را شروع کنید

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

این جامع‌ترین پروژه‌ای است که می‌توانید داشته باشید.

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

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

  • نحوه نوشتن مشخصات (تنها بودن توجیه برای نوشتن نیست).
  • چگونه می‌توانید محصول خود را به بازار عرضه کنید ،تا از آن کسب درآمد کنید.
  • تعیین کنید چگونه می‌خواهید کاربران خود، محصول شما را تجربه کنند.
  • چگونه مشکلات را ضمن توسعه آن حل کنیم.
  • چگونه بادقت و تمرکز جزئیات کوچک را ببینید.

اگر بدون خطر ریسک در ابتدا از آن بهره ببرید این تخصص بی‌ارزش می‌شود.

من عاشق کار کردن روی محصولات در اوقات‌فراغت هستم. همه آن‌ها تاکنون شکست خورده‌اند، اما مشکلی نیست. من کامل نیستم! من یاد می‌گیرم! و این نکته اساسی است!

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

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

درنهایت، جامعه سازندگان بسیار بزرگ است. در اینجا چند پیوند برای شروع کار آمده است:

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

Levels.io: مکان دیگری که شما می‌توانید افرادی را پیدا کنید که محصولات اثرگذاری را را به جامعه اهدا کرده‌اند. 

5. دانش خود را در سایت‌ها به اشتراک بگذارید

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

می‌خواهم اطمینان داشته باشم که خوانندگان را خوشحال می‌کنم و آن‌ها چیزی یاد می‌گیرند.

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

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

به‌عنوان مثال، ممکن است در پروژه‌ی من ده خط وجود داشته باشد که از StackOverflow کپی پیست شده باشد و من 100% مطمئن نیستم که چه‌کاری انجام می‌دهد (این مسئله خجالت آور نیست!). قبل از انتشار پروژه‌ به آن پی خواهم برد. 

در صورت لزوم، من یک ساعت یا بیش‌تر روی یک خط کد وقت می‌گذرانم! تا زمانی که مطمئن نباشم می‌توانم در صورت درخواست آن را برای کسی خوب توضیح دهم، این کار را ادامه می‌دهم.

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

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

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

6. خودتان را موظف کنید تا یکی از فعالیت‌های قبلی خود را انجام دهید

توانایی توضیح آنچه ما هنگام برنامه‌نویسی انجام می‌دهیم یک مهارت عالی است.

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

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

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

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

من دوست دارم وقتی روی محصولی کار می‌کنم، استریمر نیز باشم، به دو دلیل:

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

در هنگام استریمری به تعداد بینندگان نگاه نکنید! هیچ کس اهمیتی نمی‌دهد. ممکن است کسی نباشد ،ممکن است 235 بیننده وجود داشته باشد، مهم نیست. به خود بگویید که 10،000 نفر شما را تماشا می‌کنند و باید کاری را که انجام می دهید برای آن‌ها مهیج کنید.

اگر هنوز احساس نمی‌کنید که ‌استریمر شده‌اید یا نه می‌توانید از سایر استریمرها کمک بگیرید.

کلام آخر

این‌ها فعالیت‌هایی است که من به‌طور منظم انجام می‌دهم. امیدوارم بعضی از آن‌ها را امتحان کنید. مهم‌ترین چیز این است که کاری را که دوست دارید انجام دهید!

منبع

گردآوری و تالیف علیرضا معمارزاده
آفلاین
user-avatar

Student of Software Engineering, python Developer, i love programming and game

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید