بسیاری از برنامه نویس ها پیش از آنکه شغلی دست و پا کنند، این شغل را ترک می کنند!

به تازگی مقاله ای از اکساندر پتکو خواندم که به نظرم جالب و واقعی آمد و تصمیم گرفتم آن را اینجا با شما به اشتراک بگذارم. البته این مقاله صرفاً یک ترجمه محض نیست و من با دخل و تصرف اندکی، نظرات خود را نیز به آن اضافه کرده ام.پروتوتایپ ها، الگوریتم ها، آبجکت ها... همه اینها کارهای کوچکی هستند که شاید وسط کارهای دیگر شما پیش بیاید و شما ندانید باید با آنها چکار کنید؟شبیه یک برنامه نویس فکر کن! :-|لطفاً این جمله ها را تکمیل کنید:آخرین کد نویسی من...مثل آب خوردن بود، برنامه IDE خودم رو باز کردم و وارد دنیای 0 و 1 شدم. اون سه ساعت عین 30 دقیقه گذشت...خسته کننده بود لعنتی! باز مجبور بودم بشینم و اون کدهای لعنتی رو بزنم. هیچ چیز عین آدمیزاد کار نمی کرد. ارور پشت ارور! تازه هنوز هم مشکلات تموم نشدن. اَه، اون 30 دقیقه عین 3 ساعت گذشت!حدس من این هست که پاسخ شما، شماره 2 هست!و نه بخاطر اینکه این اتفاقات خیلی طبیعی هست و البته برای من هم پیش اومده (حتی بعد از 16 - 17 سال برنامه نویسی)بلکه بخاطر اینکه پاسخ یک کلاً عجیبه! آخه کدوم برنامه نویسی اینطوری حرف می زنه :-))خب، ما قرار هست در مورد کدنویسی های خسته کننده صحبت کنیم. می دانم که همه ما آن ها را تجربه کرده ایم - این اتفاق خیلی زود رخ می دهد و ما از آن متنفریم.اما من سعی کردم کمی هم عمیق تر شوم.در طول چند سال گذشته ، من با بسیاری از توسعه دهندگان کوچک برخورد کرده ام. از جمله برخی که:تازگی ها وارد این کار شدند و به شکل وسیعی احساس سردرگمی می کنند.در مرحله آموزش گیر افتاده اند و هر وقت کسی برای کمک بالای سرشان نیست، گیج می شوند.در واقع استعداد بالایی داشتند، اما در مصاحبه شغلی شکست خوردند و یا به دلیل ترس، هرگز با کارفرما تماس نگرفته اند.نقطه شکست کجاست؟از آنجا که اصل کار من کمک به توسعه دهندگان جدید در یافتن کار است (من نه، نویسنده اصلی)، وقت گذاشتم و مشکلات آنها را مطالعه کردم و واقعاً سعی کردم با نیازهای آنها همدلی کنم.من با همکاران شرکتم صحبت کردم. در مورد گروه های فیس بوک ، انجمن ها ، وب سایت های پرسش و پاسخ ، موضوعات عظیم Reddit تحقیق کردم و حتی چندین جامعه کوچک سایبری را بررسی کردم.این بخشی از یافته های من هست:من این احساس رو دارم که فقط اون چیزی که توی فیلم آموزشی دیده بودم رو کپی کردم و کاری خارج از اون نمی تونم انجام بدم.من باید گوگل کنم و با مثالهای موجودی که شخص دیگری قبلاً نوشته است، کدم را بسازم. احساس می کنم مثل یک کودک 3 ساله هستم که برای حل معماهای پیچیده تلاش می کنم. خیلی ناامید کننده هست. من اصلاً نمی تونم مثل یه برنامه نویس فکر کنم.و البته پاسخ مورد علاقه من در بین بررسی ها:این چیزی هست که من از برنامه نویسی یاد گرفته ام، شما در 99% مواقع احساس گیجی و سردرگمی می کنید، اما یکبار که یک کد را به نتیجه میرسونید، اون لحظه یه لحظه جادویی هست، خیلی لذت بخشه...آیا متوجه چیز خاصی شدید؟ناامیدی این افراد ناشی از کمبود تلاش نیست، از نبود استراتژی یادگیری و یا بی نظمی هم نیست.آنها فقط به اندازه کافی تجربه ندارند.و نکته اینجاست که خیلی از همین افرادی که هنوز تجربه ای ندارند، در حال ترک برنامه نویسی هستند!نظرهای تخیلی در مورد برنامه نویسیمن در تحقیقاتم متوجه شدم که بین برنامه نویسان و توسعه دهندگان، دو افسانه خیلی معروف وجود دارد. اما حالا می خواهم رأی منفی خودم را به این نظرها اعلام کنم. و شاید این راهی باشد که بتوان از ورود فشار بیش از حد به تازه واردان دنیای برنامه نویسی جلوگیری کرد.# افسانه شماره 1: اگر برنامه نویسی را دوست ندارید، پس این شغل مناسب شما نیست!این چیزی هست که خیلی از برنامه نویس های تازه کار می گویند و من کاملاً مخاف این نظر هستم!نه شما برای برنامه نویسی لازم نیست عاشق آن باشید، در حقیفت مشاهدات من نشان می دهد که 50 درصد برنامه نویس های حرفه هم از برنامه نویسی متنفر هستد!ببینید، این که مشکلی را با ظرافت حل می کنید، کد شما تر و تمیز و مرتب است، آزمایش شده است و مشکلات مردم را حل می کند، احساس خوبی دارد.اما در 100 درصد مواقع اینطور نیست. حتی وقتی ریموت هستی. بیشتر روزها برنامه نویس ها روز خود را به راحتی نمی گذرانند و اینطور فکر می کنند:"ایول، چگونه الگوی طراحی تزریق وابستگی را به کار گرفتم تا کلاسهایم را به زیبایی جدا کنم و پایگاه کد خود را در آینده راحت تر نگه دارم." خیر، واقعاً اینطوری نیست!حتی کسانی که میگویند هر ثانیه از برنامه نویسی را دوست دارند، وقت قابل توجهی را صرف کارهای خسته کننده، یکنواخت یا ناامیدکننده می کنند. حداقل در سرویس اتومبیل یک شرکت برنامه نویسی، موقع برگشت به خانه، می توانید لعن و نفرین های آنها را به برنامه نویسی بشنوید. صادقانه!اگر بعضی اوقات از برنامه نویسی متنفر هستید کاملاً خوب است.جمله "این اصلاً کار من نیست" هنگامی که بیش از حد خسته و ناامید شده اید یک پدیده معمول است و کاملاً طبیعی می باشد. با این حال، برنامه نویسی برای شما مناسب است. اگر دارید این مقاله را می خوانید، این بدان معنی است که شما به آن اهمیت می دهید و اگر مراقب باشید، آن را درست خواهید کرد.# افسانه شماره 2: موارد زیادی وجود دارد که من نمی دانم. من اصلاً هم نمی خواهم همه آنها را یاد بگیرم!این یک فکر بسیار رایج دیگر است (شاید مهمتر از افسانه شماره 1). من شنیده ام بسیاری از برنامه نویسان در مورد آن شکایت دارند. و من کاملا می توانم دلیل آن را ببینم.ما در حوزه ای بسیار گسترده ای هستیم که هرچه بیشتر در آن کند و کاو کنید، بیشتر متوجه خواهید شد که نمی دانید.حتی فکر کردن در مورد این موضوع هم احساس بدی به من دست می دهد. حواست نباشه، خیلی راحت غرق می شی!قسمت خوب داستان: شما لازم نیست همه چیز را بدانید. شما باید فقط به اندازه کافی بدانید تا از نحوه کشف مواردی که نمی دانید آگاه باشید.برای شروع فقط مطمئن باشید که از اصول سطح بالای هر کاری که با آن کار می کنید آگاه هستید و نه جزئیات.بیایید این را با یک مثال توضیح دهیم:اگر در حال آزمایش CSS هستید ، باید بدانید که آن برای پیاده سازی سبک های طراحی در عناصر HTML است. می توانید یک دکمه با حاشیه، رنگ، سایه یا انیمیشن ایجاد کنید. اما با CSS نمی توانید بگویید که با کلیک روی دکمه چه اتفاقی روی دهد (برای این کار به JavaScript نیاز دارید).بنابراین اگر با کلیک روی یک دکمه باید تصویر را متحرک کنید:ابتدا باید تصویر و عناصر دکمه را داشته باشید (HTML)سپس می توانید انیمیشن را برای یک کلاس خاص (CSS) تنظیم کنید.و می توانید با کلیک روی دکمه آن کلاس را به تصویر اضافه کنید (JavaScript)به خودتان بگویید یک بار این مطلب را در یک آموزش خوانده اید. یک هفته بعد ، هنگام ارسال فرم ، باید سایه ای به تصویر اضافه کنید. شما می دانید که به دنبال چه چیزی باشید. شما درک کاملی از HTML ، CSS و JavaScript دارید و می دانید کدام قسمت را در فرم باید ویرایش شود.بقیه اش فقط جستجوی کلمات مناسب در گوگل است. در مورد مثال ما، "css add shadow" و "javascript callback form submit".به احتمال 50 درصد شما یک مطلب مشابه را در StackOverFlow پیدا خواهید کرد که کارتان را راه بیاندازد...یادگیری برنامه نویسی به روش "درست"همانطور که میدانید و احتمالاً خودتان تجربه کرده اید، یادگیری برنامه نویسی زمان می برد - گاهی اوقات سالها طول می کشد، علی رغم آنچه برخی از دوره های "برنامه نویسی در دو هفته" می گویند!من تبلیغ آموزش PHP در یکساعت هم دیده ام!!هنگام شروع کار ، ایجاد عادت های مناسب برای یادگیری کارآمد بسیار مهم است. بیشتر روزهای ابتدایی را به طور همزمان به آموزش، راهنمایی گرفتن، بررسی مستندات یا اغلب به هر سه می پردازید. این کاری است که همه ما انجام می دهیم.بعضی ها بیشترین بهره را از ساعات یادگیری خود می برند. در همین حال بعض ها هم فقط احساس می کنند پیشرفت می کنند، اما در واقع فقط دستورات را کپی و پیست می کنند و دستورالعمل ها را دنبال می کنند.پیشنهادهایی برای برنامه نویسان تازه کاربه عنوان یک برنامه نویس تازه کار، باید تغییراتی را در شیوه زندگی خود ایجاد کنید، اینها برخی از توصیه های من هستند که امیدوارم برای شما هم کارساز باشد:یادگیری روزانه را رعایت کنید. یک برنامه نویسی روزی را به پایان نمی رساند مگر اینکه در مورد یک موضوع فنی جدید مطالعه کرده باشد. هرگز به خود نگویید «دیگران از من بیشتر می فهمند، من یک خنگ تمام عیار هستم!» ، اگر اینچنین است، بدانید که دچار سندرم «ایمپاستر» شده اید.ناامیدی ممنوع! هیچ زبان برنامه نویسی وجود ندارد که برای نابغه ها نوشته شده باشد. مطمئن باشید اگر موضوعی را امروز نفهمیدید، فردا آن را خواهید فهمید.مغرور نشوید! همانطور که شما کم هوش ترین برنامه نویس کره زمین نیستید، بزرگترین آنها هم نیستید، هر چه یاد بگیریم، باز هم قطره ای از دریاست...ورزش کنید، عقل سالم در بدن سالم!بعضی از تفریحات خود را فراموش کنید، این شغل نیاز به زمان بیشتری دارد.همیشه در هنگام یادگیری یک زبان جدید، یک پروژه تستی داشته باشید که روی آن کار کنید. فرض کنید که پیتزا فروشی محل تان یک سفارش برای برنامه نویسی فروش آنلاین خود به شما داده است. آن را بارها و بارها تغییر دهید و هر چه بیشتر یاد میگیرید، بیشتر تغییرات بدهید، بکوبید و بسازید...مهارت های زبان انگلیسی خود را تقویت کنید، شما باید حداقل بتوانید در StackOverFlow و گیت هاب بخوانید و بنویسید.مرحله بعدی چیست؟تسلیم نشدن و یادگیری کارآمد، بسیار خوب است، اما گاهی اوقات برای دستیابی به یک شغل برنامه نویسی کافی نیست.در مرحله بعدی، به دنبال علاقه مندی های کارفرمایان برای استخدام باشید. اما کمپانی های کوچک را انتخاب کنید، شما هنوز در اول راه هستید!در واقع کارفرماهای کمپانی های کوچک، احتمالاً مثل خود شما کم تجربه هستند و این فرصت خوبی هست که با هم پیشرفت کنید!