سرمایه گذاری روی دانش همیشه بهترین سود را دارد.
بنجامین فرانکلین
در این مقاله قصد دارم برگردانی آزاد از بخش ششم - فصل اول کتاب ارزشمند Pragmatic Programming را خدمتتان ارائه بدهم. در مقالات قبلی با عناوین:
بخش های قبلی این کتاب را با هم خواندیم. پیشنهاد می کنم اگر هنوز اون قسمت ها رو نخواندید، بعد از خواندن این بخش با عنوان برنامه نویس سرمایه گذارش خوبه! به آنها هم سربزنید. در این کتاب نکات بسیار جالبی درباره ی اینکه چطور یک برنامه نویس خوب باشیم را می خوانیم و من تلاش کردم به زبان خودم برایتان هر کدام از نکات را تعریف کنم.
دانش و تجربه ی شما مهمترین دارایی های حرفه ای شما هستند که باید هرروز به آنها رسیدگی کنید. و متاسفانه این دارایی ها تاریخ انقضا دارند. دانش شما به راحتی با آمدن یک تکنولوژی جدید یا یک زبان برنامه نویسی جدید منقضی می شود. حتی عوض شدن تمایل بازار به یک تکنولوژی یا مهارت، ممکن است دانش شما را از رده خارج کند. و با توجه به اینکه در دنیای تخصص ما، سرعت تغییر یا به وجود آمدن تکنولوژی های جدید خیلی زیاد است، دانش ما ممکن است به سرعت از رده خارج می شود.
توجه داشته باشید که در این شرایط هم زمان که ارزش دانش شما کاهش می یابد، ارزش شما برای شرکت و مشتری هایتان هم کم می شود. و شما باید جلوی این اتفاق ها را بگیرید.
توانایی یادگیری چیزهای جدید، اصلی ترین دارایی استراتژیک شماست. اما خود یادگرفتن رو چطوری یادبگیریم؟ و اصلا از کجا بفهمیم چه چیزی رو یاد بگیریم؟
مدیریت سبد (پرتفوی) دانش خیلی شبیه به مدیریت سبد (پرتفوی) مالی است. سرمایه گذارهای حرفه ای برای مدیریت سبد دارایی های مالی شان از راهکارهایی استفاده می کنند که در ادامه می خوانیم:
- سرمایه گذارهای حرفه ای به صورت منظم سرمایه گذاری می کنند. این کار برایشان یک عادت است.
- تنوع در سرمایه گذاری، کلید موفقیت شان در بلند مدت است.
- سرمایه گذاران باهوش سبد خود را بین سرمایه های محافظه کارانه، پرخطر و با سود بالا متعادل نگه می دارند.
- سرمایه گذارها تلاش می کنند، ارزان بخرند و گران بفروشند، تا بیشترین سود را ببرند.
- سرمایه گذارهای موفق، سبدهای شان را به صورت دوره ای بازبینی کرده و دوباره متعادل می کنند.
برای موفقیت در حرفه ای که دارید، باید مانند یک سرمایه گذار که با راهکارهای بالا سبد دارایی خود را مدیریت می کند، شما هم سبد دانش تان را مدیریت کنید.
خبر خوب این است که مدیریت سرمایه، مانند بقیه ی مهارت ها، یک مهارت است و قابل آموختن. اصلی ترین ترفند این است که، ابتدا خودتان را مجبور به انجام این کار کنید و آن قدر تکرار کنید تا به یک عادت برایتان تبدیل شود. یک روتین برای خودتان ایجاد کنید و آن قدر این کار را ادامه دهید تا مغزتان به طور خودکار آن مسیر را ادامه دهد. خیلی سریع متوجه می شوید که چیزهای جدید را به طور خودکار یاد گرفته اید.
⭐ برای خلق یک عادت جدید و نگه داری از عادت های خوبتان، پیشنهاد می کنم کتاب " عادت های اتمی از جیمز کلیر" را بخوانید.
سبد دانش خودتان را بسازید.
انضباط
دقیقا مانند یک سرمایه گذار مالی، شما باید روی سبد دانش خودتان به طور منظم سرمایه گذاری کنید، حتی اگر میزان این سرمایه گذاری کم هم باشد بهتر از این است که اصلا سرمایه گذاری نکنید. مهمترین چیز این است که به این کار عادت کنید، پس برنامه ریزی کنید که در یک ساعت مشخص و در یک مکان مشخص، فارغ از هرگونه عاملی مانند موبایل، شبکه های اجتماعی و ... که حواس تان را پرت می کند، این کار را انجام بدهید.
تنوع
هر چه چیزهای متفاوت تری بدانید، ارزشمندتر هستید. البته دقت کنید که برروی تقویت پایه ی اصلی تخصص تان هم تمرکز کنید، یعنی باید ریزه کاری ها و نکات فناوریِ خاصی که در حال حاضر با آن کار می کنید را هم بدانید. اما فقط در همین موضوع گیر نکنید. چهره تکنولوژی به سرعت تغییر می کند، فناوری داغ امروز، ممکن است فردا تقریباً بی فایده باشد یا حداقل مورد تقاضا نباشد. هرچه با فناوریهای بیشتری آشنا باشید، بهتر میتوانید با تغییرات سازگار شوید. البته مهارت های دیگر، از جمله مهارت های غیر فنی و Soft Skill ها را هم فراموش نکنید.
مدیریت ریسک
فناوری در طول طیفی از استانداردهای پرخطر با پاداش بالا، تا کم خطر و با پاداش کم وجود دارد. این ایده ی خوبی نیست که تمام پول خود را در سهام های پرریسکی که ممکن است ناگهانی سقوط کنند، سرمایه گذاری کنید، همچنین نباید همه آن را محافظه کارانه سرمایه گذاری کنید و فرصت های احتمالی را از دست بدهید. با همین منطق، تمام تخم مرغ های فنی خود را، در یک سبد قرار ندهید. و روی مهارت های مختلفی سرمایه گذاری کنید.
ارزان بخر، گران بفروش
یادگیری یک فناوری نوظهور، قبل از محبوب شدنش، می تواند به همان اندازه سخت باشد که یک سهام کم ارزش را پیدا کنید، اما بازده آن می تواند به همان اندازه ارزشمند باشد. یادگیری جاوا در زمانی که برای اولین بار معرفی شد و هنوز ناشناخته بود، ممکن بود خطرناک به نظر بیاید، اما زمانی که بعداً به یکی از پایه های اصلی صنعت تبدیل شد، برای اولین کسانی که آن را یادگرفتند، نتیجه های قابل توجهی داشت.
بررسی و ایجاد تعادل
حوزه ای که در آن کار می کنیم، یک صنعت بسیار پویا است. آن فناوری داغی که ماه گذشته شروع به بررسی آن کردید، ممکن است تا کنون بسیار سرد شده باشد. شاید لازم باشد آن فناوری پایگاه داده ای را که مدتی است از آن استفاده نکرده اید، تقویت کنید. یا شاید اگر زبان برنامه نویسی دیگری را امتحان می کردید، می توانستید برای آن فرصت شغلی جدید موقعیت بهتری پیدا کنید….
از بین همه ی این راهکارها، مهمترین آنها ساده ترین آنهاست:
⭐ روی سبد مهارت های تان به طور منظم سرمایه گذاری کنید.
اکنون که راهکارهایی در مورد اینکه چه چیزی را چه زمانی به مجموعه دانش خود اضافه کنید یادگرفتید، بهترین راه برای به دست آوردن سرمایه فکری ای که با آن بتوانید سبد دانش خود را تامین کنید، چیست؟ در ادامه چند پیشنهاد برایتان دارم:
سالیانه حداقل یک زبان برنامه نویسی جدید یادبگیرید.
زبان های برنامه نویسی مختلف، مسائل مشابه را به روش های مختلف حل می کنند. با یادگیری چندین رویکرد مختلف، تفکر شما درباره موضوع های برنامه نویسی گسترده می شود و احتمال اینکه در یک راه حل گیر کنید خیلی کم می شود.
این روزها، یادگیری بسیاری از زبانهای برنامه نویس داغ به لطف نرمافزارهای رایگان موجود، آسان تر شده است.
🟠 آخرین زبان برنامه نویس که یادگرفتید چه زبانی بود؟ آیا در سال گذشته زبان جدیدی را یاد گرفته اید؟
هرماه یک کتاب فنی بخوانید.
در حالی که انبوهی از مقالات کوتاه در وب وجود دارد، ولی برای درک عمیق، به کتابهایی با فرم طولانی نیاز دارید. توی کتاب فروشی های فنی، دنبال کتاب هایی بگردید که به موضوع پروژه یا توانایی های در حال توسعه ی شما نزدیک است. وقتی عادت کردید ماهی یک کتاب بخوانید و پس از تسلط بر فناوریهایی که در حال حاضر استفاده میکنید، بعضی از کتابهایی را که به پروژه شما مرتبط نیستند، جدا کرده و مطالعه کنید.
🟠 آخرین کتاب فنی که مطالعه کردید، چه کتابی بود؟ آیا در ماه پیش این کتاب را خواندید؟
کتاب های غیر فنی بخوانید.
حواستان به این موضوع باشد که کامپیوترها برای افراد ساخته شده اند؛ همان افرادی که شما سعی می کنید نیازهای آنها را برآورده کنید. شما با مردم کار می کنید، توسط مردم استخدام می شوید و توسط مردم هک می شوید. جنبه انسانی معادله را فراموش نکنید، زیرا به مجموعه مهارت های کاملاً متفاوتی نیاز دارد که به این مجموعه، مهارت های نرم می گوییم، اما تسلط بر آنها بسیار سخت است.
🟠 آخرین کتاب غیر فنی که خواندید، چه کتابی بود؟ آخرین مهارت نرمی که آموختید کی بود؟
به دوره و کلاس بروید.
دوره های جالب در آموزشگاه های آنلاین یا حضوری را بررسی کنید اگر دوره ی مناسبی در راستای اهداف شما و مهارت هایی که می خواهید یاد بگیرید پیدا کردید، سریع ثبت نام کنید و برای خوب سپری کردن آن تمام تلاش تان را بکنید.
🟠 آخرین دوره ای که شرکت کردید، چه دوره ای بود؟
در دورهمی های تخصصی شرکت کنید.
انزوا می تواند برای حرفه شما کشنده باشد. در دورهمی های مختلف شرکت کنید تا بفهمید که افراد خارج از شرکت شما، روی چه چیزهایی کار می کنند. در این جلسات فقط شنونده نباشید، به صورت خیلی فعال حضور داشته باشید و با افراد مختلف تعامل کنید.
🟠 آخرین بار با چه کسانی خارج از تیم و یا شرکت خودتان، دورهم جمع شدید و درباره ی تجربه هاتون صحبت کردید؟
در جریان باشید.
اخبار و پست های مربوط به فناوری های مختلفی که در پروژه فعلی تان با آنها کار دارید را در مقاله های اینترنتی بخوانید. خواندن مقاله یکی از بهترین راه ها برای آشنایی با مشکلات، راه حل ها و کارهایی است که دیگران با همین فناوری ها انجام داده اند.
🟠 چه وب سایت هایی را هرروز چک می کنید و می خوانید؟ آیا از آخرین مقاله ای که خوانده اید بیشتر از دو روز گذشته است؟
در بالا سوال هایی را از شما پرسیدم (🟠) روی یک کاغذ جواب هایتان را بنویسد. باخودتان صادق باشید و از روی جواب های تان بررسی کنید که آیا واقعا درمسیر درست هستید یا خیر؟
ادامه دادن در سرمایه گذاری یکی از رمزهای موفقیت سرمایه گذارهای حرفه ایست. هنگامی که با زبان یا تکنولوژی جدیدی احساس راحتی کردید و احساس کردید، دیگر می توانید کارهایی که برایتان پیش می آید را با آن انجام دهید، ادامه دهید و سریع زبان برنامه نویسی یا تکلنولوژی بعدی را یاد بگیر.
مهم نیست که از هر یک از این فناوریها در پروژهای استفاده کنید یا حتی آنها را در رزومه بیاورید. مهم یادگرفتن است. فرآیند یادگیری، تفکر شما را گسترش میدهد و فرصتهای جدید و راههای جدیدی را برای انجام کارها، پیش روی شما قرار می دهد.
البته سعی کنید تا جای ممکن درس هایی که آموخته اید را در پروژه ی فعلی خود به کار ببرید. حتی اگر پروژه شما از آن فناوری استفاده نمی کند، شاید بتوانید برخی از ایده ها را به صورت آزمایشی برای خودتان پیاده سازی کنید. برای مثال، با شی گرایی آشنا شوید و برنامه های رویه ای را متفاوت بنویسید. پارادایم برنامه نویسی تابعی را درک کنید و کدهای شی گرا را به صورت متفاوتی بنویسید و ... .
فرصت های یادگیری
فرض کنید شما با حرص و ولع مطالعه می کنید، از آخرین پیشرفت های مهم در زمینه خود مطلع هستید که اصلا هم کار آسانی نیست. حالا در این شرایط کسی از شما سوالی می پرسد و شما ضعیف ترین ایده ای هم درباره ی جواب آن سوال ندارید. هیچ اشکالی ندارد، خیلی راحت به ندانستن اعتراف کنید. اما اجازه ندهید سرخورده یا متوقف شود. برای یافتن پاسخ، مسئله را به عنوان یک چالش شخصی در نظر بگیرید. پرس و جو کنید. در وب سایت های مختلف به دنبال جواب بگردید. اگر خودتان نمی توانید پاسخ را پیدا کنید، به دنبال کسی بگردید که یا جواب را می داند و یا حداقل می داند چطور می توان جواب را پیدا کرد. وقتی او را پیدا کردید، اجازه ندهید یک لحظه استراحت کند، صحبت کردن با افراد دیگر به ایجاد شبکه شخصی و فنی شما کمک می کند و حتی این گپ و گفت های فنی ممکن است به یافتن راه حل هایی برای مشکلات دیگر، بیانجامد. و حالا سبد دانش شما، بزرگتر می شود.
این مطالعه ها و تحقیق ها زمان می برد و زمان در حال حاضر کم است. بنابراین باید از قبل برنامه ریزی کنید. همیشه چیزی برای خواندن در یک لحظه مرده داشته باشید. زمانی که در اتاق انتظار پزشک ها و دندانپزشک ها هستید، میتواند فرصتی عالی برای دنبال کردن اهداف تان باشد. پس حتماً کتاب هایی که می خواهید را به صورت الکترونیکی در موبایل خود داشته باشید، در غیر این صورت ممکن است بجای سرمایه گذاری روی اصلی ترین دارایی تان، به سراغ شبکه های اجتماعی بروید.
تفکر انتقادی
آخرین نکته مهم این است که در مورد آنچه می خوانید و می شنوید انتقادی فکر کنید. شما باید اطمینان حاصل کنید که دانش موجود در سبد شما دقیق است و تحت تأثیر تبلیغات فروشنده یا رسانه های مختلف قرار نگرفته است.
هرگز قدرت تبلیغات را دست کم نگیرید. صرفاً به این دلیل که یک موتور جستجوی وب، به عنوان اولین لینک یک موضوعی را نشان می دهد، به این معنی نیست که بهترین تطابق را با موضوع مورد نظر شما دارد. ارائهدهنده محتوا میتواند برای اینکه محتوای خودش در بالاترین جایگاه نتایج جستجو قرار بگیرد هزینه ای را پرداخت کند. یا فقط به این دلیل که یک کتابفروشی معتبر دارای کتاب خاصی هست، به این معنی نیست که کتاب خوبی است. ممکن است به آنها پول داده شده باشد تا آن را در آنجا قرار دهند.
⭐ آنچه را که می خوانید و می شنوید به طور انتقادی تجزیه و تحلیل کنید.
توانایی تفکر انتقادی، یک رشته ی کامل است و پیشنهاد میکنم که هرچه میتوانید درباره آن بخوانید و مطالعه کنید. ولی در ادامه چند سوال برای پرسیدن و فکر کردن ارائه می دهیم که شاید شروع خوبی برای ورود به لایه ی تفکر انتقادی باشد.
پنج بار بپرسید "چرا؟"
یک ترفند عالی پرسیدن "چرا؟" برای پنج بار و رسیدن به جواب است. با پرسیدن "چرا؟" عمیق تر کنکاش کنید. طوری تکرار کنید که انگار یک بچه چهار ساله متکبر اما مودب هستید. ممکن است از این طریق بتوانید به یک علت اصلی نزدیک شوید.
این به نفع چه کسی است؟
ممکن است بدبینانه به نظر برسد، اما دنبال کردن پول، می تواند یک مسیر بسیار مفید برای تجزیه و تحلیل باشد. مزایای شخص یا سازمان دیگری ممکن است با منافع شما هماهنگ باشد یا خیر. به این فکر کنید که پول این موضوع در جیب چه کسی می رود و اگر با آن شخص یا سازمان هم جهت نبودید، نتیجه ای که بدست آوردید را رها کنید.
زمینه یا Context چیست؟
همه چیز در زمینه خودش اتفاق می افتد، به همین دلیل است که راه حلی که به "یک اندازه برای همه" مفید باشد، اغلب پیدا نمی شود. مقاله یا کتابی را در نظر بگیرید که درباره ی «بهترین شیوه» صحبت کرده است. سؤال های خوبی که باید در نظر گرفته شوند عبارتند از:
- بهترین برای چه کسی؟
- پیش نیازها چیست؟
- پیامدهای کوتاه مدت و بلندمدت چیست؟
چه زمانی یا کجا این کار می کند؟
تحت چه شرایطی؟ خیلی دیر شده؟ خیلی زود؟ در تفکر مرتبه اول (چه اتفاقی خواهد افتاد) توقف نکنید، بلکه از تفکر مرتبه دوم استفاده کنید و از خودتان بپرسید: بعد از آن چه خواهد شد؟
تمرین
- از همین شنبه شروع کنید به یادگیری یک زبان برنامه نویس جدید مثل پایتون، Go یا Swift و ...
- یک کتاب فنی را شروع کنید به خواندن. اگر فرد مبتدی هستید کتابهایی درباره ی تکنیک های کد نویس مثل Clean Code را بخوانید و اگر حرفه ای تر هستید کتابهایی درباره ی Design Pattern یا Architecture Pattern ها را انتخاب کنید.
- به یکی از این سایت های رویدادهای حضوری و مجازی سر بزنید و در یکی از آنها ثبت نام کنید و با افرادی که در آنجا هستند و از اعضای تیم تان نیستند ارتباط برقرار کنید.