프로그래머는 언어와 프레임 워크를 선택할 때 얼마나 많은 자유를 가져야합니까?


67

저는 주로 C #을 지향하는 회사에서 일하기 시작했습니다. 우리는 Java와 JRuby를 좋아하는 소수의 사람들이 있지만 C #과 같은 대다수의 프로그래머가 있습니다. 웹 애플리케이션 구축 경험이 많고 JRuby on Rails 또는 nodejs와 같은 최신 기술에 의존하기 때문에 채용되었습니다.

최근에 짧은 시간에 많은 작업을 수행하는 데 중점을 둔 웹 응용 프로그램을 구축하는 프로젝트를 시작했습니다. 소프트웨어 책임자는 레일 대신 mvc4를 사용하도록 지시했습니다. mvc4를 모르고 C #을 모르고 웹 응용 프로그램 서버와 프런트 엔드 UI를 만드는 유일한 사람은 예외입니다.

mvc4를 사용하는 대신 이미 잘 알고있는 프레임 워크를 사용하는 것이 합리적이지 않습니까? 결정의 이유는 기술 책임자가 Jruby / 레일을 알지 못하고 코드를 재사용 할 방법이 없기 때문입니다.

반론 :

  • 그는 코드에 기여하지 않으며 솔직히이
    프로젝트에 필요하지 않습니다 . 따라서 JRuby / 레일을 알고 있는지 여부는 중요하지 않습니다.

  • JRuby가 코드를 가져올 수있는 많은 Java 앱이 있기 때문에 실제로 코드를 재사용 할 수 있습니다. 실제로 그는 JRuby on Rails 앱에서 Java 라이브러리를 실행하는 대신 Java 라이브러리를 C #으로 변환하는 데 필요한 리소스를 제공했습니다. 그가 자바 나 JRuby를 좋아하지 않기 때문에

나는 많은 웹 응용 프로그램을 만들었지 만 익숙하지 않은 것을 사용하면 약간의 스핀 업이 발생하고 익숙한 짧은 시간 내에 멋진 응용 프로그램을 만들 수 없습니다. 이것은 좋을 것입니다; 이 분야에서 새로운 기술을 배우는 것이 중요합니다. 문제는이 프로젝트를 위해 많은 일을 빨리 끝내야한다는 것입니다.

개발자는 어떤 시점에서 도구를 선택할 수 있어야합니까? 회사에 따라 다릅니 까? 우리 회사가 빨거나 이것이 정상으로 간주됩니까? 녹색 목초지가 있습니까? 이 방법을 잘못보고 있습니까?


45
이와 같은 "질서 정의"는 경력 제한 조치 일 수 있습니다.
Dan Pichelman


39
회사는 도구를 표준화하는 것을 좋아합니다. 도구는 앱 구매 관점에서뿐만 아니라 회사 리소스 관리 측면에서 비용을 절감하기 때문입니다. 라이센스 관리는 실제로 시간이 많이 걸립니다. 또한 모든 사람이 자신이 선택한 언어 / 도구를 사용하면 작업간에 사람들을 섞을 수있는 것이 훨씬 더 어려워집니다. 마지막으로 SW 리드에 대한 불만은 선택한 도구를 사용하려는 이유와 동일합니다. mvc4에 익숙하지 않거나 마음에 들지 않습니다. sw 리드는 리드이므로 마음을 바꿀 수있는 논증을 제시 할 수 없다면 그것은 소명입니다.
Dunk

22
면접 중에 모든 문제를 해결해야합니다.
user16764

30
당신은 있습니까 프로그래머 또는 루비 프로그래머 ? 언어는 도구와 같아야합니다. 어떤 사람들은 장단점이 있지만, 그것을 최대한 활용하는 것은 장인의 몫입니다. 이 회사는 명백한 이유로 표준 툴셋을 지시했습니다.

답변:


98

팀장과 이야기하고 다음과 같이 말해야한다고 말하고 싶습니다.

나는 너희들이 .NET 상점이라는 것을 알고 있지만 실제로 Java / JRubyRails 기술을 위해 고용 되었다. 이미 알고있는 도구를 사용 하여이 새로운 응용 프로그램을 X 시간 내에 구축 할 수 있습니다 . 원하는대로 C # / mvc4를 배울 수 있지만 >> X 시간이 걸립니다. 무엇을 원하세요?

이것은 대 "-hired-에 대한 (assumedly) - 당신 - were- 기술"의 문제 제기 "기술을 - 당신이 - 필요 - 이제"또한 당신이 새로운 기술을 배울 의향이 있음을 보여 주지만 있다는 것이다 걸릴 이 도구 세트를 처음 사용하면 새로운 응용 프로그램을 개발하는 데 더 오래 걸립니다. 그리고 당신은 당신이 새로운 기술을 배울 의향이 있음을 보여주고 싶다. 새로운 기술을 익히지 않는 것이 기술이 더 이상 필요하지 않을 때 고용을 종료 할 수있는 좋은 방법입니다.

끝에 당신의 질문에 관해서 :

개발자는 어떤 시점에서 도구를 선택할 수 있어야합니까? 회사에 따라 다릅니 까? 우리 회사가 빨거나 이것이 정상으로 간주됩니까? 녹색 목초지가 있습니까? 이 방법을 잘못보고 있습니까?

일반적으로 회사에 따라 다릅니다. 만약 회사가 MS 툴을 구매하고 VisualStudio 플랫폼과 .NET 프레임 워크에서 모든 것을 표준화한다면, 한 개발자가 Linux와 C 사용을 고집한다면 매우 어색 할 수 있습니다. 회사가 편집자에 대해 덜 까다로운 경우 (예 : 출력이 동일한 한 개발자가 Vi 대 Emacs를 선택하도록 허용하는 경우) 예외가있을 수 있습니다. 일부 회사는 개발자가 Windows와 Linux를 선택하도록 허용하지만 그들이 사용하는 언어는 두 OS 모두에 대해 매우 우수한 지원과 런타임을 제공합니다.

왜 회사가 이것을 하는가? 일관성이 한 가지 이유입니다. 응용 프로그램이 다양한 개발자가 선호하는 언어 / 프레임 워크로 빌드되고 다른 도구로 빌드되고 매우 다른 시스템에서 테스트 된 바이너리의 패치 워크 인 경우 디버깅이 매우 어려울 수 있습니다. 모든 개발자가 대부분 유사한 설정 작업을하는 경우 이러한 종류의 문제가 해결됩니다.

귀하의 경우, 귀하는이 회사에서 비표준 기술로 일하도록 고용 된 것 같습니다. 이것은 나에게 이상하게 보이며, 당신이 그것을 원 했는지 에 관해 당신을 고용 한 사람과 이야기하고 싶을 수도 있습니다 .


31
"이미 알고있는 도구를 사용하여이 새로운 응용 프로그램을 X 시간 내에 구축 할 수 있습니다. 원하는대로 C # / mvc4를 배울 수 있지만 >> X 시간이 걸립니다. 무엇을 원하십니까?" -좋은 대답입니다. 비용 절충 형태로 구성하십시오.
Christian Ternus

동의했다. 경제에 관한 모든 것. 당신이 당신의 관점에 경제적 인 스핀을 넣어되면, 어떠한 리드 진짜, 당신을 듣고 자신의 입장을 재고 할 것이다. 예 를 들어, 시간이 더 걸린다는 것은 나중에 수입이 올랐다는 기한을 놓칠 수 있음을 의미합니다 . 때때로 그들은 본질적으로 '무역 (trade off)'의 목표로가는 길을 보여줘야합니다.
PhD

6
+1. 이 답변이 나를 만족시키지 못하는 유일한 방법은 학습 측면을 약간 강조하지 않는 것입니다. 배우고 자하는 개발자는 한 가지 일에 대해 모든 것을 알고 변하지 않는 사람보다 훨씬 귀중한 자산 입니다.
Corey

7
+1 또한 리드가 MVC를 사용하기로 결정하면 OP는 버클을 내려 MVC에서 프로젝트를 수행해야한다는 점을 강조합니다.
Dan Lyons

"일부 회사에서는 개발자가 Windows와 Linux를 선택할 수도 있습니다."또한 루비 세계에서도 Mac 사용자를 찾을 수도 있습니다. (우리 회사는 대부분 Ruby 상점이지만 편집기 나 OS에는 제한이 없으며 현재 Linux 및 Mac을 사용하는 개발자가 있지만 현재 Windows 컴퓨터를 사용하는 개발자는 없습니다).
Ben Lee

140

개발자는 어떤 시점에서 도구를 선택할 수 있어야합니까?

그들이 당신의 팀에 영향을 미치지 않을 때.

이 방법을 잘못보고 있습니까?

물론.

예, 마감 시간이 짧습니다. 예, Rails에서 더 빨리 할 수 ​​있습니다. 그러나 회사는 전체적으로 응용 프로그램을 배포하고 유지 관리해야합니다. 회사에 C # 개발자가 안정적인 경우 C # 앱을 유지 관리하는 것이 더 저렴할 것입니다.

귀하의 DBA와 다른 관리 직원은 아마 스택에 익숙하고 배포하고 업데이트하는 장소에 프로세스가 스택. 코드를 더 빠르게 수행 할 수 있더라도 전문 웹 앱을 시작하고 실행하는 데 필요한 모든 오버 헤드를 고려하면 시간이 더 오래 걸릴 수 있습니다.

앱을 작성하는 것보다 앱을 유지 관리하는 데 더 많은 시간을 할애해야합니다. 그 비용을 최적화하십시오.


19
좋은 대답입니다. 이 경우 '최고'는 초기 개발 , 특히 초기 프로그래머를 위해 가장 빠른 최적화를 의미하지 않을 수 있습니다 . 비즈니스 관점에서 볼 때 앱 은 유지 관리 모드에서 훨씬 더 많은 시간 보내고 전체 팀이 지원할 것이므로 프레임 워크 결정을 추진해야합니다.
Eric King

4
나는 이것이 일반적으로 올바른 조언이라고 생각합니다. 제 경우에는 많은 우려 사항이 적용되지 않기 때문에 답으로 선택하지 않았습니다. 배포 설정 및 응용 프로그램 배포를 담당합니다. 유지 관리 부분에 동의합니다. 유효한 문제입니다. 누군가가 코드를 업데이트해야 할 때 몇 년 동안 어디에 있는지 알 수 있습니다.
스펜서

2
가능성은 실제로 JRuby / Rails 기술에 고용되지 않았지만 웹 애플리케이션 구축 경험에 대해 고용되었으며 실제로 찾고있는 것은 MVC4 및 C #의 맥락에서이를 활용하는 것입니다.
Jay Stevens

당신이 좋은 지적을했지만, 그 스택에 경험이없고 아마도 관심이없는 사람이 그렇게하는 것은 말이되지 않습니다. C # 직원 중 한 명이 해보지 않겠습니까? 그들이 할 일은이 사람이 자신의 프로젝트에 대한 소유권이없는 것처럼 느끼게하고, 타 버린 느낌을 느끼게하고, 회사를 떠나게하는 것입니다.
s73v3r

@ s73v3r-OP가 자신이 무엇을 받고 있는지 알기를 바랍니다. 솔직히 C # 개발자 (및 코드베이스)의 보트로드가 있다면 인터뷰 중 Rails 담당자에게 분명합니다. 그가 직업을 가져간 다음 실제로 그가 고용 한
저질렀다면

41
  1. "새로운"기술에 적응할 수있는 능력 때문에 고용 된 것 같습니다. 그런 점에서 C #도 다르지 않습니다. 새로운 것을 배울 기회를 갖고 싶지 않습니까?

  2. ASP.NET MVC는 여러면에서 Ruby on Rails와 매우 유사합니다.

  3. 당신은 달팽이의 속도에 영원히 있지 않을 것입니다. 이미 ROR을 알고 있다면 ASP.NET MVC가 도움이 될 것입니다. 요령은 C #을 배우는 것입니다.


18
+1, 단일 언어 / 프레임 워크에 자신을 묶는 것은 바보입니다. 새로운 것을 배우고 돈을 벌 수있는 기회를 가지십시오. 그리고 .NET은 활발하고 흥미로운 개발이 진행되고 있습니다.
jozefg

나는 그것들이 비슷하지만 많은 시간이 걸릴 수있는 중요한 차이점이 있음에 동의합니다. 프로젝트에 한정된 시간이 주어지면 저는 Rails가 확실한 선택이라고 생각합니다. 나는 질문에서 언급 한 것처럼 새로운 것을 배우는 것에 반대하지 않습니다.
스펜서

항목 # 1은 분명하지 않습니다-OP는 Java / JRuyb / Rails / nodejs 경험으로 인해 고용되었다고 말합니다. 웹 응용 프로그램을 구축 한 경험이 많고 JRuby on Rails와 같은 최신 기술에 의존 하기 때문에 고용되었습니다. 또는 nodejs. OP는 그들의 적응성 또는 그들의 적응성이 고용 된 이유라고 말하지 않습니다.
FrustratedWithFormsDesigner

2
+1은 동의했다. 나는 언어 L1에서 A를 수행하는 방법을 완벽하게 잘 알고 있지만 언어 L2에서는 완전히 할 수 없다고 장르의 주장을 이해하지 못했다.
Shivan Dragon

2
@Spencer : 당신이 우리에게 조언을 요청할 때, 모든 사람이 당신에게 같은 조언을 줄 때, 당신은 아마 그 조언을 받아 들여야합니다. 인정할 때 답변에 대해 논쟁 할 필요는 없지만 올바른 질문이 무엇인지 모른다는 질문을합니다.
Andrew Coonce

21

Java / JRuby를 유지하기위한 인수

당신의 상사가 당신이 생산하기를 원할 수도 있습니다. 그들은 당신을 회사에 가치를 더할 수 있도록 당신을 고용했습니다. 익숙하지 않은 프레임 워크를 사용하도록 강요하면 다음과 같은 결과 초래할 수 있음을 이해해야합니다 .

  1. 더 느린 속도로 결과 생성
  2. 저품질 코드 생성

최고의 프로그래머도 새로운 언어 / 프레임 워크로 워밍업 시간이 필요합니다.

MVC4 및 C # 학습을위한 인수

새로운 언어를 배우는 것이 좋습니다. 배우는 언어 / 플랫폼이 가까운 미래에 사라질 경우 프로그래머로서의 기술에 투자하는 것은 위험에 지나지 않으며 Microsoft의 문제로 인해 문제가되지는 않습니다. C #과 MVC는 둘 다 최근에 업데이트되어 파이프 라인에 더 많은 업데이트가있었습니다.

개인적으로,보다 균형 잡힌 개발자가 되더라도 이러한 상황에 처할 수 없습니다. 가장 좋은 부분? 상사는 이런 것들을 배우기 위해 돈을 지불 할 것입니다. 이는 더 많은 돈을 벌 수 있도록 돈을 지불한다는 의미입니다.

결론

이 싸움에서 이길 수는 있지만 불만을 품은 동료들과 계속 일하게 될 것입니다. 각각의 장단점을 관리자에게 설명하면 다른 쪽 끝이 더 행복해질 것입니다.


11
+1, "더 많은 돈을 벌기 위해 돈을 받는다는 것을 의미"빙고!
GrandmasterB

이 (그리고 몇 가지 답변) 지적했듯이, 귀하의 시간에 대한 초기 생성과 다른 사람의 배포 / 유지 관리 사이에는 상충 관계가 있습니다. Pointy-Hairs가 그 거래를 기꺼이하는지 확인하기 위해 적절한 (하지만 존중하는) 노력을 기울이지 만, 그들의 결정을 존중하고 회사 시간에 새로운 것을 배우기 위해 돈을받는 것을 즐기지 않는다면.
brichins

@brichins : 나는이 대답에 큰 문제 중 하나가 실제로 있다고 생각 하지 않습니다 당신이하지 말 것을 지적한다!
ruakh

@ruakh 나는이 의견을 남길 대답을 알아내는 데 어려움을 겪고있었습니다. 당신은 맞습니다. 이것은 특정 트레이드 오프를 해결하지 못합니다 (결과적으로 발생할 수있는 직장 긴장을 지적하지만). 또한 OP가 모든 의사 결정자와 대화를 나눌 수 있어야한다고 말했을 것입니다. 프로젝트가 마감일을 지키지 않으면 정중하게 전달할 수 있도록 모든 의사 결정자와 대화 해야합니다. 아마도 다음 프로젝트에서 루비를 대신 사용해 볼 수 있을까요? "
brichins

18

개발자는 어떤 시점에서 도구를 선택할 수 있어야합니까?

상기 개발자가 소프트웨어 리더 인 경우.

확실히 생산성에 대해 염려 할 경우 다른 툴킷을 사용하는 경우도 있지만 그럴 수도 있습니다. 현재 아키텍처와의 호환성, 유지 관리, 라이센스 문제 등에 대한 우려 때문에 리드가 특정 툴킷을 사용하기를 원하는 정당한 이유가있을 수 있습니다.

BTW, 문구

짧은 시간에 많은 일을 처리하는 데 중점을두고

소프트웨어 산업에서 다른 어떤 것보다 더 많은 가슴 앓이와 신체 상해에 대한 책임이 있습니다.


2
+1 "개발자가 소프트웨어 책임자라고 말했을 때." 바로 그거죠. 때때로, 당신이 당신의 요점을 주장하고 당신의 리드가 당신과 동의하지 않을 때, 그것은 당신의 리드가 큰 그림을 더 잘 볼 수 있기 때문입니다. 이것은 그러한 상황 중 하나입니다.
Andrew Coonce

동의하지 않는다. 그렇게하면 추종자들이 결정을 내리고 책임을지는 방법을 잊어 버릴 추종자들에게 아무것도 이끌지 못하게됩니다. 당신이 원한다면-좋아. 팀 리더로서 사람들보다 더 영리한 곳이 있다고 생각합니다. 그러나 그렇습니다. 어떤 사람들은 그것에 문제가 있으며 그것은 비극입니다.
JensG

"다른 것보다 소프트웨어 업계에서 더 많은 가슴 앓이와 신체 상해에 대한 책임이 있습니다."라는 답변에 진지하게 웃었습니다. 감사합니다! 더 잘 표현하지 못했습니다!
Alexus

11

JRuby 또는 Java 프로그래머로 고용되었다고 말하는 것은 아닙니다.

"[B] 웹 애플리케이션을 개발 한 경험이 많고 JRuby on Rails 또는 nodejs와 같은 최신 기술에 의존하고 있기 때문입니다."

다시 말해, 그들은 웹 경험새로운 기술을 배우려는 의지를 좋아합니다 .

이제 그들은 웹 경험 을 사용 하고 새로운 기술배우도록 요구하고 있습니다.

문제는 그렇게 하시겠습니까?


9

소프트웨어에서 가장 큰 비용은 유지 관리에 있습니다

가장 큰 비용 (80 %)이 소프트웨어 유지 관리 비용이라는 것을 읽었습니다. 초기 개발은 총 개발 비용의 20 %에 불과합니다.

나는 영어가 아닌 모국어로 코드와 주석을 개발 한 개발자에 대한 사례를 읽었고 다른 팀원이 코드를 향상시키고 유지하려고 할 때 언어 (모든 프로그래밍 언어가 아님)가 외국이기 때문에 불가능한 옆에있었습니다. 그들에게.

마찬가지로, 원하는 프로그래밍 언어로 코드를 개발하면 다른 팀 구성원이 유지하기 어려울 수 있습니다.

솔루션 : 페어 프로그래밍

필요한 프로그래밍 언어를 알고 있고 함께 일할 수있는 다른 사람과 고용주를 고용하도록 요청하십시오. 서로에게서 배울 수 있으며, 어느 쪽이든 회사를 떠나면 다른 쪽이 코드를 알게됩니다.

"쌍 프로그래밍"에 대한 Wikipedia 기사 : http://en.wikipedia.org/wiki/Pair_programming


3
자신 만 이해하는 것을 쓰면 영원히 유지해야 할 것입니다.
jwernerny

6

많은 회사는 단순히 항상 수행 한 작업이나 "안전한"작업을 선호합니다. Java와 PHP가 여전히 인기있는 이유가 있습니다. 현재 indeed.com에서 "COBOL"을 검색하면 2144 개의 목록이 표시됩니다. 업계는 좋은 코드를 신경 쓰지 않고 가능한 한 오랫동안 우유를 넣을 수있는 코드를 신경 씁니다 (C #이 나쁘다는 것을 의미하지는 않지만 실제로는 그렇지 않습니다).

이것에 대해 생각해보십시오 : 코드는 당신을 오래 사용할 것입니다. 다른 사람이 귀하의 코드를 유지하고 C #이 Node.js 및 Rails보다 더 안전한 방법 일 가능성이 큽니다. 펄과 다른 언어가 "it"웹 언어로 간주 된 후에도 5-6 년 안에 루비 프로그래머의 수가 절반으로 줄어든 것도 놀랄 일이 아닙니다. Javascript는 사라지지는 않지만 이미 웹의 일종의 ASM (또는 C)으로 사용되기 시작했습니다. 다른 언어는 다른 언어로 컴파일하여 서버 측 코드를 작성할 수 있습니다. 아주 쓸모 없게됩니다.


4
이것이 사실이지만 C # 상점이 C #을 모르는 루비 개발자를 고용하는 것은 좋지 않은 일입니다.
Carson63000

5

개발자가 목표를 구현하는 방법을 선택하는 것에 대한 나의 주요 관심사는 일반적으로 코드를 편집 할 것이라고 가정한다는 것입니다. 12 개월 후에 변경이 필요할 수 있습니다. 당신은 사용할 수 없습니다 (회사를 떠나거나 다른 작업에 정말로 바쁘다), 다른 개발자가 코드를 휘젓어야합니다. C # 상점이라면 툴셋을 사용하는 것이 좋은 팀워크입니다. 새로운 기술을 조사하고 구현해야하지만, 단서가 아니라 많은 목표에 주목하기 때문에 시간이 옳다고 생각할 때만 가능합니다.


3

뒤집어주세요 루비 개발자를 고용 한 사람이 Asp.net/MVC에서 자신의 작업을 구현한다고 주장한다고 상상해보십시오.

그들에게 무엇을 말 하시겠습니까? 이것은 우리의 스택입니다. 함께 사는 법을 배우십시오.

황금률, 여기, 금을 가진 그녀가 규칙을 만듭니다.


1
그러나 왜 루비 역할에 .NET을 사용한다고 주장하는 사람을 고용하겠습니까?
Bobson

3
서로 다른 기술의 번호와 문제를 해결할 수있을 것으로 보인다 밝은 젊은 프로그래머이기 때문에 @Bobson, 만족스럽게 일반 프로그래밍 문제를 해결, 그리고 그들은 일자리를 적용했다.

2
@Bobson : 이제 회사는 선택한 언어에 경험이없는 개발자를 고용해서는 안된다고 주장합니다. 다른 사람들은 다른 방향으로 논쟁하는 것처럼 보입니다. 그들은 새로운 언어를 정말 빨리 배울 수 있다고 주장하므로 회사는 특정 언어의 전문가가 아니기 때문에 좋은 개발자를 넘어서는 안됩니다.
Dunk

2
" 웹 애플리케이션을 구축 한 경험이 많고 JRuby on Rails 또는 nodejs와 같은 최신 기술에 의존하기 때문에 채용되었습니다." -이것은 XYZ 개발자로 고용되지 않았으며, "새로운 기술에 대한 경험이있는 웹 개발자로 선정되었습니다"(회사는 향후 업데이트를 원할 것입니다).

3
@Bobson : 새로운 회사에 고용되면 테이블에 무엇을 가져올 지 알뿐만 아니라 어떤 프로젝트를 진행할 것인지, 그들이 어떤 프로젝트를 할 것인지도 알고 있습니다. OP 가이 정보를 찾기 위해 귀찮게하지 못하면 그에게 수치를 부릅니다. 그렇게 말하면서, 이것은 실제로 mvc4 물건을 집어 올리는 것이 사소한 장애물이라는 기대와 함께 팀에 도움이되는 관련 도메인 지식을 가진 훌륭한 개발자라고 생각하는 사람을 고용하는 회사의 경우라고 생각합니다. 회사가 그 점을 잘 설명하지 못했을 수도 있지만 OP도 그 역할을하지 않았습니다.
Dunk

2

여러 가지 상충되는 목표가 있으며 문제는 최상의 타협점을 찾는 것입니다. 마감일이 있고, 특정 툴셋을 요청하는 팀장이 있으며, 툴셋에 경험이 없지만 일정 기간 내에 무언가를 생산할 운명이있는 개발자가 있습니다.

팀 리더가이 도구 세트를 정확히 요구하는 몇 가지 이유가있을 수 있음을 이해하는 것이 중요합니다. 첫 실행에서 할 수있는 최선의 방법은 이러한 이유가 무엇인지 알아내는 것입니다.

당신의 입장에 서서, 나는 팀장과 이야기하고 상황을 설명하려고 노력하고 옵션과 결과 (단기 및 장기 경제 효과 포함)가 생성 될 것입니다. 이러한 각 옵션을 따릅니다. 예를 들어, 한 쌍의 프로그램 세션 등을 통해 더 숙련 된 다른 개발자를 코치 할 수 있습니다.

팀장이 완전한 상식이 아니라면 프로젝트 및 회사의 전체 목표와 관련하여 합의를 찾을 수 있어야합니다.


2

바. 모두 잘못되었습니다.

단일 플랫폼 사용자보다 더 나은 개발자가 되십시오. 그 어느 때보 다 훨씬 흥미로운 옵션이 있습니다. 그래서 지금은 MVC를 배우십시오. 그리고 자신의 시간에 관심이있는 플랫폼에 대해 자세히 알아보십시오. 당신의 노드 기술을 구축하십시오. 장고를 배우십시오. 노출 된 Java 또는 pre MVC .NET shenanigans에주의를 기울이십시오. 그러나 최소한 그 플랫폼의 간신히 타오르는 증오에 대한 생각을 얼마나 비판하고 설명 할 수있을만큼 충분히 배우십시오. 좋아

그리고 지금 중요한 조언을 위해. 전문 분야를 계속 발전시키면서 다른 분야의 전문 지식을 다양 화하면 결국 주요 도시에서 2 주 이내에 단기간 내에 새로운 일을 찾을 수있는 장소에있게됩니다. 적어도 절반의 시간이 흥미 롭습니다. 이 장소에서 자신을 찾으면, 그들이 원하는 곳에서이 일을 참지 말고, 둘째 날에는 장기적으로 예측할 수있는 희망을 가지지 않고 그 일을하도록하십시오. 정중하게 설명하고 사과하지만 실제로는 그렇게하고 싶지 않았고 인터뷰에서 많은 것을 말한 다음! @ # $ ing 종료하고 몇 주가 지나면 계속 진행할 수밖에 없었습니다. 그들이 당신에 대한 입장을 잘못 나타내고 사실을 인정하지 않았다는 사실.

그러나 새로운 공연을 찾는 것이 5 분 이상 지속되는 시간 동안 심각하게 짜증을 내고 불만을 갖는 것보다 항상 더 낫습니다. 그러나 당연히, 먼저 회비를 내셔야합니다. 어떤 사람들은 결코하지 않을 것입니다. 그렇기 때문에 그들이 가장 잘 알고있는 모든 것을 원합니다. 물론 다른 대답은 실제로 잘못되지 않습니다. .NET 상점이 바보 같은 것을 유지 해야하는 경우 .NET과 함께가는 것이 합리적입니다.

물론, 말이 안되는 것은 Rails / JS / UI 개발자로 다각화하고 MVC 앱만하는 이유입니다. 그러나 지금은. 당신은 그것을 픽업하고 회비를 지불해야 할 수도 있습니다. 그리고 의견에서 말했듯이 MVC는 그렇게 나쁘지 않습니다. 모든 옵션이 주어졌지만 확실히 최악은 아닙니다. 그것은 매우 간단하고 실제로 발생하는 모든 것 위에 10,000 개의 추상화 계층을 던지지 않으며 클라이언트 측으로 너무 왜곡되지 않아서 누군가 귀찮게 할 책임이있는 MS 엔지니어의 이름을 저주 할 수 있습니다. 그들을 배우기 위해.

따라서 원치 않는 경우 원할 때 떠날 수있는 곳으로 가십시오. 현재 마음에 드는 것들에 대해 더 회의적인 시각을 가질 수도 있습니다. 내가하는 것처럼 마음에 들지 않는 레일을 찾을 수도 있습니다. 루비에는 문제가 없습니다 (물론 통역사 제외).


1

상황에 따라 그들이 왜 당신을 고용했는지를 가정하는 것이 위험 할 수 있으며, 그보다 더 많은 점은 관리자가이를 알고 사람들을 고용하는 것이 좋습니다.

위의 조언을 구하고 왜 C #을 통해 JRuby와 함께 가야하는지 비즈니스 사례를 만들 것입니다. 아마 논쟁과 타임 라인은 오래된 방식에서 벗어나는 것이 의미가 있습니다. 나는 단지 괜찮다고 생각하지 않고, 관리자에게 사실을 알려주거나, 사실을 이끌어 내고 결정을 내릴 수 있도록합니다. 대가로 많은 돈을 지불하고 CYA를 조금 더 지불합니다.


1

저의 솔직한 견해로는, 훌륭한 개발자를 크게 분리시키는 것 중 하나는 새로운 기술에 적응하는 능력입니다. 우리는 오늘날 최고의 기술이 내일 쓸모 없게 될 빠른 세상에 살고 있습니다. 따라서 적응하기를 원하지 않는 개발자는 회사에 제한적으로 사용됩니다. 좋은 사람을 찾아서 고용하는 것이 정말 어렵다는 사실과 회사가 자신의 보석을 찾으면 장기적으로 계획하고 있다는 사실은 조금이라도 좋을 것입니다.

나는 회사가 그들의 기술 범위를 벗어난 것을 보았고 그들은 똑같은 이유로 그것을합니다. 그들은 새로운 기술에 적응하기를 기다리는 경우에도 훌륭한 개발자를 만나기를 원합니다.

지금 당신의 상황에. 그룹의 새로운 사람으로서 나는 내가 말한 것에 대해 매우주의를 기울이고 상사에게 말하지 않습니다. 물론, 새로운 환경에 적응하고 있다는 가정하에 많은 도움을받을 수 있습니다. 그러나 선호하는 기술에 대한 권위와 완고한 인내심은 상사들이 당신을 고용하는 실수를 저지른 것으로 생각하게 만들며, 당신이 당신의 안락 지대를 기꺼이 떠나지 않을 것이라고 생각하게 할 것입니다.

당신이 선택할 것은 당신에게 달려 있지만 새로운 기술을 배우려고 노력할 것을 제안합니다. 아프지 않겠다고 약속한다


1

C #에 대한 지식이 부족하다는 면담 중에 정직하다고 가정하겠습니다. 그렇지 않은 경우 법적 관점에서 매우 위태로운 입장에 있기 때문입니다.

좋은 프로그래머는 프로그래밍을 알고 있습니다. 모든 언어와 프레임 워크에 정통한 사람은 없지만, 대부분의 사람들 사이에는 상당한 공통점이 있습니다. 요즘 주류를 구성하는 언어 (예 : Lisp)와는 다른 언어로 작업하라는 요청을받지 않는 한, 훌륭한 프로그래머가 적응할 수 있어야합니다.

당연히 학습 곡선이 있습니다. 고용주가 당신을 고용했다면, 합당한 시간 내에 그 곡선을 따라갈 수있는 능력에 자신감을 가져야합니다 (다시 말해 C #을 모르는 것에 대해 정직하다고 가정 할 때). C # 언어는 Java에서 많이 빌려 온다.보다 일반적으로 대부분의 클래스 기반 프로그래밍 언어는 기본적으로 매우 유사하다 (프로토 타입 기반 언어 인 ECMAScript를 기반으로하는 node.js를 언급 했으므로 분명히 다른 프로그래밍 패러다임에 익숙합니다.

좋은 프로그래머는 융통성있는 것 외에도 새로운 것을 배우고 싶어해야합니다. 소프트웨어 개발에서는 일반적으로 배우거나 관련이 없습니다.

물론 C #을 모른다는 가정하에 고용주는 반쯤 만나야합니다. 배우고 자하는 열망을 나타내면 그렇게 할 시간과 자원을 주어야합니다. 깊은 곳에서 당신을 던지는 것은 불공평하고 불필요하게 스트레스입니다. 앉아서 상사와 조용하고 합리적인 토론을해야합니다. 그들이 C #에서 그것을 원한다면, 당신이 그것을 배우는 동안 학습 곡선에있을 것이라는 것을 받아 들일 준비가되어 있어야합니다. 마감일이 유연하지 않고 전략적으로 중요한 경우 마감일 내에 작업을 완료 할 수 있도록 위도를 준비해야합니다. 그들이 사무실에서 가장 일반적으로 사용되는 언어로되어 있어야한다면, 지금 당신이 원하는 언어로 구현하도록 요청할 수 있습니다. 기한을 맞추고 다음 프로젝트가 C #에서 학습 연습으로 다시 구현하고 외부 요구 사항을 충족하면 소프트웨어가 내부 요구 사항을 준수하도록하는 데 익숙합니다. 내가 말했듯이, 오늘날 가장 일반적으로 사용되는 대부분의 언어는 공통점이 많으므로 대부분 구현 세부 사항으로 귀결됩니다.

C # 상점에서 일하고 있다는 사실을 조만간 받아 들일 준비가되어 있으므로 벨트 아래에 C #이 있어야합니다.


0

.NET 환경에서 모든 사람이 MVC를 사용하는 방식에 만족하지 않을 수 있습니다. 웹폼처럼 취급하는 것이 너무 많을 수 있습니다. 절차 적 배경을 가진 사람이 OOP에서 시작하여 모든 것을 하나의 큰 클래스에 넣고 평소와 같이 비즈니스를 계속할 때도 마찬가지입니다.

이 첫 번째 프로젝트는 그렇게 빨리 원하기 때문에 이상적인 상황이 아닙니다. .NET의 속도를 최대한 높이고 최대한 빨리 기능을 분류하십시오. 일을하는 방식이 마음에 들지 않을 것입니다.이 물건을 리팩토링하고 다른 언어로 기술을 적용하기 시작한다는 것을 명심하십시오.

더 많은 루비 스타일에서 MVC4를 사용하는 방법 (다른 모든 사람들이 올바르게 수행하지 않는다고 가정)이 Webforms 사고 방식에서 모든 사람들을 잡아서 벗어날 수 있기를 바랍니다.

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