چگونه در برنامه نویسی پیشرفت کنیم؟
برنامه نویس شدن و برنامه نویسی صرف نظر از هر موضوعی، مقوله ای است که تا زمانی که علاقه و عشق به آن وجود نداشته باشد کسی وارد آن نمیشود. از طرفی دیگر اگر کسی بدون علاقه ی کافی وارد حوزه برنامه نویسی شود، حتما با مشکلات بزرگی مواجه خواهد شد که همه ی آنها دست به دست هم میدهند تا پشتکار و تلاش کافی برای پیشرفت در این زمینه را از دست بدهد، در ادامه به معرفی برخی از این مشکلات خواهیم پرداخت:
1. علاقه نداشتن به برنامه نویسی
اولین و بزرگترین اشتباه یک شخص، ورود به حوزه ای است که به آن علاقه ای ندارد. شاید افراد زیادی را دیده باشید که به دلیل موقعیت اجتماعی و یا کسب درآمدی بهتر حوزه ی کاری خود را عوض میکنند و از شاخه ای به شاخه ی دیگر میپرند. اما اشتباه نکنید، برنامه نویسی مهارتی است که برای یادگیری و تقویت آن نیاز به زمان و پشتکار است که این موارد بدون داشتن علاقه ی کافی برای شما میسر نمیشود. همچنین بهتر است به زبان انگلیسی تسلط داشته باشید.
کسی که به برنامه نویسی علاقه مند است هر روز که از خواب بیدار میشود تا زمانی که میخواهد بخوابد، حتی در زمان خواب هم به برنامه نویسی فکر میکند و تمام حواس و تمرکز خود را برای پیدا کردن بهترین راه حل برای برنامههای خود جمع میکند. شخصی که عاشق برنامه نویس است هر روز که بر سر کار میرود آن روز برایش یک روز عالی در بهشت است و نه یک روز عذاب آور که به اجبار به محل کار رفته است. این شخص همیشه به برنامه نویسی در مرحله اول به دید یک تفریح شیرین و لذت بخش نگاه میکند تا اینکه صرفا از آن به عنوان شغلی برای کسب درآمد و گذران زندگی یاد کند.
2. نا امید شدن
یکی از مشکلاتی که همیشه در ابتدای این مسیر همراه شما خواهد بود، حس نا امیدی است. این حس را همه در اوایل کار خود و به ویژه در زمان مواجه با مسائل و مشکلات مختلف تجربه خواهند کرد. همه میدانند که یک برنامه نویس همیشه با مسائل و سوالات پیچیده ای سر و کار دارد و برنامه نویسی صرفا فقط نوشتن کد به یک زبان برنامه نویسی نیست، بلکه ارائه راه حلی است که با نوشتن کدهای آن زبان، پیاده سازی میشود.
بدیهی است که اگر در این مسیر راه حل و جواب مشکلات و مسائل را بدانید به راحتی با آنها رو به رو میشوید، اما زمانی که به چالشهای جدید برخورد میکنید، شاید دچار نا امیدی شوید. اما نکته ی کلیدی در برنامه نویسی این است که در این مسیر صبر داشته باشید و ناامید نشوید، چرا که باید تمام تمرکز خود را صرف پیدا کردن راه حل بهینه کنید و بدانید که بالاخره به جواب مسئله ی خود دست پیدا خواهید کرد.
برای اینکار باید روحیه ی چالش پذیری خود را روز به روز تقویت کنید و به قول معروف دل را به دریا بزنید. برای این منظور خود را همیشه درگیر چالشها و مسائل جدید کنید تا روز به روز با حل مسائل جدید و پیچیده علاوه بر کسب تجربه و مهارت، روحیه ی خود را قوی کنید تا در مقابل ناامیدی ضد گلوله شوید.
3. مستندسازی نکردن تجارب و یافتههای خود
معمولا تمام برنامه نویسانی که شروع به فراگیری یک زبان برنامه نویسی میکنند و یا در زمان کدنویسی با یک نکته ی جدید مواجه میشوند با خود این گونه میگویند : “حتما آن را یاد گرفته ام و به یاد خواهم داشت.” اما بر اساس یک جمله ی معروف که میگوید : “کمرنگترین جوهرها از قویترین حافظهها ماندگارتر است” این کار یکی از اشتباهات متداول در بین برنامه نویسان، به ویژه برنامه نویسان تازه وارد است.
همیشه افراد زیادی را دیده ام که زمانی که در حال یادگیری یک زبان برنامه نویسی هستند و یا به دنبال پیدا کردن راه حلی برای یک چالش جدید در این حوزه بوده اند، با شنیدن، خواندن و یا یافتن راه حلهای جدید بر این باور بوده اند که آنها را به صورت کامل یاد گرفته اند و با اعتماد به ذهن خود از یادداشت برداری آنها خودداری کرده اند. اما با گذشت مدت زمانی نه چندان زیاد، به محض اینکه با آن موارد مجددا مواجه میشوند در میابند که توانایی پیاده سازی و حل آنها را ندارند. چرا که این یک امر بدیهی است که یک برنامه نویس روزانه با چالشها و مشکلات زیادی سر و کار داشته باشد که این امر باعث میشود که تسلط پیدا کردن به این موارد طالب زمان زیاد و تجربه ی کافی باشد.
بنابراین همیشه سعی کنید در ابتدای کار برای خود تمام نکات و یافتههای خود را یادداشت برداری و مستندسازی کنید و حتما از کامنت گذاری برای کدهای خود استفاده کنید تا زمانی که این کار برای شما به یک عادت تبدیل شود. با این کار علاوه بر اینکه شما یک منبع مناسب برای خود ایجاد کرده اید، میتوانید با اشتراک گذاری آن با دیگران، به روند آموزش آنها کمک کنید.
4. انتقادپذیر نبودن و نداشتن روحیه کار تیمی
برنامه نویسانی که مسیر پیشرفت را در نظر میگیرند، این واقعیت را میپذیرند که یکی از سریعترین و مطمئنترین راهها برای پیشرفت و یادگیری در دنیای برنامه نویسی، پذیرفتن انتقادات و استفاده از تجارب برنامه نویسان موفق و با سابقهتر از خود میباشد.
فرایند برنامه نویسی و ساخت یک نرم افزار یک مسیر واحد و یکتا ندارد و برنامه نویسان همواره در مسیر توسعه ی یک نرم افزار با تصمیمگیریهای متعدد و گوناگونی همراه میباشند تا بتوانند راه حل بهینه را انتخاب کنند زیرا امکان دارد که برای پیاده سازی آن نرم افزار راههای بسیار مناسبتری وجود داشته باشد که به ذهن شما در آن زمان خطور نکرده باشد. بنابراین برنامه نویسان موفق همیشه به دنبال دریافت نظرات دیگر برنامه نویسان و کاربران در مورد عملکرد نرم افزار خود هستند تا با استفاده از بازخوردهایی که دریافت میکنند کدهای نوشته شده و نرم افزارهای خود را بهبود دهند.
5. کدنویسی کثیف
یکی از نشانههای یک برنامه نویس حرفه ای و متخصص، کثیف نبودن کدهایی است که نوشته است. شاید برخی ابتدا به این نکته بسیار مهم توجه نمیکردند و تمام هدف خود را بر روی اجرای صحیح نرم افزار نهایی خود متمرکز میساختند ولی کدنویسی تمیز و دوری از کثیف کد نوشتن به یکی از ویژگی هایی تبدیل شده است که برای شرکتها و تیمهای برنامه نویسی جهت استخدام برنامه نویس، بسیار حیاتی و با اهمیت است.
بنابراین همیشه باید به این نکته به خصوص در کارهای تیمی توجه کنید که باید برای انسانها کدنویسی کنیم و نه برای کامپیوتر، چرا که یک برنامه نویس حرفه ای کدهای خود را به صورت قابل فهم و به صورت کامنت گذاری شده مینویسد و همیشه در تلاش است که بهترین و قابل فهمترین نامها را در کدهای خود به کار گیرد. البته به این نکته توجه کنید که نباید آنقدر درگیر بهینه کردن کدهای خود شویم که به یک وسواس در کدنویسی تبدیل شود و به جای اینکه کدهای خود را بهینهتر کنیم، علاوه بر صرف زمان بیشتر به پیچیدگی و دشواری آنها اضافه کنیم.
6. عدم تقویت مهارتهای نرم
منظور از مهارتهای نرم یا Soft Skills مجموعه ویژگیها و خصوصیات فردی یک شخص است که باعث تقویت موقعیتهای شخصی، کاری و… میشوند، از جمله کنترل اضطراب، صبور بودن و… که جزو ویژگی هایی هستند که صفات کلی شخص را تعریف میکنند. شاید تعجب کرده باشید که ارتباط خصوصیاتی مثل صبور بودن و یا خوش اخلاقی با برنامه نویسی در چیست و چطور این نوع ویژگیها میتوانند در حرفه و تخصص شما به کار آیند. ولی از آنجایی که شما در یک تیم برنامه نویسی قرار است مشغول به کار شوید و یا حتی اگر به صورت مستقل و فریلنسری (دورکاری) مشغول به کار باشید، باید با مشتریان خود در تعامل باشید باید بتوانید به صورت مناسب با افراد دیگر ارتباط بر قرار کنید.
چرا که وقتی شما به یک تیم برنامه نویسی ملحق میشوید باید به آنها به دید یک خانواده نگاه کنید زیرا قرار است که حداقل نیمی از زمان هر روز خود را با آنها سپری کنید و در مسیر توسعه ی یک نرم افزار هر روز با یکدیگر به چالشهای متفاوتی برخورد میکنید که باید با همکاری یکدیگر بهترین روش را برای حل آنها انتخاب کنید. پس همیشه در تلاش باشید که روابط و مهارتهای ارتباطی خود با دیگران را در مسیر حرفه ای شدن تقویت کنید.
7. انعطاف پذیر نبودن در مقابل تغییر
انعطاف پذیری یکی از مهمترین ویژگیهای یک برنامه نویس محصوب میشود چراکه برنامه نویسی حرفه ای تلقی میشود که همواره آمادگی این را داشته باشد که در مواقع نیاز متناسب با وظیفه خود و کاری که انجام میدهد، بهترین زبان، فریمورک و ابزارهای برنامه نویسی را انتخاب کند. بنابراین از اینکه همیشه متکی به یک روش، زبان و یا ابزار خاص باشید، سعی کنید که همیشه به روز باشید و با تکنولوژیهای دیگر آشنا باشید تا در مواقع نیاز از آنها برای پیشبرد اهدافتون استفاده کنید.
برنامه نویس شدن صرفا یادگیری یک زبان برنامه نویسی نمیباشد بلکه باید بر کانسپتها و اصول آن تسلط پیدا کرد. بنابراین شاید نیاز شود که در میانه ی راه زبان برنامه نویسی خود را عوض کنید و چیزهای جدیدی را آموزش ببینید. زیرا یک برنامه نویس در طول زمانی که مشغول به این حرفه میباشد ساعتهای زیادی را با ابزارها و کدهای مختلف سر و کار دارد که این تکنولوژیها روز به روز در حال پیشرفت و تغییر میباشند و باید همیشه بهترین ابزار، روشها و زبانهای برنامه نویسی را انتخاب کنید. به عبارتی دیگر نباید نتیجه ی نهایی کار را نباید فدای عدم اطلاع و یا عدم آگاهی از روشهای مناسبتر کرد.