태그 보관물: programming-practices

programming-practices

대학 수준과 회사 프로그래밍의 차이점은 무엇입니까? [닫은] 지려면 시간이 조금 더 필요하다고 생각합니다.

IT 분야에서 학사 학위를 마쳤습니다. 나는 코딩에 깊은 관심을 가지고 있으며 실제로 그 전문가가되기를 원합니다. 이제는 대학 과정을 제외하고는 스스로 프로그래밍 (C #)을 배우고 있습니다 (대학 수준 프로그래밍이 너무 기본적 임). 이제 전문 프로그래머와 가까워 지려면 시간이 조금 더 필요하다고 생각합니다. 그러나 일부 선배들은 기업의 세계 프로그래밍이 북유럽 프로그래밍과 너무 다르기 때문에 시간을 낭비 할 필요가 없다고 말합니다. (그들은 프로그래머 자신이 아니며 아마도 이것이 들었을 수도 있습니다).

C #의 고급 수준에 도달하면 도움이됩니까? 또는 평범한 수준이 인터뷰를 중단하기에 충분하기 때문에 기업 수준이 높을수록 기업 세계에서 사물이 작동하는 방식을 가르치고 더 많은 것을 배우는 것이 도움이되지 않기 때문에 순전히 훈련에 의존하기 때문에 기업에는 중요하지 않습니다. 도움을 줄 수있는 전문 프로그래머가 있다면 프로그래밍에 관심이있는 모든 학생들이 내 무대에서 물어보고 싶은 것이라 약속합니다. “실제로 프로그래밍 분야에서 학습자에서 전문가로 어떻게 변화합니까?” -당신이 완벽해질 때까지 계속 배우거나 회사에 합류해야 기본 사항이 다뤄져야합니까?



답변

학교와 실제 환경에서의 프로그래밍에는 많은 차이가 있습니다. 기업 프로그래밍 과 같은 것이 확실하지 않습니다 .

실제로 작업하는 위치에 따라 큰 차이가 있습니다. 또한 현재 진행중인 작업에 따라 큰 차이가있을 것입니다.

그러나 여전히 몇 가지 일반적인 문제가 있습니다.

  • 실제 코드 수명주기는 대학 숙제와 매우 다릅니다. 실제 프로그래밍에서는 일반적으로 기존 코드 기반으로 작업합니다. 가장 큰 문제 중 하나는 고객 (실제 직장 및 사례에 따라 내부 고객 또는 외부 고객 일 수 있음)이 사용하는 코드와의 호환성을 깨뜨리지 않는 것입니다. 작성중인 코드도 나중에 몇 년 동안 사용됩니다 (이는 웹 사이트 또는 일부 장치에 포함 된 코드의 문제와 다릅니다). 이것을 준비하고 싶다면 모든 코드에 대해 단위 테스트와 기능 테스트를 작성하는 습관을 가지십시오. 항상 실제 코드로 수행되는 것은 아니지만 대학 생활과 회사 생활 모두에서 더 간단하게 생활해야합니다.

  • 디자인 / 요구 사항은 일반적으로 대학 분위기보다 실제 세계에서 훨씬 더 어지럽습니다. 전문적인 코드를 작성할 때 누군가가 코드의 목적을 정의해야하며, 장난감 문제 나 잘 알려진 문제가 아닙니다. 조만간 디자인을하는 사람이 될 것입니다! 고객은 일반적으로 원하는 것을 알지 못하며 (원하는 것을 알 때도 필요하지 않을 수 있음) 관리자는 일반적으로 프로그래머에게 많은 세부 사항과 선택 사항을 남기고 큰 그림을 설명합니다. 뒤따른 방법 ( “agile”-vs- “V cycle”등)에 따라, 선택과 세부적인 문제 정의가 조만간 발생할 수 있지만 최소한 열린 마음을 유지하고 실제로 무엇을하고 있는지 궁금해야합니다. 필요합니다. 진행중인 작업이 코딩하기 어렵거나 비효율적 인 경우 요구 사항 변경을 고려할 수도 있습니다. 어쨌든 고객이나 관리자가 당신의 의견을 얻지 못했거나 의견이 맞지 않아 쓸모 없거나 지나치게 복잡한 것을 쓰게 될 수 있습니다. 그럼에도 불구하고 항상 요구 사항에 질문해야합니다 (생존 기술입니다). 또한 작업이 진행되는 동안 요구 사항이 변경 될 수 있으므로 그에 대한 준비가되어 있어야합니다.

  • 대학에서 과제를 받으면 보통 몇 가지 코드를 작성해야합니다. 실제 환경에서는 일반적으로 기존 코드를 대신 사용할 수 있는지 확인하는 것부터 시작합니다. 프로젝트의 일부를 재사용 또는 변경하거나 라이브러리를 사용하거나 구매하는 등의 과제입니다. 할당에 맞는 기존 코드를 찾으면 결국 코드를 ​​사용하게 될 수 있습니다 유지 관리 문제, 성능 문제, 저작권 문제 또는 가격 문제가있을 수 있지만 기존 코드를 재사용 할 수있는 옵션을 고려해야합니다.

팀워크, 프로젝트 규모 등과 관련된 다른 많은 문제가 분명히 있습니다. 그러나 위의 요점은 회사 환경에서는 볼 가능성이 있지만 대학 과제에서는 고려할 필요가없는 문제입니다.


답변

기업 프로그래밍과 대학 프로그래밍의 주요 차이점은 규모입니다. 학교에서는 한 학기 동안 한 사람이 시작하고 마치지 못하는 과제를받지 않습니다. 전문가는 수십 년 동안 “완료되지 않은”소프트웨어에 대해 다른 프로그래머들과 협력 할 수 있습니다.

미세한 수준에서 작업은 다르지 않습니다. 결국, 그것이 너무 다르다면, 대학 학위는 기업에게 가치가 없을 것입니다. 그러나 12 쿠키 굽기와 12,000 쿠키 굽기의 차이점과 비슷합니다. 당신은 전자에 능숙하고 후자는 완전히 단서가 될 수 있습니다.

학교에서는 주로 올바른 프로그램 을 만드는 데 관심이 있습니다. 직장에서 소프트웨어가 충분하지 않습니다. 유지 관리 가능하고 테스트 가능하며 효율적이어야하며 여러 사람이 동시에 작업 할 수 있어야합니다. 그것은 학교가 가르치려고하는 것이지만, 그렇게하는 것 외에는 완전히 배울 수는 없습니다.


답변

이 질문은 잘못된 가정을 기반으로합니다.

“실제로 프로그래밍 분야에서 학습자에서 전문가로 어떻게 변화합니까?”

당신은 그것을 지불하여 전문가가됩니다. 당신은 결코 학습자 그만하지 않습니다. 그렇게하면 경력이 끝납니다.

세상에 나가서 직업을 구하십시오. 학습에 대한 열정은 자산입니다.


답변

짧은 대답, 예. 회사 세계는 많은 대학 환경과는 상당히 다릅니다.

즉, 회사는 이것을 알고 있습니다. 우리는 대학 졸업생들이 거의 쓸모 없을 것으로 기대합니다. 프로그램 학습에 시간을 투자했다면 정말 좋습니다. 지원하기 위해 굉장히 훌륭 할 필요는 없지만 평범한 생활을한다고해서 자르지 않는다는 것을 이해하십시오.

당신은 당신이 스스로 사업에 필요한 것을 많이 배우지 않을 것입니다. 혼자서 계속 배우면서 가능한 빨리 신청하십시오.


답변

C #의 고급 수준에 도달하면 도움이됩니까?

아닙니다. 우리는 학생들이 침입하는 동안 몇 달 동안 무용지물이 되길 기대합니다. 학위는 단지 테이블 스테이크입니다. 지침을 배우고 따르려는 당신의 열정은 최고의 자산입니다. 대학 졸업생을 인터뷰 할 때 나는 그룹을 방해하는 핫샷에 맞지 않는 팀 선수를 원합니다.

… 높은 수준의 기업은 기업 세계에서 사물이 어떻게 작동하고 더 많은 것을 배우는 것이 도움이되지 않는지를 가르치기 위해 순전히 훈련에 의존하기 때문에 중요하지 않습니다.

이는 모든 회사마다 다르지만 일반적으로 대기업은보다 체계적인 교육을받습니다. 이것은 첫 번째 큰 결정입니다. 공식적인 훈련과 높은 수준의 구조를 좋아하십니까? 그렇다면, 그것을 제공하는 직업을 찾으십시오.

실제로 프로그래밍 분야에서 학습자에서 전문가로 어떻게 변화합니까?

구직을 통해 학생을 직업으로 바꿉니다. 시니어는 학교를 통해 회사와 협력 할 것을 권장합니다. 발을 적시고 새로운 직업에 대한 불안감을 극복하는 가장 좋은 방법입니다.

완벽 해 지거나 회사에 합류 할 때까지 계속 기본 사항을 다뤄야합니까?

기다리지 말고 구직하십시오. 긴장하는 것이 일반적이지만 기술에 대해 정직하고 더 많은 것을 배우려는 열정을 숨기지 마십시오. 특히 경력 초기에 회사를 여러 번 바꾸는 것이 일반적입니다.

전문 프로그래밍 과정에 학위를 마치고 행운을 빕니다.


답변

회사 수준과 대학 수준 프로그래밍의 근본적인 차이점은 회사 수준 프로그래밍이 수업 환경에서 경험할 수있는 것보다 훨씬 협력적인 프로세스이며 교육학 학습보다 제품 개발에 훨씬 중점을두고 있다고 말하고 싶습니다.


답변

기업 세계 프로그래밍이 고급 수준의 프로그래밍 문화가 될 것이라고 정말로 기대한다면 다소 실망 할 것입니다. 회사 세계에서 프로그래밍하는 것은 코드를 작성하고 유지 관리 할 수있는 코드에 대한 책임을지는 것입니다.

그러나 당신의 질문에

실제로 프로그래밍 분야에서 학습자에서 전문가로 어떻게 변화합니까?

이것은 회사 및 대학 수준의 프로그래밍과는 관련이 없으며 일반적인 프로그래밍과 관련이 있습니다. 정말로 자신의 소프트웨어 구축을 배우고 싶다면 오픈 소스 소프트웨어 프로젝트에서 구축하거나 작업을 시작하십시오. 직면 한 질문을하십시오. 그리고 다른 사람들의 코드를 읽으십시오.