اساس هر برنامه نویسی روی ... پازل

با سلام، ساکنان خابروفسک!

در این مقاله می خواهم در مورد تجربه خود به عنوان معلم برنامه نویسی C++ در یک کالج در یک دانشگاه فنی صحبت کنم. این یک تجربه در زندگی بود که چیزهای زیادی به من آموخت. وقتی صحبت از حقایق جالب از گذشته شخصی شما می شود، این قسمت از زندگی یکی از اولین مواردی است که به ذهن می رسد.
برو

ابتدا کمی در مورد خودم.
در سال 2016 با درجه عالی در رشته امنیت اطلاعات سیستم های خودکار از موسسه فارغ التحصیل شدم. در طول تحصیل، بارها توانستم توانایی های خود را در نوشتن مقالات علمی، شرکت در مسابقات و کمک هزینه ها به کار ببرم. در سال 2015، من این فرصت را داشتم که برنده مسابقه همه روسیه برای دانشمندان جوان "UMNIK" شوم. در سال 2016، قبل از اتمام تحصیلات خود، قبلاً در یک سازمان بزرگ در شهر به عنوان "متخصص امنیت اطلاعات، رمزنگاری و رمزگذاری" استخدام شده بود.
خلاصه یه همچین چیزی می توانید تصور کنید که من هنوز ایده ای در مورد برنامه نویسی داشتم.

و اینجا 2017 است. تحصیلات تکمیلی. از من خواسته شد که یک ترم در یک کالج به زبان ++C تدریس کنم که به من قول پاداش های خوبی داده شد تا بار یک دانشجوی فوق لیسانس را کم کنم و نه بیشتر.

صادقانه بگویم، من صمیمانه علاقه مند بودم که خودم را در این باور امتحان کنم.

جفت اول
سپتامبر. هفته اول مدرسه دانش آموزان نزد من آمدند. "شیطان ترین گروه" - این چیزی است که آنها نامیده می شوند.
23 نفر. "برنامه نویسان".

همانطور که انتظار می رفت ابتدا خودم را معرفی کردم. محتاطانه مطالب قسمت «اول، کمی درباره خودم» را به آنها گفتم...
سپس اتفاق وحشتناک شروع شد. در پاسخ به این سوال که "چه کاری می توانید انجام دهید؟" دانش‌آموزان (از این به بعد آن‌ها را همین‌طور صدا می‌زنیم) پاسخ دادند که می‌توانند کمی بیشتر از هیچ کاری انجام دهند (خوب، این بدان معناست که برخی از آنها می‌دانستند MS VS چگونه است و می‌توانند یک پروژه «Hello world» ایجاد کنند). .. برنامه نویسان. آخرین دوره…

علاوه بر این، آنها با جزئیات "در رنگ" توضیح دادند که چیزی به آنها آموزش داده نشده است و به طور کلی از برنامه نویسی ناامید هستند ...

تقریباً تمام روزها تا کلاس بعدی من به این شکل گذشت:
اساس هر برنامه نویسی روی ... پازل

... اما روز قبل این فکر به وجود آمد که برای اصلاح وضعیت موجود در ذهن و آگاهی این جوانان تلاش شود. و سپس "اوستاپ رانده شد."

مقدمه ای بر برنامه نویسی
برای درس بعدی ... پازل آوردم.
بله بله. پازل. "چطور اژدهای خود را آموزش دهید." قوانین ساده بود. این گروه به 3 تیم تقسیم شد. هر تیم قسمت خود را جمع آوری کرد. برخی جنگل، برخی دیگر زمین، برخی دیگر اژدها در مرکز تصویر هستند. در حالی که تمام زوج در حال چیدن پازل بودند، من این را به آنها گفتم چیدن یک پازل نیز برنامه نویسی استاینکه برنامه نویسان اغلب از کد شخص دیگری استفاده می کنند، که هر پروژه دارای چندین تیم، ویژگی، ماژول متفاوت است...
به تدریج بی حال ترین دانش آموزان به این روند پیوستند.
وقتی ایده برنامه نویسی را به مفاهیم کسب و کار، فرآیندها و ... پازل ها مالش دادم، زمان آن رسیده بود که قوانین آموزش را ایجاد کنم.
برای هر درس، هر دانش آموز باید 10 اصطلاح از IT را در یک دفتر یادداشت می کرد. هر هرکسی خودشو داره نکته این است که من دفترچه یک دانش آموز را برداشتم و از بین تمام اصطلاحات پیدا کردم حداکثر اعمال شود و از دانش آموز دیگری در مورد آنها پرسید. وقتی دانش‌آموز دیگری می‌گوید: «من آن عبارت را یادداشت نکردم»، جریمه‌ای وجود نداشت (به دلیل عقل سلیم)، اما آن دانش‌آموز مجبور بود اصطلاحات «از دست رفته» را بنویسد (مثل هر کس دیگری که آنها را نداشت). و معانی آنها را با شغل بعدی بیابید.

این کاری است که ما انجام دادیم. هر درس با تصادفی شاد در رابطه با دو یا سه دانش آموز شروع می شد. بچه ها برای این روند اشتیاق داشتند.

موضوعات درس
هنگام شروع آموزش، ارائه ادبیات خوب به دانش آموزان بسیار مهم است. به نظر من کتاب ایده آل این بود:
اساس هر برنامه نویسی روی ... پازل

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

شما متواضعانه به سمت دانش آموزان می روید و می گویید: "برای برنامه نویس شدن، فقط باید همه چیز این کتاب را بخوانید و امتحان کنید" و کتاب را روی میز بیندازید. نکته اصلی این است که کتاب های کوله پشتی خود را اشتباه نگیرید...

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

یک تست تصادف بسیار قوی از دانش حقایق اساسی در مورد برنامه نویسی. من دیگر برنامه نویس نیستم، تاریخ دان هستم!

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

کارهای آزمایشگاهی
اولین اطلاعات کاربردی اولین "آزمایشگاه" است. در مجموع، گروه در طول ترم 10 کار آزمایشگاهی را پشت سر گذاشت. در ابتدا ساده ترین کنسول را ساختند + بو در دومی آنها نوشتند، اگرچه مبتنی بر کنسول، اما برنامه های بسیار جالب، مانند محاسبه مقدار انتگرال برخی از تابع های دلخواه با استفاده از یکی از سه روش - تقریباً همان وظایف در گواهی نهایی - کار دوره.

این فقط رویکرد پذیرش است هیچ آشنا بود در تمام مدت تحصیلم در مؤسسه با این واقعیت مواجه بودم که باهوش بودن و توانایی دادن به گزارش ها یکی نیست. این اصلا به من نمی خورد

- بچه ها، داشتم فکر می کردم. بیایید یک رابطه «مفهومی» بسازیم. اگر هر یک از شما فکر می کند که نیازی به برنامه نویسی ندارید، در آن جاست. من به شما رایگان آموزش می دهم. من می خواهم اینجا فقط علاقه مندان کنجکاو، دلسوز و دلسوز را ببینم. در روز اول کار آزمایشگاهی گفتم: «از بقیه می‌خواهم که وقت همه را تلف نکنند. پس از این بلافاصله 5 نفر از حضور در کلاس ها منصرف شدند. این منطقی و قابل انتظار بود. می شد سعی کرد با بقیه کاری قابل فهم انجام داد.

- ... من علاقه ای ندارم ببینم کسی کار شما را انجام می دهد تا آن را پاس کنید. شما ممکن است برنامه نویس نباشید، اما افرادی در کلاس های من خواهید بود باید به.

اینطور به نظر می رسید:

case отличник

دانش آموزی با من می نشیند تا کارش را تحویل دهد.
- آیا این کار را خودت انجام دادی؟
- بله
- این چیه؟
- *درست پاسخ می دهد*.
* چند نکته دیگر را می پرسم. درست جواب می دهد*
- پذیرفته شده. عالی.

case болтун

- آیا این کار را خودت انجام دادی؟
- بله
- این چیه؟
- *اشتباه پاسخ می دهد / پاسخ نمی دهد*.
* چند نکته دیگر را می پرسم. همین نتیجه*
- قابل قبول نیست. ناموفق منتظر بازپس گیری هستم

case хорошист

- آیا این کار را خودت انجام دادی؟
- بله
- این چیه؟
- *درست پاسخ می دهد، اما نه با اطمینان، شنا می کند*.
* چند نکته دیگر را می پرسم. همین نتیجه*
- پذیرفته شده. خوب.

case ровныйТроечник

- آیا این کار را خودت انجام دادی؟
- نه
- چرا؟
- دشوار. او به من کمک کرد ... *راستش از یک دانش آموز ممتاز از گروه نام می برد*
- فهمیدی؟
- بله، تقریباً همه چیز را فهمیدم.

- این چیه؟
- *درست پاسخ می دهد*.
* چند نکته دیگر را می پرسم. پاسخ های کم و بیش درست، گاهی کاملا اشتباه، حتی اگر 50/50 درست و نادرست باشد*
- پذیرفته شده. خوب.

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

اساس هر برنامه نویسی روی ... پازل

Оценки
روند آموزشی، مانند تمام جهان، به معنای واقعی کلمه در برچسب قیمت و نمرات غرق شده است.
دانش آموزان هم مردم هستندبا این حال، به نظر من، «چارچوب» در اینجا نیز باید «تکان» می شد.
در طول ترم به همه یک وظیفه پاداش داده شد. ثبت نام برای github.com، یک پروژه C++ خالی را در آنجا آپلود کنید، 2 به روز رسانی انجام دهید، آنها را متعهد کنید و فشار دهید. برای این اقدامات، 15 مورد تعیین شد، بله، بله، نه 4، نه 5، بلکه 15. سه نفر آن را فهمیدند. این به نوعی برای روان دانش آموز قابل درک بود، اما پس از آن مورد دیگری وجود داشت.
یک بار زن و شوهر ما نقل مکان کردند تا او آخرین نفر باشد و همچنین از طریق چند پنجره. با این حال، هنوز 15 نفر به آن مراجعه کردند. من نمی خواستم موضوع جدیدی را به افتخار چنین قهرمانی توضیح دهم، زیرا ما قبلاً در موضوعات کاملاً خوب پیشرفت کرده بودیم + موضوع بعدی برای مغزهای خسته (من و دانش آموزان) خیلی ساده نبود. بعد تصمیم گرفتم در مورد فلسفه صحبت کنم.

- من جاذبه ای از سخاوت بی سابقه را اعلام می کنم. همه به من می گویند برای جفت امروز چه نمره ای به او بدهم.
همه یک "الف" می خواستند.
گفتم: «آن را از قبل آنجا در نظر بگیرید. همه خوشحال بودند.
سکوت
- چرا کسی نخواست؟ 7-ku یا 10-کو؟
چشمان همه گرد شد و شروع به لبخند احمقانه ای کردند.
- شرط می بندی؟ به مجله؟! - صدایی از پشت میز آمد.
- بله راحت! - گفتم، - من یک بلیتز را با شرایط اعلام می کنم، هرکس به 10 سوال من پاسخ دهد - شرط می بندم در روز سیزدهم به مجله، بدون شک، هر کس جواب نمی دهد همان است -10 (منهای ده).

«تیم سرحال شد، بحثی شروع شد»، همه صادقانه امتیاز گرفتند. دو نفر داوطلب شدند. با نادرستی جزئی، آنها به نوبت با 10 سوال در مورد توابع پشته، صف، سازنده، تخریب کننده، جمع آوری زباله، کپسوله سازی، چند شکلی، توابع هش...
هر کدام در یک مجله کشیده شده بودند 20... اما اهمیت مجله و نمرات در چشم همه افتاد. اکنون متأسفم که نپرسیدم که آیا آنها مایلند ارزیابی خود را با کسی "به اشتراک بگذارند". به نظر من که با هم شریک می شدند... از این به بعد همه با علم و صداقت «آزمایشگاه» را تحویل دادند.

از این لحظه به بعد، نوع دیگری از تحویل آزمایشگاهی ظاهر شد:


case честноНеЕгоНоОнПытался

- آیا این کار را خودت انجام دادی؟
- نه
- چرا؟
- دشوار. او به من کمک کرد ... *راستش از یک دانش آموز ممتاز از گروه نام می برد*
- فهمیدی؟
- سرگئی نیکولاویچ، صادقانه بگویم، من چیزی نمی فهمم، بنابراین در کنار هر خط نظراتی نوشتم - خوب، این موضوع من نیست، من یک راننده تراکتور خواهم شد
- این چیه؟
— *نظر مقابل خط* را می خواند.
- ...
- ...
- تفاوت بین MTZ بلاروس و Don 500 و K700 چیست؟
- ??!.. اولین تراکتور چرخ دار ساخت مینسک است که اغلب در انواع سبک و متوسط ​​تولیدات کشاورزی استفاده می شود. همچنین دارای چرخ های کوچک در جلو و چرخ های بزرگ در عقب است. Don 500 اساساً یک دروگر است و K-700 Kirovets یک تراکتور چرخدار آفرود همه منظوره شوروی، کلاس کشش 5 است.
- پذیرفته شده. خوب (!!!).
- متشکرم سرگئی نیکولاویچ!!!

در وطن من، صحبت در مورد TractorA تقریباً مانند صحبت کردن در مورد SOLID در اینجا است.

نبوغ
یک نابغه در گروه من بود. دانش آموز از همان کلاس اول خیلی دیر آمد و پازل را با بقیه کامل نکرد. سپس از او خواستم آنچه را که برای درس بعدی برای همه برنامه ریزی کرده ام انجام دهد - روی یک تکه کاغذ برای خودش بنویسد که به چه چیزی علاقه دارد، چه چیزی به او علاقه دارد. با توجه به نتایج، "نابغه" 2-3 خط داشت: چیزی شبیه به "بیهودگی بودن را می فهمم" ...

...خدایا تو گروهم لائوتسه دوم و کوجیما رو یک نفره دارم...
اساس هر برنامه نویسی روی ... پازل

در کمال تعجب، در دو کلاس اول او واقعاً به سؤالات مربوط به اصطلاحات به خوبی پاسخ داد، اما تأثیر آن زیاد دوام نیاورد. "نابغه" از حضور در کلاس ها منصرف شد و دفعه بعد فقط برای گذراندن اولین کار آزمایشگاهی آمد که با موفقیت به پایان رسید. عبور نکرد به دلایل عینی سپس به دلیل غیبت، طبیعتاً قرض هایی انباشته شد که به اعتقاد او، من به سادگی موظف بودم که او را، به اصطلاح، "به روشی برادرانه" بشمارم..
عدم حضور زوجین + افزایش ضربان قلب برخلاف اصول ثابت شرکت در کلاس های من بود. "نابغه" فقط 2 راه برای برون رفت از این وضعیت داشت - بازپروری خود (مسیر مورد انتظار) یا کنار گذاشتن کلاس ها و امید به "C" که توسط ریاست دانشگاه داده می شود تا از شر سستی خلاص شود.
خوب، این «نابغه» است... شما باید فوراً «درخشنده» عمل کنید. این مرد جوان چیزی بهتر از این پیدا نکرد که در دیالوگ کلی در VK (جایی که من و همه دانش آموزان این گروه بودیم) یک طنز خشمگین با نفرین و فحش خطاب به من بنویسد.

هوم... ناامیدی.
آنچه بیش از همه قابل توجه بود این بود که قبل از اتمام عملیات تنبیهی از سوی مدیریت دانشکده، تصمیم گرفت از من عذرخواهی کند. برای چی؟ - من صادقانه نمی فهمم. در آن زمان، من مدتها بود که مستقل از انتقاد، به ویژه چنین انتقادهای رک و راست احمقانه ای بودم. شخصیت من تحت تأثیر قرار نگرفت، اما فرآیندها فرآیندهایی هستند و به عنوان یک معلم نمی‌توانستم این را گزارش نکنم. همانطور که معلوم شد، در دوران تحصیل شکایت های زیادی علیه او جمع شده بود که این مورد آخرین مورد بود. او را اخراج کردند. از سال آخر هنرستان.
شاید او مدت زیادی است که من را از دید یک تفنگ تک تیرانداز تماشا می کند، اما، صادقانه بگویم، من اهمیتی نمی دهم.
ای نابغه تو بی دلی...

خاتمه
برای من شخصا، تجربه تدریس یکی از روشنگرترین بود. این به من کمک کرد تا دانش اساسی خود را در مورد برنامه نویسی پس از تحصیل در موسسه تثبیت کنم. من به تخصص انتخابی خود (محدوده تخصص های موجود) اطمینان داشتم. از اهمیت ویژه ای این واقعیت برخوردار است که "شیطان ترین گروه" مرا با احترام و دوستی آغشته کرد - این ارزش زیادی دارد. من موفق شدم راهی برای نوآوران درونی آنها پیدا کنم، سعی کردم واقعیت را القا کنم، نه این اولویت های کلیشه ای. حیف که ما به "پازل" در کدنویسی نرسیدیم - زمانی که همه باید بخشی از کد را انجام دهند و با اتصال همه بخش ها به یک، یک برنامه کاری بزرگ دریافت می کنیم ...
امیدوارم روزی هر کدام از آنها این احساس را داشته باشند ... اما فعلاً در زیر اسکرین شات هایی با نظرات چندین دانشجو پس از 2 سال وجود دارد.

اساس هر برنامه نویسی روی ... پازل

برای نتیجه گیری در مورد موفقیت شغل برنامه نویس برای هر یک از آنها خیلی زود است، زیرا اکنون بیشتر این گروه در دانشگاه تحصیل می کنند. زمان نشان خواهد داد.

امیدوارم مقاله مفید بوده باشد. با تشکر از توجه شما!
موفقیت خلاقانه و خلق و خوی مثبت، همکاران!

منبع: www.habr.com

اضافه کردن نظر