این روزها در حال مطالعه کتاب بسیار خوب «Soft Skills: The software developers life manual» نوشته آقای John Sonmez هستم. این کتاب برخلاف اکثر کتابهای برنامهنویسی، اصلا در مورد خود برنامهنویسی و جنبههای فنی کار حرف نمیزنه بلکه در مورد جنبههای جانبی یا اصطلاحا جنبههای «نرم» برنامهنویسی بحث میکنه. طرز فکر، عادتها و مهارتهایی که یه برنامهنویس برای حرفهای شدن و پیشرفت در کارش به اونها نیاز داره. تا لحظه نوشتن شدن این مطلب، این کتاب هنوز به فارسی ترجمه نشده. بنابراین من تصمیم گرفتم همزمان با خوندن این کتاب نکاتی که ازش یاد میگیرم رو به صورت خلاصه در مجموعه پستهایی که اسمشون رو «چرا کد زدن دیگه کافی نیست؟!» گذاشتم با شما هم به اشتراک بذارم. این مجموعه، یک مجموعه سریالی خواهد بود که من بعد از انتشار هر قسمت، لینک اون قسمت رو در انتهای این مطلب قرار میدم تا مراجعه بهش راحتتر بشه.
یه مسئلهای که در ادبیات عامه مردم ایران و جهان وجود داره اینه که ما معمولا دو کلمه شغل (Job) و حرفه (Career) رو به عنوان کلمات هممعنی و به جای هم به کار میبریم. در حالی که این دو کلمه هممعنا نیستند! قدم اولی که هر کس در مسیر پیشرفت حرفهایش باید برداره درک تفاوت شغل و حرفه است. به نظرم خوبه برای شروع درک تفاوت این دو مفهوم، از کلام آقای «Earl Nightingale» بزرگ کمک بگیریم:
بزرگترین اشتباهی که میتوانید انجام دهید این است که باور کنید شما برای شخص دیگری کار میکنید. امنیت شغلی دیگر وجود ندارد. نیروی پیشران هر حرفهای باید از درون خود شخص بجوشد.
به یاد داشته باشید: شرکتها صاحب «شغل»ها هستند و شما صاحب «حرفه» خود هستید.
در واقعه «شغل» چیزیه که شما به خاطرش استخدام میشید و «حرفه» مهارتیه که شما دارید. و اگه قرار باشه شما یک «حرفه»ای باشید، اینها نکاتیه که میتونه به شما کمک کنه:
چند تا اشتباه عمده وجود داره که بیشتر برنامهنویسان در ابتدای زندگی کاریشون مرتکب میشن. یکی از بزرگترین این اشتباهات اینه که حرفهشون به عنوان یک برنامهنویس رو به شکل یک «کسب و کار» نمیبینند. بیایید با هم صادق باشیم. کار ما از یک نظر هیچ فرقی با اون آهنگری که چند قرن پیش نعل اسب درست میکرد نداره و اون هم اینه که هر دوی ما چیزی رو میفروشیم. اون مهارتش به عنوان یک آهنگر رو در قالب محصولات فلزی و ما مهارتمون در برنامهنویسی رو در قالب محصولات نرمافزاری. محصولاتی که اون آهنگر تولید میکرد متعلق به مشتریان بود اما مهارت آهنگری و کسب و کار آهنگری متعلق به خود آهنگر بود. اگر به هر دلیلی کسب و کار آهنگر تهدید میشد اون میتونست بساط فروش محصولاتش رو در بازار جدیدی پهن کنه چون به مهارتش و فایدهاش برای حل مشکل دیگران ایمان داشت. نرمافزارهایی که ما مینویسیم هم معمولا متعلق به کارفرمامونه اما مهارت برنامهنویسی متعلق به ماست و ما میتونیم بر حسب نیاز اون رو در جای دیگری به فروش برسونیم.
داشتن نگاه کسب و کاری به حرفه برنامهنویسی از این نظر مهمه که باعث میشه ما رئیسمون رو به جای کارفرما، یک مشتری ببینیم. درسته! شاید شما برخلاف اون آهنگر فقط یک مشتری داشته باشید(رئیستون)، اما نگاه به کارتون از این زاویه شما رو از جایگاه یک آدم وابسته و بدون قدرت، تبدیل به شخصی مستقل و با اعتماد به نفس میکنه.
ویژگی صاحب یک کسب و کار اینه که باید محصولی برای عرضه داشته باشه. این محصول میتونه از جنس کالا یا خدمات باشه. ما به عنوان برنامهنویس کالایی به اسم نرمافزار رو عرضه میکنیم و خدمتی به نام برنامهنویسی. داشتن نگاه محصول محور به کارمون باعث میشه این واقعیت رو ببینیم که هر محصولی برای اینکه بتونه به فروشش ادامه بده باید مدام بازنگری بشه و بهبود پیدا کنه. اگه شما خودتون رو به عنوان فروشنده یک محصول ببینید باعث میشه مدام به بهبود و بازنگری کارتون فکر کنید و داشتن این طرز فکر میتونه یک تفاوت بزرگ بین شما و بخش اعظم جامعه برنامهنویسان ایجاد کنه.
همه کسب و کارها باید برای دیده شدن و جذب مشتری تلاش کنند. بهترین محصولات دنیا هم اگر ناشناخته باشند، هیچ جایگاهی در بازار نخواهند داشت. این نگاه باعث میشه تمرکزتون صرفا روی توسعه مهارتهای فنی نباشه و متوجه این نکته بشید که باید روی مهارتهای بازاریابی و ارائه خودتون هم کار کنید. اگه نتونید خودتون رو خوب عرضه کنید حتی اگه بهترین برنامهنویس دنیا هم باشید هیچ مشتری نخواهید داشت چون کسی شما رو نمیشناسه. شما محصولی تولید میکنید که قراره مشکلی از مشکلات حداقل تعدادی از انسانها رو حل کنه. بنابراین لازمه که یاد بگیرید چطوری به اون آدمها پیشنهاد بدید و چطور راه حلی که ارائه میکنید رو در نظر اونها با ارزش نشون بدید.
امیدوارم بتونم به زودی قسمتهای بعدی کتاب رو هم ترجمه کنم. اگه مایل به دنبال کردن قسمتهای بعدی هستید من رو دنبال کنید. مشتاقانه منتظر نظرات شما هستم :)