신인 개발자를 프로젝트에 포함시키는 방법?


9

우리는 워크로드를 없애기 위해 제로 또는 일반적인 취미 수준의 프로그래밍 경험이있는 일부 직원을 가르치는 것을 고려하고 있습니다.

우리는 가장 친숙한 문서와 배우기 쉬운 바람이있는 Python / Django를 사용합니다.

저는 현재 회사의 일인 IT 부서이고 회사에 필요한 모든 것을 개발할 시간이 충분하지 않습니다. 우리는 소프트웨어 회사가 아니지만 사내 IT를 통해 작업을 자동화하고 고객 서비스 기능을 개발하며 데이터를 분석하는 데 도움을줍니다.

코드베이스에서 작업하는 신인을 천천히 어떻게 통합합니까? 인턴이 있다고 가정하십시오-그들은 무엇을합니까? 몇 년 동안 실수 / 이상한 디자인 패턴을 처리 할 때 핵심 코드를 디자인하거나 개발하는 것을 완전히 꺼려합니다. 기본 개발자는 코드를 해결해야하는 사람입니다.

내 생각에는 신인이 기존 코드 만 수정하고 핵심 기능은 작성하지 않는 것이 었습니다. 기능 자체를 빌드 한 후 간단한 작업으로 작업을 오프로드 할 수 있습니다 .

우리는 직원들이 회사에서 가치를 배우고 찾는 것을 원하며 일반적으로 사람들이 '계급을 올립니다'.

일반 / 취미 수준의 프로그래밍을하는 사람들을 가르치는 것이 표준 관행입니까? 소프트웨어 회사에서 "계급 이동"은 중급 프로그래머를 위해 어떻게 작동합니까? 핵심 코드 작업은 언제 시작합니까?

도움말보다 더 많은 피해를 입을 것인지 또는 핵심 사이트 코드 (절연 환경?)를 위험에 빠뜨리지 않고 도움을 사용할 수있는 방법이 있는지 결정하려고합니다.


3
"일반 / 취미 수준 프로그래밍"은 제 생각에 "주니어 수준 프로그래머"와는 매우 다릅니다. 전자는 일주일에 쉘 / 배치 스크립트를 사용하여 시스템을 조정하는 사람처럼 들립니다. 후자는 CS 학위를 마친 사람처럼 들립니다. 이 두 가지 유형을 처리하는 것은 매우 다릅니다. 그냥 말 ... '
FrustratedWithFormsDesigner

@FrustratedWithFormsDesigner 감사합니다! 용어에 익숙하지 않습니다. 내가 의미하는 취미는 몇 가지 프로그래밍 언어를 스스로 가르쳤고, 프로그램을 하나 또는 두 개는 웹 사이트를 만들었습니다 .. 주니어 레벨 저는 소프트웨어 회사에 고용되기에 충분한 프로그래밍 지식을 가진 사람이라고 생각했지만 지금은 저에게 일어납니다. 이 두 가지는 (내 정의에서) 상당히 비슷할 수 있습니까?
Yuji Tomita

3
공식 CS 교육을 받고 경험이없는 젊은이들은 순진하지만 재능이 많으며 새로운 것을 빨리 배우고 업무 관행에 적응합니다. 있는 그대로 "취미 수의사는"훨씬 더 위험합니다 자주 습관의 노예, 따라서 그들은 변화를 꺼려하고 생태계에 맞는 문제를 가질 수 있습니다. 그러나 그럼에도 불구하고-그들에게 자유를 주어야만 그들의 어리 석음이나 똑똑 함을 볼 수 있습니다. 그들에게 원시적 인 일상적인 일을한다면, 그들도 직업에 대해 배우거나 그들에 대해 배우지 않을 것입니다.
c69

감사합니다! 내 질문은 코드베이스에서 신인을 편하게하는 방법입니다. 목표는 그것들을 비둘기로 깎는 것이 아니라 일상적인 일만하는 것입니다. 누군가 우리의 코드베이스에 접근 할 수있게하는 것은 위험합니다. 그리고 우리 시스템의 일부로서 최초의 장고 / 프로그래밍 프로젝트를 구축하게하십시오 (또는 이것이 의미하는 바입니까? 시도하고 보도록 하시겠습니까?). 추신 : 취미 수의사에 대해 정식으로 언급
Yuji Tomita

답변:


5

신인을 비 효과적인 역할에 위임하면 실질적인 것을 배우지 못할 것이며, 그다지 유익하지 않을 것입니다.

조언을 드리겠습니다. 학교 밖에서의 첫 번째 IT 직업은 상대적으로 작은 제조 회사에서 영업 엔지니어가 다양한 프로젝트에 대한 견적을 작성하는 데 도움을 줄 소프트웨어를 개발하려고했습니다. 또한 회사 전체에서 IT를 한 손으로 관리 한 IT 담당자를 지원해야했습니다.

그 사람은 과로 한 혼란과 스트레스를 받았으며 내가 일했던 최악의 마이크로 매니지먼트 완벽 주의자였습니다. 나는 그의 업무량을 줄이려고했지만, 그는 일하면서 지출하는 것만 큼 걱정없이 저와 제 일을 점검하는 데 거의 많은 시간을 보냈습니다. 내가 실수를 너무 많이했다면 그는 마음을 완전히 잃고 "내가 당신을 믿어서는 안된다는 것을 알았는데 너무 중요했습니다!" 그리고 다른 rants.

내가하려고하는 요점은 그렇게되지 않는 것입니다. 그것은 신인들을 비참하게 만들고 그들의 사기를 파괴 할뿐만 아니라, 그들의 일에 대해 걱정하는 양끝에서 촛불을 태울 것입니다.

스스로 증명할 수는 있지만 공식적인 기술 사양, 디자인 검토 및 코드 검토가 가능합니다. 또한 생산 된 제품을 테스트하여 요구 사항을 충족하는지 확인할 수 있습니다.

나는 당신이 그들 중 일부가 얼마나 유능한 지 놀랄 것이라고 생각합니다.


1
또한 신인이 유용하다고 느끼지 않는 역할에 신인을 위임하면 더 나은 직업을 찾기 위해 얻는 작은 경험을하게 될 것입니다. 신인조차도 지시를 따를 수 있어야하고, 유지 보수 작업은 훌륭하지만, 성장을 도울 의향이 없다면 항상 신인이 있어야합니다.
Ramhound

귀하의 의견에 감사드립니다-대단히 감사합니다. 말 그대로 경험이없는 사람들을 고려하고 있기 때문에 어딘가에서 시작해야합니다. 파이썬 101, 장고 튜토리얼, bash 스크립트, 버전 제어 사용 방법 등에 대한 소개, 마이크로 관리가 아니라는 경고에주의를 기울일 것입니다. 그리고 그렇습니다! 저는 우리 직원들이 능력이 있다고 생각합니다.
Yuji Tomita

5

나는 우리가 큰 프로젝트를 코딩하고 있던 소프트웨어 샵에서 일했었다 (상당한 램프 업 시간).

신인은 수의사처럼 취급되었습니다. 그들은 기술 리더로 지정되었고 "자체적으로"기능을 시작했습니다. 건축 양식이 지시되었지만 자유롭게 깨끗한 디자인을 만들 수있었습니다. "일상적인"피어 코드 검토 중에 "이상한 디자인 패턴"이 제거되었습니다.

다른 상점에서 본 한 가지 실수 : "핵심"이 단단하고 "ui"가 쉽다고 가정합니다. 신인들은 코어에서 더 쉬워졌고 UI 프론트 엔드 코드를 망쳤다.

행운을 빕니다!


1
빈번한 코드 검토는 내가 제안하려고했던 것입니다. 하루 중 한 시간이 걸리고 잘못된 것을 가르치면 스페이드로 상환하여 문제를 해결하고 기술을 향상시킵니다. 일정 시간이 지나면 처음 몇 주만큼 코드 검토에 많은 시간을 소비 할 필요가 없습니다. 또한 소스 제어를 사용하고 사용하는 방법을 알고 있어야합니다. 그런 다음 모든 실수를 상당히 쉽게 롤백 할 수 있습니다.
HLGEM

1
@isgab-30 년의 경험에도 불구하고 효과적인 사용자 인터페이스 디자인은 달성하기 어렵습니다. Microsoft와 Apple을 보면 사용자 인터페이스 작동 방식에 대한 아이디어가 다릅니다.
Ramhound

나는 당신이 코어 대 UI에 대해 말하는 것을 좋아합니다. 나는 둘 다 장단점이 있다고 생각했다 (백엔드의 신인, 프론트 엔드의 신인). 한편으로 HTML은 종종 경험에 관한 것입니다. 작동하지 않는 것을 아는 것입니다. 프로젝트가 고립되어 있다는 점에서도 "안전하다". 백엔드는 정확히 작동하지만, 이제는 빌드 된 코드를 유지 관리하고 향후 작업해야합니다.
Yuji Tomita

2

작고 불연속적인 조각 기능을 구현하여 시작하려고합니다. 약속 한 입력과 예상되는 출력을 정의하고 점을 연결하게하십시오. 그런 다음 팀 리더 코드 검토를 사용하여 품질을 보장하고 동료 검토를 통해 서로 학습하고 스스로를 가르치도록 훈련시킵니다.

이는 원자 단위의 논리 단위를 분리 된 방식으로 빌드 할 수있는 전체 응용 프로그램 아키텍처를 가지고 있다고 가정합니다. 그렇지 않다면 여러 개발자가 작업하면서 슬픔의 세계로 향하고 있습니다. 오래된 전문가들도 마찬가지입니다.

필연적으로 당신은 그것을 배우고, 빨리 배우고, 일어나는 특정한 사람들을 갖게 될 것입니다. 현재 기능 이상의 작은 단계에 해당하는 작업을 계속해서 제공해야합니다. 불가능한 일을하는 사람을 교육하는 것은 없습니다. 필연적으로 당신은 그것을 시도하고 결코 잡지 않는 사람들을 가질 것입니다. 그 사람들은 그들의 노력에 감사하고 다른 것으로 우아하게 전환해야합니다.


1
"현재 기능을 넘어서는 작은 단계에 해당하는 작업을 계속해서 제공해야합니다." -이 작업을 수행하지 않으면 해당 직원이 자신의 지식을 다른 회사로 가져갈 수 있습니다. 루키에게 먹이를주고, 훈련시키고, 걸지 않으면 개처럼 도망칩니다.
Ramhound

다른 옵션은 다음과 같습니다. 이미 (잘) 구현 된 기능을 제공하여 출력을 비교할 수 있습니다.
Etsitpab Nioliv

1

귀사는 다른 직원들과 어떻게 시간을 할애 할 수 있지만 프로그래밍 경험이있는 사람을 고용하지 않습니까? 훈련, 문제 해결 및 손 잡는 시간은 비용이 많이 듭니다.

이 분야에서 내가 한 유일한 일은 사람들에게 보고서 작성 기나 Excel 용 VBA / 매크로 코드를 사용하는 방법을 가르치는 것입니다. 나는 보통 재사용 할 데이터 세트를 제공합니다. 그들에게 SQL을 배우게하는 것은 매우 힘든 일이지만, 나는 그것을 해냈습니다. (외부 훈련을받는 사람들에게 지불했습니다.)이 사람들의 대부분은 코딩을 배우는 능력이 있지만 시간이 걸리지 않은 재무 분석가였습니다. 일부 사람들과 작업을 시도하는 것은 오랜 시간이 걸립니다.

올바른 사람을 확보하고 실제로 코딩을 배우고 싶어하는지 확인하십시오. 그들에게 모든 것을 가르 칠 시간이 없습니다. 그들은 스스로 많은 일을해야합니다.


우리는 사전 경험이없는 사람들 (또는 매우 적은 양)에 대해 이야기하고 있다고 말했기 때문에 전문 프로그래머를 고용하는 데 필요한 급여 등급에 대해서는 이야기하지 않습니다.
Yuji Tomita

아, 그리고 우리 회사는 가족과 비슷합니다. 우리는 모든 일을 스스로하고 사람들이 일을하도록 돕습니다. 나는 신인의 작업 흐름을 어떻게 구성 할 것인지 궁금했다.
Yuji Tomita

0

@louisgab는 코드 검토에 적합했습니다. 그것은 나의 첫 걸음이기도합니다. 코드 검토에서 또는 나중에 찾을 수 있는지 여부에 관계없이 자신의 실수를 수정해야합니다. 그들은 그들이 고치지 않으면 실수를하고 있다는 사실조차 깨닫지 못했다. 그들이 사용한 솔루션이 실수 인 이유와 제안하는 것이 왜 더 좋은지 설명해야합니다. 처음 몇 주 동안은 다른 사람들이 있기 때문에 더 많은 일을하는 것처럼 느껴질 것입니다.하지만 코드 검토를 수행하고 설명하고 배우기를 기대하는 경우 몇 주 후에는 직접해라. 그러나 경영진이 알아야 할 최신 정보를 얻기 위해 시간을 투자해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.