امروزه سورس کدهای خوب و کاربردی فراوانی در ریپازیتوریهایی مانند گیتهاب در دسترس برنامهنویسان و توسعهدهندگان قرار دارد؛ از سوی دیگر، بسیاری از برنامهنویسان عملاً با «هنر کدنویسی» بیگانهاند و کار خود را به کپی کردن کدهای دیگران محدود نمودهاند. تقریباً در همۀ پروژهها از فریمورکها یا لایبرریهای آماده استفاده میشود و بهندرت پروژهایی را میتوان یافت که واقعاً از مرحلۀ طراحی آغاز شده باشند. در این مقاله سعی داریم توصیههایی را مطرح کنیم که هر چند کمی عجیبوغریب به نظر میرسند، اما میتوانند مهارتهای کدنویسی شما را ارتقاء دهند.
لازم به ذکر است که این توصیهها به منزلۀ تمرینهایی هستند که نیاز به صرف زمان و دقت دارند؛ بنابراین از انجام آنها در پروژههایی که فرصت محدودی برای تحویل آنها در اختیار دارید خودداری نموده و تنها در پروژههای شخصی و یا در اوقات فراغت به این تمرینات بپردازید.
1. فریمورک مخصوص خود را بنویسید!
همانطور که پیش از این اشاره کردیم، امروزه کمتر پروژهای را میتوان یافت که عملاً از مرحلۀ طراحی آغاز شده باشد؛ امروزه در اکثر پروژهها، از فریمورکهای آماده از قبیل جیکوئری ، وردپرس و ... استفاده میشود (حتی شرکتهای بزرگ و پیشرو تکنولوژی مانند گوگل نیز از فریمورکهای اپنسورسی مانند جیکوئری استفاده میکنند.)
هرچند ممکن است نوشتن یک فریمورک ساعتها، روزها و حتی ماهها زمان ببرد، اما برای تمرین هم که شده، بهتر است استفاده از فریمورکهای آماده را کنار بگذارید و فریمورکی مطابق با نیازهای خود بنویسید. شاید فریمورکی که مینویسید را هرگز در پروژههای واقعی به کار نبرید و شاید در نوشتن آن عملکرد بسیار ضعیفی داشته باشید، اما در نهایت منافع آن بیش از سختیهای آن خواهد بود.
میتوانید کار را با نوشتن یک فریمورک کوچک جاوااسکریپت با چند ماژول محدود شروع کنید. همچنین میتوانید این تمرین را به عنوان یک پروژۀ ادامهدار در نظر گرفته و هر زمان که وقت آزاد داشتید یا چیز جدیدی آموختید، به بهبود و توسعهٔ فریمورک قبلی خود بپردازید.
2. از ابزارهای توسعه استفاده نکنید!
امروزه توسعهدهندگان از ابزارهایی استفاده میکنند که کدنویسی را برای آنها سریعتر و راحتتر میکند. به عنوان مثال، در سیاساس ابزارایی مانند Firebug، Web Developer Extension و Google Chorome’s Developer به کمک کدنویسان میآیند.
برای اینکه بتوانید مهارت واقعی خود را در کدنویسی و دیباگ کردن کدها ارتقاء دهید، استفاده از این ابزارها را موقتاً کنار بگذارید. با این کار بدون شک سرعت شما در کدنویسی و دیباگ کردن کدها بسیار کم خواهد شد اما در عوض بر ساختار کدها تسلط بیشتری خواهید یافت و در آینده اشتباهات کمتری مرتکب خواهید شد.
3. از مرورگر استفاده نکنید!
مگر میشود وبسایتی را بدون تست کردن در محیط نمایش آن، ایجاد کرد! همانطور که از عنوان این مقاله مشخص است، توصیههای ارائه شده قرار است که عجیب و غریب باشند؛ روند معمول این است که مثلاً در حین توسعۀ یک وبسایت، پس از هر مرحله، آن را در مرورگر بررسی نموده و عیوب آن را مجدداً در ادیتور برطرف مینمایند. اما توصیۀ ما به شما این است که مرورگر را کنار بگذارید و سعی کنید صفحهٔ وب را بدون چک کردن آن در مرورگر، کامل کنید و پس از اینکه کار را به پایان رساندید، نتیجۀ نهایی را در مرورگر ببینید.
این تمرین باعث میشود در تمام مدت، حواس خود را جمع کنید و مطمئن شوید که خطبهخط کدها را درست و اصولی نوشتهاید. همچنین با این کار مجبور خواهید شد تا خروجی کدهایی که مینویسید را در ذهن خود مجسم کنید. اگر بتوانید نتیجهٔ هر کدی که مینویسید را تجسم نمایید، یعنی توانستهاید آنها را کاملاً درک کنید. مهم نیست چند بار اول که این تمرین را انجام میدهید چه نتیجهای میگیرید، این تمرین به مرور باعث میشود تا به کدهایی که مینویسید بیشتر دقت کنید و در نهایت درک شما نسبت به کدها را افزایش میدهد.
4. از Code Generator استفاده نکنید!
وقتی در حال تایپ کردن کدها هستید، ابزارهای کمکی میتوانند با در اختیار گذاشتن فهرستی احتمالی از کدهای تکمیلی مورد نظر، شما را از تایپ نمودن ادامۀ کد به صورت دستی بینیاز کنند. درست است که این ابزارها مفیدند و سرعت کدنویسی شما را بالا میبرند اما استفاده نکردن از آنها نیز منافعی دارد. اگر وقت بگذارید و کد مورد نظر خود را به طور کامل با دست تایپ کنید، خود به خود با بخشهای مختلف کد و سینتکس آن آشنا شده و در نهایت درک و تسلط بهتری نسبت به کدها پیدا خواهید کرد.
5. مثالهای کتاب را خودتان تایپ کنید!
امروزه تقریباً همراه با همۀ کتابهای آموزش کدنویسی، یک آرشیو از سورس کد شامل مثالهای کتاب به صورت فایلی برای دانلود و یا به صورت یک سیدی در اختیار خریدار قرار میگیرد. در اختیار قرار دادن مثالها، خیلی خوب است اما انتظار ندارید که با کپی و پیست کردن آنها، کدنویسی یاد بگیرید؟
آرشیو کدها را فراموش کنید و مثالهای کتابی را که میخوانید، خودتان تایپ کنید و سپس چیزی که نوشتهاید را امتحان کنید تا مطمئن شوید درست کار میکند. وقتی کدها را شخصاٌ تایپ میکنید به احتمال خیلی زیاد، در بخشهایی از آن دچار اشتباه شده و با ارورهایی مواجه میشوید و این خیلی خوب است چون شما را وادار خواهد کرد تا کلمهبهکلمۀ کدها را با کتاب چک کنید و این کار باعث افزایش دقت و تسلط شما خواهد شد.
اشتباه کردن در هنگام یادگیری باعث میشود با روشهای دیباگ کردن کدها که معمولاً در منابع آموزشی مطرح شده است نیز به صورت عملی آشنا شوید. در حالی که اگر مثالها را کپی و پیست میکردید، مشکلی پیش نمیآمد، کدها کاملاً درست کار میکرد و دیباگ نمودن کدهایی که درست کار میکنند عملاً بیمعنا بود. بنابراین سعی کنید هیچ مثالی را کپی و پیست نکنید. هر جایی هر مثالی دیدید، خط به خط آن را با دست تایپ کنید، اشتباه کنید، اشتباهات را برطرف کنید و از مزایای آن بهرمند شوید.
6. از بیامکاناتترین ویرایشگر متنی که دارید استفاده کنید!
اگر میخواهید ذهن خود را وادار به تمرکز و نگهداری کدهای بیشتر کنید، بهتر است ویراشگرهایی که کلمات را برای شما کامل نموده یا ایرادات احتمالی را برای شما نمایش میدهند را فراموش کنید و به جای آن از ویرایشگر سادهای مانند نوتپد ویندوز، جیادیت لینوکس و یا تکستمیت مکینتاش استفاده کنید. کار دشواری است اما با این تمرین، به تدریج ذهن شما فعالتر شده و کدهای بیشتری را در خود نگه خواهد داشت. از طرف دیگر، با تمرین بیشتر،عیبیابی و دیباگ نمودن کدها نیز برای شما سادهتر خواهد شد.
7. چرخ را دوباره اختراع کنید!
هرچند ممکن است پروژهای که مشغول کار بر روی آن هستید، قبلاً میلیونها بار نوشته شده باشد (این پروژه میتواند چیزی مانند گالری عکس، اسلایدر و یا هر چیز تکراری دیگری باشد) اما سعی کنید آن را دوباره بنویسید. شاید نوشتن کدهایی که قبلاً نوشته شدهاند به نظر خیلیها بیمورد و یا حتی احمقانه باشد. اما یک لحظه در مورد نحوهٔ عمکرد مثلا یک گالری تصاویر در جاوااسکریپت فکر کنید؛ آیا واقعاً میدانید هر کدام از قابلیتهای چنین پلاگینی را چگونه باید نوشت؟ اگر نمیدانید، پس نمیتوانید ادعا کنید که نیازی به دوباره نوشتن آنها ندارید!
البته اگر از فانکشنهای از قبل نوشته شده نیز استفاده کنید ممکن است از لحاظ حرفهای فرد موفقی باشید اما قطعاً بخش زیادی از دانش و مهارتی که میتوانستید کسب کنید را دست خواهید داد.
از سوی دیگر، اگر شخصاً مثلا فانکشنهای مورد نیاز خود در جاوااسکریپت را بنویسید، شاید به خوبی فانکشنهای موجود نشود -حتی شاید هیچ وقت در یک پروژۀ واقعی به کارتان نیز نیاید و مجبور شوید در نهایت از فانکشنهای آماده استفاده کنید- اما همیشه این شانس را خواهید داشت که به کدهایی که نوشتهاید برگردید، اشکالات آن را برطرف کنید، آن را کاملتر کنید و کسی چه میداند شاید روزی توانستید آن را طوری بنویسید که دیگران ترجیح دهند از آن استفاده کنند.
سخن پایانی
همانطور که در ابتدای مقاله گفتیم، این توصیهها برای استفاده در پروژههای مهم و فوری نیستند بلکه تمرینهایی هستند که نیاز به صرف وقت و دقت کافی داشته و مناسب اوقات فراغت و پروژههای شخصی هستند. این تمرینها دقت، تمرکز، حافظه و در نهایت مهارت شما را بهبود بخشیده و در طولانی مدت موجب موفقیت حرفهای شما خواهند شد
لازم به ذکر است که این توصیهها به منزلۀ تمرینهایی هستند که نیاز به صرف زمان و دقت دارند؛ بنابراین از انجام آنها در پروژههایی که فرصت محدودی برای تحویل آنها در اختیار دارید خودداری نموده و تنها در پروژههای شخصی و یا در اوقات فراغت به این تمرینات بپردازید.
1. فریمورک مخصوص خود را بنویسید!
همانطور که پیش از این اشاره کردیم، امروزه کمتر پروژهای را میتوان یافت که عملاً از مرحلۀ طراحی آغاز شده باشد؛ امروزه در اکثر پروژهها، از فریمورکهای آماده از قبیل جیکوئری ، وردپرس و ... استفاده میشود (حتی شرکتهای بزرگ و پیشرو تکنولوژی مانند گوگل نیز از فریمورکهای اپنسورسی مانند جیکوئری استفاده میکنند.)
هرچند ممکن است نوشتن یک فریمورک ساعتها، روزها و حتی ماهها زمان ببرد، اما برای تمرین هم که شده، بهتر است استفاده از فریمورکهای آماده را کنار بگذارید و فریمورکی مطابق با نیازهای خود بنویسید. شاید فریمورکی که مینویسید را هرگز در پروژههای واقعی به کار نبرید و شاید در نوشتن آن عملکرد بسیار ضعیفی داشته باشید، اما در نهایت منافع آن بیش از سختیهای آن خواهد بود.
میتوانید کار را با نوشتن یک فریمورک کوچک جاوااسکریپت با چند ماژول محدود شروع کنید. همچنین میتوانید این تمرین را به عنوان یک پروژۀ ادامهدار در نظر گرفته و هر زمان که وقت آزاد داشتید یا چیز جدیدی آموختید، به بهبود و توسعهٔ فریمورک قبلی خود بپردازید.
2. از ابزارهای توسعه استفاده نکنید!
امروزه توسعهدهندگان از ابزارهایی استفاده میکنند که کدنویسی را برای آنها سریعتر و راحتتر میکند. به عنوان مثال، در سیاساس ابزارایی مانند Firebug، Web Developer Extension و Google Chorome’s Developer به کمک کدنویسان میآیند.
برای اینکه بتوانید مهارت واقعی خود را در کدنویسی و دیباگ کردن کدها ارتقاء دهید، استفاده از این ابزارها را موقتاً کنار بگذارید. با این کار بدون شک سرعت شما در کدنویسی و دیباگ کردن کدها بسیار کم خواهد شد اما در عوض بر ساختار کدها تسلط بیشتری خواهید یافت و در آینده اشتباهات کمتری مرتکب خواهید شد.
3. از مرورگر استفاده نکنید!
مگر میشود وبسایتی را بدون تست کردن در محیط نمایش آن، ایجاد کرد! همانطور که از عنوان این مقاله مشخص است، توصیههای ارائه شده قرار است که عجیب و غریب باشند؛ روند معمول این است که مثلاً در حین توسعۀ یک وبسایت، پس از هر مرحله، آن را در مرورگر بررسی نموده و عیوب آن را مجدداً در ادیتور برطرف مینمایند. اما توصیۀ ما به شما این است که مرورگر را کنار بگذارید و سعی کنید صفحهٔ وب را بدون چک کردن آن در مرورگر، کامل کنید و پس از اینکه کار را به پایان رساندید، نتیجۀ نهایی را در مرورگر ببینید.
این تمرین باعث میشود در تمام مدت، حواس خود را جمع کنید و مطمئن شوید که خطبهخط کدها را درست و اصولی نوشتهاید. همچنین با این کار مجبور خواهید شد تا خروجی کدهایی که مینویسید را در ذهن خود مجسم کنید. اگر بتوانید نتیجهٔ هر کدی که مینویسید را تجسم نمایید، یعنی توانستهاید آنها را کاملاً درک کنید. مهم نیست چند بار اول که این تمرین را انجام میدهید چه نتیجهای میگیرید، این تمرین به مرور باعث میشود تا به کدهایی که مینویسید بیشتر دقت کنید و در نهایت درک شما نسبت به کدها را افزایش میدهد.
4. از Code Generator استفاده نکنید!
وقتی در حال تایپ کردن کدها هستید، ابزارهای کمکی میتوانند با در اختیار گذاشتن فهرستی احتمالی از کدهای تکمیلی مورد نظر، شما را از تایپ نمودن ادامۀ کد به صورت دستی بینیاز کنند. درست است که این ابزارها مفیدند و سرعت کدنویسی شما را بالا میبرند اما استفاده نکردن از آنها نیز منافعی دارد. اگر وقت بگذارید و کد مورد نظر خود را به طور کامل با دست تایپ کنید، خود به خود با بخشهای مختلف کد و سینتکس آن آشنا شده و در نهایت درک و تسلط بهتری نسبت به کدها پیدا خواهید کرد.
5. مثالهای کتاب را خودتان تایپ کنید!
امروزه تقریباً همراه با همۀ کتابهای آموزش کدنویسی، یک آرشیو از سورس کد شامل مثالهای کتاب به صورت فایلی برای دانلود و یا به صورت یک سیدی در اختیار خریدار قرار میگیرد. در اختیار قرار دادن مثالها، خیلی خوب است اما انتظار ندارید که با کپی و پیست کردن آنها، کدنویسی یاد بگیرید؟
آرشیو کدها را فراموش کنید و مثالهای کتابی را که میخوانید، خودتان تایپ کنید و سپس چیزی که نوشتهاید را امتحان کنید تا مطمئن شوید درست کار میکند. وقتی کدها را شخصاٌ تایپ میکنید به احتمال خیلی زیاد، در بخشهایی از آن دچار اشتباه شده و با ارورهایی مواجه میشوید و این خیلی خوب است چون شما را وادار خواهد کرد تا کلمهبهکلمۀ کدها را با کتاب چک کنید و این کار باعث افزایش دقت و تسلط شما خواهد شد.
اشتباه کردن در هنگام یادگیری باعث میشود با روشهای دیباگ کردن کدها که معمولاً در منابع آموزشی مطرح شده است نیز به صورت عملی آشنا شوید. در حالی که اگر مثالها را کپی و پیست میکردید، مشکلی پیش نمیآمد، کدها کاملاً درست کار میکرد و دیباگ نمودن کدهایی که درست کار میکنند عملاً بیمعنا بود. بنابراین سعی کنید هیچ مثالی را کپی و پیست نکنید. هر جایی هر مثالی دیدید، خط به خط آن را با دست تایپ کنید، اشتباه کنید، اشتباهات را برطرف کنید و از مزایای آن بهرمند شوید.
6. از بیامکاناتترین ویرایشگر متنی که دارید استفاده کنید!
اگر میخواهید ذهن خود را وادار به تمرکز و نگهداری کدهای بیشتر کنید، بهتر است ویراشگرهایی که کلمات را برای شما کامل نموده یا ایرادات احتمالی را برای شما نمایش میدهند را فراموش کنید و به جای آن از ویرایشگر سادهای مانند نوتپد ویندوز، جیادیت لینوکس و یا تکستمیت مکینتاش استفاده کنید. کار دشواری است اما با این تمرین، به تدریج ذهن شما فعالتر شده و کدهای بیشتری را در خود نگه خواهد داشت. از طرف دیگر، با تمرین بیشتر،عیبیابی و دیباگ نمودن کدها نیز برای شما سادهتر خواهد شد.
7. چرخ را دوباره اختراع کنید!
هرچند ممکن است پروژهای که مشغول کار بر روی آن هستید، قبلاً میلیونها بار نوشته شده باشد (این پروژه میتواند چیزی مانند گالری عکس، اسلایدر و یا هر چیز تکراری دیگری باشد) اما سعی کنید آن را دوباره بنویسید. شاید نوشتن کدهایی که قبلاً نوشته شدهاند به نظر خیلیها بیمورد و یا حتی احمقانه باشد. اما یک لحظه در مورد نحوهٔ عمکرد مثلا یک گالری تصاویر در جاوااسکریپت فکر کنید؛ آیا واقعاً میدانید هر کدام از قابلیتهای چنین پلاگینی را چگونه باید نوشت؟ اگر نمیدانید، پس نمیتوانید ادعا کنید که نیازی به دوباره نوشتن آنها ندارید!
البته اگر از فانکشنهای از قبل نوشته شده نیز استفاده کنید ممکن است از لحاظ حرفهای فرد موفقی باشید اما قطعاً بخش زیادی از دانش و مهارتی که میتوانستید کسب کنید را دست خواهید داد.
از سوی دیگر، اگر شخصاً مثلا فانکشنهای مورد نیاز خود در جاوااسکریپت را بنویسید، شاید به خوبی فانکشنهای موجود نشود -حتی شاید هیچ وقت در یک پروژۀ واقعی به کارتان نیز نیاید و مجبور شوید در نهایت از فانکشنهای آماده استفاده کنید- اما همیشه این شانس را خواهید داشت که به کدهایی که نوشتهاید برگردید، اشکالات آن را برطرف کنید، آن را کاملتر کنید و کسی چه میداند شاید روزی توانستید آن را طوری بنویسید که دیگران ترجیح دهند از آن استفاده کنند.
سخن پایانی
همانطور که در ابتدای مقاله گفتیم، این توصیهها برای استفاده در پروژههای مهم و فوری نیستند بلکه تمرینهایی هستند که نیاز به صرف وقت و دقت کافی داشته و مناسب اوقات فراغت و پروژههای شخصی هستند. این تمرینها دقت، تمرکز، حافظه و در نهایت مهارت شما را بهبود بخشیده و در طولانی مدت موجب موفقیت حرفهای شما خواهند شد
دانلود رمان و کتاب های جدید