Як збільшити швидкість розробки і уважність
Fullstack WEB dev, software / DB architect, sysadmin
Швидкість роботи штука каламутна і неоднозначна. Давно встановлено як факт, що мозок може одночасно зберігати в свідомості 7 + -2 об'єкта, тобто від 5 до 9, в залежності від купи факторів. Все що понад того, потрібно якось хитро організувати, інакше вийде каша. Та й продуктивно напружувати мозок більше 4-5 годин на добу в сукупності можуть тільки просунуті джедаї.
Будь-яка робота будь-якого програміста починається з побудови моделі програми / модуля, над яким належить попрацювати. У цьому процесі важливим ланкою є моделювання потоків вхідних і вихідних даних.
Коли модель більш-менш вибудувана, необхідно опрацювати архітектуру програми, що є фундаментом, що стінами, що дахом, що комунікаціями, а що обробкою (косметикою), і як це все стикується з іншими агрегованими технологіями.
В процесі простраіваніе архітектури заодно спливають все супутні технології, і можливо кількаразове переосмислення як моделі так і архітектури, тому що це речі взаємопов'язані.
Коли модель і архітектура більш-менш устаканиться, можна починати щось планувати по частині реалізації, зазвичай починають з фундаменту.
Важливий фактор полягає в тому, що і модель і архітектуру необхідно тримати в голові цілком, з усіма деталями, і вгруз це добро в голову, і там устаканить, часом займає пристойно часу.
Далі в процесі реалізації обов'язково буде вдаватися манагер з новими проривними ідеями, і віщати, що це ж дрібниця, дурниця і взагалі. Насправді такий манагер дилетант, а проекту загрожує слив (зрив термінів, бюджету та ін.), Причому винуватим стане відповідальний розробник.
Однак життя - штука динамічна, а живий і довгограючий бізнес завжди знаходиться в резонансі з життям, тому такий же динамічний, і на болту крутив відмовки і відмазки ледачих прогерія. Тому манагер по суті прав, але від цього не легше нікому.
Джуну зазвичай зливають щось, з одного боку нетермінове і не ключове, з іншого боку на чому він може вчитися. Ясен-прекрасний, що у джуна в голові всіх цих хитросплетінь немає і він носиться як курка з писаною торбою зі своїм модулем / класом.
Найперший рада Джуну - катувати старший з пристрастю щодо всіх найменших нюансів свого завдання, тому що з огляду на дефіцит досвіду, досить велика ймовірність неправильно зрозуміти завдання, займатися багато часу не тим і не туди, за що згодом відгребти, хоча і розширив при цьому кругозір.
Друга рекомендація усвідомити, що джун - це такий ремісник-підмайстер, який робить цеглу руками, як правило повільно і криво.
Пів-року це дуже мало, особливо якщо до того взагалі розробкою не займався. Для повноцінного засвоєння контекстів і вироблення початкового рівня майстерності необхідно набрати хоча б пару-трійку тисяч годин запеклого дебаггінга - найцінніший пласт знань про те, як не треба робити. ) Тоді вже нутром будеш чути, де могли затаїтися баги, куди рити і взагалі. Я на зорі свого шляху, пам'ятається, одного разу годин 20 не міг зрозуміти, що недопоставив одну єдину кому.
Те, що джун не дуже швидкий - це нормально, до 70% часу джун повинен вивчати доки, з решти 30%, до 95% часу - це дебаггінг. ) Так-що на реальний дев залишається не так багато часу, 0.3 * 0.05.
Зрозуміло, що в ідеалі джун повинен цим займатися не тільки в робочий, а й в свій вільний час. Коли я вгризався в основи, я міг маніаче по 12-16 годин на добу, без свят, вихідних і канікул. Благо обставини дозволяли.
І, головне, терпіння + посидючість. Шлях це нелегкий, не простий, вчитися доведеться постійно, і постійно будуть критикувати, що міг би точніше, швидше, більше і дешевше. )