یادگیری زبان C – راهی که من رفتم

یادگیری زبان C

یادگیری زبان C:

برای برنامه نویسی میکروکنترلرهای STM32 می‌توان از زبان‌های سی، سی پلاس پلاس، اسمبلی و … استفاده کرد. که البته در بین این گزینه‌ها، زبان C متداولترین گزینه میان امبددکارهاست. به نظر من، یادگیری زبان C از واجباب کار با میکروکنترلرها است. داشتن مهارت در برنامه‌نویسی با زبان C از اصول و پایه‌های کار، به حساب می‌آید به طوری که اگر این مهارت را داشته باشید، کار با میکروهای شرکت‌های مختلف برایتان سختی خاصی ندارد و براحتی می‌توانید نوع میکرویی که با آن کار می‌کنید را عوض کنید.  در ادامه می‌خواهم از راهی که خودم در این مسیر طی کردم، بگویم. ‌

همانطور که گفتم برنامه‌نویسی با زبان C یا به طور کلی‌تر با هر زبان دیگری، یک مهارت است و مثل هر مهارت دیگری با تمرین و ممارست افزایش پیدا می‌کند. باید در مسیر یادگیری زبان C صبر داشته باشید و گام به گام جلو بروید. نمی‌شود قرص این زبان را خورد و یک شبه در حد لینوس توروالدز برنامه نوشت. من بین یادگیری برنامه‌نویسی و ریاضی شباهت‌های زیادی میبینم. البته به این قائل نیستم که شما باید ریاضی‌تان قوی باشد تا بتوانید برنامه‌نویس خوبی شوید. اما به نظرم کسی که ریاضی‌اش قوی است، به دلیل نوع تفکری که ناشی از حل مسئله است و در ذهنش شکل گرفته، به او در یادگیری سریع‌تر برنامه نویسی کمک می‌کند. در واقع شاید بتوان گفت‌ حل مسئله، مهارت پایه‌تری برای برنامه‌نویسی است و یک برنامه‌نویس خوب کسی است که مهارت حل مسئله بالایی دارد. یادگیری سینتکس یا قواعد دستوری زبان سی، کاری ندارد. می‌توان یک شبه کل آن را حفظ شد. اما این از شما برنامه‌نویس نخواهد ساخت. شما نیاز دارید تا این قواعد را در جای خودش به کار ببرید و با استفاده از آن‌ها مسئله‌ای را حل کنید.

از ابتدای دوره کارشناسی‌ام دوست داشتم مهارت عملی خودم را بالا ببرم و صرفاً درس‌های تئوری دانشگاه را پاس نکنم. در همان دوران به واسطه یکی از اساتید فنی حرفه‌ای -جناب استاد حسام ملازاده، که جادارد همینجا به خاطر نقش زیادی که در مسیر شغلی من داشتند ازشون تشکر کنم- شروع به برداشتن گام‌های جدی‌تر در این زمینه کردم. همان جلسات ابتدایی بود که بعد از درس دادن مقدماتی از کار با میکروکنترلر، به دانشجوها در خصوص مسئله‌ای نه چندان پیچیده گفتند که در کل دوران تدریسشان افراد بسیار کمی آن را حل کردند. شاید بزرگترین بهره‌ای که از کلاس استاد ملازاده گرفتم، رفتن به سمت حل این مسئله بود. مسئله‌ای که تنها با یادداشتن مقدماتی از کار با میکروکنترلر می‌توانستیم آن را پیاده‌سازی کنیم و بیشتر از آنکه معلومات ما را به چالش بکشد، قدرت حل مسئله ما را زیرسوال می‌برد.

در این مسئله، قرار بود تا بازی Snake معروف آن زمان را با دات ماتریکس و 4 کلید شبیه سازی کنیم. اعتراف می‌کنم که خیلی دوست داشتم این چالش را حل کنم و به جمع آن معدود افراد استاد بپیوندم 🙂 از همین رو کل تعطیلات سال نو، کوچکترین فرصت آزادم را برای حل این چالش صرف کردم. پایان تعطیلات فوق العاده بود. دیدن حاصل کار بعد از کلی کلنجار رفتن با مسئله بسیار لذت بخش است. من خودم آن مسئله و حل آن را نقطه عطفی در مهارت برنامه‌نویسی‌ام می‌دانم و به همین خاطر اگر قرار باشد توصیه‌ای در این زمینه بکنم. پیشنهاد می‌کنم برای خودتان مسئله تعریف کنید. این مسئله می‌تواند موضوع پروژه کارشناسی یا یک پروژه که دوست دارید آن را بسازید باشد. برای آن وقت بگذارید و آن را تا حد ممکن بهبود بدهید. این کار شاید به سال هم بکشد اما قطعاً بعد از انجام موفقیت آمیز آن با امروزتان بسیار متفاوت خواهید بود. این نکته را هم توجه داشته باشید که سختی این پروژه را با توجه به سطح مهارتتان تعیین کنید. بیش از حد ساده بودن آن کمکی به افزایش مهارت شما نمی‌کند و سختی بیش از حد آن، ممکن است شما را خسته کند. پس مراقب باشید هدفی انتخاب نکنید که بیش از یکسال رسیدن به آن طول بکشد.

پی‌نوشت:

– بازی snake در آن سال‌ها به واسطه گوشی‌های نوکیا(قبل از انقراض توسط گوشی‌های هوشمند) بسیار متداول بود. اگر هیچ تجربه‌ای از این بازی ندارید یا دوست دارید حس آن دوران را دوباره برای خودتان تکرار کنید، کلمه‌ی snake را گوگل کنید. در اولین گزینه(به شکل ) به شما پیشنهاد انجام این بازی به صورت آنلاین می‌دهد.

– در پست‌های بعدی قصد دارم با استفاده از همین بازی snake آموزش میکروکنترلر STM32 را جلو ببرم. واقعیتش نمی‌دونم حاصل قراره خوب از کار دربیاد یا نه. اما امیدوارم با نظرات و پیشنهاداتتون مسیر رو بهتر و موثرتر طی کنیم.

4
Leave a Reply

2 Comment threads
2 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
  Subscribe  
newest oldest most voted
Notify of
محمد جلوخانی

سلام دوست عزیز
ممنون از توضیحات خوبتون
خیلی هم عالیه و خداپسندانه
احساس میکنم نیتتون خیره پی مطمئن باشید ثمر میده

حداقل دعای خیری پشت سرتون هست
منم برنامه نویسم ولی خیلی دوست دارم این آموزش شما رو دنبال کنم

لطفا با امید ادامه بدید ، مطمئن باشید بعد از پایان شوق سرشار ببینندگان رو خواهید دید

بسیار عالی استاد
پروژه های اسنکی ادامه دار باد *آمین*