Эксперимент. Десятипальцевый, слепой метод набора, для программиста.
Давно мечтал научиться слепому методу набора. По моим соображениям, это не только позволит печатать в темноте, но так же и ускорит скорость набора текста. Что в свою очередь сократит время на разработку тех частей программы, где нужно набрать приличное кол-во текста. К нам подходит Новый Год, пора исполнения желаний. И я решил, что хватит медлить, пора браться за дело..
Прежде всего, я обратил внимание как я печатаю сейчас, выглядело это примерно так:
Следующее, что я сделал, это просто заклеил все кнопки га клавиатуре, в надежде что моторика рук сделает свое дело... Конечно пальцы что-то помнили, однако это было оооооочень далеко от того, что я хотел получить.. Тем не менее, взяв пару статей с хабра (чтоб было веселее), я их полностью перепечатал. Тем самым подняв уровень правильного десятипальцевого набора. Надо заметить, что заклеенные кнопки помогали - я не ожидал, что "на автомате" так часто буду поглядывать..
С другой стороны, я испытал просто ужасный дискомфорт, т.к. скорость набора резко упала - теперь уже было трудно печатать поток сознания прямо из головы, надо было вспоминать где и какая буквы. Это очень отвлекало и нервировало. Кроме того, на удивление, при десятипальцевом наборе, я начал чувствовать нагрузку на кисти, чего раньше не было..
Поэтому было решено, купить эргономическую клавиатуру, мой выбор пал на проверенный другими вариант - Microsoft Natural Ergonomic Keyboard 4000.
Вскоре клавиатуру мне доставили, какое-то время она провела еще в коробке, т.к. я заканчивал проект и мне важна была скорость. Через пару недель я все же решился, полностью на неё перейти.
Клавиатура отличная, есть настраиваемые кнопки, управление плеером, много всяких интересных штук - типа второго Backspace-а на цифровой клавиатуре. Но главное достоинство, это рай для кистей и рук - эргономика отличная, кладешь руки и они отдыхают. Однако, как всегда, есть большое "НО". Перейти на неё после обычной клавы, мне оказалось очень сложно..
Как я уже говорил, я пробовал печатать десятипальцевым набором, на старой клавиатуре, скорость конечно резко упала, однако она возвращалась. С набором обычного текста (помните я говорил про статьи с хабра), проблем не было. Однако, при попытке написать код программ, я просто зависал.. Дело в том, что, я привык во-первых к всяким сочетаниям, например автодополнения по Ctrl+Пробел, делал я это левой рукой. Однако при десятипальцевом наборе, пальцы левой руки должны лежать на буквах [A][S][D][F]. Соответственно как только я переносил руку на Ctrl+Пробел, мне приходится снова точно вернуть руку в исходную позицию, но это не главная беда. Как всем программистам широко известно, мы часто используем скобки в имени метода, фигурные скобки для тела метода, и квадратные скобки для массивов. Кроме того, часто используются одинарные и двойные кавычки, ну и конечно точка с запятой. Если Вы посмотрите на клавиатуру, то вся эта часть символов находится в районе которым управляет мизинец правой руки. Не знаю как у Вас, но у меня он не особо разработан для быстрых манипуляций. Поэтому печатать текст программ (особенно сразу из головы) очень проблематично - мало того, что ты забываешь где какие символы, так еще и из-за не разработанного пальца бывает попадаешь на две кнопки одновременно, приходится исправлять ситуацию backspace-ом.
В итоге, я начал больше использовать Ctrl+C / Ctrl+V, вместо набора. Мне стала лень писать маленькие сервисы упрощающие жизнь, т.к. я точно знаю что за свободный час, не успею его написать из-за проблем с вводом.. Печалька..
Однако, я не из тех людей, которые так просто сдаются.. Какого черта, это всего лишь 100+ клавиш. И результат который меня удовлетворит должен выглядеть примерно так:
Что же делать, как же быть..
По моему опыту, в достижении любого результат, важно несколько вещей:
- Стратегия, четкий план
- Ежедневное улучшение результатов, опыт
- Пересмотр стратегии для наилучшего результата
Как же это применить к моему случаю? Раз мне трудно печатать тексты программ, то логично предположить, что мне надо именно на них и отрабатывать свои навыки. Это и будет моей стратегией. Печатать тексты программ, которые придумываешь сам - медленно, т.к. отвлекаешься на обдумывание логики работы. Соответственно, идеальный вариант на сегодня, взять какой-то кусок текста программы и набрать его, потом взять еще один и тоже его набрать. Но, тут обязательно вылезет одна черта моего характера - скука от неинтересной работы (ДА!, это именно работа, работа по улучшению себя).
Поэтому я выбрал книгу по программированию, на мой взгляд это самый подходящий вариант - тут есть и тексты, есть и листинги программ и самое главное это познавательно.
Книга которую я решил использовать: Zend Framework. Разработка веб-приложений на php (Викрам Васвани)
Все что остается - это печатать и смотреть результаты. Именно этим я и займусь, но сперва, мне интересно текущее положение вещей на старой клавиатуре, при наборе несколькими пальцами.
Я подключил свою старую, любимую клавиатуру A4Tech KR-750:
Уселся поудобнее, включил таймер (который тут же написал на JavaScript) и замерил скорость набора вот этого текста:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
МОДЕЛИ К этому моменту вы уже хорошо знакомы с представлениями и контроллерами, которые соотвественно представляют собой слой пользовательского интерфейса и слой обработки в приложении, использующем MVC. Модели представляют слой данных, ответственный как раз за представление канала, черезе который можно получить доступ к данным, так и за поддержание и соблюдение любых бизнес правил, связанных с этими данными. Напрмиер, при создании системы учета книг для онлайн-бибилиотеке вы можете использовать модель Transaction, которая будет не только записывать информацию о взятых и возвращенных книгах, но и содержать правила, запрещающие читателю иметь на руках более пяти книг единовременно или автоматически рассчитывающие плату за просроченный возврат и списывающие её со счета соответствующего пользователя. Аналогично, при создании приложения для продажи авиабилетов вы можете использовать модель Ticket, которая будет не только сохранять и получать записи о приобритении билетов, но и автоматически увеличивать или уменьшать стоимость билета в зависимости от загруженности конкретного рейса. Пример простой модели: <?php // Модель для обработки данных о клиентах class MemberModel { protected $db; public $id; public $name; public $age; public %type private $rete; // конструктор // инициализируем подключение к базе данных public function _-construct() { $this->db = new PDO('mysql:dbname=db;host=localhost','user','pass'); $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } // получаем запись о клиенте по его идентификатору public function fetch($id) { $id = $this->db->quote($this->id); $rs = $this->db->query("SELECT * FROM member WHERE id = $id"); return $rs->fetchAll(PDO::FETCH_ASSOC); } // получаем записи обо всех клиентах public function fetchAll() { $rs = $this->db->query("SELECT * FROM member"); return $rs->fetchAll(PDO::FETCH_ASSOC); } // добавляем новую запись о клиенте public function save() { // фильтруем входные данные $f = array(); $f['name'] = htmlentites($this->name); $f['age'] = htmlentites($this->age); $f['type'] = htmlentites($this->type); // проверяем возраст if ($f['age']<18) { throw new Exception('Member under 18'); } // автоматически вычисляем скидку в зависимости от статуса клиента switch($f['type']) { case 'silver': $f['rate'] = 0; break; case 'gold': $f['rate'] = 0.10; break; case 'platinum': $f['rate'] = 0.25; break; } $this->db->exec( 'INSERT INTO member (Name, Age, Type, DiscountRate) VALUES ('. $this->db->quote($f['name']).', '. $this->db->quote($f['age']).', '. $this->db->quote($f['type']).', '. $this->db->quote($f['rate']).')' ); return $this->db->lastInsertId(); } Как видите, для взаимодействия с базой данных MySQL эта модель использует слой абстракции PHP - PDO. Она представляет несколько методов для получения записей из базы данных и сохраняет их в базу. В ней также содержатся некоторые бизнес-правила (автоматический подсчет скидки, основанный на статусе клиента) и некоторые правила валидации ввода. |
Я его набрал за 17:27. Word показал что текст содержит 3372 знака, включая пробелы. Это соответствует скорости 193 знака в минуту. При этом, я подглядывал на клавиатуру. Согласно википедии это довольно не плохой результат, т.к. при слепом методе набора у обычных пользователей скорость от 200 до 400 нажатий клавиш в минуту. Но я же печатал не в слепую и не 10 пальцами..
Скорость печати зависит от времени тренировок и от персональной предрасположенности (строение рук, состояние нервной системы и т. д.). Обычный обученный пользователь достигает при прохождении «10-минутного теста» скорости от 200 до 400 ударов в минуту.
Тут же, я решил проверить, тот же самый текст, но на новой клавиатуре, строго соблюдая положение пальцев и не смотря на клавиатуру. Я потратил на набор около часа и получил среднюю скорость: 51 знак в минуту. Именно, эту скорость я бы и хотел прокачать, хотя бы до 400 символов в минуту.
Эксперимент
Сегодня 22 декабря 2013 года, следующие 9 дней я буду печатать текст из этой же книги на новой клавиатуре от Microsoft, четко соблюдая основные правила:
- минимум 1 час в день
- правильное положение рук
- десятипальцевый набор
- не смотреть на клавиатуру
31-го декабря 2013, я повторю замер и опубликую результаты. Если они окажутся положительными, это докажет, что для того, чтобы научиться печатать "вслепую", нужно лишь недельку две печатать, текст. И ничего больше 😀
А с какой скоростью печатаете вы?
[poll id="5"]
Дневник результатов
24.12.2013
За сегодняшнюю 2 часовую тренировку набрал 7550 знаков. А именно: 7551 символ за 1:41:30, что соответствует средней скорости в 74 зн/минуту. Заметил, что с русским текстом, вроде как, получается быстрее и с меньшим кол-вом ошибок. Поэтому завтра сосредоточусь на сложном, а именно на листингах программ, ведь именно их и надо мне прокачать.
23.12.2013
За сегодняшнюю 2.5 часовую тренировку набрал 13000 знаков. В конце тренировки замерил скорость: 3095 символов за 37:20, что соответствует средней скорости в 83 зн/минуту.
31.12.2013
Итак, пора подвести итог - за неделю занятий, моя скорость набора выросла примерно в два раза и сейчас колеблется в районе 90-100 зн./минуту. Разумеется это не предел и она вскоре вырастет ещё. Надо заметить, что в процессе тренировки основную сложность вызывают опечатки - т.е. проблема не в маленькой скорости набора, а в том что я часто набираю не те буквы, что надо. Осознал я это пару дней назад, и решил все таки погуглить рекомендации. В Youtube я наткнулся на уроки от Михаила Портнова (да-да, это именно тот Портнов с форума GovorimPro.US). У него есть целая научная работа на тему слепого набора опубликованная еще в СССР, более того есть сайт посвященный этой теме: Машинопись для всех. На этом сайте есть видео, в которых автор за 1 занятие обучает группу, навыкам быстрой печати.
Я посмотрел эти видео - и моя догадка подтвердилась - проблема в том, что "пальцам" трудно запомнить сразу всю клавиатуру - надо начинать с малого. Михаил так же описал как надо тренироваться в методических материалах, находятся они тут: http://www.portnov.com/typing/keyboarding_russian.htm (ссылка перестала работать 23/01/2018). В ней покрыты и русские клавиши и английские.
Я успел позаниматься по ней пару дней (прошел средний ряд), результат есть!!! Причем, тренироваться не сложно, так что всем рекомендую - просто попробуйте!!!
Единственный недостаток - это белый фон страницы, у меня уставали глаза, т.к. во время тренировки надо не смотреть на клавиатуру, а только в экран. Конечно, кто-то бы смерился с таким неудобством, однако я же профессиональный веб мастер, поэтому быстренько тюнинганул страницу методички - сделал темный фон, серый цвет букв, а так же встроил форму ввода: Мой вариант методички. Как результат тренироваться стало легче.
Еще один важный момент, который я заметил - это то, что я не правильно сидел за клавиатурой - посмотрите видео, там обсуждают правильную осанку и положение рук. Мне было легко сменить позу, т.к. я учусь играть на фортепиано, и правильная посадка за клавиатурой очень похожа на посадку за музыкальный инструмент. Почему я раньше об этом не думал - не знаю. Зато знаю, что после принятия нужной позы спина стала уставать меньше. Так что, даже если Вы не собираетесь учиться печатать, все равно посмотрите эти видео!!!
Напоследок скажу, что этот пост выглядит как реклама сайта, или видео, или Михаила.. однако, это не реклама, это рекомендация действительно полезного материала!
Напоследок покажу правильную посадку за клавиатурой:
Что надо выделить:
- Ровная спина. Не облокачиваться на стул.
- Расправленные плечи
- Предплечья и кисти не лежат на столе
- Предплечье с плечевым суставом образуют угол ~ в 90 градусов
- Кисти рук должны быть продолжение предплечья и не сгибаться
- Пальцы рук должны находиться в положении, как будто вы держите в ладошке яблоко
- Ноги должны стоять ровно на полу
Вот собственно и все рекомендации. Удачи Вам в освоении слепого метода набора! Я же, если не забуду, напишу о своих результатах через год.
С Новам Годом! Урааааа!!!
-- [добавлено, 06.02.2015] --
Прошел год. К сожалению, я так и не овладел слепым 10-пальцевым методом набора. Основная проблема в том, что не следовал требованиям. Меньше чем через неделю, вернулся к "обычной" печати. Однако, новая клавиатура "разделила" руки на две зоны, что способствовало повышению скорости печати. В любом случае, я все же планирую вернуться к занятиям и овладеть данным навыком. До встречи еще через год! 🙂
Author: | Tags: /
| Rating:
5 comments.
Write a comment