2009-06-04 2 views
10

저는 중소 기업을 위해 C# .NET 응용 프로그램을 작성하고 있습니다. 프로그래밍에 학위를 갖고 있지 않은 우리들을 위해, 우리가 놓친 것은 우리 스스로를 가르치는 것을 발견하는 데 수년이 걸릴 수 있습니까?컴퓨팅을 공부하지 않아서 놓친 것은 무엇입니까?

저는 전자 공학 학위를 소지했기 때문에 16 세에 학교를 그만 두었고 Visual Studio에 앉아있는 것처럼 보였습니다. 나는 연구, 알고리즘, 제어 시스템, 수학 등에서 기본적인 임베디드 C를 다뤘다. 나는 이것을 알아야 할 필요가 있지만 그렇게하지 말아야한다고 생각한다.

답변

16

저는 동료 EE이지만 컴퓨터 과학 분야에서 꽤 많이 다루기 때문에 전자 공학 학위에서 다루지 않은 컴퓨터 과학 학위의 주제를 다룰 수 있습니다. 프로그래밍을위한

이산 수학

수학 공학 수학에서 상당히 다르다. 유일한 명백한 오버랩은 이산 확률입니다. 알고리즘 및 Big O 표기법과 같은 다른 주제는 일반적으로 공학 수학 과정에서 다루지 않습니다.

데이터 구조와 알고리즘

공학 프로그래밍 과정은 일반적으로 순환 및 분할 정복 (퀵 상기 FFT) 같은 단순한 알고리즘 개념과 연결리스트 및 나무와 같은 간단한 데이터 구조를 커버한다. 데이터 구조 및 알고리즘에 대한 컴퓨터 과학 과정은 동적 프로그래밍 및 그래프와 같은 추가 데이터 구조와 같은 추가 알고리즘 개념을 다루게됩니다.

계산의

이론은 확실히 내 EE 정도에 포함되지 않은 오토마타 이론과 완전성 (P, NP 등) 등의 주제를 알고있다.

+0

귀하의 답변은 EE 배경에서 오는 올바른 것들을 다루고 있습니다! – Tim

+0

그래, 내가 고급 알고리즘 코스도 추가 할거야. 정말 효율성을 볼 수 있습니다 ... – Irwin

2

18 세의 나이에 학교를 그만 두었고 이제는 10 년 동안 다양한 언어로 전문적으로 프로그래밍했습니다. 저는 Comp를 얻은 몇몇 사람들의 정확한 질문을했습니다. Sci. 또는 소프트웨어 공학 학위. 지금까지 내가 놓친 것을 발견 한 유일한 것은 대학에 다닐 때 얻게되는 일반적인 삶의 경험이었습니다.

필자는 Comp Sci 또는 유사한 것을하고 관련이없는 분야에서 경력을 쌓은 소수의 사람들을 발견했습니다. Comp Sci 과정이 귀하의 진로 선택에 도움이 될 수 있습니다.

+1

알고리즘에 대한 관심이 매우 중요한 시나리오에서 일한다면 말할 수 있을지 궁금합니다. – akappa

+0

대학은 알고리즘을 배우기에 좋은 장소 일 수 있습니다. 나는 아직 그것을 배운 것이 없어서 놓친다는 말을 듣지 못했지만 많은 게임이나 과학 프로그래머는 모른다. –

2

다른 곳에서도 읽을 수없는 프로그래밍 코스에서 배운 비밀이 없으므로 놓친 내용을 말하기 어렵습니다. 그러나 내 경험상, 올바른 발달이없는 사람들은 재귀, 적절한 객체 지향 등의 개념을 파악하는 데 종종 문제가 있습니다. 또한 흔히 따르는 대신 자신의 명명 스키마 등을 사용합니다.

+1

물론 그 반대도 사실 일 수 있습니다. 때로는이 교육을받은 사람들이 "현실 세계"에서 프로그래밍의 특정 차이점이나 제약 사항에 맞추기가 힘들 때가 있습니다. –

+0

나는 콜린 (Colin)에 동의한다. '교육받은'사람들은 이론에 대해 많이 알고 있기 때문에 명명 표준을 따를 수 없다. –

+0

진정한 교육을받은 사람들은 현실 세계에서 받아 들여지지 않는 경우가 종종있다. 그들은 이론에있었습니다. 때로는 프로그램의 일부가 나머지 부분과 매우 다른 것처럼 보이더라도 모든 것을 "완벽하게"만들려고 노력하는 경우가 있습니다. 나머지는 얼마나 나쁘 든간에 불일치는 그것을 악화시킨다. –

9

글쎄 ... Big O notation은 일반적으로 가르쳐지는 것들 중 하나와 같은 느낌이 들지만, 독자적으로 선택하지 않을 수도 있습니다.

또한 statistics과 함께 해당 범주에 속할 수도 있습니다. 그것도 EE 학위에있을 수도 있지만,이 대답은 아마 너무 비관적입니다. :)

+0

이산 방법은 내가했던 과정에서 내가 가장 좋아하는 부분 중 하나였으며 여전히 유용하다고 생각합니다. –

+0

빅 오 (Big O) 표기법은 뇌가 수학적으로 손상되지 않는 한 하루 만에 배우고 적용 할 수있는 것이라고 말할 수 있습니다.) – akappa

3

운영 연구, 계산 복잡성, 일반적으로 OS 및 프로그래밍 과정에서 다루는 일부 "고급"알고리즘 항목 (캐시 분명한 데이터 마이닝 등) 및 동시성 문제에 대한 문화에 대한 공식 교육입니다. 어쩌면 프로그래밍에있어 좋은 사람이라 할지라도 이미 배웠다고 생각합니다.

귀하의 현재 작업을 토대로 그것들은 중요 할 수도 있고 중요하지 않을 수도 있지만, 귀하의 학위를 통해 그러한 것들을 스스로 학습 할 수 있다고 생각합니다.

2

학위를 취득하면 더 높은 임금을받을 수있는 기회가 생깁니다. 이론적 인 내용도 많이 배웠을 것이므로 다른 프레임 워크/프로그래밍 언어로 공유 된 구문을 식별하는 데 큰 도움이됩니다. 가장 도움이되는 것은 공부하는 동안 수집하는 광범위한 배경 정보입니다. 이전에 배운보다 일반적인 것들과 비교함으로써 대부분 알려지지 않은 주제에 관한 많은 질문에 대답 할 수 있습니다.

0

작은 응용 프로그램을 작성할 때 다소 쉽습니다. 프로젝트가 커지면 아키텍처, 좋은 디자인 등을 적용하는 방법을 모른다면 문제에 압도 당할 것입니다. 사람들이 공부할 때, 그것은 또한 일종의 연습입니다. 당신이 여전히 공부 단계에 있거나 앞으로 있을지 모를 때 고용주가 당신을 고용하도록 설득하는 것이 더 어렵습니다. 또한 자신이 생각하지 못했지만 중요한 정보를 많이 알고있는 대학의 숙련 된 교수가 있습니다.

+0

나는 EE 학위를 가지고이 직업을 얻었지만, 하드웨어를 몇 달 동안 나는 전적으로 소프트웨어로 일하기를 원할지는 아직 확신 할 수 없다! – Tim

+1

나는 동의하지 않는다. 프로그래머는 항상 계속 학습해야합니다. 내가 공부를 마쳤다고 생각하는 고용주는 일하기에 끔찍할 것입니다. –

+0

Electroics/Computing 업계에서 새로운 것을 배우는 데 관심이 없었던 사람은 곧 직장을 벗어날 것입니다. – Tim

3

아마도 당신이 빠뜨린 유일한 사실은 당신이 EE 학위로 그 중 일부를 얻었을지라도, 어떤 이론입니다.

실용적인 프로그래밍에서 이론의 사용은 뜨겁게 논쟁 중이다. 한 편은 학위가없는 사람들과 아무 것도 놓치지 않았다고 주장하는 사람들과 그들이 주장하는 학위를 가진 사람들이다. 나는 당신의 중간 자세를 선호하여 학위를 필요로하지 않으며, 다른 곳에서는 찾을 수없는 비밀을 배우지 않을 것이며, 당신이 배우는 것은 상업적 (비 학문적) 프로그램에서 많이 필요하지는 않습니다. 위치. 그것이하는 일은 왜 어려운 일이나 불가능한 일인지 또는 어떤 특정한 일이 어떻게 이루어지는지를 아는 것과 같은 많은 것들을 도와줍니다. 그것은 또한 당신의 경력을 배우기에 좋은 토대가됩니다.

3

나는 우리의 두뇌가 작동하는 방식에 대해 더 많이 생각합니다 - 분석하는 방법, 검색/솔루션을 찾는 방법 등등 ... 학위가있는 프로그래머와 그렇지 않은 프로그래머 간의 차이는 시간이 갈수록 부드러워지고 경험은 더욱 중요 해집니다./유익한/귀하의 생각을 기반으로 단단한.

1

나는 1984 년에 학교를 그만두고 전문적으로 프로그래밍을 시작했으며 90 년대 초반까지는 컴퓨터 관련 세 번째 과정을 전혀하지 않았다. 초점을 맞춘 주요 주제는 IT 관리 및 이산 수학이었는데 둘 다 매우 유용하다고 생각했습니다. 실제 프로그래밍 부분은 매우 약하다. 파스칼은 텍스트 북에서 물건을 찾는다. 그러나 일부 데이터베이스 클래스는 시스템 분석과 구조화 된 디자인처럼 정규화, 관계형 알제리 등 아주 훌륭했습니다.

내 생각에 엄밀한 학과목이 없으면 지루하다고 생각할 수있는 것의 대부분을 건너 뛸 가능성이 있으며 실제로는 매우 유용합니다.

4

당신이 놓친하지 않은 것에 생각 : 여자, 파티는 ... 단지 농담) 나는 EE 당신이 강화해야하는 유일한 영역을 공부 한 생각

있는 소프트웨어 아키텍처에 관련된 사람 : UML, 패턴, 디자인 ...

그래, 당신이 그리워 할 다른 분야 (컴파일러, 네트워크 등)가 있지만 당신이 그들로부터 사용할 지식은 큰 일이 아니라 일을 배울 것입니다.

+1

EEE 과정은 CS 과정보다 더 많은 네트워킹을 다루고 있다고 생각합니다. 나는 EEE와 CS를 다룬 강좌를 수강했고, EEE 강좌는 강사 강좌보다 훨씬 더 깊이가있었습니다. 나머지 대답은 계속됩니다. –

+0

작전, 내 나쁜, 그들이 광범위하게 네트워크를 커버 모르겠다. –

1

물론 당신의 상황을 짐작할 수 있지만, "나는 방금 프로그래밍을 배웠고 모든 것을 연습 해왔다"는 사실을 발견했습니다. 프로그래머 (나를 포함하는 수업, 내가 추가 할 수도 있음)는 때때로 컴파일러 과정에서 제공하는 도구 (리소스는 Learning to write a compiler 참조). 이것에 대한 인식은 나에게 천천히 일어 났지만,이 문제를 되돌아 보면 이것은 거대합니다.

비공식적으로 훈련 된 프로그래머를위한 두 번째 걱정은 컴퓨터가 낮은 수준에서 작동하는 방식을 이해하는 것입니다.하지만 임베디드 작업을 수행하는 경우, 해당 지역에서 좋은 시작을 가지고 있다고 생각합니다.


나는 이것을 (코멘트에서) "컴파일러 작성 과정"이라고 표현할 때 쓸데없는 소리가 난다고 생각합니다. Afterall, 당신은 아마 당신이 어떤 컴파일러도 쓰지 않으려한다는 것을 알았으므로 괜찮습니다. 그러나이 과정은 실제로 많은 상황에서 활용할 수있는 강력하고 일반적인 도구 세트를 제공합니다. How much of the compiler should we know?을 참조하십시오.

+0

"컴파일러 과정"이란 무엇입니까? – Tim

+0

컴파일러를 작성하는 방법에 대한 과정. 렉서스, 파서, 그리고 어떻게해야할까요? 이 자료에는 많은 자원이 들어 있습니다. http://stackoverflow.com/questions/1669/learning-to-write-a-compiler 및 others ... – dmckee

8

나는 대학에 다녔지 만 심리학과 철학을 전공했다. 학교를 그만 둔 지 10 년이 지난 지금, 나는 컴퓨터를 취미로 들고 엄청난 시간을 들여서 손을 댈 수있는 모든 것을 읽고 혼자서 시험해 보았습니다.

몇 년 후, 나는 이전 경력 경로에서 전환하여 전문적으로 프로그래밍에 들어갔다. 4 년간의 작업 끝에 R & D 시설의 주요 소프트웨어 회사에서 근무했습니다. 내 동료들은 내가 미시시피를 가졌다 고 생각했다.컴퓨터 과학에서, 나는 결코 하나를 가지고 있다고 제시하지 않았다.

나의 결론은 지식이 지식이라는 것입니다. 본인 또는 학교에 다니면받을 수 있습니다. 중요한 것은 당신이 학교에 있는지 여부와 관계없이 계속 학습 할 수있는 길을 가지고 있다는 것입니다.

+0

"지식은 지식입니다"... 좋아했습니다. 그! – Kensai

2

저는 오래 전부터 EE와 Comp Sci 학위를 받았습니다 :) 컴퓨터 학위 프로그램에서 배워야하는 좋은 것들이 있지만 모든 것이 아닙니다. 당신이 배울 수없는 구체적인 것들이 있습니다 (다양한 자바 패키지, 디버깅을위한 Studio 사용, 소스 제어 시스템, 특정 프레임 워크에서 사용되는 패턴). 하지만 좋은 기초 지식을 배웠던 것들이 있습니다. 사람들이 게시 한 알고리즘 등을 알지 못하더라도.

나는 또한 훌륭한 경험이었습니다 (신시네티의 공학 대학에서 요구됨). 그 결과 내가 수업에서 배운 추상적 인 것들에 대한 실용적인 사용법을 깨닫게되었습니다. 그래서 내가 그렇지 않은 것보다 학교에서 더 많은 동기를 부여 받았습니다.

일반적으로 특정 수준의 기본 배경 기술과 부지런함을 나타내는 것으로 간주되지만 인터뷰 할 때 더 많은 것을 찾습니다. 그리고 학위를 소지하지 않은 위대한 개발자 몇 명을 알고 있으므로 항상 필요한 것은 아닙니다. 또한 대학은 대개 엔지니어링의 사회적 측면이나 대규모 시스템에서의 작업 등을 다루지 않으며 많은 직업 상황에서 매우 중요합니다.

오랫동안 떨어져 있었기 때문에 학교에서나 직장에서 배웠던 것을 잊어 버리는 것이 쉽다는 것을 알았습니다. 우리 업계는 계속 변하기 때문에이 분야의 독서가 중요하다고 생각합니다. 기술적으로 상세한 것보다 광범위하게 읽는 것이 중요하다고 생각합니다. 그래서 저는 joelonsoftware를 좋아합니다. 나는 최근 그의 사이트와 그가 편집하거나 쓴 책을 보면서 소프트웨어 개발에 대해 더 많이 배울 방법을 모색했다.

소프트웨어 개발에 관한 책과 기사를 읽거나 읽지 말고 모두에게 권하고 싶습니다. 소프트웨어 엔지니어링 분야의 대학원 수업 중 하나는 신화 맨 달 (Mythical Man Month)과 같은 내용을 읽도록했습니다. McConnell의 Code Complete와 같은 소프트웨어 구축 관련 서적도 좋아합니다.조엘은 자신의 사이트에 대한 권고의 좋은 목록이 있습니다 내 경험에

http://www.joelonsoftware.com/navLinks/fog0000000262.html

4

, 코드 또는 알고리즘의 의사 코드는 기술적 인 우아함을 평가하기위한 본능을 개발하는 데 도움이 조각을보고 4 년 - 당신이 좋은 아이디어를 알 수 있습니다 나쁜 아이디어로부터 더 빨리. 5 개월 후에 문제를 해결할 수있는 대신 5 분 후에 잘못된 아이디어를 삭제할 수있는 것은 가치가 있습니다.