برای پیادهسازی مقاله به چه چیزهایی نیاز داریم؟
پیاده سازی مقاله یکی از چالشهای اساسی است که در دانشگاه و محیط کار با آن روبرو هستیم. و همه ما وقتی اولین بار با یک موضوعی روبرو میشویم سردرگم میشویم و نمیدانیم از کجا شروع کنیم. هر کاری را بخواهیم انجام بدهیم، به یک سری ابزار و دانش اولیه نیاز داریم. پیادهسازی مقاله هم یک سری پیشنیاز دارد، که اگر بهشون توجهی نکنیم حتما با مشکل مواجه خواهیم شد.
در این پست میخواهیم بدانیم، برای پیاده سازی مقالات تخصصی، در ابتدای کار چه چیزهایی را باید بلد باشیم.
قبل از اینکه نکته ای رو بگم باید اشاره کنم که بنده و نه دوستام به هیچ عنوان پروژه یا پیاده سازی مقاله انجام نمیدهیم و تمام تمرکز ما بر آماده سازی دوره های تخصصی و پروژه محور هست که به شما کمک کنند خودتون پروژه هاتون رو انجام بدهید.
من طول 5-6 سالی که وارد حوزه یادگیری ماشین شدهام، مقالات زیادی رو پیادهسازی کردهام (برای دو سال شاید روزانه یک یا دو مقاله) و هدفم اصلا خودنمایی نیست و فقط طبق تقاضایی که دوستان داشتند سعی میکنم نکاتی که به نظر من خوب هستند و بهم کمک کردند رو اینجا با شما در میان بگذارم، شاید برای شما هم مفید باشند .
هر کاری اصول و روال خاص خودش را دارد و برای یادگیری این اصول نیاز به زمان و تمرین داریم. سعی میکنم در چندین پست روال پیاده سازی مقالات تخصصی رو توضیح بدهم.
داشتن مهارت کدنویسی بالا
اگر مهارت کدنویسی خوبی ندارید، مطمئنا و قطعا در پیاده سازی مقاله به مشکل خواهید خورد. داشتن مهارت کدنویسی اساس پیاده سازی مقاله هست. اگر مهارت کدنویسی ندارید، تقویت کنید.
برای بدست آوردن مهارت کدنویسی در یک محیط برنامه نویسی مثلا متلب یا پایتون و یا هر محیط دیگه ای، لازم است در ابتدا با مثالهای بسیار ساده کار رو شروع کیند. کلی مثال ساده انجام بدهید. قرار نیست در یادگیری یک زبان برنامه نویسی ، حتما مثالهای مرتبط انجام بدهیم. مثلا شخصی که پردازش تصویر میخواد کار کنه قرار نیست موقع یادگیری زبان برنامه نویسی حتما مثالهای پردازش تصویر انجام دهد! که نه تنها کار خوبی نیست بلکه چنین کاری تاثیر منفی خواهد داشت! چون مثالها سخت خواهند بود و از طرفی باید یک دانش تخصصی در مورد حوزه پردازش تصویر داشته باشید تا بتونید مثالها را انجام دهید!
پس در زمان یادگیری یک زبان برنامه نویسی، فقط مثالهای ساده و البته کاربردی میزنیم.
کدنویسی باید برای یک مدت کار روزانه شما باشه، هر لحظه مثالهایی که براتون سخت بوده رو تمرین کنید، و سعی کنید هر بار به شکل بهتری مثال را حل کنید و کد منظم و سریعیتری باشد. خلاصه تا زمانی که مهارت کدنویسیتون خوب نشده سمت مقاله نروید!
مقالات پر از روابط و نکات هستند. شما برای اینکه بتوانید روابط پیچیده مقالات رو پیاده سازی کنید، اول باید یاد بگیرید که چجوری میشه روابط رو به یک کد تبدیل کرد. برای اینکار لازم است که در ابتدا با مثالهای بسیار ساده شروع کنیم و بعد رفته رفته مثالهای پیچیده تر.
من خودم به مدت 5 ماه فقط کدنویسی متلب تمرین میکردم. اینم بگم که قبلا در محیطهای برنامه نویسی مختلفی کار کرده بودم و با اوصول کدنویسی آشنا بودم. مثالهایی که انجام میدادم بسیار عجیب و بی ربط بودند. ولی برای بعضی مثالها نزدیک یک هفته وقت میگذاشتم و راه حل براشون پیدا میکردم و کدش رو مینوشتم.این تمرینات پیوسته بهم کمک کرد یه مهارت مناسبی در کدنویسی بدست بیارم و بعدا در پیاده سازی مقاله اذیت نشوم.
مطالب را آرشیو بندی کنید
هرچی یاد میگیرید را آرشیو بندی کنید. این خیلی میتونه به روند یادگیری شما در بلند مدت کمک کند. یعنی برای هر پروژه ای که انجام میدهید، هر کدی که مینویسید، یک گزارش خوب و دقیق بنویسید. اگر یک الگوریتمی رو یاد گرفته اید، حتما کدی که براش نوشتین را در جایی مشخص ذخیره کنید. زمانبر هست و اول کار بی معنی به نظر میاد. ولی بعدا به روند پیاده سازی مقاله و سرعت یادگیری خیلی کمک میکند. آرشیو بندی مطالب اول کار بسیار زمان بر هست ولی بعد از مدتی سرعت یادگیری را به طور غیرخطی بالا میبرد.
در مورد اینکه چطور یک گزارش خوب بنویسیم در یک پست جدا بحث خواهیم کرد.
مسلط به زبان انگلیسی
برای اینکه بتوان یک مقاله را پیاده سازی کرد، نیاز به درک مطالب مقاله هست. و برای درک مطالب مقاله، لازمه که زبان انگلیسی رو بلد باشیم و به راحتی بتوانیم یک مقاله رو بخونیم و متوجه مطالب آن شویم. حالا اگر مسلطِ مسلط هم نبودید اشکالی ندارد، با گوگل ترنسلیت هم تا جایی میتونید کارتون رو دست و پا شکسته راه بندازید.
ولی در اولین فرصت زبان انگلیسیتون رو تقویت کنید.
خب الان به نظرتون میتونیم یک مقاله پیاده سازی کنیم؟
میشه گفت بله. ولی کارمون بسیار سخت میشه، داشتن مهارت برنامه نویسی و مسلط به زبان انگلیسی یک شرط لازم است ولی کافی نیست!
داشتن دانش تخصصی(یادگیری مباحث پایه در حوزه مورد نظر)
فرض کنید من میخواهم یک مقاله یادگیری ماشین پیاده سازی کنم ولی هیچ شناختی به حوزه یادگیری ماشین ندارم، هیچ کاری نمیتونم بکنم! برای اینکه بتوانیم یک مقالهی مرتبط با یک حوزه ای را پیاده سازی کنیم، لازم است که در ابتدا یک شناخت دقیقی از حوزه داشته باشیم. مباحث پایه را یاد بگیریم و درک مطالب مقاله برای ما ساده باشد.
مثلا در یک مقالهای در مورد یک شبکه عصبی جدید صحبت میکند، من اگر با حوزه شبکه عصبی آشنا نباشم، به هیچ عنوان نمیتوانم درکی از مقاله بدست بیارم. حالا اگه متوجه بشوم مقاله چی گفته، دیگه واقعا نمیتونم پیادهسازیش بکنم. چون هر حوزه ای قاعده و روال خاص خودش رو داره که من باید اونارو اول بلد باشم تا بتونیم مقاله رو در اون چهارچوب پیاده سازی کنم.
به یاد داشته باشیم که مقالات فایل آموزشی نیستند که همه جزئیات کار رو توضیح بدهند. خیلی از مباحث رو پیشپا افتاده فرض میکنند و بهشون حتی اشاره ای نمیکنند. شخصی که با اون حوزه آشناییت نداشته باشه، واقعا با دردسر بزرگی روبرو میشه!
متاسفانه خیلی از دوستان بدون یادگیری مباحث پایه سراغ پیاده سازی مقاله میروند و به مشکل میخورند. و آخر کار مجبور میشن کلی هزینه کنند و بدهند یکی دیگه براشون پیاده سازی کنه! که کار درستی نیست! به دو دلیل:فرصت یادگیری رو از خودتون میگیرید و همچین فوبیای پیاده سازی مقاله بهتون دست میده و بی نهایت اعتماد بنفستون پایین میاد! از لحاظ حرفه ای هم که اصلا کار درستی نیست. یک بحث دیگه، متاسفانه به تور افرادی هم میافتید که تخصص حرفه ای در عددسازی دارند و به جای پیاده سازی مقاله، بهتون یک کد دستکاری شده میدهند که در واقعیت کار خاصی نکردند. بگذریم از این موضوع پر حاشیه…
هدف ما اینه که شما به هیچ عنوان کارتون رو نسپارید بقیه انجام بدهند. هدف اینه که مسیر رو مشخص کنیم تا خودتون کارهاتون رو با کیفیت و خیال راحت انجام دهید.
وقتی صحبت از مقاله میشه، باید بدونیم که از نوآوری، بهبود، توسعه یک الگوریتم یا رویکرد صحبت میکنیم. پس در اکثر موارد مقاله ارائه شده، میتونه نسبت به رویکردهای قبلی پیچیده تر باشه. ولی نگران نباشید. اگر شما مباحث پایه رو بلد باشید، حتما مقاله و رویکرد جدید رو میتونید پیاده سازی کنید.
باور کنید بعضی مقالات تنها با یکی دو خط کد میشه پیاده سازی کرد! اشتباه نکنید! منظورم اینه که مثلا یک مقاله ای اومده الگوریتم x رو بهبود داده و شده y، در خیلی از موارد y شبیه به x است و تنها در یکی دو بخش با x متفاوت هست. شما اگر رویکرد x را بلد باشید و کدش رو از قبل نوشته باشید، میتوانید با تغییر یا اضافه کردن دو سه خط کد به کد مربوط به الگوریتم x، الگوریتم y را پیاده سازی کنید.
اینطوری بود که من روزانه دو سه مقاله پیاده میکردم. الانم بخوام مقاله ای رو پیاده سازی کنم و مرتبط با مواردی باشه که یادگرفتم شاید بییشتر از یک ساعت وقت نگذارم.
دلیلش اینه، مباحث پایه رو یاد گرفته ام، کدنویسی میتونم انجام بدم، و از همه مهمتر، تمام مطالبی که در این 5-6 سال یاد گرفته ام آرشیو شده اند. کدشون و گزارششون رو دارم و میرم گزارش رو مطالعه میکنم و متوجه میشم که چی به چیه. بعدش از کد نوشته کمک میگیرم برای مقاله جدید.
ولی بهتره اشاره کنم که اولین مقاله ای که پیاده سازی کردم حدود دو ماه طول کشید! ولی نمره کامل گرفتم و کلی خوشحال بودم از این ماجرا…
در پست بعدی توضیح میدهیم که چجوری یک مقاله رو پیاده سازی کنیم؟!
[…] مقاله وقت لازم نباشد. در مرحله قبل توضیح دادیم که ” برای پیاده سازی مقاله به چه چیزهایی نیاز داریم“، حال اگر شما مهارتهای لازم را کسب کرده باشید […]
سلام
مطلب خوبی بود ممنون از شما
سلام
خوشحالیم که براتون مفید بوده
موفق باشید
سلام ممنون از مطالبتون
کارت درسته