1>>> بهتر است از تحقیق بدون پشتوانه عملی کدنویسی دوری کنید
زمانی که تصمیم دارید کاری همچون یادگیری برنامهنویسی را از ابتدا آغاز کنید، همواره اضطراب و نگرانی دارید. در چنین زمانهایی این سؤال در ذهنتان تداعی میشود که آیا زبان برنامهنویسی درستی را انتخاب کردهام؟ آیا بهتر نیست بهسراغ یادگیری زبان دیگری بروم؟ اگر یک بانک اطلاعاتی یا یک چهارچوب وب نامناسب را انتخاب کرده باشم، چه اتفاقی رخ میدهد؟
کارشناسان در اغلب موارد در انتخاب بهترین رویکرد، بهترین چهارچوب یا بهترین زبان با یکدیگر همعقیده نیستند. در نتیجه تحقیق و پژوهش در چنین زمانهایی میتواند راهگشا باشد، اما تحقیق مطلق و بدون تجربه کدنویسی عملی کمک چندانی به شما نخواهد کرد. سایت thefirehoseproject پژوهشی در این زمینه انجام داده و نقطه نظر جالب یکی از شرکتکنندگان خود را منتشر کرده است. این شخص میگوید: «من به مدت یک سال تمام وقت خود را تنها به تحقیق و پژوهش در ارتباط با کدنویسی معطوف کردم. من سعی کردم تا حد امکان درباره جاوااسکریپت تحقیق کنم، بدون آنکه هیچگونه کدنویسی عملی در این زمینه انجام دهم. اما یک روز تصمیم گرفتم بهمدت چند هفته روزی یک ساعت کدنویسی جاوااسکریپت را بهطور عملی آزمایش کنم. آزمایش چندهفتهای که در این زمینه انجام دادم، برابر با یک سال تحقیق و پژوهش بود، به طوری که موفق شدم نکات جدید بسیاری را یاد بگیرم. اکنون آرزو میکنم بهجای آن زمانهایی که تنها به فکر پژوهش بودم، کدنویسی را به شیوه عملی کار میکردم.»
همان گونه که مشاهده کردید، بهترین راه برای یادگیری کدنویسی این است که خود عملاً دست به کار شوید. هیچ نگران این موضوع نباشید که ممکن است کارهایی را به اشتباه انجام دهید یا به مشکل برخورد کنید. هر زبان برنامهنویسی همراه با مستندات و راهنماییهایی که حداقل مفاهیم برنامهنویسی را در خود جای داده است، در اختیار علاقهمندان قرار میگیرد. مهارتهایی شبیه به نامگذاری متغیرها، تعریف توابع و شکستن مشکلات پیچیده به بخشهای کوچکتر از جمله موارد مشترکی است که در همه زبانها وجود دارد. زمانی که موفق شوید در یک زبان مهارت پیدا کنید، یادگیری زبان دوم بهمراتب راحتتر خواهد بود. در نتیجه اجازه ندهید تحلیلهای مطلق اولیه همانند سنگ بزرگی مانع یادگیری شما شوند.
2>>> در زمان یادگیری کدنویسی به فکر یادگیری کلیات باشید
اگر زمان بیش از حدی را صرف یادگیری و به خاطر سپاری جزئیات کنید، این احتمال وجود دارد که از درک مفاهیم اصلیتر و بزرگتر باز بمانید. برنامهنویسی بهمعنای امتحان دادن نیست که مجبور شوید همه نکات حتی ریزترین نکات را به خاطر بسپارید. به احتمال زیاد هیچگاه در وضعیتی قرار نخواهید گرفت که بدون دسترسی به منبع مجبور باشید به سؤالات پاسخ دهید.
در عوض سعی کنید از طریق دستیابی به منابع مختلف راه حلی برای مشکل خود پیدا کنید. بهکارگیری گوگل برای پیدا کردن یک راه حل تقلب نیست. با نگاه به کدهایی که برای حل یک مسئله نوشته شدهاند، این شانس را به دست میآورید که خود کدهای بهتری را بنویسید.
3>>> با غافل شدن از بررسی مداوم کدهای خود در مدت کوتاهی با مشکلات زیادی مواجه خواهید شد
بهترین توسعهدهندگان همواره نسبت به کدهایی که نوشتهاند شکاک هستند. آنها بهطور مستمر کدهای خود را مورد بررسی قرار میدهند تا اطمینان حاصل کنند کدهای آنها دقیقاً همان کاری که مد نظر آنها است انجام میدهند. این حرف به معنای آن است که اگر چند دقیقه وقت صرف کنید و کدهای خود را مورد بررسی قرار دهید، در آینده مجبور نخواهید بود وقت زیادی را صرف بررسی همه کدها کنید. طیف گستردهای از افرادی که کدنویسی را تازه یاد گرفتهاند، بهطور مستمر تغییراتی در کدهای خود پیادهسازی میکنند بدون آنکه عملکرد کدهای خود را مورد بررسی قرار دهند. جالب آنکه این افراد انتظار دارند تا کدها و کامپایلر آنها بهشکل اعجابآوری دستورات را مطابق با درخواست آنها اجرا کنند. همین موضوع باعث میشود تا این افراد در اندک زمانی با انواع مختلفی از مشکلات مواجه شوند. رویکرد اشتباهی که باعث پیچیده شدن اوضاع میشود. درنهایت، اگر دوست دارید به یک کدنویس موفق تبدیل شوید، بهتر است در کدنویسی همیشه شکاک باشید.
4>>> سعی نکنید برنامهنویسی را در خلوت و انزوا یاد بگیرید
برنامهنویسان حرفهای همواره با انجمنها و فورومهای مرتبط با زبانی که در آن تخصص دارند در ارتباط هستند و در اکثر مواقع در گفتوگوها و نشستهایی که در دنیای واقعی یا مجازی (رددیت یا StackOverflow) وجود دارد شرکت میکنند. در مقابل، برنامهنویسانی که تازه کار خود را آغاز کردهاند، در اغلب موارد از همصحبتی با جامعه برنامهنویسان اجتناب میکنند. باید همواره به این نکته توجه داشته باشید که انجمنهای برنامهنویسی بهدنبال آن هستند تا شما را ترغیب کنند به یک توسعهدهنده حرفهای تبدیل شوید. این قاعدهای است که توسعهدهندگان حرفهای همواره بر پایه آن عمل میکنند. هرگز اهمیت برقراری ارتباط با جامعه برنامهنویسان بهویژه آنها که از شما مجربتر هستند را دستکم نگیرید. سعی کنید در پروژههای مختلف وارد شوید و درباره کدها تبادل نظر کنید. این کار بهمرور زمان اعتماد به نفس شما را افزایش میدهد.
5>>> آستانه تحمل خود را بالا ببرید
شما در مدت زمان برنامهنویسی خود بهدفعات با پیامهای خطایی که در بعضی موارد غیرقابل تحمل هستند روبهرو میشوید. اما به این نکته توجه داشته باشید که بهدنبال آن هستید تا مطالب جدیدی یاد بگیرید و در نتیجه اشتباه کردن اتفاقی کاملاً عادی است. اگر در مدت زمان برنامهنویسی با خطاهای بیشتری برخورد کنید، بهمرور زمان مجربتر میشوید و در ادامه با نگاه کردن به خطاها متوجه خواهید شد که هریک از پیامهای خطا چه معنا و مفهومی دارند. همواره به این نکته دقت کنید پیامهای خطایی که روی صفحه نمایش ظاهر میشوند، بهمعنای آن نیستند که شما برنامهنویس بدی هستید. در عوض، درک شما از برنامهنویسی را عمیقتر میکند و باعث افزایش مهارتهای شما میشود.
در بسیاری موارد ممکن است بهدلیل اشتباه وارد کردن کاراکترها یا نشانههای برنامهنویسی یا بهکارگیری یک منطق اشتباه در کدهای خود، کامپایلرها پیامهای خطایی را نشان دهند.
6>>> برای یادگیری برنامهنویسی به امکانات ویژهای نیاز ندارید
اغلب در فیلمهای مرتبط با عرضه فناوری فردی را مشاهده میکنید که دیوانهوار به صفحه نمایشهای مختلفی نگاه و از صفحه کلیدهای عجیب و غریبی برای برنامهنویسی استفاده میکند. اما واقعیت این است که شما برای یادگیری کدنویسی نیازی ندارید هزینههای سنگینی متحمل شوید. بدون داشتن یک ابرکامپیوتر نیز میتوانید به یک توسعهدهنده حرفهای تبدیل شوید. من بسیاری از کدهای خود را با کامپیوتر قدیمی همچون MacBook Air نوشتهام. حتی کامپیوتری که هماکنون در اختیار دارید نیز شاید برای یادگیری برنامهنویسی مناسب باشد. بهتر است ابتدا ذهن خود را معطوف به یادگیری کدنویسی کنید و زیاد به فکر ارتقای سیستم خود نباشید. به فکر آن باشید که بر اساس یک زمانبندی مشخص و دقیق فرآیند یادگیری را آغاز کنید. در آینده نیز میتوانید سیستم خود را ارتقا دهید.
7>>> به تفاوت میان حروف بزرگ و کوچک دقت کنید
در برنامهنویسی برخی جزئیات اهمیت خاصی دارند. تفاوت میان حروف بزرگ و کوچک یکی از این جزئیات مهم است. جزئیات دیگری نیز وجود دارند که باید به دقت مورد توجه قرار گیرند. به طور مثال، در بعضی موارد دیده شده است که برنامهنویسان تازهکار دو کاراکتر 0 و o را به اشتباه یک کاراکتر در نظر گرفته یا در بعضی موارد به تفاوت دو کارکتر _ و – بیتوجه بودهاند. در نتیجه مهم است که به نشانهها و تفاوتی که میان آنها وجود دارد دقت کنید.
8>>> برای کمک گرفتن درست عمل کنید
در مدت زمان یادگیری کدنویسی در اغلب موارد نیاز دارید تا از برنامهنویسان مجربتر درخواست کمک کنید و این موضوع امری طبیعی است. اما نکته مهمی که باید به آن توجه داشته باشید نحوه طرح سؤال است. اگر سؤال خود را بهشکل درستی مطرح کنید، طبیعی است پاسخ درستی نیز دریافت خواهید کرد. اما اگر سؤال خود را بهشکل مبهم مطرح کنید، طبیعی است پاسخ جالبی دریافت نخواهید کرد. اگر به این 4 نکته دقت کنید، جواب درستی برای پرسشهای خود دریافت خواهید کرد.
1- همه جزئیاتی که پیش رویتان قرار دارد را بازگو کنید.
2- اگر فکر میکنید جزئیات بیشتر به درک بهتر مشکل شما کمک میکند، این موارد را نیز منتقل کنید.
3- دقیقاً توضیح دهید انتظار دارید کدهایی که نوشتهاید چه کاری انجام دهند و در حال حاضر این کدها چه کاری میکنند.
4- توضیح دهید چرا بر این باورید که کدهای شما بهشکل درستی نوشته شدهاند.
اگر به سایتی همچون Stackoverflow مراجعه کنید، مشاهده میکنید در اغلب موارد توضیحات اضافی بهطور ناخودآگاه راه حلی را پدیدار ساختهاند. بدون آنکه سؤالکننده هیچگونه پاسخی از دیگران دریافت کرده باشد.
9>>> برای برنامهنویس خوبی شدن نیاز نیست یک نابغه ریاضی باشید
اگر در زمینه ریاضیات حداقل در مقطع دبیرستان پیشزمینه خوبی داشته باشید، در برنامهنویسی موفقتر خواهید بود. اما مهارت حل مشکلات در دنیای برنامهنویسی با مهارتی که در زمینه ریاضی ممکن است در اختیار داشته باشید متفاوت است. در نتیجه تسلط بر ریاضی یک ضرورت به شمار نمیرود. حتی اگر در درس ریاضیات نمرات خوبی کسب نکردهاید، باز هم میتوانید در برنامهنویسی موفق باشید. جالب آنکه در حوزه ریاضیات نیز با کمی تمرین بیشتر و البته بهرهگیری از منابع قدرتمند قادر خواهید بود سطح دانش خود را بهبود بخشید.
10>>> همواره بهدنبال تغییر کدهای بد خود باشید
حتی موفقترین برنامهنویسان که برنامههای آنها بهشدت پرمخاطب است، روزگاری کدهای بسیار بدی را نوشتهاند. در نتیجه اگر فرآیند یادگیری برنامهنویسی را تازه شروع کردهاید، از اشتباه کردن مضطرب نشوید. حتی اگر بر این باورید کدهای شما اشتباه هستند، باز هم مأیوس نشوید و به کار خود ادامه دهید. زمانی که کدهای خود را نوشتید، یک بار آنها را مورد بازبینی قرار دهید و بهشکل دقیقتر و خلاصهتری بنویسید. همواره به این فکر باشید که چگونه میتوانید کدهای خود را بهبود بخشید.
11>>> تنها به فکر تایپ کدهای خود نباشید
تایپ کدها تنها بخشی از فرآیند برنامهنویسی است. شما بهعنوان یک برنامهنویس باید بخشی از وقت خود را صرف تحقیق و مطالعه درباره تکنیکها و مهارتهایی کنید که تازه به دنیای برنامهنویسی وارد شدهاند. برای برنامهنویسان حرفهای یک روز کامل بهمعنای آن نیست که تمام وقت خود را صرف تایپ کردن کنند. برنامهنویسان در اغلب موارد بخش اعظمی از وقت خود را برای پژوهش در ارتباط با مباحث فنی، آزمایش راه حلهای جدید، آزمایش برنامههای کاربردی و خواندن فایلهای گزارش صرف میکنند.
12>>> سعی نکنید بهدنبال آن باشید تا همه نکات را یک باره یاد بگیرید
دنیای برنامهنویسی یا در حالت کلیتر کامپیوترها از سطوح مختلفی ساخته شدهاند. در نتیجه این امکان برای ما وجود ندارد تا تمام جزئیات ریز و درشت هر سطح را بهطور کامل یاد بگیریم. به طور مثال، اگر در حال یادگیری زبان روبی هستید، این احتمال وجود دارد که با چگونگی نحوه تعریف متدها آشنا شده باشید. اما اگر بهدنبال آن هستید تا بدانید در پس پرده چه اتفاقی در حال رخ دادن است و این فرآیندها چگونه اجرا میشوند، باید به عمق زبان روبی و کدهای اصلی آن وارد شوید. کدهایی که با زبان سی نوشته شدهاند و درک آنها ممکن است پیچیده و سخت باشد. اگر بهدنبال آن هستید تا ماهیت واقعی و کامل زبان روبی را یاد بگیرید، در ابتدا باید زبان سی را مورد بررسی قرار دهید. در حالی که در شرایط عادی برای یادگیری زبان روبی نیازی به انجام این کار سخت ندارید. در اغلب موارد در زمان نوشتن کدها بهویژه در ارتباط با برنامههای عادی نیاز ندارید تا به اعماق یک زبان بروید و اطلاع پیدا کنید که یک متد یا تابع چگونه از پردازنده مرکزی یا سیستم عامل استفاده میکند. سعی کنید به مواردی توجه داشته باشید که مورد نیازتان خواهند بود.
13>>> زود ناامید نشوید و به راه خود ادامه دهید
اگر بهدنبال آن هستید تا کدنویسی را یاد بگیرید و به کسب درآمد از آن بپردازید، به صبر و شکیبایی زیادی نیاز دارید. در عین حال به یک برنامهریزی دقیق و منظم نیاز دارید تا بهمرور زمان بر جنبههای مختلف یک زبان مسلط شوید. در نتیجه اگر تلاش کردهاید، اما به آنچه دنبال آن بودید نرسیدهاید، امید خود را از دست ندهید و به تلاش سختکوشانه خود ادامه دهید. اگر به 13 نکتهای که در این مقاله اشاره شد دقت و سعی کنید بر اساس این قواعد کار کنید، اشتباهات شما در کدنویسی و یادگیری برنامهنویسی به حداقل میرسد و سریعتر به آنچه دنبالش هستید خواهید رسید.