در واقع ما فکر میکنیم زمانی که افراد هیچ آموزش رسمی در رشته کامپیوتر ندارند، این مساله یک مانع بزرگ برای آنها میشود. طبیعی است که فکر کنید اگر در برنامهنویسی خوب عمل نکنید، تمایلی به شروع آن ندارید.
به عنوان یک مدرس که توسعه وب Full-Stack را تدریس میکنم، به برنامهنویسان تازهکار بسیاری آموزش دادهام، و خبر خوب این است که به ندرت دانشجویی را یافتم که نمیتوانست برنامهنویسی را یاد بگیرد. من برنامهنویسی را یکی از مهارتهای اساسی بشر، درست مانند خواندن، نوشتن و علم حساب میدانم. هر کسی میتواند این کار را انجام دهد، این بخشی از تواناییهای انسانی ما است، اما باید آن را بیاموزید.
در طول سالهای تدریس، شاهد تلاشهای دانشجویان مختلف در این پروسه، و برخی مباحث رایج که در این تنازعات مطرح میشود، بودهام.
اگر شما میخواهید برنامهنویسی را قورت دهید، لیست زیر به شما کمک میکند موارد ضروری را بشناسید و اگر میخواهید برنامهنویس خوبی شوید، در صورتی که این علائم در شما وجود دارد آنها را در خود تغییر دهید و یا برنامهنویس حرفهای شدن را فراموش کنید.
عدم کنجکاوی
یک الزام اساسی برای یادگیری، علاقهمندی همیشگی به چیزی است که یاد میگیرید. اگر شما دارای ذهنیتی کنجکاو در رابطه با تکنولوژی نباشید، انرژی لازم برای پافشاری در یادگیری دانش گسترده و عمیق مورد نیاز برای برنامهنویس موفق شدن را نخواهید داشت.
در مقابل، دنیای تکنولوژی مانند اقیانوس بزرگی از حوزههای جالب، ایدههای گوناگون و امکاناتی است که میتوانند تخیلات را تحریک کنند. این امر به شما انگیزه درونی میدهد تا در این اقیانوس شیرجه زده و هر آنچه که میتوانید را کشف کنید.
کنجکاوی خود را پیدا کنید. از خودتان بپرسید آیا به برنامهنویسی علاقه دارید. اگر پاسخ صادقانه شما نه است، در وقت و انرژی خود صرفهجویی کرده و به دنیال علایق واقعی خود بگردید. اما اگر پاسخ شما بله است، پس خودتان را به سمت جلو هل دهید تا مطالب جدید بیاموزید. اقیانوس وسیع را دریابید و عمیقتر در آن فرو روید.
عدم استقلال و توانایی
بدون شک، به عنوان یک توسعهدهنده موفق، شما باید از توانایی خود برای یادگیری مطمئن شوید. این امر در واقع مهارت ضروری زندگی است. اگر شما بالای 18 سال هستید، هیچ کس مسئول این نیست که هر چیزی را به شما آموزش دهد. این واقعیت است. شما باید خودتان اطلاعات کسب کنید و هر آنچه که مهم است را بیاموزید.
در دنیای توسعه، تمام اطلاعاتی که شما نیاز دارید، در آن مکان جادویی که قبلا به عنوان بزرگراه عالی اطلاعات شناخته شده است وجود دارد. این کتابخانه عظیم دارای یک درگاه بزرگ است: گوگل. هر آنچه را که میخواهید به راحتی درگوگل تایپ کنید و اطلاعات مورد نیاز خود را دریافت کنید. وقتی میخواهید مهارتهای مورد نیاز یک تکنولوژی را کسب کنید، این امر اولین پرش از روی مانع است.
علاوه بر داشتن مهارت خوب سرچ کردن، تمام زبانهای برنامهنویسی دارای مستندات هستند که نحوه عملکرد زبان را به خوبی توضیح داده است و مانند استفاده از یک فرهنگ لغات میباشد. سریعترین و قابل اعتمادترین راه برای کسب مهارتهای لازم، خواندن همین مستندات است.
عدم ایستادگی در مواجه با مشکلات
ماهیت برنامهنویسی حل مشکلات است و به همین دلیل کامپیوترها اختراع شدند! هر زمان که شروع به کار بر روی یک برنامه میکنید، با پشتهای از مشکلات روبهرو خواهید شد و وقتی مشکلی را حل میکنید تقریبا همیشه مشکلی دیگر در پشت آن نهفته است. شما پیشرفت میکنید، اما همیشه مشکلات جدیدی وجود دارند.
مواجه شدن با این پشته مشکلات میتواند دلهرهآور و دلسردکننده باشد. اگر حس میکنید که همه چیز باید "فقط کار کند"، پس شما انرژی کافی برای مقابله با مشکلات را ندارید. این بخش به معنای واقعی کلمه بخشی از کار شماست تا بفهمید که چرا قسمتهای مختلف کار نمیکنند.
همیشه در کلاسها عدهای وجود دارند که به نظر میرسد نسبت به بقیه تمایل بیشتری برای حل مشکلات دارند. من به دانشجویان یادآوری میکنم که هر چه مشکلات بیشتری پیش روی آنها باشد فرصت بیشتری برای یادگیری مطالب دارند. اگر از طریق این مشکلات بتوانند مطالب را درک کنند اعتماد به نفس بیشتری خواهند یافت. زیرا آنها نسبت به دانشجویان دیگر توانستهاند مشکلات بیشتری را بررسی کرده و آنها را حل کنند.
عدم احساس موفقیت در غلبه بر مشکل
در ادامه موضوع قبلی عدم "احساس خوب" پیش میآید. هنگام رفع باگها و مشکلاتی که به نظر میرسد هرگز به پایان نمیرسند، شما با غلبه بر مشکل هیجان خاصی را تجربه خواهید کرد. همه ما میدانیم که پافشاری بر روی چالشها و درنهایت برنده شدن، حس خوبی را به همراه دارد. اما اگر توانایی حس کردن این احساسات را نداشته باشید، هرگز از برنامهنویسی لذت نخواهید برد. اگر شما به برنامهنویسی به چشم یک کار سخت که مدام شما را اذیت میکند نگاه کنید که فقط میخواهید تا جایی که امکان دارد نتیجه آسانی را به دست آورید، هرگز یک برنامهنویس واقعا موفق نخواهید بود.
بیحوصلگی در یادگیری و درک
به عنوان انسان ما موجودات محدودی هستیم. اگرچه دنیای ما سریعتر و سریعتر حرکت میکند و کامپیوترها علت بزرگ آن هستند، ما فقط میتوانیم به همان سرعتی که توانایی داریم حرکت کنیم. مغز ما با سرعت معینی حرکت میکند و بستگی به گذشته ما، باورهای ما، وضعیت احساسی ما، سلامتی ما و ... دارد. همه ما یاد میگیریم و اطلاعات را با سرعتهای مختلفی ادغام میکنیم.
دنیای فناوری مانند یک اقیانوس بزرگ است. هرگز به انتهای آن نمیرسید، هرگز به نقطهای نمیرسید که به طور کامل استاد شده باشید و دیگر چیزی برای یادگیری وجود نداشته باشد. اگر به خودتان اجازه دهید که در آن غرق شوید همیشه احساس خواهید کرد که هرگز به اندازه کافی نمیدانید و متوجه میشوید که پایانی وجود ندارد. اگر نمیتوانید آنچه را که میدانید بپذیرید و سپس به سمت یادگیری بیشتر حرکت کنید، احساس میکنید که هیچ جایی ندارید و آن را رها میکنید.
در عوض شما باید از سفر یادگیری خود لذت ببرید. هر چقدر هم که دانش کمی را به دست میآورید و یا مهارتهای جدیدی را کسب میکنید هیجانزده شوید. مثل حل مشکلات، شما باید به خودتان افتخار کنید که آن را حل کردهاید، هر چقدر هم که این مشکل کوچک باشد.
خسته شدن از تفکر
برنامهنویسی یک فعالیت فکری است. به عنوان انسان ما واقعا در تفکر خوب عمل میکنیم. اما واقعیت این است که اگرچه ما ذاتا تمام روز را صرف انجام آن نمیکنیم، ما در فکر کردن تنبل هستیم. توانایی حفظ تمرکز در افراد متفاوت است.
علائم آن شامل خیره شدن به صفحه، به تعویق انداختن حل مشکل، تغییر بین تبهای مرورگر، و مرور اجمالی StackOverflow برای یافتن پاسخ میباشد. اینها نشانههایی است که نشان میدهد شما محدودیت ذهنی را تجربه میکنید و نیاز به پیدا کردن راهی از طریق آن دارید.
در حالی که برنامهنویسی میکنید خسته میشوید و فکر میکنید واقعا انرژی فیزیکی خود را مانند ورزش کردن میسوزانید. هنگامی که انرژی ذهنی مورد نیاز خود را به کار نگیرید، به سختی میتوانید متمرکز بمانید. اما این کار همانند رفتن به ورزشگاه است، هر چه بیشتر آن را انجام دهید قویتر خواهید شد.
ناتوانی در اینکه خودتان فکر کنید
وقتی شما مطالب جدیدی را یاد میگیرید، ممکن است به راحتی دچار عدم داشتن دانش و تجربه برای داشتن عقاید خود را احساس کنید. ابتکار عمل یا انجام/گفتن چیزهای اشتباه به نظر مخاطرهآمیز میآید.
یک ترس ذاتی از اشتباه کردن در همه ما وجود دارد. وقتی این ترس از اشتباه مانع اکتشاف و کنجکاوی شما میشود، در واقع شما توانایی توسعه دانش صحیح، دانشی که از تجربه و "شکست" به دست میآید را خفه میکنید. وقتی شما همیشه نیاز به نظرات یک مربی، یک وبلاگ محبوب، یک تمرین خوب یا پاسخ مناسب کتاب درسی دارید، پس واقعا دانش حرفهای در برنامهنویسی را ندارید.
شما باید عقاید و نظرات خود را در رابطه با آنچه کار میکند و آنچه کار نمیکند تقویت کنید. شما باید درک کنید چرا فکر میکنید راهحلتان کار میکند و مزایای آن چیست. شما نیاز به چشماندازی دارید که فراتر از بدیهیات است. شما باید بتوانید استدلال کنید و دیدگاه جدیدی را کسب کنید.
تفکری تغییرناپذیر/ محدود یا آشفته
دو شیوه افراطی وجود دارد که گاهی اوقات در دانشجویان دیده میشود. اولین رویکرد یک تفکر محدود و تغییرناپذیر است. این نوع تفکر باعث رد کردن کمکها میشود و با وجود بازخوردها تغییر نمیکند. مسائل تنها از یک زاویه دیده میشوند و پیشنهادات نادیده گرفته میشوند.
مورد دیگر تفکر آشفته و بینظم است. در این نوع تفکر به نظر میرسد افراد کارها را پیچیدهتر از آنچه هست انجام میدهند. کد آنها شلوغ و سخت است. آنها 100 خط کد مینویسند برای کاری که تنها نیاز به 10 خط کد دارد.
این دو رویکرد باعث عدم توانایی در مشاهده امکانات دیگر و مانع رشد و بهبود میشود و کیفیت کد را کاهش میدهد.
نیاز به پاسخ "درست" به جای تشخیص طیفی از پاسخهای "خوب" و "بد"
وقتی شروع به یادگیری مهارتها یا برنامهنویسی میکنید، دانشجویان اغلب میخواهند بدانند آیا آن چیزی که آنها انجام میدهند درست است. پاسخ همیشه "بستگی دارد" است.
علم کامپیوتر علمی است که ارزشها را ارزیابی میکند و با توجه به شرایط مختلف میگوید کدام مسیر بهتر است. همه این موارد به شرایط و اهداف بستگی دارد. وقتی شما برنامهنویسی را به عنوان یک آزمایش با یک پاسخ درست یا اشتباه مشاهده میکنید، دیدگاهی از یک تصویر بزرگتر و خلاقیتتان را از دست میدهید. هر پاسخی میتواند درست باشد اگر شما آن را با توجه به شرایط توجیه کنید.
دلیل انتخاب یک راهحل خاص و اینکه آن پاسخ را درک کردهاید مهمتر از "شیوه درست" یا "شیوه نادرست" است. داشتن ذهن خلاق به شما اجازه میدهد تا با گزینهها و امکانات بازی کنید، به جای اینکه فکر کنید تنها یک راهحل وجود دارد. این امر یکی از زیباییهای برنامهنویسی است، راههای بسیاری برای حل مسائل وجود دارد، و با توجه به شرایط مختلف انتخاب میکنید که کدام راهحل برای آن شرایط بهترین است.
دقت نکردن به جزئیات
کامپیوترها ماشینهای بسیار دقیقی هستند. وقتی برنامهنویسی کامپیوتر انجام میشود، شما باید دستورات لازم را دقیقا همانطور که کامپیوترها انتظار دارند ارائه دهید. اگر این کار را انجام ندهید، هیچ چیزی کار نخواهد کرد. حد وسطی وجود ندارد یا انجام میشوند یا نمیشوند.
این بدان معناست که وقتی برنامهنویس هستید باید دید دقیقی داشته باشید. هنگامی که کامپیوتر پیام خطایی را نشان میدهد، باید وقتی به آن خطا نگاه میکنید کاملا درک کنید که چه میگوید، و اگر به جزئیات توجه نکنید به راحتی میتوانید ساعتها را صرف یافتن آن خطا کنید و در نهایت به هیچ نتیجهای نرسید.
نتیجهگیری
در حالی که یادگیری برنامهنویسی میتواند مهارت دشواری باشد، قطعا یکی از آن مواردی است که بیشتر مردم میتوانند یاد بگیرند. لیست بالا شامل نگرشها و ذهنیتهایی است که در این مسیر وجود دارند، اما اکثر مردم میتوانند بر آنها غلبه کرده و صلاحیت خود را در حوزه برنامهنویسی گسترش دهند.
اگر شما علاقهمند به یادگیری برنامهنویسی هستید، من شما را تشویق میکنم که این سفر را شروع کنید. لیست بالا را در ذهن داشته باشید و شروع به پیگیری منابع بسیار زیادی که به صورت آنلاین در دسترس هستند کنید که میتوانند سریعا شما را به جلو حرکت دهند. مطمئنا پشیمان نخواهید شد.
نظرات کاربران در رابطه با این دوره