Научился: Общие поля и действия из нескольких методов выводить в отдельный метод - так оптимизируется код. Передавая методу входной аргумент (в нашей работе это private void start(string my_mode)) можно легко и красиво написать обработку нужных действий в этом методе, а не писать 4 отдельных метода на каждую кнопку.
Написал собственную функцию проверки квадратного корня. Трудности: Иногда запутывался когда меняли ход логики программы по ходу написания, помогала перемотка назад и повторный просмотр непонятного куска. Немного добавляют сложности постоянные преобразования типов (ToInt16(), ToString()), но видимо это особенность языка и от этого никуда не деться. Отличная программа чтобы тренировать математический аппарат мозга, легко делаю вычисления с max_count<1000, выше уже приходится тратить достаточно много времени :)