برنامه نویسی:threadای که اگر run شد، کارت تمام است

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

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

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

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

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

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

"The best place to hide a dead body is page two of google."

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

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

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

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

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

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

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