هنگامی که به یادگیری کدنویسی مشغول میشوید، چد اشتباه بسیار رایج وجود دارند که باید حواستان به آنها باشد زیرا با افتادن در دام این اشتباهات، پیشرفت شما بسیار کند و دشوار خواهد شد که در این مقاله به ۱۴ مورد از رایجترین آنها اشارهای خواهیم کرد.
۱. به جای اینکه کد بزنید، فقط مشغول مطالعه در مورد کدنویسی هستید
اغلب اوقات شروع کردن بسیار سخت به نظر میرسد به طوری که در این مرحله از خود میپرسید که اگر زبان برنامهنویسی نادرستی را انتخاب کرده باشم چه میشود یا اگر فریمورک و یا دیتابیس نامناسبی را برگزیده باشم چهطور؟ و بسیاری اگر دیگر. واقعیت امر آن است که باتجربههای این حوزه هیچوقت در مورد اینکه بهترین روش، بهترین زبان و یا بهترین فریمورک کدام است اتفاق نظر نداشتهاند؛ بنابراین جستجوی بیش از حد و وسواسگونه، شما را به جایی نخواهد رساند!
خوب است بدانید تا به حال کسی صرفاً با مطالعه در مورد کدنویسی، دولوپر نشده است و شما هم از این قاعده مستثنی نخواهید بود و تنها راهی که میتوانید کدنویسی را یاد بگیرید، خودِ کدنویسی است؛ یعنی باید کد بزنید. در عین حال، خیلی هم نگران اشتباهات احتمالی نباشید چرا که کدنویسی در هر زبانی که انتخاب کرده باشید، میتواند در درک مفاهیم کلی برنامهنویسی، توانایی حل مسئله و … به شما کمک کند و بنابراین خیلی مهم نیست که از کجا شروع میکنید، مهم خودِ شروع کردن است.
۲. جوری کدنویسی را یاد میگیرید که گویا قرار است امتحان بدهید
اینکه ساعتها از وقت گرانبهای خود را صرف به خاطر سپردن موارد ریز و جزئی کنید، سبب میشود تا از درک مفاهیم و ایدهٔ کلی باز بمانید. دقت داشته باشید که قرار نیست کسی از شما امتحان بگیرد و به احتمال خیلی زیاد، هرگز در موقعیتی قرار نخواهید گرفت که لازم باشد بدون مراجعه به هیچ منبعی، به تمامی سؤالات احتمالی پاسخ دهید. حتی اگر به مشکلی هم بر بخورید، به راحتی میتوانید به کتابها، فایلهای آموزشی، کدهای قبلی خود و سایر منابع مراجعه کنید و نیاز به توضیح نیست که اینها هرگز تقلب محسوب نمیشوند (اگر هم فرض کنیم اینها تقلب هستند، باید گفت که در کدنویسی اینکه بدانید کجا باید به دنبال این تقلبها بگردید خیلی مهمتر از این است که پاسخ را از قبل در ذهن خود داشته باشید.)
۳. با بررسی نکردن عملکرد کدهای خود، کوهی از مشکلات را روی هم تلنبار میکنید
بهترین دولوپرها آنهایی هستند که در مورد عملکرد کدهای خود زیاد شک میکنند؛ آنها پس از حل هر مشکل و قبل از اینکه به سراغ مورد بعدی بروند، کدهای خود را تست میکنند تا مطمئن شوند که کدها همانطوری که باید کار کنند نوشته شدهاند.
اغلب تازهکارها تغییرات پیدرپی و متعددی را در کدها اِعمال نموده و بدون اینکه عملکرد آنها را بررسی کنند، انتظار دارند تا کدها به طور معجزهآسایی خود به خود درست کار کنند غافل از اینکه ادامهٔ این روند سبب انباشته شدن انبوهی از مشکلات مختلف شده و اوضاع بسیار پیچیدهای را ایجاد خواهد نمود. اگر میخواهید دولوپر موفقی باشید، در یک کلام شکاک باشید.
۴. سعی دارید در انزوا کدنویسی را یاد بگیرید
برنامهنویسان برتر همواره با جامعهٔ زبان مورد نظر خود در ارتباط بوده و در نشستها و گفتگوهایی که در دنیای واقعی و مجازی رخ میدهند، شرکت میکنند. برنامهنویسان تازهکار اغلب از مراوده و گفتگو با جامعهٔ برنامهنویسی هراس دارند اما واقعیت امر آن است که برقراری ارتباط با برنامهنویسان باتجربه، راهی است که میتواند به افزایش دانش و مهارت شما کمک کند.
بنابراین هرگز اهمیت برقراری ارتباط با جامعهٔ برنامهنویسان، بهخصوص آنهایی که از شما باتجربهتر هستند، را دستکم نگیرید، در پروژههای مختلف شرکت نموده و در مورد پروژههای اپنسورس بحث و تبادل نظر کنید تا اندکاندک اعتماد به نفس شما نیز افزایش یابد.
۵. خیلی زود از کوره در میروید
در طی یادگیری کدنویسی، بارها و بارها با ارورها و اِکسپشنهای اعصاب خردکن مواجه خواهید شد اما به خاطر داشته باشید مادامی که در حال یادگیری مطالب جدیدی هستید، اشتباه کردن امری اجتنابناپذیر است. هر چقدر ارورهای بیشتر و بیشتری را ببینید و ایجاد کنید، ورزیدهتر شده و راحتتر میتوانید بفهمید هر ارور چه معنایی دارد و چگونه میتواند شما را به هدفتان نزدیکتر گرداند. به عبارتی، کسب مهارت در درک ارورها و استفاده از آنها در حل مشکلات چیزی نیست که در ذات کسی وجود داشته باشد؛ بلکه تنها راه دستیابی به این مهارت، این است که چنین موقعیتهایی را تجربه کنید.
۶. فکر میکنید برای اینکه کدنویسی یاد بگیرید نیاز به امکانات خاصی دارید
برخلاف آنچه که در برخی مطالب میبینید، برای یاد گرفتن کدنویسی هیچ نیازی به امکانات فوقالعاده و هزینهبری ندارید و ضرورتی ندارد که چندین مانیتور روبهروی شما باشد یا سیستم خیلی قدرتمندی، همچون یک مکبوک آخرین مدل، داشته باشید تا بتوانید کدهای خوبی بزنید.
همان سیستمی که هماکنون از آن استفاده میکنید، حتی اگر بسیار معمولی و قدیمی باشد، برای کدنویسی و یا حداقل برای یادگیری کدنویسی کافی است. پس کدنویسی را شروع نموده و ذهن خود را زیاد درگیر ارتقاء امکانات خود نکنید چرا که بعداً هم میتوانید با درآمدی که از این طریق کسب میکنید، آن را ارتقاء دهید.
۷. تفاوت میان حروف بزرگ و کوچک را نادیده میگیرید
در برنامهنویسی، جزئیات خیلی مهم بوده و تفاوت میان حروف کوچک و بزرگ نیز یکی از همین جزئیات است. جزئیات متعدد دیگری نیز وجود دارند که باید مورد توجه قرار بگیرند؛ مثلاً اینکه مقدار 0 با Null یکسان نیست، عدد 0 با حرف O یکی نیست، کاراکتر - با ـ فرق دارد و جزئیاتی از این دست.
۸. از راه نادرستی درخواست کمک میکنید
در طی یادگیری کدنویسی، همواره با مواقعی رو به رو میشوید که لازم است از دیگران سؤال بپرسید و درخواست کمک کنید و این کاملاً طبیعی است اما در چنین موقعیتهایی اگر بتوانید سؤال خود را درست مطرح کنید، پاسخهای خوبی نیز دریافت خواهید کرد و در صورتی که طوری سؤال بپرسید که کسی از مشکل شما سر در نیاورد، پاسخهای جالبی نیز دریافت نخواهید نمود!
پس اگر میخواهید از دیگران کمک بگیرید، سعی کنید همهٔ جزئیات مسئله، حتی جزئیاتی که ظاهراً زیاد ضروری هم به نظر نمیرسند، را یک به یک توضیح دهید، بگویید که انتظار دارید کدی که نوشتهاید چه کاری را انجام دهد و هماکنون چه کاری را انجام میدهد و همچنین توضیح بدهید که چرا فکر میکنید کد شما باید درست کار کند؟
در بسیاری از مواقع، در طی ارائهٔ همین توضیحات، خود به خود پاسخ سؤال پیدا میشود و بدون اینکه از کسی کمک گرفته باشید، میتوانید مشکل خود را حل کنید که به این روش اصطلاحاً Rubber Duck Debugging (دیباگ کردن به سبک اردک پلاستیکی) میگویند. به عبارت دیگر، مشکلات خود را با جزئیات کامل و با صدای بلند برای شیئی مانند یک اردک پلاستیکی توضیح میدهید و در پایان، آگاهی به تمام این جزئیات سبب میشود تا خود به تنهایی به راهحل مسئله دست پیدا کنید (البته جواب دادن این سولوشن ۱۰۰٪ نیست.)
۹. فکر میکنید برای موفقیت در برنامهنویسی حتماً باید نابغهٔ ریاضیات باشید
البته خوب بودن در ریاضیات میتواند به مهارت کدنویسی شما کمک کند، اما ضروری نیست و این در حالی است که مهارت حل مسئله که در کدنویسی به آن نیاز دارید با آنچه که در ریاضیات مورد نیاز است، متفاوت میباشد.
بنابراین اگر نمرهٔ ریاضی شما هیچوقت خوب نبوده، اصلاً نگران نباشید زیرا آنقدر که لازم است، ریاضی میدانید و حتی اگر در این زمینه دانش کافی نداشته باشید، با کمی تلاش و کوشش میتوانید آن را به دست بیاورید (البته اگر بخواهید در زمینهٔ هوش مصنوعی، یادگیری ماشینی و سایر مباحث مربوطه شروع به فعالیت کنید، به درک نسبتاً خوبی از آمار، ریاضیات و دیگر شاخههای مرتبط نیاز خواهید داشت.)
۱۰. از تغییر دادن کدهای بَد خود رویگردان هستید
مطمئن باشید کسی که در حال حاضر کدهای عالی و تقریباً بدون نقصی مینویسد، قبلاً مرتکب هزاران اشتباه شده است و از همین روی اگر به تازگی کدنویسی را شروع نمودهاید، از اشتباه کردن نترسید و حتی اگر فکر میکنید کدهای بسیار بدی مینویسید، باز هم به کار خود ادامه دهید اما بعداً کدهای خود را خط به خط بررسی نموده و سعی کنید آنها را به شکل درستتر و مؤثرتری بازنویسی (ریفکتور) نمایید. نگران نباشید و بدانید همزمان که دانش و مهارت خود را ارتقاء میدهید، همواره این امکان برای شما فراهم است که کدهای بَد و قدیمی خود را تغییر داده و آنها را بهبود بخشید.
۱۱. فقط به تایپ کردن کدها فکر میکنید
تایپ کدها بخشی از برنامهنویسی است اما همهٔ آن نیست. گاهی ممکن است برای یافتن پاسخ سؤالی نیاز به جستجو و مطالعه داشته باشید و یا لازم باشد با مفاهیم جدیدی آشنا شده و خود را به اصطلاح آپدیت کنید. یک دولوپر واقعی، تمام روز را مشغول کد زدن نیست بلکه وقت نسبتاً قابلتوجهی را برای درک مسائل فنی، تست موضوعات مختلف، امتحان کردن اپلیکیشنهای مرتبط، مطالعه و … صرف میکند.
۱۲. میخواهید همهچیز را به یکباره بیاموزید
در کدنویسی مفاهیم و موضوعات در سطوح مختلفی قابلدرک هستند و قبل از طی یک مرحله نمیتوان به مرحلهٔ بعدی رفت به طوری که در بسیاری از مواقع فقط کافی است مفاهیم کلی را یاد بگیرید (مثلاً وقتی مشغول یادگیری یک زبان برنامهنویسی مثل روبی هستید، ممکن است با چگونگی تعریف متدها آشنا شوید اما اگر بخواهید بدانید که واقعاً چه فرآیندی در حال رخ دادن است و چگونه این فرآیند صورت میگیرد، باید به عمق زبان روبی بروید که به زبان دشوار و پیچیدهٔ سی نوشته شده است. به طور کلی، اگر بخواهید از همه چیز زبان روبی سر در بیاورید، باید زبان سی را نیز بیاموزید اما در عمل برای استفاده از روبی نیازی به دانستن زبان سی نیست.)
۱۳. انتظار دارید روزی برسد که همهچیز را در مورد برنامهنویسی بدانید
اغلب افراد فکر میکنند تولید نرمافزار کاری به قول معروف تر و تمیز، مرتب و مرحلهبندی شده است بدین صورت که یک نرمافزار طراحی میشود، سپس تولید و در نهایت به بازار عرضه میشود. البته این مرحلهبندیها و برنامهریزیها قطعاً وجود دارد اما در واقعیت تولید یک نرمافزار پیچیده، بیشتر به تعمیر یک اتومبیل مسابقهای که با سرعت بسیار بالایی در حال حرکت میباشد شبیه است (در همین راستا، توصیه میکنیم به مقالهٔ SRE: آشنایی با مقولهٔ مهندسی ضریب اطمینان و اهمیت در کمپانی گوگل مراجعه نمایید.)
هرچند رسیدن به این مرحله غیرممکن نیست و افراد زیادی هماکنون مشغول انجام همین کار هستند، اما مسئله این است که برای اغلب دولوپرها رسیدن به این مرحله و این سطح از مهارت، هیچ ضرورتی ندارد و بدون آن هم میتوانند جزو دولوپرهای موفق محسوب شوند.
۱۴. زود ناامید میشوید و به راه خود ادامه نمیدهید
یادگیری کدنویسی، مخصوصاً اگر بخواهید از آن کسب درآمد کنید، راه طولانی و طاقتفرسایی است و رسیدن به مقصد این راه نیازمند نظم، تلاش و گذر زمان است. بنابراین اگر هنوز به هدف نهایی خود نرسیدهاید، دست از تلاش نکشید و تا رسیدن به جایگاهی که برای خود در نظر گرفتهاید، به تلاش سرسختانهٔ خود ادامه دهید.
سخن پایانی
در این مقاله ۱۴ اشتباه رایج در میان برنامهنویسان تازهکار را مطرح نمودیم که اجتناب از این اشتباهات میتواند سرعت پیشرفتتان را بالا برده شما را زودتر به سر منزل مقصود برساند. اگر هماکنون تصمیم به دولوپر شدن گرفتهاید، با مراجعه به دورهٔ آموزش اصول برنامهنویسی در سکان آکادمی میتوانید این مسیر لذتبخش را شروع کرده و اولین خطوط کد خود را بنوسید.