Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разные вопросы > Как учить джуниоров?


Автор: DarkProg 8.4.2014, 19:08
В общем есть у меня такая проблема, как молодой коллега(вообще мы по возрасту с ним равны, но я уже 3 года работаю программистом, а он только после вуза начал искать что-то как-то, ну он уже у нас месяца 3 и сдвиги есть в положительную сторону, но их мало)

Так вот в чём проблема.

При попытке даже реализации простых вещей возникают проблемы. Пока я сижу рядом в офисе и периодически смотрю в его монитор, то косяки вылавливаю чаще, если смотрю уже в конце, то обычно половину он переписывает. 

Сегодня столкнулся с тем, что я описал решение двумя путями и сказал, что надо реализовать второй и самое смешное, что он согласился, но в конечном счёте сделал первый вариант, который работать будет, но время работы будет измеряться десятками минут. Сказал переделать и он сказал, что типа всё ок и он всё приудмал, а в конце дня выбесил тем, что он как бы не понимает как искать по маске в строке(хотя ранее сказал, что он всё чётко сделал, но по-своему  smile ) дал функцию MatchesMask и описание с примером как пользоваться, итог - она видите ли не заработала(хотя я показал, что функция работает как надо и попытка встроить её бездумно видимо не работает). Дальше выяснилось, что он вообще не понимает как можно искать с конца файла  smile  Зашибись... и не знает, что файл можно не загружать в StringList, для того чтобы с ним работать  smile  Короче, сказать, что я взбешён - это ничего не сказать. 

Рисовать блок-схемы пытался заставить - итог 0... я даже студентам не могу вбить в голову понимание блок-схем... все тупо пишут код и потом удивляются, что его нельзя модифицировать или зачем делать иначе, если оно и так работает, я думаю не стоит объяснять что начинаются, костыли, если этот код на тесте валится каком-то.

В общем что тут можно вообще придумать? 

P.S. кроме как пытаться получить сначала на бумаге проект решение я ничего не могу придумать.
P.P.S. чудесный лозунг "хуяк хуяк и в продакш" у нас на фирме как основной, это ещё отдельные программисты вроде меня чего-то мучаются, но как реализовать проект на листе в данном случае не представляю.

Автор: LSD 9.4.2014, 15:48
Цитата(DarkProg @  8.4.2014,  20:08 Найти цитируемый пост)
если смотрю уже в конце, то обычно половину он переписывает

Это как раз не проблема. Со временем сам научится или сам начнет подходить с вопросами "как лучше сделать".


Цитата(DarkProg @  8.4.2014,  20:08 Найти цитируемый пост)
Сегодня столкнулся с тем, что я описал решение двумя путями и сказал, что надо реализовать второй и самое смешное, что он согласился, но в конечном счёте сделал первый вариант, который работать будет, но время работы будет измеряться десятками минут. Сказал переделать и он сказал, что типа всё ок и он всё приудмал, а в конце дня выбесил тем, что он как бы не понимает как искать по маске в строке(хотя ранее сказал, что он всё чётко сделал, но по-своему   ) дал функцию MatchesMask и описание с примером как пользоваться, итог - она видите ли не заработала(хотя я показал, что функция работает как надо и попытка встроить её бездумно видимо не работает). Дальше выяснилось, что он вообще не понимает как можно искать с конца файла    Зашибись... и не знает, что файл можно не загружать в StringList, для того чтобы с ним работать

Это уже скорее вопрос "как влиять на людей", а не "как учить джуниоров".

P.S. И тут конечно есть момент, что надо самому различть случаи когда человек пишет ###код и мне просто не нравится такой подход/я бы сделал иначе.

Автор: tol05 9.4.2014, 16:13
По-моему, нужно просто объяснить чем мы занимаемся и ради чего.

Мы создаем качественное ПО. Т.е. наше ПО должно соответствовать определенным показателям качества.

Есть апробированные практики позволяющие добиться нужного качества (или приблизиться к нему).
Есть апробированные инструменты и методики, позволяющие сделать это проще, нагляднее, быстрее и т.п.
Есть артефакты, использование которых необходимо... Ну и т.д.

Т.е. в аргументации чего-бы-то-ни-было smile нужно всегда помнить о наших главных, конечных и вечных целях. И если то, что мы предлагаем (в данный момент, какие аргументы мы найдем завтра - мы узнаем завтра) может быть оправдано попыткой достичь наших целей - то тогда то, что мы предлагаем, есть благо. В данный момент, подчеркиваю.
Если нет - то вполне может быть, что это как раз случай "мне просто не нравится такой подход/я бы сделал иначе". Т.е. - суета/сиюминутные амбиции.

Автор: baldina 9.4.2014, 16:22
Цитата(DarkProg @  8.4.2014,  19:08 Найти цитируемый пост)
сказать, что я взбешён - это ничего не сказать

Цитата(DarkProg @  8.4.2014,  19:08 Найти цитируемый пост)
я даже студентам не могу вбить в голову понимание блок-схем

кажется, это основное.
научить насильно никого нельзя, каждый учится сам. можно только помочь.
у обучаемого должна быть мотивация, хотя бы в виде "это работает, но не пойдет, т.к. работает слишком медленно". в институте его учили? литературу типа "алгоритмы+структуры данных" читает?

в данном случае можно попробовать следующее
1. объяснить по-быстрому на пальцах про сложность алгоритмов, методы разработки алгоритмов и существующие алгоритмы (в т.ч. обработки строк). показать лишние расходы в случае загрузки в StringList и т.п.
2. дать ссылку на простое описание методов поиска подстрок, хотя бы http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B8%D1%81%D0%BA_%D0%BF%D0%BE%D0%B4%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8
3. донести мысль, что основным инструментом является принцип "разделяй и властвуй"
4. представить работу библиотечных функций (в т.ч. MatchesMask) в виде черного ящика и соглашения о входных параметрах/возвращаемом значении
5. быть терпеливым и снисходительным. если ваше объяснение вам кажется понятным, а ему нет, потренируйтесь на жене, маме и т.д: понятное объяснение должно быть понятным каждому, спецобразования тут не требуется

Добавлено через 2 минуты и 37 секунд
да, еще. программирование притягательно тем, что можно быстро "пощупать" результат.
обратная сторона - отказ от проектирования, написание кода с ходу.

надо дать понять, что кодирование - только часть работы программиста, и не самая объемная.

Автор: LSD 9.4.2014, 18:29
Цитата(tol05 @  9.4.2014,  17:13 Найти цитируемый пост)
По-моему, нужно просто объяснить чем мы занимаемся и ради чего.

Мы создаем качественное ПО. Т.е. наше ПО должно соответствовать определенным показателям качества.

Цитата(DarkProg @  8.4.2014,  20:08 Найти цитируемый пост)
P.P.S. чудесный лозунг "хуяк хуяк и в продакш" у нас на фирме как основной

Так что джуниор в тренде компании smile 

Автор: DarkProg 9.4.2014, 19:17
Цитата(baldina @  9.4.2014,  16:22 Найти цитируемый пост)
в институте его учили?

Я тот же вуз заканчивал(с одного факультета, только кафедры разные), так что могу сказать, что учили, через пень колоду... У меня ассемблер был на 2м курсе, это после базовых знаний по паскалю на далёком первом, я думаю дальше можно не продолжать, что это было очень грустно.

Цитата(LSD @  9.4.2014,  18:29 Найти цитируемый пост)
Так что джуниор в тренде компании   

Ага ) В тренде, но я стараюсь его ограждать от этого )

Я стараюсь быть объективным ко многим вещам, но чёрт, когда человек в очередной раз делает схожую задачу, то должно же быть понимание как она реализовывается. Я согласен, что хорошего руководителя отличает спокойствие, взвешенный взгляд на вещи и прочее, но я только учусь как-то руководить и направлять, поэтому наверное бываю не слишком объективным.

И да есть методики разработки, но есть только одна проблема - у нас на фирме об этом слышать не слышали, точнее может и слышали, но чихать на них хотели(тестирование только ручное и только программистами, это как первый пример; документации тоже нет на внутреннее устройство, у меня только появилось что-то вроде первой вводной лекции для новоприбывших и всё). 

Я пытаюсь с этим как-то бороться, писать адекватный код, который бы в каждый момент времени что-то делал понятное и в случае ошибки можно было бы понять что и к чему. Джуниора тоже пытаюсь этому учить, но это пока сложно для него.

Если говорить об успехах, то они реально есть, я на него скинул задачи, которые простые, но которыми заниматься мне просто некогда(они требуют несколько дней просто внимательной работы для меня, для него понятно это сложнее). Ну и временами получалось даже то, что я думал не сделает, но как-то всё таки оно получилось. Первым заданием было написать утилиту, которая изначально в полуручном режиме работала, теперь же после какого-то времени и реальной необходимости, всё было сделано в максимально автоматическом режиме. Я не смотрел как именно реализован автомат, полностью доверил ему, так как этот мини-проект его от начала и до конца )

Качественно ПО у нас не разрабатывается, у нас оно в виде good path(т.е. если всё по инструкции, то работать будет), собственно пользователей так и учат(как мартышек жать кнопки 1,2,3). Это грустно, мне это понятно. Менять что-то надо, но это не выгодно руководству. Я даже пытался писать автоматические dunit-тесты и тут я столкнулся с проблемой, что наша программа в принципе не может жить с этими тестами - оно не совместимо. 

Кстати вчерашнюю задачу он таки решил, в тот же вечер позже до него дошло что же всё таки надо было сделать. Сегодня код принял, во всяком случае посмотрим как этот код проживёт ночь,  нагрузочные тесты вроде бы проходятся, а практика покажет что не так с его кодом )

Автор: Bulat 10.4.2014, 10:02
Цитата(DarkProg @  8.4.2014,  19:08 Найти цитируемый пост)
но я уже 3 года работаю программистом

И ты считаешь, что 3 года это уже достаточный срок для того, чтобы ты мог учить других программистов??  smile

Добавлено через 3 минуты и 29 секунд
Цитата(DarkProg @  9.4.2014,  19:17 Найти цитируемый пост)
И да есть методики разработки, но есть только одна проблема - у нас на фирме об этом слышать не слышали, точнее может и слышали, но чихать на них хотели

А ты считаешь, что там наверху тоже сидят одни чайники?? Т.е. наверху одни чайники, внизу одни бездарные джуниоры, один ты такой светлый и умный и т.п.??  smile 

Автор: DarkProg 11.4.2014, 14:40
Цитата(Bulat @  10.4.2014,  10:02 Найти цитируемый пост)
И ты считаешь, что 3 года это уже достаточный срок для того, чтобы ты мог учить других программистов??  

Если бы этим кто-то ещё занимался, то я был бы не против, честное слово ) А так больше некому... Мне никогда и ничего не мешало учить других, даже отсутствие опыта в некоторых вопросах, но как-то оно и в моей голове что-то утряхивается в процессе.

Цитата(Bulat @  10.4.2014,  10:02 Найти цитируемый пост)
 Т.е. наверху одни чайники, внизу одни бездарные джуниоры, один ты такой светлый и умный и т.п.??

Обычно я в таких случаях предлагаю посмотреть кухню изнутри, чтобы понять что к чему  smile У меня же не просто так раздутое самомнение ))) Он не бездарный, но как учить некоторым вещам в таком возрасте мне сложно понять, понятия не имею как перестраивать мышление )

P.S. у меня товарищ есть, который перебрался в Москву жить, да и работу там же нашёл. Он видел кухню здесь и там где сейчас работает. Не смотря на то, что он пишет на Delphi 5, но процесс разработки на текущем месте работы говорит построен гораздо лучше.

Автор: Bulat 14.4.2014, 14:51
Цитата(DarkProg @  11.4.2014,  14:40 Найти цитируемый пост)
Мне никогда и ничего не мешало учить других


Цитата

Кто умеет - тот делает, кто не умеет - тот учит


Бернард Шоу

Автор: DarkProg 17.4.2014, 13:58
Цитата(Bulat @  14.4.2014,  14:51 Найти цитируемый пост)
Кто умеет - тот делает, кто не умеет - тот учит

Намекаете на то, что надо забить и не учить, а только "писать код"?

Автор: _Y_ 19.4.2014, 11:08
Для себя я давно понял, что в программировании тоже существуют природные способности. Кто-то за год специалистом становится, кто-то 20 лет ***кодером остается. Кстати, и к обучению коллег тоже способности должны быть.

Так что, для начала надо бы понять - способен ли человек учиться в нужном направлении. Может работа программистом в нем гениального дизайнера одежды давит (ну а дизайнер сопротивляется и пуговицы разнокалиберные в код вставляет).

Автор: Bulat 21.4.2014, 09:49
Цитата(DarkProg @  17.4.2014,  13:58 Найти цитируемый пост)
Намекаете на то, что надо забить и не учить, а только "писать код"? 

Мне кажется тебе больше подойдет позиция старшего товарища, но никак не учителя, по принципу "все обучение в наблюдении".  Пусть наблюдает за тобой, за твоей работой, глядишь чему-то и научится!  smile 

Автор: DarkProg 21.7.2014, 09:47
А у мну кажись началось получаться  smile Я конечно жестокий, но толк явно есть  smile 

P.S. да и я научился учить немного  smile 
P.P.S. явно крик души был )))

Автор: baldina 21.7.2014, 10:20
smile

Автор: Зибарез 11.8.2014, 12:44
Если человек не хочет понимать, он не поймет, да и думать и анализировать много молодежи разучилось

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)