پاسخ این سوال آنقدر ها هم ساده نیست اما آنقدر ها هم سخت نیست! در واقع اگر بخواهیم قانونی کلی تعیین کنیم که بگوید فلان روش قطعا برای شما جواب خواهد داد تقریبا قصد کار غیر ممکنی را کرده ایم اما اگر بخواهیم کلیات یادگیری هر زبان برنامه نویسی و رویه های عادی آن را به شما گوشزد کنیم کار ساده ای پیش رو داریم!
روز به روز به تعداد زبان های برنامه نویسی و فریم ورک های مختلف اضافه می شود و هر سال فریم ورک یا زبان جدیدی (مثل Dart و Go و Kotlin و Elixir و چند سال اخیر فریم ورک هایی مثل vue و react و ...) به بازار می آید که هیاهویی ایجاد می کند و ما هم به ناچار باید آن را یاد بگیریم و گرنه از بازار کار دور می افتیم. یادگیری هر زبان برنامه نویسی مراحل مختلفی دارد اما بخش اساسی این مراحل مشترک هستند. ما سعی می کنیم بهترین نکات و توصیه ها برای یادگیری یک زبان جدید را در این مقاله برای شما ذکر کنیم.
برخی از توسعه دهندگان سعی می کنند که بدیهیات یک زبان را یاد بگیرند و سپس سریعا به سراغ یادگیری فریم ورک ها می روند. این رفتار دو دلیل اصلی دارد:
یکی از مثال های واضح این مسئله یاد گرفتن سریع Ruby on Rails در هنگام یادگیری زبان Ruby و یا یادگیری سریع جی کوئری و react هنگام یادگیری زبان جاوا اسکریپت است.
هر کسی می تواند یک وب سایت راه اندازی کند، اما هر کسی نمی تواند یک وب سایت بهینه و امن راه اندازی کند! بنابراین پیشنهاد ما به شما این است که به شکل اصولی و صحیح عمل کنید و قبل از یادگرفتن کامل یک زبان سراغ فریم ورک ها نروید.
البته منظور من جدول های داخل روزنامه نیست، منظورم چالش های برنامه نویسی است! وب سایت های بسیاری وجود دارند که به شما چالش های کد نویسی ارائه می کنند و از شما می خواهند که آن را حل کنید. این کار دقیقا مانند حل کردن چیستان یا جدول های روزنامه ها است و به شما قدرت تحلیل، تفکر انتقادی و حل مسئله می دهد. هر چقدر تلاش کنید نمی توانید یک زبان برنامه نویسی را بدون کدنویسی و به صورت تئوری یاد بگیرید، باید آستین بالا بزنید و وسط میدان بیایید. چند مورد از وب سایت هایی که به شما چالش های کد نویسی می دهند را در زیر لیست کرده ام:
زمانی که شروع به کدنویسی می کنید با مواردی برخواهید خورد که حل شدنی نیستند. این کاملا طبیعی است چرا که شما هنوز آشنایی کامل یا حتی مقدماتی با آن زبان ندارید بنابراین نمی توانید انتظار زیادی از خودتان داشته باشید. در چنین مواقعی وب سایتی مثل StackOverflow به کمک شما می آید! کمتر توسعه دهنده ای در دنیا وجود دارد که نداند StackOverflow چیست اما اگر شما از افراد مبتدی هستید که هنوز با این سایت آشنا نشده اند باید بگویم این وب سایت، از بزرگترین وب سایت های حل مشکلات برای کدنویسان و توسعه دهندگان است. توسعه دهندگان بسیار با تجربه ای در این سایت وجود دارند که به صورت داوطلبانه کدهای شما را اصلاح می کنند و به سوالاتتان جواب می دهند و شما می توانید از تجربه ی چندین ساله ی آن ها در این زمینه استفاده کنید.
شاید بپرسید برای چه وقتشان را برای ما می گذارند؟ مسئله اینجاست که StackOverflow یکی از راه های تقویت رزومه ی کاری است. زمانی که فردی به هزاران سوال در این سایت پاسخ داده باشد، کارفرما متوجه می شود که این فرد برنامه نویس با تجربه ای است و بهتر به آن اعتماد می کند بنابراین حتی اگر برنامه نویس مبتدی نیستید می توانید از این وب سایت برای تقویت رزومه ی خود استفاده کنید.
از دیگر وب سایت های معروف در این زمینه Code Review است که می توانید از آن نیز استفاده کنید. این وب سایت از همان شبکه ی StackOverflow است اما تفاوت کوچکی با آن دارد؛ در StackOverflow معمولا به سوالات شما پاسخ داده می شود مانند اینکه «چطور یک اسلایدر ایجاد کنم؟» یا «چطور به دکمه های سایت انیمیشن اضافه کنم؟» اما در Code Review معمولا بحث بر سر review کردن (یعنی مرور و چک کردن) کد شماست تا اگر جایی کد را به خوبی ننوشته اید به شما هشدار دهند. برای شروع به کار می توانید از beginners section (قسمت مخصوص افراد مبتدی).
منظور من این است که باید سعی کنید تا کدهای بسیار زیادی بخوانید. یکی از بهترین منابع در این زمینه مشاهده ی کار و کدهای دیگران در GitHub است! هر چقدر بیشتر کد بخوانید با روش های جدید و بهینه تری برای کد نویسی روبرو می شوید و پیشرفت شما چشم گیر تر خواهد بود.
Linter ها در واقع افزونه های آنالیزور یا تحلیل گر کد هستند که به شما تذکر می دهند در فلان قسمت کدتان مشکل دارید. البته اکثر ویرایشگر های پیشرفته ی کد مانند PHPStorm یا Visual Studio Code به صورت پیش فرض دارای Linter هستند.
اصلا مهم نیست که چقدر ساده باشد! حتی اگر می توانید یک ماشین حساب ساده بنویسید که 4 عمل اصلی (ضرب، تقسیم، تفریق و جمع) را انجام دهد اما بدون کدنویسی نباشید. برخی از توسعه دهندگان قسمت های خاصی از کد را می نویسند؛ مشکل آنجاست که این قسمت های خاص که مورد تمرین شما هستند از اصل برنامه جدا شده اند. شما باید یاد بگیرید که یک برنامه را از 0 تا 100 پیاده سازی کنید و زمانی کد نویسی تان قوی می شود که بتوانید یک برنامه کامل را بنویسید، هر چقدر هم ساده باشد.
مثلا زمانی که به حد قابل قبولی از برنامه نویسی وب رسیده اید سعی کنید وب سایتی مشابه ویکی پدیا یا روکسو یا گوگل یا یاهو و .... بسازید. این تمرینات باعث می شود دستتان در کد نویسی روان شود. همیشه یادتان باشد: اصل کدنویسی در رویه و روش های پیاده سازی است نه حفظ کردن کدها!
همه می دانیم که یادگیری زبان برنامه نویسی جدید آنقدرها هم آسان نیست، مخصوصا اگر اولین بارتان باشد که زبان برنامه نویسی یاد می گیرید. برخی اوقات شاید روزها روی یک مشکل گیر کنید اما نباید تسلیم شد بلکه باید از دیگران یا وب سایت هایی که معرفی کردیم کمک بگیرید.
while(true) => study()
همیشه مطالب جدیدی برای یادگیری وجود دارد بنابراین هیچ وقت فکر نکنید که دیگر استاد تمام و کمال یک زبان شده اید. حتی برنامه نویسان حرفه ای مانند آقای Antonio Maniero که 20 سال است در حوزه ی برنامه نویسی به زبان #C فعالیت می کند میگوید هنوز در حال یادگیری چیز های جدید است! غرور، اول شکست است...
از شما دعوت می کنم که در قسمت نظرات، از نکات مفید و راه های دیگری که تجربه ی شخصی تان بوده صحبت کنید و با ما به اشتراک بگذارید!
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.