بنظرت چی می‌تونه برنامه نویس معمولی رو از حرفه ای متمایز کنه؟

براتون مقاله ی متفاوت نوشتم از این نظر متفاوته که محصول مشترک منو برنامه نویس های خفنِ تمایز یافته ای هست که میشناسمبطور کلی اگه بخوایم بررسی کنیم عوامل مختلفی وجود داره که تفاوت هارو رقم میزنه شخصیت حرفه ای یک برنامه نویس مثل یک حرف T میمونه مثل قسمت بالاش باید دانش وسیع داشته باشه و مثل تنش باید تو یک دانش عمیق بشه مثلاً یک فرانت دولوپر حرفه ای بهتره حداقل دانش جزئی درمورد دواپس و شبکه و ... داشته باشه اما توی جاوااسکریپت باید کاملا دیپ باشه بطوری که سمت هر لایبری جاوااسکریپت بره خیلی راحت بتونه یاد بگیره.علاوه بر این برنامه نویس حرفه ای خصوصیات فردیش هم با برنامه نویس عادی فرق داره و بطور کلی مسئولیت پذیره،منظبطه،ریزبینه و به جزئیات توجه داره و اشنایی خوبی با مسیر های متفاوت داره و در زمان بن بست بهترین راه رو انتخاب میکنه و از همه مهمتر اخلاقشم خوبه و راحت میشه باهاش ارتباط برقرار کرد(از کار کردن باهاش لذت میبری:))یک برنامه نویس حرفه ای همیشه کیفیت ذهن خودش رو افزایش میده و عادات خوبی داره،یک برنامه نویس خوب تعصب نداره و درمقابل ایده ها و ذهنیت های جدید گارد نمیگیره و انتقاد پذیره و همیشه اماده ی تغییرهاگه بخوایم هرکدوم رو بصورت موردی و با جزئیات بیشتر بررسی کنیم:۱.تجربهتقریبا ۸۰٪ اونایی که این سوال رو ازشون پرسیدم گفتن تجربهدیدین بعضی از افراد میگن پنج سال سابقه دارن ولی دانش انچنانی ندارن درواقع این افراد یک سال سابقه و دانش رو پنج سال تکرار کردنبنظرم میشه با حل مسئله و داشتن معلومات پیوسته تجربه رو بالا برد۲.سرعت و کیفیت در حل مسئلههرچی بیشتر در معرض انواع مختلف باگ قرار بگیرید، توانایی شما در حل مسئله به میزان قابل توجهی بهبود پیدا میکنه بنابراین، مهمه که دائماً خودتون رو در موقعیت هایی قرار بدید تا باگ های جدیدتری رفع کنید - حتی اگر فقط برای 15 تا 30 دقیقه در روز باشه اما چجوری؟گروه ها یا سایت های پرسش و پاسخ مثلا یکیش stack overflow البته پیدا کردن درست ترین و منطقی ترین راه حل مهمه نه اینکه فقط یک چیزی بنویسیم که کار کنه.۳.داشتن معلومات پیوسته و بروزاین موضوع به قدری مهمه که اصلا حدیث داریم در موردش "خداوند برنامه نویسانی که آپدیت نشوند را دوست ندارد" از مدیوم و یوتوب و هرجا رو که گیر اوردید معلوماتتون رو بروز کنید البته تسلط در یادگیری مسئله ی مهمیه باید جوری باشه که هروقت نیاز شد بتونی از دانشت استفاده کنیمن خودم عاشق مدیومم به دو دلیل اول اینکه بروز ترین مقالات مرتبط با تخصصم رو پیشنهاد میده دوم اینکه اکثر مقالاتش سطح خوبی دارن و از اوناست که میتونه حال ادمو خوب کنه البته ی سری مقالات مدیوم پولیه بجاش میتونید از سایت dev.to استفاده کنید.کورس های یودمی هم حرف نداره که اکثرشو میتونید از downloadly.ir و git.ir رایگان یا با مبلغ کم پیدا کنید۴.اتوماسیوناین یکی برای خودم خیلی جذابهقطعا کسی که کارهاشو اتوماتیک کنه برنامه نویس عادی نیست مثلا مورد داریم با ساختن یک مولتی استیج تست و بعد ساخت ایمج داکر و بعد دیپلوی رو اتوماتیک کرده.۵.تست خوب نوشتنبرنامه نویس های حرفه ای علاوه بر دولوپ تست نویسی هم میکنن. اصلا چرا تست نویسی اهمیت داره؟ چون آسیب پذیری های امنیتی رو شناسایی میکنه و به مقیاس پذیری کمک میکنه و مشکلات و نقص کدی که نوشته شده رو شناسایی میکنه تا بتونید قبل از تحویل نرم افزار برطرفش کنید و باعث بهبود کیفیت محصول میشه.۶.مطالعه و درک الگوریتم و ساختمان داده ساختار داده ها و الگوریتم ها مفاهیم اساسی در برنامه نویسی هستند. بعنوان یک مهندس نرم افزار اگه بخوای مهارت برنامه نویسیت رو بالا ببری باید باید باید برای درک و تسلط بر ساختارهای داده و الگوریتم ها زمان صرف کنی(با تاکید زیاد) و میتونه فرصت های جدیدی رو در حرفه ی شما ایجاد کنه.با انتخاب ساختارهای داده مناسب و طراحی الگوریتم های کارآمد میتونید عملکرد برنامه های خودتون رو بهینه کنید،کد تمیز و بهینه بنویسید،بهترین راه حل ها رو پیدا کنید و برنامه های کاربردی با کیفیت بالا ارائه بدید اینه که بهتون قدرت تبدیل شدن به یک توسعه‌دهنده ماهر رو میده۷.نوع تفکر متفاوت و اینکه معطوف به نزدیک ترین راه نیستصرفا دونستن چند زبان و کد نوشتن کافی نیست و یک مرز باریکی بین کدر coder و برنامه نویس هست. برنامه نویس نوع تفکرش متفاوته و باید خوب تحلیل کنه بعد دست به کد نویسی بزنه. یعنی 80 درصد کار با تحلیل خوب در میاد و تفاوت در ارائه راه حل ها هستش.خودم که خیلی با این مقاله حال کردم امیدوارم برای شما هم مفید بوده باشه