نود و هفت چیزی که هر برنامه‌نویسی باید بداند: همواره در حال یادگیری موضوعات جدید باشید


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

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

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

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

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

- اگر واقعاً می خواهید با یک تکنولوژی جدید آشنا شوید، دست خود را به آن آلوده کنید! شروع به کدنویسی کنید. تلاش کنید با امتحان کردن نرم افزارهای جدید به آن ها مسلط شوید.

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

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

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

- زمانی که اشتباهی انجام می دهید، به باگی در میان کدهای خود برخورد می کنید، یا با مشکلی در کدنویسی برنامه ی خود مواجه می شوید سعی کنید بفهیمد واقعاً چه اتفاقی افتاده است. ممکن است قبل از شما کسی با چنین مشکلی رو به رو شده باشد و بعد از یافتن راه حل، آن را روی فضای اینترنت به اشتراک گذاشته باشد. در این موارد جستجو در گوگل -و همچنین جستجو در سایت Stack Overflow- به شما کمک زیادی خواهد کرد. به علاوه سعی کنید شما هم یافته های خود را در اختیار دیگران قرار دهید.

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

- موضوعی را که به آن علاقمند هستید انتخاب کنید و سعی کنید با گروهی از افراد به مطالعه ی جمعی آن موضوع بپردازید. مطمئن باشید بواسطه ی همکاری با دیگران و استفاده از نظرات و تجربیات آن ها تاثیر این یادگیری جمعی به مراتب بیش تر از یادگیری انفرادی است. خوشبختانه با ظهور شبکه های گسترده ی اجتماعی می توان این فعالیت ها را در قالب تیمی و به صورت مجازی انجام داد.

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

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

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

- این روزها همه می دانند که صرف یادگیری زبان های برنامه نویسی یا دانش استفاده ازتکنولوژی های جدید برای شما مزیت رقابتی ایجاد نخواهد کرد. شما باید با حوزه ای که در آن کار می کنید آشنایی کامل داشته باشید تا بتوانید نیازهای مشتریان خود را بشناسید. آگاهی از این که چه طور کارکرد مؤثرتر و نقش سازنده تری در محیط کاری داشته باشید نیز مفید خواهد بود. برای مثال این روزها بیش تر شرکت ها به دنبال برنامه نویسانی هستند که در کنار مهارت های کدنویسی با روش های Agile یا چابک نیز آشنایی داشته باشند.

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

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

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

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
محسن
محسن
بهتر هست قبل از اینکه بخواهیم یادگیری رو شروع کنیم مفهوم T shape رو مرور کنیم
در این مفهوم لبه بالایی حرف T نشان دهنده میزان اطلاعات یک فرد به طور کل درباره مطالب گوناگون و عمق خط عمودی حرفT به معنی میزان تخصص و تجربه فرد درباره زمینه ای مشخص و سایر موارد مربوط به آن است
این خصوصیت یکی از ملاک های مورد توجه شرکت گوگل در استخدام افراد هست

اما ارتباط این مفهوم با این مطلب رو میشه اینجوری توضیح داد که سعی کنیم همواره درحال یادگیری باشیم اما در یک چهارچوب مشخص بیشتر انرژی رو صرف کنیم، به قولی هرچیزی هم ارزش یادگیری نداره
مثلا دولوپر فرانت اند خوب هست که تا حدودی با php آشنا باشه (همون لبه بالایی حرف T) اما اصلا نیاز نیست که به لاراول مسلط باشه
این موضوع یادگیری در مورد جاوااسکریپت خیلی نمود داره، شاید با کمی اغراق بشه گفت هر ماه یک لایبرری یا فریمورک مبتنی بر جاوااسکریپت ارایه میشه، اما آیا همشون واقعا ارزش یادگیری دارن؟

یا بهتر هست زمان و هزینه صرف عمیق تر شدن در فیلد تخصصی بشه

در مورد
"کسانی که بر موضوعی تسلط کامل دارند از آن استفاده می کنند و با آن کار می کنند و کسانی که چیزی از آن نمی دانند همان موضوع را درس می دهند!"
هم متاسفانه در برخی موارد صحیح هست، البته همونطور که اشاره شد آموزش یک مفهومی که فرد به اون مسلط هست می تونه باعث افزایش تبحر و همینطور کمک به دیگران برای افزایش سطح علمی دیگران هم بشه

درباره T-shaped_skills می تونید لینک زیر رو هم مطالعه بفرمایید
https://en.wikipedia.org/wiki/T-shaped_skills
Nirvana
Nirvana
سایتو فیلتر کردن. بعضی از قسمتهای سایت واسه من فقط با فیلتر شکن باز میشه.
Insight
Insight
یادگیری مستمر کلید موفقیت یک برنامه نویس در دراز مدت هست. متاسفانه این مسئله در کشور ما مهم تلقی نمیشه. موارد زیادی رو دیدم که شخص یک سری اطلاعات سطحی راجع به مثلا HTML و CSS و PHP بدست آورده و خودش رو یک Full-Stack Developer میدونه! به واسطه ی جنس حرفه ی پویا و رو به رشدی که صنعت IT داره‌، یک مهندس کامپیوتر یا یک برنامه نویس باید دائما در حال مطالعه و یادگیری باشه. البته بعضا این گزاره ممکنه ترسناک به نظر برسه! اما دنبال کردن یک وبسایت یا یک مجله و یا یادگیری مثلا یک زبان برنامه نویسی در بازه های زمانی معین میتونه تا حدودی کافی باشه.
محمد
محمد
ویژگی مشترک همه دولوپر های موفق ، دائما در حال یادگیری هستند.
به نظرم یکی از لذت بخش ترین بخش ها همینه و باعث شده شخصیت های کنجکاو که از راکد بودن خوششون نمیاد وارد این حوزه بشن...
این به روز شدن مکرر باعث میشه که این کار خسته کننده نباشه و همیشه یه سری چالش جالب در مقابل برنامه نویس قرار بگیره :)