نکاتی برای یادگیری برنامه نویسی توسط یک FAANG غیر سابق (البته فقط با 2 ماه مهلت)

مقدمه
اکنون مقاله ای که از یک مبتدی در مورد این موضوع نوشته شده است ممکن است مضحک به نظر برسد، اما قبل از اینکه مرا بنویسید، صدای من را بشنوید.
اگر در دهه گذشته یاد گرفتید که چگونه برنامه نویسی کنید، به این فکر کنید که چگونه یاد گرفته اید و چقدر طول کشیده است. آیا مجبور بودید صدها مقاله و ویدیو را از افرادی که ادعا میکنند بهترین راه یادگیری را میدانند بررسی کنید؟ شاید مقالات زیادی را خوانده باشید که بیان می کردند برای پیشرفت باید این مرحله خاص را انجام دهید.
مطمئنم که همه ما در یوتیوب زمانی را سپری کردهایم که «اینفلوئنسرهای» بیشماری ادعا میکنند که دورهای دارند که میتواند شما را از یک «صفر به قهرمان» برساند. این «اینفلوئنسرها» گاهی ادعا میکنند که مهندس سابق یک شرکت FAANG هستند، حتی اگر احتمالاً فقط چند ماه را در آن شرکت سپری کردهاند. چند کار در گذشته انجام دادید که بعد از چند ماه آنقدر متخصص بودید که به افراد تصادفی در اینترنت بگویید که همه پاسخها را در مورد موضوع دارید؟ پس چرا به این مردم گوش می دهیم؟
در حال حاضر من ادعا نمی کنم که چیزی در مورد برنامه نویسی می دانم (من هنوز در حال یادگیری C، btw هستم) اما در مورد یادگیری چیزهای زیادی می دانم زیرا این کار مورد علاقه من است. من از ویدیوها و مقالات بی شماری که وقت ما را تلف می کنند خسته شده ام در حالی که ما فقط سعی می کنیم چیزی را یاد بگیریم که به آن علاقه مندیم. بیشتر این محتوا فقط برای این است که آنها بتوانند احساس بهتری نسبت به خودشان داشته باشند یا به هر حال برای مبتدیان به سرعت درآمد کسب کنند.
در اینجا دو نکته اولی است که من برای شما دارم اما بیشتر دنبال خواهد شد. من نمی خواهم شما را برای مدت طولانی از برنامه نویسی باز دارم.
نکات
اگر تا اینجا پیش رفتید، یا فقط به این بخش پریدید (به احتمال زیاد هرگز برنامهنویسی را به دلیل عدم توجه کافی نمیآموزید، شوخی میکنم، شاید) یا نشان دادهاید که برای یادگیری جدی هستید.
نکته یک
اولین نکته من این است که همین الان تماشای ویدیوها و مقاله را رها کنید (اگر دوره پس از این مقاله) و تمرکز بر یادگیری یک زبان باشد. از آنجایی که هیچ چیز نمی دانید (جان اسنو)، نمی توانید بدانید چه محتوایی عالی است یا BS. احتمالاً هنوز هم هر روز به دنبال کتاب یا دوره برتر برای یادگیری زبان یا حتی زبانی برای یادگیری هستید. من چند خالق را فهرست کرده ام که به آنها اعتماد دارم نیمی از محتوای خود را صرف فروش مسترکلاسی به شما برای چیزی نمی کنند که حتی به آنها تسلط نداشته اند. یک برنامه نویس در سطح jr با یک کلاس کارشناسی ارشد مانند یک عمل جراحی آموزش درجه پیش پزشکی است. اسناد مربوط به زبان خود را بخوانید یا به اندازه کافی یک آموزش را تماشا کنید تا اصول برنامه نویسی را به دست آورید و سپس چیزی کوچک و پیچیده در اطراف بسازید.
نکته دو
هر کسی که به شما بگوید فقط یک راه برای یادگیری وجود دارد یا باید از یک ابزار خاص استفاده کنید، باید حذف شود. به هر سه برنامه نویس محترم نگاه کنید و من شک دارم که همه آنها از یک ابزار و زبان استفاده کنند. من از آن دسته هستم که ابزارهای حداقلی را دوست دارم که بتوانم همه چیز را در مورد آنها یاد بگیرم و موضوعات دشوار را خارج از دروازه یاد بگیرم. من این کار را انجام می دهم زیرا چالش را دوست دارم و اگر چالش نباشد خسته می شوم و ترک می کنم. به همین دلیل تصمیم گرفتم C/C++ را یاد بگیرم و “IDE” من neovim است. بعداً مقاله ای ایجاد خواهم کرد تا تفکر منطقی در مورد انتخاب هایم را از دیدگاه یک یادگیرنده “حرفه ای” توضیح دهم.
آخر هفته را به بازی با چند ویراستار اختصاص دهید و ببینید با فرض اینکه قبلاً زبان خود را انتخاب کرده اید، کدام یک را بیشتر دوست دارید. قبل از اینکه با neovim کنار بیایم، ویرایشگرهای زیادی از جمله ویژوال استودیو، VS Code، CLion و Emacs را بررسی کرده بودم (همه ما در ابتدا باید به بهترین شکل ⛪🙏). اگر ویرایشگر زبان شما را پشتیبانی کند، مهم نیست. نکته این است که کد نوشتن را در سریع ترین زمان ممکن دریافت کنید.
با احتیاط، اگر شما هم مثل من قلع و قمع هستید، ممکن است بخواهید از vim (یا پلاگین های VS Code) دوری کنید یا ممکن است با پیکربندی همه چیز، یک ماه زمان یادگیری را از دست بدهید. منظورم این است که من ویرایشگر و lua خود را عمیقاً یاد گرفتم بنابراین نمی توانم خیلی شکایت کنم. اگر میخواهید همچنان از vim یا neovim استفاده کنید، از kickstart برای vim استفاده کنید و فعلاً تنظیمات را به حال خود رها کنید.
من می دانم که این نکته بالون شده است، اما این نکته بسیار بزرگی است زیرا بسیاری از مردم در انتخاب ابزار و زبان خود گیر می کنند و فراموش می کنند که فقط یاد بگیرند. ابزار و زبان را انتخاب کنید و به آن بچسبید. لطفاً وقت خود را برای تعقیب زبان یا فریمورک جدید تلف نکنید (من به شما توسعه دهندگان JS/React نگاه می کنم *تف روی زمین*). اگر قبل از یادگیری زبان شروع به یادگیری یک فریمورک کنید، ممکن است از wix یا WordPress (که البته در WPEngine میزبانی شده است، اکنون شکایت کنید.) برای وب سایت های خود استفاده کنید.
نتیجه گیری
اکنون تمام تلاشم را کردم تا این مقاله را تا حد امکان سرگرمکننده کنم (میدانم که شکست خوردم) و تا حد امکان شما را آزار دهم. بیشتر ضربه ها از تجربیات گذشته صادقانه بود. اما تنها چیزی که می خواهم اینجا را ترک کنید این است که فقط باید برنامه نویسی را شروع کنید و نگران اشتباه کردن یا یادگیری ابزار یا زبان مناسب نباشید. اهداف واقع گرایانه را تعیین کنید و مطمئن شوید که نقاط عطف روزانه را تعیین می کنید، زیرا نمی دانید که چقدر اعتماد به نفس شما را افزایش می دهد، مهم نیست که یک هدف کوچک باشد.
اجازه ندهید هیچ یک از این «اینفلوئنسرها» در یوتیوب به شما بگویند که چگونه یاد بگیرید. شما آنقدر خودتان را می شناسید که بدانید چگونه بهترین ها را یاد می گیرید، بنابراین منابعی را پیدا کنید که بهترین کار را برای شما دارد. من نمی گویم شما نباید به هر چیزی که آنها می گویند گوش دهید، اما توجه داشته باشید که اگر لیست پیوندهای وابسته زیر ویدیوهای آنها طولانی تر از متن است، آن اطلاعات را فیلتر کنید.
من برخی از سازندگانی را که دنبال میکنم و به آنها احترام میگذارم و سابقه ایجاد چیزی غیر از تصاویر کوچک و مقاله هوش مصنوعی را دارم، فهرست کردهام. اگر چیزهای بیشتری می دانید من با کمال میل آنها را به مقالات بعدی خود اضافه خواهم کرد. من در مورد افرادی که تماشا میکنم و به آنها اعتماد میکنم بسیار گزینشگر هستم، اما آماده هستم تا به موارد بیشتری نگاه کنم. اگر یک خالق شما را با این ایده می فروشد که برنامه نویسی آسان است و می توانید آن را خیلی سریع یاد بگیرید، قبل از اینکه زمان بیشتری تلف کنید فرار کنید.
Primeagen این مرد همیشه سعی نمی کند دوره خود را به شما بفروشد. او چندین کانال و حتی پخش زنده دارد. مقالاتی را می خواند و به طور کلی برداشت های خوبی دارد اما برای گوش دادن به ایده های دیگران نیز آماده است. دورههایی دارد اما یوتیوببر معمولی یا آشغالهای Udemy شما نیستند. آنها برای سفر بعدی شما (به علاوه دوره Git) هستند.
TJ DeVries ویدیوهای عالی در Neovim اگر می خواهید واقعاً ویرایشگر را بررسی کنید. همچنین محتوای غیر neovim را استریم می کند.
PirateSoftware من اهل توسعه بازی نیستم اما این مرد محتوای زیادی دارد که واقعاً باعث می شود به امنیت فکر کنید و فقط یک انسان اولیه باشید.