대학 수준과 회사 프로그래밍의 차이점은 무엇입니까? [닫은]


28

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

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


24
학교는 구직에 필요한 기술을 제공 한 적이 없습니다. 구직에 필요한 도구 를 제공하는 것입니다. 실제 경험을 대신 할 수있는 것은 없지만 여전히 학교가 필요합니다.
Robert Harvey

5
제목이 유용한 질문이라고 생각하지만 질문의 본문은이 사이트에서 다루지 않은 직업 조언을 요구하고 있습니다.
Bryan Oakley

Programmers.SE (화이트 보드) 의 채팅 채널은 그러한 질문을하기에 유용한 장소가 될 수 있습니다. 종종 회사 세계의 다양한 기술을 가진 사람들이 있습니다.


3
보류 ??? 이것은 직업 조언을 요구하지 않습니다. 예,이 질문은 토론에 관한 것이 아니지만 대답 할 수 있습니다. 이 질문에 대한 훌륭한 답변이 많으므로 stackexchange에 메모리가 부족하지 않으면이 질문을 제거해야합니다. 허용 된 답변을 참조하십시오. 경력 조언을 제공하고 있습니까?
vish213

답변:


32

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

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

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

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

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

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

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


기업 프로그래밍이란 회사의 프로그래밍 환경을 의미했습니다. 좋은 답변 btw :-)
vish213

3
좋은 답변 @ kriss. "프로그램"이 아닌 고객의 언어로 말하는 것을 배우는 것이 중요하다고 덧붙입니다. 고객과 고객 모두에게 도움이됩니다.
Paddy Landau

38

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

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

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


필자의 경험에 따르면, "기업 코드"의 대부분은 유지 관리 가능하고 테스트 가능하며 효율적이지 않지만 짧은 시간 내에 문제를 해결하기에 충분합니다. 많은 경우에 코드는 "정확한"것이 아니라 "정확한"것입니다.
사이먼

26

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

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

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

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


4
그것은 좋은 조언이지만 실제로 질문에 대답하지는 않습니까?
Bryan Oakley

6
나는 전문 프로그래머가 결코 학습자가되는 것을 멈추지 않는다는 것에 동의합니다. 나는 끔찍한 끔찍한 코드를 작성하기 위해 돈을 지불 한 많은 아마추어를 만났습니다. Professional은 올바른 작업을 수행하고 올바른 작업을 수행하는 것입니다. 코드 교환에 대한 대가가 아닙니다.
Bevan

@Bevan 그것은 또한 "프로그래머"와 "개발자"의 차이점이라고 주장 할 수 있습니다. 그래도 내가 어디에 서 있는지 확실하지 않습니다.
이즈 카타

3
@Bevan : "professional"이라는 단어는 실제로 모호합니다. 위키 낱말 사전 항목에 열거 된 감각 에는 "직업의 (일반적으로) 직업의 기준과 관련이 있거나"(일반적으로 높은 수준), "특히 생계 수단으로 돈을 위해 행해지는 것"이 ​​포함됩니다. 돈을받는 것은 전자에 대해 아무 것도 말하지 않아도 자동으로 후자의 전문 프로그래머가됩니다.
ruakh

12

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

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

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


4

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

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

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

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

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

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

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

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

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


1

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


1

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

그러나 당신의 질문에

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

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


1

규모에 대한 Karl의 대답은 바로 그 자리에 있습니다. 15 개의 숫자 배열을 정렬 할 필요가 없으며 계정 번호와 같은 백만 개의 데이터 세트를 정렬해야합니다.

데이터 구조와 알고리즘 클래스는 아마도 12 가지의 다른 정렬 방법을 알려줄 것입니다. 실제 응용 프로그램에서는 order by 절을 던져 데이터베이스가이를 최적화 할 수 있습니다.

기업 세계를 준비하는 데는 두 가지 방법이 있습니다. a) 저임금 또는 무보수 인턴쉽을 통해 다른 사람의 업무를 볼 수 있습니다. b) 모든 앱 스토어에서 애플 / Google / MS 스토어에 앱을 작성하고 게시 할 수 있습니다. 이를 통해 워크 플로, 테스트의 가치, 올바른 환경 및 도구 설정 필요성 등을보다 잘 이해할 수 있습니다.


1
소규모 프로젝트를 위해 자원 봉사를 시도 할 수있는 앱 스토어 외에도 추가하고 싶었습니다. 나의 첫 임무는 어머니의 직장에서 휴가 및 초과 근무 보고서를 작성하는 데 도움이되었습니다. :)
SidJ

0

기업 프로그래밍에서 잘 수행하는 데 필요한 주요 사항은 인내심과 기술을 이해하지 못하는 사용자와 의사 소통하는 능력입니다. 단위 테스트, 버전 제어, 신중하게 디버그 및 적절한 추적 / 로깅을 사용하십시오. 언어는 바뀔 수 있지만 침착하고 신중하게 문제를 찾는 것은 항상 효과가 있습니다.


-1

"기업 프로그래밍"이라는 명쾌한 대답 외에 명확하지 않거나 변경되지 않은 요구 사항에 관한 것입니다.

교수가 프로그래밍 숙제를 전달하기 이틀 전에 요구 사항을 변경하면 어떻게 하시겠습니까?

업계에서 이것은 매우 일반적입니다.

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