오늘날 (복잡한) 웹 환경을 위해 주니어 프로그래머를 훈련시키는 방법?


39

현재 우리 회사는 대부분 Ruby on Rails 웹 서버와 Java의 키오스크 시스템에서 C / C ++의 임베디드 디바이스 (표준 웹 브라우저 용 인터페이스 제외)까지 다양한 REST 클라이언트로 구성된 애플리케이션을 개발하고 있습니다. 우리는 팀을 확장해야하고, 선임 프로그래머를 찾는 데 실패한 후 회사와 함께 성장할 주니어 프로그래머를 훈련시키는 데 노력을 기울였습니다.

우리는 이미 그들에게 루비와 레일스 책을 주었고 장난감 프로그램을 만들도록 요청했지만 현재 웹 프로그래밍 상태에 대한 학습 곡선이 얼마나 가파른 지 깨닫고 있습니다.

15 년 전에 프로그래밍을 시작했을 때 델파이와 소스 세이프 만 사용했으며 처음부터 유용한 소프트웨어를 만들 수있었습니다. 그것들은 단순한 도구였으며 환경의 내부 작업을 쉽게 탐구 할 수있었습니다. 천천히 타사 프레임 워크를 사용하기 시작하고 CVS, SVN 및 Git으로 전환하여 HTTP, JavaScript, CSS, REST 등과 같은 오늘날의 웹을 만드는 조각을 배웠습니다. 오늘날, 수년간의 경험이 있더라도 모릅니다 델파이에 대해 과거에했던 것처럼 Ruby on Rails가 어떻게 작동하는지에 대해 많은 것이 중요했습니다. 저는 중요한 학습 블록을 사용중인 도구에 연결할 수 있도록 중요했습니다.

내가 고용하고있는 프로그래머가 팀과 통합하고 유용한 것을 만드는 데 오랜 시간이 걸리는 것 같습니다. 루비, HTML, CSS, 자바 스크립트, 단일 프레임 워크 (레일)를 사용하는 법을 배우기에는 너무 많은 것들이 있기 때문입니다. REST, 테스트 사례, 데이터베이스 액세스 (SQL이 프레임 워크에 내장되어 있습니다!), MVC, 3 개의 다른 패키지 관리자 (Ubuntu에 적합, Ruby 용 gem 및 번 들러), ssh, git, Apache 및 Phusion Passenger 배포 등

주니어 프로그래머와 직접 거래해야했기 때문에 길을 잃었습니다. 선택의 여지가 많은 웹 개발자를위한 오늘날의 모범 사례에서 주니어 프로그래머를 훈련시키는 가장 좋은 방법은 무엇입니까?


8
두 번째 단락부터 마지막 ​​단락까지 지난 15 년 동안 발생한 중요한 변화를 눈치 채지 못했을 것 같습니다. 일반 프로그래머는 실제로 사라졌습니다 . 누구든지 당신이 말하는 모든 세부 사항을 알기 위해서는 15 년 동안 업계에 있었을 것입니다. 당신은 당신이 열거 한 것들 중 하나 또는 두 개를 매우 친밀하게 알고 전문가를 찾고 / 훈련하고, 필요한 다양한 전문가들로부터 팀을 구성한 다음 ( 교차 훈련) 더 나은 결과를 얻을 수 있습니다 . 또는 15 년 동안 자신과 같은 경험을 가진 선임 엔지니어를 찾으십시오. 그러나 쉬운 일은 아닙니다.
Jimmy Hoffa

참고로 가파른 학습 곡선은 정말 빠른 것을 배우는 것을 의미합니다. 잘못 사용하면 일부 사람들을 혼동합니다 :)
Alternatex

나는 항상 "어려운"(영어는 모국어가 아님)이라는 의미로 표현을 사용했지만 위키피디아는 모호하기 때문에 최선의 선택은 여기에서 알 수 없습니다. en.wikipedia.org/wiki/Learning_curve :)
Rômulo Ceccon

답변:


39

많은 사람들이이 아이디어를 좋아하지는 않지만 프로그래밍 언어 및 환경에 관계없이 경험이없는 경우 및 고객의 실제 버그 보고서에서 발생하는 유지 관리 작업이 있는지 여부에 관계없이 가능한 한이를지지합니다. 그들 중 적어도 30-40 % (+) 동안 그러한 종류의 업무에 배정되도록하십시오. "버그 리포트가 있습니다. 살펴보고 해결하십시오. 모든 것이 무엇인지 모르는 경우 숙련 된 동료들과 의사 소통하고 Google에 문의하십시오." 실제 문제에 대한 실제 작업, 아니오장난감, 적어도 : 장난감뿐만 아니라. 또한 많은 경험을 가진 사람이 고객에게 출시 및 배송되기 전에 그들이하고있는 일을 살펴보아야합니다. 새 동료가 동료 및 고객의 행동에 대해 정직한 피드백을 받도록하십시오. 과부하를 피하기 위해 이러한 작업을 신중하게 선택하십시오. 그러나 언젠가는 독립적으로 작업을 수행하기를 원합니다.

버그 수정은 실제로 실행되고 관련성이있는 코드에서 작동하도록하는 작업을 배우는 것입니다 (그렇지 않으면 버그 보고서가 없을 것입니다). 많은 예제에서 수행하지 않는 방법을 보여줍니다.

초점은 자동으로 통증 지점에 놓입니다. 실제로 문제를 일으키는 세부 사항을 배우기 시작합니다. 또한 처음부터 어깨에 실질적인 책임을 부여합니다. 유지 관리가 실제로 매력적이지는 않지만 고객 / 최종 사용자의 만족에 도달하면 오히려 동기를 부여 할 수 있습니다. 그들이 한 일을 겪으면서 선배들이 더 심각하게 받아 들여서 일이 잘못 될 경우의 영향을 알게되고, 그렇게하면 팀과의 통합이 간단 해져서 서로 자동으로 대화하게됩니다.

요점은 첫 순간부터 생산성을 높이는 것이 아닙니다 . 요점은 그들이 첫 순간부터 가치있는 일을해야한다는 사실을 알리고 실제로 목록을 만들 필요없이 가장 중요한 것에 집중하는 것입니다.

나는 지금 몇 년 동안 일한 경험이 있으며 사람들이 대학에서 새로운 개발자 직업으로 직접 와서 경험하고 있으며, 최악의 결과는 일반적으로 유지 보수 경험이없는 사람이 새로운 응용 프로그램 개발을 요구했을 때였습니다. . 상실감을 느끼면 항상 지원을 요청할 수있는 사람이 있어야합니다.


나는 똑같은 일을한다. 좋은 대답입니다.
Rocklan

나는 첫 해에 결점을 고치기 시작했다. 내가 다른 프로젝트로 이동했을 때, 나는 내가 무엇을 알고 있기 때문에 버그 수정이 그것을 훨씬 더 나를 만든 느낌이 없습니다 할 수 있습니다.
Brandon

8

실제로 유능한 주니어 프로그래머를 고용했다고 가정 해 봅시다. "나보다 경험이 적은 사람"을 인터뷰하는 선임 프로그래머가 기본적인 무능력을 간과 할 가능성이 있기 때문에 이것은 반드시 안전한 가정 일 필요는 없습니다.

그러나 그들이 유능하다고 가정하면 첫 번째 단계는 그들을 수업에 보내는 것입니다. 1 주일 수업료는 $ 2,000- $ 3,000 (미국)입니다. 그러나 자료를 이해하는 강사와 실습 계획을 통해 실습 경험을 쌓을 수 있습니다. 누군가에게 책을 보내거나 "이것을 배우겠다"는 지시는 귀중한 것이 아니며 더 많은 비용이들 것입니다 (수업 비용은 프로그래머가 낭비한 주당 한 명 정도입니다).

기본 지식을 갖춘 후에는 함께 작업하십시오. 인접한 책상에 앉아 시간의 절반 이상을 포기하여 그들이 비즈니스와 업무 방식을 이해하도록하십시오. 예, 최소한 초기에는 생산성이 떨어지지 만 장기적으로는 팀 전체의 생산성이 높아집니다. 그리고 비용에 대해 다시 한 번 생각해 보면, 하급 직원이 잘못된 일을 한 달에 낭비하면 아마도 월급의 반 정도에 해당 할 것입니다.


4

당신이 요구하는 장난감 응용 프로그램은 기본적인 CRUD 기능을 구현해야하며 각 개발자는 자신의 코드를 작성해야합니다. 그러나 코드 검토에서 애플리케이션에 대해 논의하고 팁을 제공 할 수 있습니다. 합리적인 생산성 기대가 가능하다면 MVC 애플리케이션의 전체 아키텍처를 먼저 이해해야합니다.

거기에서 각 개발자는 Javascript, CSS, DAL, 템플릿 생성기, 라우팅 등과 같은 관련 주제에 대해 스스로 파업 할 수 있어야합니다. 학생들은 어떤 주제를 공부해야하는지 (회사의 가장 시급한 요구 사항을 기반으로 할 수 있음) 지침을 제공하고 멘토링하며 진행 상황을 모니터링 할 수 있습니다. 필요한 기술을 파악하는 순간에 실제 개발 노력을 진행시키는 기능을 생성하는 간단한 프로젝트로 개발자를 한 번에 하나씩 이동하십시오.

숙련 된 개발자 중 일부를 일종의 멘토링 프로그램으로 도제와 연결할 수 있습니다. 주니어 개발자가 언제 멘토를 방해 할 수 있는지, 얼마나 오랫동안 알 수 있도록 지침을 제공해야합니다. 멘토는 실제 코드 작성을 시작할 때 업무를 감독 할 수 있습니다.

매우 똑똑하고 지적으로 호기심이 많고 자기 시작하는 젊은이를 찾을 수 있다면 더 좋은 시간을 보낼 수 있습니다. 이 프로세스가 작동하는 것을 보았습니다. 전문가의 대가로 돈을 지불하고 싶지 않았기 때문에 이전의 고용주 접근 방식이었습니다. 그의 가장 큰 과제는 투자를 회수 할만큼 오래 머무르는 것이 었습니다. 항상 다른 곳에서 더 나은 지불의 유혹이있었습니다.

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