전반적인 프로그래머 교육 및 훈련을 어떻게 개선 할 수 있습니까? [닫은]


13

지난주, 나는 세컨드 라이프의 필립 로즈데일 (Phillip Rosedale)의 케빈 로즈 (Kevin Rose)의 놀라운 인터뷰를 보았습니다.

그리고 그들은 좋은 프로그래머를 찾고 고용하고 식별하는 방법과 좋은 프로그래머를 찾는 것이 얼마나 어려운지에 대한 놀라운 토론을했습니다.

프로그래머가 배우는 방식에 대해 실제로 생각하게 만드는 것은 가르쳐졌습니다. 나 자신을 포함하여 대다수의 사람들은 자기를 가르친다. 프로그래머가되는 것이라면 누구든지 기술을 배우고 개발할 수 있습니다.

그러나 이것은 또한 훌륭한 프로그래머가 무엇인지, 어떤 환경이 프로그래밍 기술의 성장을 장려하는지에 대한 실제 표준이 없음을 의미합니다.

이것은 많은 질문이 아니라 프로그래밍 문화와 관리자의 프로그래밍 문화를 어떻게 바꾸어 교육과 자기 개선을 장려 할 수 있는지에 대한 열망입니다.

지속적인 교육, 유튜브 비디오, 서적, 컨퍼런스를위한 많은 길들이 있지만, 우리가하는 일의 경험적 특성 때문에 배우고 숙달해야하는 것이 항상 명확한 것은 아닙니다.

Joel 12 Steps를 보자.

조엘 테스트

소스 컨트롤을 사용하십니까?

한 번에 빌드 할 수 있습니까?

당신은 매일 빌드합니까?

버그 데이터베이스가 있습니까?

새 코드를 작성하기 전에 버그를 수정합니까?

최신 일정이 있습니까?

사양이 있습니까?

프로그래머에게는 조용한 근무 조건이 있습니까?

돈으로 살 수있는 최고의 도구를 사용하십니까?

테스터가 있습니까?

인터뷰 중에 새로운 후보자가 코드를 작성합니까?

복도 유용성 테스트를합니까?

나는 이것들 모두가 중요한 가치를 가지고 있다고 생각하지만, 내가 경험적 갭이라고 부르는 것 때문에, 프로그래머 나 관리자가 목록에서 항목을 수행하지 않은 것에 대한 부정적인 결과를 경험하지 않았다면, 그들은 결코 할 필요가 없다고 볼 것입니다 그들의.

Experiental Gap은 저의 기본 이론으로, 각자 각자 다른 직업과 경험을 가지고 있습니다. 따라서 수십 명의 프로그래머와 항상 협력해온 일부 사용자에게는 소스 제어가 반드시 필요합니다. 그러나 항상 유일한 프로그래머였던 사람들에게는 소스 제어의 필요성을 상상할 수 없습니다.

그리고 우리가 배우는 방식의 주요 결함, 사람들이 수행하는 모범 사례와 수행하지 않은 방법 및 화염 전쟁을 시작할 수있는 이유에 따라 사람들을 평가한다는 것이 원인입니다.

우리는 항상 자신이하는 일을 기준으로 해당 분야의 사람들을 평가하고, "아,이 사람 / gal이 xyz 모범 사례를 수행하지 않으면 좋은 프로그래머가 될 수 없으므로 시간이나 에너지를 낭비하지 말고 생각하십시오. "

이것이 우리가 프로그래밍 화염 전쟁을 너무 많이하는 이유입니다. Experiental Gap 때문에 사람들이 우리가 결정을 내리지 않았다고 상상할 수 없습니다.

그래서 프로그래머의 훈련, 교육 및 관리 방법을 완전히 재고해야한다고 생각하게되었습니다.

예를 들어, 관리자 중 몇 명이 회의에 참석하여 비용을 지불하도록 격려 한 적이 있습니까?

저와 많은 사람들에게 이것은 매우 드문 일입니다. 우리 중 많은 사람들이 회의에 가서 더 많은 것을 배우고 싶지만 돈은 그렇게 할 수 없습니다.

이 질문의 요점은 실제로 우리가 어떻게 훈련하고 배우고 더 잘 관리 할 수 ​​있는가?

같은 직업 경험이없는 사람들을 모욕하지 않는 새로운 학습 문화를 만들려면 어떻게해야합니까?

그렇습니다. 우리 모두에게는 직업이 있고해야 할 일이 있지만, 일을 잘 수행 할 수있는 능력은 우리의 기술 숙달을 향상시키기위한 욕구, 관심 및 지원에 달려 있습니다.

지금은 문화가 다소 무질서하고 엘리트를 지원하지만, 더 나아지기를 원하는 우리의 톤은 스스로 배우고 향상시킬 수있는 충분한 지원이 없습니다.

내 말은, 우리는 산업으로서 교체 가능한 톱니로 인식되기를 원합니까?

감사합니다...


+1 : .NET Rocks의 Carl Franklin은 프로그래밍 업계가 "도제에 빠졌다"고 언급 한 적이 있다고 생각합니다. 이 인용문을 올바르게 인용했으면합니다. 그러나 나는이 감정에 전적으로 동의합니다. 엔트리 레벨 후보들이 요즘 순위를 어떻게 오르는 지 잘 모르겠습니다.
Jim G.

좋은 의견 감사합니다. 그러나 저의 목표 중 하나는 더 나은 교육 메커니즘이 필요한 업계의 거인들을 깨우는 것입니다. 컨퍼런스와 대학만으로는 충분하지 않다고 생각합니다. 정답이 무엇인지 확실하지 않습니다.
crosenblum

저의 목표는 특정 프레임 워크 나 방법론을 추진하는 것이 아니라, 더 많은 교육을 추진하고 프로그래머가 지원을 받도록하는 것입니다.
crosenblum

누구나 기술을 배우고 개발 하려고 할 수 있으며, 대부분 필요한 속성이 없습니다. 어쨌든 우리 산업 비용으로하세요
Orbling

답변:


13

와우, 좋은 질문은 대답하기 어렵습니다. 우리 모두는 서로 다른 경험과 욕구를 가지고 있기 때문에 모든 솔루션에 맞는 단일 크기를 제시하기가 어렵습니다. 그러나 나는 이 같은 주제에 대해 몇 년 동안해온 의견을 버리겠다 .

1) 구직이 나쁜 것으로 보이지 않게하고 격려하십시오. 몇 년마다 회사를 바꾸십시오. 프로그래머는 경력 과정에서 다양한 기술, 방법론 및 비즈니스에 노출됩니다. 기업은 꾸준히 새로운 아이디어를 얻습니다.

2) X 회사에서 프로그래머로 자신을 보지 말고 X 회사에 서비스를 제공하는 전문가로 자신을보십시오. 전문가처럼 생각하면 전문가처럼 취급됩니다. 우리가 교체 가능한 톱니로 보이면 교체 가능한 톱니처럼 행동하기 때문입니다.

3) 대학을 바꿔야합니다. 그들은 컴퓨터에서 초기 2 년간의 기본 교육을받은 후 선택해야합니다. 컴퓨터 과학 또는 컴퓨터 공학. 엔지니어링 트랙에는 서류를 작성하는 사람이 아니라 매일 현장에서 일하는 전문가가 필요합니다. 그리고 가르친 내용은 실용적이어야하므로 졸업 후 하루를 시작해야합니다. 학위 과정을 거치지 않은 사람들을위한 도제 프로그램이있을 수 있습니다.

4) 편집 : 이것은 조금 어리 석었습니다. 내가 의미하는 바는 우리 모두는 나이와 경험에 관계없이 서로에게서 배울 것이 많다는 것입니다.

5) 포인트 2와 다소 관련이 있습니다. 너는. 그리고 너만. 당신이 당신의 회사가하지 않을 경우 회의에 가고 싶다면 직접 지불하십시오. 매년 도서, 교육 및 전문 개발을 위해 돈을 따로 보관하십시오. 고용주가 당신을 훈련으로 보내도록 기다리면 오래 기다릴 것입니다. 당신의 기술을 보는 데 소요되는 시간은 무의미합니다. 그것을 감당하기에 충분하지 않습니까? 직업을 바꾸십시오.

6) 우리 자신과 동료 프로그래머에게 정직해야합니다. 프로그래밍이 어렵다. 열심히. 그래도 졸업시 재물이 보장 된 컴퓨터 교육 광고가 표시됩니다. 그것은 단순히 자격을 갖추지 못했거나 더 나빠진 돈을 넘어 진정한 관심을 갖지 않는 많은 사람들을 현장에 데려옵니다. 우리는 그들의 경력 계획을 다시 생각하도록 격려하는 방법을 찾아야합니다.

이 시점에서 나는 머리가 터질 것 같아서 결론을 내릴 것이다.

좋은 질문입니다! 더 많은 답변을 기대하고 있습니다.


3
포인트 2와 대부분의 경우 +1.
Carl Norum

@Carl, 정말 좋은 느낌입니다.

큰 질문에 대한 +1. 전적으로 동의합니다. 나는 또한 포인트 2와 3에 전적으로 동의합니다.
KeesDijk

가까운 시일 내에 상품화 추세가 반전되는 추세는 보이지 않습니다. 대부분의 기업 소프트웨어 상점에서 추세는 역할의 과잉 특화 (일명 비둘기 홀링)입니다.
bit-twiddler

1
그러나 경제는 우리에게 자유 나 선택의 여지가없는 직장에있게 할 수 있습니다.
crosenblum

1

나는 그것이 교육 부족의 결과로만 조직화되었다고 생각하지 않습니다. 저는 "모범 사례"가 직업마다 다를 것이라고 생각합니다. "모범 사례"는 항상 특정 상황 내에서 이루어집니다.

가장 일반적인 작업 영역 중 일부에 대해 많은 교차가 발생합니다. 웹 개발. 그러나 대부분의 직무에서 특정 관행에 참여하는 것이 좋기 때문에 모든 직무에서 사용해야한다고 생각하는 것은 잘못된 생각입니다.

참여하는 관행은 업무를 개선시키는 요소에 대한 분석 및 실험에서 비롯되어야합니다. 그들은 맹목적인 믿음으로 선택되어서는 안됩니다. 그물에 무언가가 종종 반향되기 때문에 상황에 맞는 진실이나 진실 (모든 상황에 해당)이 아닙니다.


0

마음을 행사하기위한 좋은 질문은 무언가해야 할 일에 동의하지만 대답하기는 불가능하다고 생각합니다. 내 시도 :

먼저 일반적으로 창의성죽이지 마십시오. Ken Robinson 경에 동의한다고 말해야합니다 . 이 위대한 TED 강연을보십시오 . 우리의 교육 시스템은 창의성을 죽이고 있으며 수정되어야합니다. 특히 프로그래머에게 적합합니다.

두 번째 같은 패턴 가르치기우리의 전문 분야는 충분히 성숙하지 않았습니다. 우리는 갈 길이라고 생각하는 많은 다른 것들을 가지고 있지만 실제로 그것에 동의 할 수는 없습니다. (TDD, BDD, Agile vs Waterfall, 필요한 문서의 양, Java 또는 .Net을 생각하십시오) 내 생각에 이것은 문맥없이 논의하고 많은 전문화 때문입니다. 질문의 문맥을 알지 못하면 올바른 선택을 할 수 없으며 한 가지 옵션 만 알고 있으면 올바른 선택을 할 수 없습니다. 이것을 교육으로 되돌려 놓으면 해결할 수없는 것 같습니다. 당신은 누군가가 가능한 모든 상황과 모든 가능한 해결책을 알기를 기대할 수 없습니다. 그러나 패턴을 통해 이제는 몇 가지 일반적인 솔루션과 컨텍스트가 적용되고 솔루션이 중단 될 때 컨텍스트가 적용됩니다. IMHO 이것이 우리가 가르치는 방법입니다.

세 번째 예제에 대한 면책 ​​조항 우리가 MSDN, 블로그, 책 등에서 보여주는 예제에 문제가 있다고 생각합니다. 그러나 가장 기본적인 예에는 이미 여러 수준에 대한 결정이 있습니다. 이 예들은 다른 모든 결정들을 잘못 가르칩니다. 모든 예에는 요점이 무엇인지, 일반적으로하지 말아야 할 점을 알려주는 면책 조항이 필요하다고 생각합니다. 이것의 좋은 예는 오늘 여기 블로그에 올렸습니다 .

마지막 합니까합니까 나는 더 많은 일을 할이 필요하다 생각합니다. 나는 가장 잘하고, 실패하고, 고치고 토론하는 법을 배웠습니다.

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