ما اخیرا از برخی دانشجویان، که الان برنامهنویس هستند، پرسیدهایم که چالشبرانگیزترین موارد یادگیری کدنویسی برای آنها چه چیزی بوده است. در اینجا 4 چالش بزرگ در رابطه با یادگیری کدنویسی که آنان به اشتراک گذاشتهاند را بیان میکنیم.
1. سندرم ایمپاستر (Imposter Syndrome)
سندرم ایمپاستر یک پدیده روانی است که در آن، برخلاف آنچه شواهد بیرونی نشان میدهد، افراد نمیتوانند موفقیتهایشان را بپذیرند، در صورتی که فرد با رقابت و تلاش به موفقیت رسیده است.
چه شما یک برنامهنویس تازهکار باشید یا برنامهنویس کارآزموده، وقتی شروع به یادگیری کدنویسی میکنید، همگی با سندرم ایمپاستر آشنا خواهید شد. وقتی تازهکار هستید، عدم اعتماد به نفس نسبت به مهارتهای خود بسیار رایج است، اما واقعا این گونه نیست که شما فکر میکنید. به یاد داشته باشید هر توسعهدهندهای یک روزی تازهکار بوده است و آنها این احساس را درک میکنند. صنعت فناوری یک جامعه مجهز و پذیرا میباشد که میتوانید افراد باتجربه را پیدا کنید که مایل به همکاری یا ارائه راهنمایی به شما هستند. Priscilla Lunda، توسعهدهنده front end، میگوید: "برای من بزرگترین چالش ترس و ناامنی بود که در ابتدای کار مانع پیشرفت من میشد... این ترس و ناامنی هنوز هم گاهی اوقات به سراغم میآید و من با تعجب از خود میپرسم که آیا من در این زمینه به اندازه کافی خوب و باهوش هستم. اما بعد یادم میافتد که من عاشق برنامهنویسیام و هر روز فرصتی برای ادامه یادگیری است."
این ترس و ناامنی هنوز هم گاهی اوقات به سراغم میآید
و من با تعجب از خود میپرسم که آیا من در این زمینه به اندازه کافی خوب و باهوش هستم.
اما بعد یادم میافتد که من عاشق برنامهنویسیام و هر روز فرصتی برای ادامه یادگیری است.
ما همچنین با Matt Hamil، مهندس تازهکار توسعهدهنده نرمافزار، صحبت کردیم که توصیه خود در مورد شیوه غلبه بر سندرم ایمپاستر را به اشتراک گذاشت: "به عنوان یک توسعهدهنده تازهکار، به راحتی خودتان را با سایر توسعهدهندگان مقایسه میکنید یا نگران هستید که آیا در حال یادگیری مطالب درستی هستید. مسیر یادگیری نرمافزار یک مسیر خطی نیست. کلید اصلی این است که حل مسأله را یاد بگیرید. وقتی یاد میگیرید که چگونه مسائل را حل کنید، میتوانید مطالبی را در مورد برنامهنویسی بیاموزید."
اجازه ندهید حس ترس به سراغتان بیاید. در عوض، در برابر این چالش بلند شوید، مشکل را حل کنید و به خودتان برگردید. هیچ استراتژی واحدی برای توسعهدهنده وجود ندارد، فرصتهایی وجود دارد که منتظر شما هستند، شما فقط باید بر تلاشهای خود در رابطه با یادگیری و تقویت مجموعه مهارتهای برنامهنویسی خود تمرکز کنید.
مسیر یادگیری نرمافزار یک مسیر خطی نیست.
کلید اصلی این است که حل مسأله را یاد بگیرید.
2. تلاش برای درک همه چیز
یادگیری کدزنی مهارت یادگیری هر زبان جدیدی است. در ابتدا، ایدهها و مفاهیم برنامهنویسی میتواند حس انتزاعی به همراه داشته باشد. سپس هنگامی که شروع به درک اصول میکنید، باید این اصول را با کمی دانش ترکیب کنید تا مطالب را بفهمید. Jennifer Nordell، مدیر و توسعهدهنده، میگوید: "احتمالا در طول یادگیری زمانی میرسد که متوجه میشوید مباحث به طور قابل توجهای بسیار دشوار میشوند. اینها زمانی اتفاق میافتند که مفاهیم وارد بازی میشوند. شما ساختار اصلی را آموختهاید، اما حالا باید آنها را با هم ترکیب کرده تا راهحلی را برای موضوعی طراحی کنید. در تجربه من، این احساس شبیه ایستادن پایین صخره است. در اینجا من احساس ناامیدی زیادی را در فرآیند یادگیریام تجربه کردهام."
وقتی با این مانع رنجآور روبرو شدید. دوباره به خاطر بیاورید که هر توسعهدهندهای این تجربه را داشته و بر آن غلبه کرده است. مطمئن باشید که با صبر و وقت گذاشتن برای یادگیری، مفاهیم را کم کم یاد گرفته و درک میکنید. نکته سودمند دیگر این است که از تاکتیکهای یادگیری استفاده کنید تا مفاهیم را بخشبندی کنید. مثلا، تحقیقات نشان میدهد که دورههای کوتاه و مکرر مطالعه نسبت به دورههای طولانی تأثیرگذارتر هستند.
شما ساختار اصلی را آموختهاید،
اما حالا باید آنها را با هم ترکیب کرده تا راهحلی را برای موضوعی طراحی کنید.
با آزمون و خطا در برنامهنویسی، ممکن است بالاخره به جواب برسید و مشکلاتان حل شود، اما مطمئن نیستید که چگونه به جواب رسیدهاید، وقتی به نتیجه رسیدید سعی کنید دلیل آن را متوجه شوید. برای بررسی کدتان و درک کارهایی که انجام دادهاید وقت بگذارید. اینها درسهایی هستند که در طول مسیر میآموزید و به شما کمک میکند درک خود را قوی کرده و مهارتهایتان را تقویت کنید.
3. پیدا کردن زمان
یکی دیگر از چالشهایی که در هنگام یادگیری کدنویسی با آن مواجه میشوید، یافتن زمان است، به ویژه وقتی که باید آن را بین کار، زندگی و خانواده تقسیم کنید. Jeffrey McKim، توسعهدهنده، میگوید: "ما در دوره سختی زندگی میکنیم. اجاره بالا است، دستمزد کم است، تحرک اجتماعی رکود دارد. یک میلیون حواسپرتی وجود دارد و یک میلیون دلیل برای رهایی از آن". اینجا است که خودمان باید دست به کار شده و نظم و ترتیبی ایجاد کنیم. اهداف یادگیری خودمان را تنظیم کرده و برنامه زمانی تهیه کنیم. در اینجا چند نکته در مورد شیوه برقراری تناسب در یادگیری کدنویسی را بیان میکنیم.
احتمالا خیلی وقتها دوست ندارید در طول تعطیلات آخر هفته و یا بعد از یک روز کاری طولانی، پشت کامپیوتر خود بنشینید و مطالبی را بیاموزید. در این روزها، هدف نهایی و آنچه در صورت داشتن پشتکار به دست میآورید را به خود یادآوری کنید. به طور مثال، وقتی بعد از سپری کردن یک روز کاری بد در اداره که انگیزهای ندارید و تلاش میکنید تا انگیزه یادگیری را به دست آورید، به زمانی فکر کنید که در مهارتهای برنامهنویسی مورد تقاضا ماهر میشوید، بنابراین میتوانید این کار را پشت سر بگذارید.
4. ناامیدی
چالش نهایی، دورههای ناامیدی شدیدی است که هر کسی که کدنویسی را تجربه کرده است، میتواند آن را شرح دهد. چه یک خطای پنهان در کد شما باشد، یک مفهوم جدیدی که سعی میکنید آن را یاد بگیرید یا موضوع دیگری که با آن مواجه میشوید، در هر حال ناامیدی میتواند بر شما غلبه کرده و شما را آزار دهد. وقتی این اتفاق میافتد، احساس میکنید که دوست دارید برنامهنویسی را برای همیشه کنار بگذارید. همانطور که Jeffrey آن را توصیف میکند، "من در مورد رها کردن برنامهنویسی فکر کردم. هر چیزی روی میز وجود داشت را به زمین ریختم حتی به دیوار لگد زدم، گریه کردم. چند ساعت بعد دوباره کد خود را بررسی کردم و متوجه شدم که فقط یک سمیکالون را جا انداختهام یا فراموش کردم یک div را ببندم. نمیتوانم حساب کنم تا به حال چند بار این کارها را انجام دادهام." در واقع شما باید به عنوان یک توسعهدهنده در حرفه خود، با این ناامیدیها مقابله کنید. اما هر بار که مقاومت کنید، اشکالزدایی کرده و مشکل را حل کنید، یک نکته جدید خواهید آموخت که میتواند به شما کمک کند تا از ناامیدیهای مشابه در آینده جلوگیری کنید. همچنین وقتی بر چالش ناامیدی غلبه میکنید، حس رضایت بسیار زیادی به دست میآورید.
این موارد فقط چند مورد از چالشهای یادگیری کدنویسی بود. ما دوست داریم در مورد تجربیات شما هم بشنویم. در این مسیر تا به حال با چه چالشهایی روبرو شدهاید؟ چطور بر آنها غلبه کردید؟
نظرات کاربران در رابطه با این دوره