۵ نکته‌ای که ﺁرزو می‌کردم در هنگام یادگیری کد می‌دانستم

ترجمه و تالیف : پوریا رزمجویی
تاریخ انتشار : 27 مرداد 99
خواندن در 4 دقیقه
دسته بندی ها : برنامه نویسی

از ترک تحصیل کردن در سن ۲۰ سالگی گرفته تا تاسیس یک استارتاپ depp-tech، این ۵ سال گذشته برای من مانند یک ماجراجویی روشنگری بوده است. در تمام این مدت، کدنویسی یک منبع مثبت در زندگی من بوده است.

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

نکته: همه‌ی نظرات شخصی هستند. همچنین این مقاله برای همه‌ی توسعه دهندگان و کدنویسان تازه‌کار است. اگر شما یک توسعه دهنده‌ی باتجربه هستید، این مقاله چیزی جز قدم زدن در خاطرات شما نخواهد بود و تغییر آن‌چنانی در شما ایجاد نخواهد کرد.

۱. با کدام زبان برنامه نویسی شروع کنیم؟ هر کدام

کدنویسی را با هر زبانی که دوست دارید شروع کنید، ممکن است Python، Java، JavaScript، Golang، Perl، C، Ruby، Julia، Haskell یا PHP باشد. شما به زودی قسمت‌های زیبا و ظریف، سختی‌ها و رابطه‌ای توأم از عشق و نفرت را در آن زبان‌ها پیدا خواهید کرد. همچنین جامعه‌ی شگفت انگیزی که در پشت آن وجود دارد را کشف خواهید کرد و شاید هم عاشق آن‌ها شوید.

تقریبا همه‌ی زبان‌های رایج هدف کلی هستند و به معنای واقعی کلمه می‌توان از هر زبانی برای هر کاری استفاده کرد. به عنوان مثال: جاوااسکریپت در ساخت ماهواره‌ها مورد استفاده قرار می‌گیرد. بنابراین، هیچ پاسخ اشتباهی در این‌جا وجود ندارد.

با کدنویسی بیشتر، خواهید فهمید که یک زبان برنامه نویسی دقیقا مانند یک زبان انسانی است، باید بسته به نوع niche یا صنعتی که می‌خواهید در آن کار کنید، یکی را یاد بگیرید.

اگر در روسیه مستقر شوید، ممکن است بعضی‌ها انگلیسی بدانند ولی مطمئنا همه‌ی آن‌ها زبان روسی را متوجه می‌شوند. به همین ترتیب، اگر می‌خواهید در دنیای گیمینگ کار کنید C++ را به شما توصیه می‌کنم، برای سمت مشتری در مرورگر وب جاوااسکریپت تنها گزینه است و حوزه‌ی علوم داده‌ها با Python و R اداره می‌شود.

در پایان روز، شما به دستگاه دستور می‌دهید که کاری را انجام دهد و این دستورات را می‌توان به زبان‌های مختلف بیان کرد. زبان را به صورت یک سطح انتزاعی تصور کنید که وسیله‌ی ارتباطی بین شما و دستگاه است. به زودی متوجه خواهید شد که یادگیری هنر برنامه نویسی بسیار مهم‌تر از خود زبان است.

به شدت توصیه می‌کنم که به این پادکست redhat گوش دهید تا درک کنید که چرا و چگونه زبان‌های برنامه نویسی تکامل یافته‌اند.

من در سن ۱۱ سالگی زبان Basic را انتخاب کردم.

۲. از کجا شروع به یادگیری کنیم؟ درست همین‌جا

درست در اینجا در این مرورگر، جایی که این مقاله را می‌خوانید. تاکنون اینترنت جامع‌ترین منبع برای یادگیری، بزرگترین کتابخانه در اختیار شما و بزرگترین مرکز آموزشی است. ما در عصری زندگی می‌کنیم که با تمام دانش دنیا فقط یک کلیک فاصله داریم و ۲۴ ساعته در دسترس ما قرار دارد. شاید مدرسه را بیخیال شوید و از اینترنت یاد بگیرید (شوخی کردم).

با یوتیوب شروع کنید، هر آن‌چه را که می‌خواهید یاد بگیرید را جستجو کنید و بی‌وقفه تماشا کنید. سعی کنید در دوره‌های ﺁنلاین ثبت نام کنید تا در ﺁن کدنویسی کرده یا حتی بهتر از ﺁن عمل کنید، سعی کنید پروژه‌ی خود را در ﺁن‌ها ادغام کنید و یادگیری خود را به حداکثر برسانید.

هر چه بیشتر و بیشتر کدنویسی کنید، متوجه خواهید شد که قابل توجه‌ترین دروس نه از کلاس‌های آموزشی بلکه ناشی از صرف وقت زیاد در گیت‌هاب، Stack Overflow و مستندات رسمی است. دانش واقعی به دور از تمام زرق و برق‌ها پنهان شده است.

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

به نظر من، خدمات شهریه کدنویسی حرفه‌ای ممکن است مانع کنکجاوی یک یادگیرنده شود و استعداد آن‌ها را در خدمات استخدامی محدود می‌کند.

هزینه‌ای پرداخت نکنید، فقط آن چیزی که به دنبالش هستید را در گوگل و یوتیوب جستجو کنید و به تماشای آن بپردازید.

۳. چه چیزی را کدنویسی کنیم؟ هر چیزی!

هر چیزی که دوست دارید را کدنویسی کنید. ممکن است یک بازی، یک وبسایت، یک برنامه، یک مدار IoT، یک ERP ساختگی یا یک معما مثل سودوکو باشد. فقط بدون اجبار کدنویسی کنید.

این بازی دوز را که مدت‌ها قبل ساختم بررسی کنید؛ بالاخره همه‌ی ما از جایی شروع می‌کنیم.

من یک بار در BASIC یک فرهنگ لغت ۱۳ کلمه‌ای را با قابلیت سوییچ کردن کدنویسی کردم. هنگامی که کلمه را وارد می‌کردم، تعریف کاملا بی‌فایده‌ای را ارائه می‌داد، اما من توانستم از همان ابتدا طرح‌های بد و اشتباه را اصلاح کنم.

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

این‌ها پایه‌های کدنویسی هستند، وقتی که شما این‌ها را کنترل می‌کنید، می‌توانید تقریبا هر چیزی را طراحی کرده و بسازید. یادگیری تفکر در سطح سیستم یک مهارت کلیدی به حساب می‌آید، یا یکی از این مهارت‌ها را ایجاد و یا یکی از آن‌ها را در کاری استفاده خواهید کرد.

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

۴. آیا برنامه نویسی باید رقابتی باشد؟ خیر

طرفداران FAANG دوست دارند شما باور داشته باشید که این میانبر برای پر زرق و برق‌ترین کارهاست، اما اینگونه نیست. برای مثال، اگر عضلات شکم شما دارای ۶ پک باشد، مطمئنا خیلی جالب به نظر می‌رسید و ممکن است در Uber شغلی پیدا کنید.

خیلی بهتره که انجامش ندهیم. این کار مثل عضله‌سازی می‌ماند، شما می‌توانید ۵۰ کیلو را بلند کنید ولی چند نفر را در خیابان می‌بینید که این وزن را هر روز بلند می‌کنند؟ به مانند پرورش اندام متناسب باشید، مهارت‌ها و طرز فکر خود را پرورش دهید و سازگار باشید. با توجه به هر مشکلی، شما نباید در رفع آن تردید داشته باشید.

تست‌های الگوریتمی روشی عملی برای آزمایش منطق و حل مشکلات فردی است که به تازگی از کالج خارج شده است، به همین دلیل توسط همه ترجیح داده می‌شود، اما کارهای بیشتری را می‌توانید برای برجسته کردن توانایی‌های برنامه نویسی خود انجام دهید. مشکلات جهان واقعی که مردم با آن‌ها روبرو هستند را درک کنید. در زندگی واقعی، انسان‌ها در این فعالیت‌ها شرکت می‌کنند و داشتن مهارت‌های نرم نیز ضروری است!

منظور من این نیست که از برنامه نویسی رقابتی دلسرد شویم، در واقع منظورم همان مثال پرورش اندام است که در واقع این کار کمک می‌کند که ماهیچه‌های کدنویسی ساخته شود.

۵. آیا شما باید آموزش، مدرک یا راهنما داشته باشید؟ خیر

کاملا خوب است اگر کسی را دارید که راهنمایی‌تان کند اما لازم نیست، شما می‌توانید راهنمای خودتان باشید. شما شکست‌ها، لغزش‌ها و اشتباهات زیادی خواهید داشت، اما مهم نیست.

در زندگی، از اشتباهات خود بیشتر از موفقیت‌هایتان یاد می‌گیرید، بنابراین بیاموزید که آن‌ها را در آغوش بگیرید!

اگر به اندازه کافی عمیق فکر کنید، متوجه خواهید شد که این تردیدها در واقع برای شما نیست، ﺁن‌ها در طول زمان توسط جامعه به مغز شما منتقل شده‌اند و شما ﺁن‌ها را به عنوان شک به خود جذب کرده‌اید. اگر می‌خواهید یک کدنویس خوب شوید، باید یاد بگیرید که به تنهایی و بدون کمک کسی برای رسیدن به حاشیه امن خود مبارزه کنید، پس شجاع و صبور باشید.

یکی از تجربه‌های مهم من این است که ما ظرفیت جهانی را بیش از حد ارزیابی می‌کنیم تا بتوانیم توانایی خود را برای انجام این کار دست کم بگیریم. به همین دلیل است که ما سعی می‌کنیم کسی را پیدا کنیم که بتواند ما را راهنمایی کند، چون ما به نظم و اشتیاق برای یادگیری خودمان پی نبرده‌ایم.

من موافقم که یادگیری و شغل، دارای یک علیت ضمنی است، اما اگر به خود اجازه دهید که با اشتیاق کاری انجام دهید که شما را تحریک کند، در زندگی خود پیشرفت‌های بی‌شماری خواهید داشت.

منبع

گردآوری و تالیف پوریا رزمجویی
آفلاین
user-avatar

پوریا رزمجویی هستم، دارای مدرک لیسانس معماری

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید