درجا نزن، وارد دنیای برنامه نویسی شو!

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

به صورت خلاصه، اگر از اطرافیان یا دوستان خود که در زمینه developing موفق (یا نسبتا موفق) هستند سوال کنید که چگونه توانستند پیشرفت کنند، غالباً به جوابی شبیه به این خواهید رسید: "فقط شروع کردم به کار کردن". شاید با خود بگویید من هم در واقع در تلاش هستم که شروع کنم، فقط تحقیق میکنم که چگونه و از کجا شروع کنم، این همون تفاوتی است که در شروع کردن شما با شروع کردن افراد موفق وجود دارد، اونها عموماً تحقیق نکردن که از کجا و چگونه شروع کنن، اونها عموما از همون روزهای اول شروع به کار و تولید نرم افزار کردن، یعنی ممکنه تمرینی رو شروع و تلاش کردن که تمومش کنن، یا اینکه عده‌ای حتی جسورتر بوده و پروژه‌ای رو گرفته و به تکمیل آن پرداختند، این افراد دنبال بهترین زبان، بهترین تکنولوژی یا بهترین منابع نبودند، از منابع موجود و دم دست استفاده می‌کنن و پروژه مد نظرشون رو جلو می‌برند، مطمئن باشید با شروع یک پروژه (هرچند کوچیک) با مسائل و چالشهای مختلفی روبرو خواهید شد، ممکن است درگیر فیلدهای مختلفی شوید و در این صورت است که متوجه خواهید شد در فیلد کاری خاصی استعداد یا علاقه دارید و کم‌کم خودتون رو به اون جهت سوق خواهید داد. افراد موفق در برنامه نویسی عموماً وابسته به یک زبان یا تکنیک خاص نیستند، در واقع اونها الفبای برنامه نویسی رو یاد گرفتند، ذهنشون برای تفکرات برنامه نویسانه آماده شده و تکامل پیدا کرده است، در واقع اگر ساده تر بگم اونها "برنامه نویس" هستند، و یک برنامه نویس قوی و قابل به زبان برنامه نویسی خاصی وابسته نیست و سریع میتواند هر زبان که مد نظرش هست رو یاد بگیرد، خب اونها الفبای برنامه نویسی و مفاهیم بنیادی اون رو یاد گرفته و تمرینات نسبتاً زیادی در زمینه روشهای مختلف حل مسائل(problem solving) داشتند، در شروع یادگیری بسیار شوق داشته و با علاقه برای تمرین و حل مسائل مختلف زمان گذاشته‌اند.

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

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

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

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