어떤 학부 컴퓨터 과학 물론 최고의 준비를 위한 프로그래머 직장?[마감]

StackOverflow https://stackoverflow.com/questions/895165

문제

여기에서 아이디어를 얻은 더 나은 프로그래머의 대학도 있습니다.

나는 것이라고 생각으로 가야 해요 알고리즘,그것은 정확히 무언가를 당신이 선택할 수 있습에서 자신의 매우 쉽게 생각할 수 있습을 보 효율성과 정확성에 소프트웨어의 깊은 수준입니다.

또한 영어를 가르친 경험이 있는 실제 프로그래밍에 도움이 될 수 있습니다,하지만 내가 배운 가장 내가 무엇을 배운 프로그래밍에 대해서 작품을 만드는 나를 생각하는 사람들의 일부는 프로그래밍 과정 블록(모든)할 수 있다고 한다.

이러한 결과의 일부가 될 것입니다 편지를 쓰고 싶어하는 CS 부서에서 나 오래 된 학교가 있다고 생각 톤의 클래스는 국내에,그리고 다른 사람이 생각하는 것이 매우 중요했다.

도움이 되었습니까?

해결책

고 좋은 CompSci 코스는 충분히 준비 엔지니어 소프트웨어 에 대한 직장합니다.당신이 하나를 찾을 경우는 다음과 같은[있지만 여부할 수 있습 CompSci 내가 의심스러운,그것은 더 많은 다음과 같이 실제 소프트웨어 설계는 아주 다른 짐승이].

컴퓨터 공학은 더 이론적 주제는 매우 실제 의미하지만,더 유용하에는 학문이 빛입니다.알고리즘 디자인에 대한 인스턴스가 환상적으로 도움이 소프트웨어 엔지니어들이지 않을 직접적으로 도움이 소비자입니다.예를 들어 알고,어떻게 구축하는 퀵 알고리즘,또는 이해 연결 목록을 순회하지 않은 정말 그래서 유용한 오늘날의 소프트웨어 엔지니어링 환경의 물론,이론을 이해에 도움이를 선택하는 작업에 적합한 도구,don't get me wrong.개발자로,우리의 많은에 의존하는 출력 컴퓨터 과학의 세계 더욱 우리의 개발 도구,사실,그들이 없이 많은 개발자들이 남아 있을 것 이라고 몸부림치지만,컴퓨터 과학 대학원에서 앞의 사용자 및 그들을 설계하는 의미있는 조각의 소프트웨어에 대한 그들과 학문적인 지성이가 가을을 조각 때문에 두 말하는 완전히 다른 언어입니다.

훨씬 더 유용한 코스를 위해 소프트웨어 엔지니어를 포함 할 것으로 많은[그리고 아마도 더]다음과 같은 구성 요소를 생각할 수 있는 상단의 머리:

  • 프로그래밍 언어 -기본 프로그램의 흐름 패러다임,구문 등입니다.이것은 주로 배운 꽤 잘 나가지 않을 것 지팡이 하나에 너무 많.비록 그것이 도움이 될 것입하는 경우 몇 가지 완전히 다른 종류의 프로그래밍 언어를 배웠다-예를 들어,배웠 C,파스칼과 VB3(?내가 기억하지 않는 정확한 버전)입니다.그것은 것 방법으로 더 많은 도움이 되는 경우 프로그래머에서 배운 하나 이상의 기능 언어,하나의 필수적 언어로,하나의 선언하는 언어입니다.
  • 디버깅 -작성할 때 n 계층 응용 프로그램[는 많은/대부분의 실제 응용 프로그램은,그것은 것이 유용할 수 있 그 밖 무언가 잘못되고,오른쪽 아래로 프로토콜 수준에 필요한 경우입니다.분석 도구와 같은 WireShark 는 데 유용합니다.
  • 통신 장치 -XML,Integrated,XPath,XSL,XSD[으로 이러한 것을 사용되도록 광범위하게].
  • 관계형 데이터베이스 디자인 -이것은 합리적으로 잘 가르쳤다.
  • 관계형 데이터베이스의 성능 튜닝 -그냥을 디자인하는 테이블이 충분하지 않을 알고,적절한 경우 인덱스의 특정 필드를 하지 않은 경우는 것도 중요하지 않에 덮여 있을 것 같이 많이 있습니다.
  • 데이터 정규화 이것은 또한 것을 가르쳐야 합리적으로 잘 많은 경우가 있습니다.하지만 대부분의 학생들이 온 것 같은 현실 세계에 밖으로 분출 이론들을 가르쳤-"너는 항상 사용 Boyce-커드 정상적인 형태로"등지 않고,실제로 생각의 의미에 대한 그 이론이 있습니다.때로는 현실 세계에서 우리는 아주 좋은 이유는 휴식 규칙이 있습니다.
  • 질의 최적화 쓰 basic 쿼리를 종종 보게 될에서 외부의 제한 졸업생은 편안 영역,최적화가 가르쳐야한다.또한,같은 도구를 쿼리 프로파일러를 가르쳐야 하는 학생들이 성능 문제를 디버깅 응용 프로그램과 함께.
  • 저장 프로시저/트리거 -나는 아직에서 학생 쓸 수 있는 저장 프로시저 또는 트리거하거나 둘 중 하나를 사용하여 효과적으로.선택합/조/중첩이 선택 될 것으로 보인의 한계를 무엇을 가르치는 때 쿼리 디자인이다.
  • 기본 알고리즘 -이것은 가르치 farely 잘 내 경험에서 하지만 학생들의 많은 나타나지 않는 어떤 아이디어가 있는 방법을 결정하는 알고리즘을 적용하는 상황이 없는 말을 사용하여"예와 같은 알고리즘,이 문제를 해결하".그것은 것이 유용할 수 있다면 말하고,"이 문제를 해결하",그리고 그들이 좋아 좋아,내가 가지고있는 함대는 알고리즘의 유용할 것이 이 상황에서,이 때문에 최고의 x,y 또는 z 이고 여기가 어떻게 적용할 수 있는 솔루션을 제공합니다.
  • 재귀 -나는 아직을 찾을 수 있는 방법을 가르칠 수 있는 재귀,그것은 보인다는 어느 당신은 그것을 얻거나 당신은하지 않습니다.이러한 일 중 하나는 찾아낼 것이 좋은 은유하는 것이 이해 심지어 가장 기본적인 프로그래머입니다.
  • 추출 -이에 의한 것이라고 생각하는 많은 과정의 광택도 불구하고 하나의 핵심 원칙의 OOP.
  • 코드 리팩터링 리팩터링과 거의 같은 중요한 것은,때 니다.
  • 코드 재사용 -그것은 보인다는 많은 과정은 뱉는 복사/붙여넣기 원숭이-이 코드 다시죠!
  • 원 제어 가에 대해 배우 원본을 제어할 때까지 내 3 또는 4 프로그래밍을 작업,그리고 내가 알지 못하는 단일 소프트웨어 엔지니어 개인적으로는 소스 제어의 일부로 그들의 물론...그 이유는 무엇입니까?
  • 백업 및 복구 -나는 듣지 못한의 어떤 과정을 가르친다.얼마나 많은 초보 프로그래머를 모두 잃었기 때문에 그들의 작품은 그냥하지 않았 생각 에 대한 백업까?내가 알고 있는 과거지-최근지만.그것은 내가 무지 백업하지만 말이"그런 일이 일어나지 않을 것입니다 저에게".그 일어나,그리고 보장한 것이기에 바로 전에 당신은 데모 모든 것을 잃어버린!
  • 파일 시스템은 유지보수 아,일부 과정을 통해 광택이 간단하게,하지만 많은하지 않습니다.
  • 쓰 좋은 품질의 설계 사양 -이상으로 제공될 간단의 과정,그러나 학생이 거의 요청하는 디자인이다.쓰 작업의 범위와 이해의 문서 템플릿을 지 범위 밖에서 대부분의 소프트웨어 코스입니다.
  • 사용 설명서 -사용자처럼 생각하지 마십시오,당신을 그들에게 나눠주고 소프트웨어는"자명"또는"이렇게 간단하는 바보 사용할 수 있습니"이에서 당신의 얼굴입니다.가의 유명한"라고 말하는 프로그래밍 오늘은 경주 사이에 소프트웨어 엔지니어를 위해 노력하고 구축 더 크고 더 나은 바보 프로그램,그리고 우주를 생산하기 위해 노력하고 더 크고 더 나은할 수 있습니다.지금까지,우주가 우승".쓰 사용자 설명서는 8 세을 따를 수있는 보일 수 있습니다 고통스러운 그것을 쓰지만,그것은 완료,그리고 영원히 더 많은,당신은 자신을 감사합니다.
  • 기술 문서 -즉정하는 데 도움이 될 것입하는 경우 학생들이 사용할 수있는 샌드캐슬,nDoc 또는 문서 도구입니다.
  • 테스트 계획 -디자인을 테스트할 수 있도록 하는 소프트웨어를 테스트합니다.nUnit 또는 이와 유사한 것을 가르쳐에서 소프트웨어 개발 과정이다.사실,교육 테스트 프레임워크에 대한 것보다 더 나은 가르치지 않는다.으로 보인다.
  • 지방/토/UAT 시험 -그것은 것을 이해하는 데 도움이 다양한 테스트 시나리오를 현실 세계에서 같은전성 검사,공장 승인 테스트와 사용자의 승인 테스트이다.인에 대한 귀하의 소프트웨어로 중요한 개발과 같습니다.배달하지 않는 경우 어떤 클라이언트들이라고 생각을 받고,당신이 아니라 지급 방법에 상관없이 화려한 솔루션에는 기술이다.
  • 소프트웨어 아키텍처 -이해하는 다른 구성요소의 실제 세계의 n 계층 응용 프로그램의 장점과 단점이 있다.
  • 사용자와의 상호 작용 -어쩌면 이것이 정말로 컴퓨터 과학,하지만 학습 방법을 이야기하는 사람들지 않는 자주에 파장을 생각하지 않을 수행하는 것과 동일한 방법으로,이의 통신,하지만 정말로 뭔가를 개발자들이 알고 있어야.
  • 일반 의미 -Ding ding ding ding-많은 프로그래머의 밖에 없는 온스의 이!이 코스는 설계를 증명할 수 있는 자신에 대한 생각,내가 이해하지 못하는 왜 그렇게 많은 졸업생 오 현실 세계로 생각하고는 모두 그들이 할 필요가 적용 규칙들을 가르치 맹목적으로 생각하지 않고 이유에 대해하고 의미를 갖는다.저는 내가 말했다는 현실 세계에서 우리는 때때로 아주 좋은 이유로 이 규칙을 위반에 대한.우리를 따르지 않는 그들을 맹목적으로,그리고 우리는 쉬지 않는다 그들에게 맹목적으로 하거나.소프트웨어 개발은 예술,및 다음과 같은 모든 예술을 우리는 알고 있어야 합니다 우리는 수 없는고로 중요한 때는 우리가 해야하지 않아야 합니다.졸업으로,당신이 배운 규칙을 입증했다.이제 당신이 할 필요가 무엇인 과정이 정말로 가르치려고 당신은-당신이 배운 것을 적용하여 자기 생각합니다.
  • 듣기 -당신은 놀라게 될 것 얼마나 많은 시간을 내가 참조 코드를 기록하기 때문에 개발자는"생각을 그들은 알고 고객이 원하"대신 실제로 듣고 무엇이 사용자가 말하고 이해하는 그들의 실제 필요합니다.
  • 이해 -간과 함께 손에 손을 듣고 있다.
  • 커뮤니케이션 능력
  • 얘기하고 기술적으로 적합하지 않는 -즉의 큰 부분은 귀하의 사용자 기반
  • 프로젝트 중재 판매의 아이디어를 쓰는 사람들의 수표
  • 우선 순위 지정 -는 방법을 결정하는 기능은 다른 사람보다 더 중요하다.
  • 예산 간 추정
  • 시간 관리 -일을 완료하는 방법에는 모든 사람의 주위에 당신은 방해에서 당신의 시간과 배려에 대한 당신의 마감.그냥 같은 모든 친구가고 싶은 당신이 술집에 대한 잔 또는 열면 당신은 조각의 작동하지 않은 아직 시작으로 인하여 하루의 끝니다.
  • 범위 -을 때,말 없,에 포함되지 않은 스펙/budget.

그리고 당신은 당신 를 관리하는 모든 것을 배울에서는 물론,난 습할 아직도 에 더 많은 것을 배울 수 있는 세 개 또는 네 개월에서 인턴으로 소프트웨어 개발 컨설팅의 괜찮은 callibre 보다는 전체 과정.나는 더 많은 것을 배웠에서 내 처음으로 6 개월 후에 학사 학위했던 것보다 전체에서 3 년 과정.틀림없이 나 떨어진 평면 밖으로 내 얼굴 많은 것을 배웠에서는 물론,하지만 너무 많은 가르침이 불필요하게 수 있는 의료진이 상주하고 있으므로 훨씬 더 유용한 콘텐츠입니다.

다른 팁

실제 회사 작성 소프트웨어에서 여름을 보내는 수업.

진지하게 - CS 수업은 좋은 프로그래머를 생산하는 것이 아닙니다. 그들은 부작용으로 소프트웨어를 작성할 수있는 컴퓨터 과학자를 생산하기위한 것입니다.

컴퓨터 과학! = 프로그래밍.

더 나은 프로그래머를 찾고 있다면, 특별히 중점을 둔 2 년제 대학 프로그램에서 교육을받은 사람들을 찾으십시오.

프로젝트를 구축하여 얻은 지식을 능가하는 것은 아무것도 없습니다. 관계형 데이터베이스 코스를 작성하는 경우 도서관 시스템 프로젝트를 구축하는 경우 어셈블리 언어를 작성하는 경우 32/64 비트 어셈블리를 사용하여 PC 도구와 같은 것을 구축하는 경우 어떤 과정이 중요하지 않습니다. .

코스를 수강하고 높은 GPA를 얻는 것이 아니라 "프로그래밍"을 수행함으로써 더 나은 프로그래머가 될 수 있습니다.

가장 중요하고 관련성은 CS 과정이 아닙니다. 당신은 잘 의사 소통을해야합니다. 어떤 과정이든 더 나은 청취자/독자이자 더 나은 작가/스피커가 될 수 있습니다.

  • 사업 101
  • 사무실 정치 200
  • 현실 세계에서는 학문적이지 않습니다

실제로, 프로그래밍 작업에 들어가는 날부터 1 일부터 선임 개발자가 될 것으로 예상되지는 않습니다. 코딩 기초를 배우는 것은 확실히 먼 길을 걸리지 만, 상승세에는 실제 컴퓨터 과학 학생들이 현실 세계에서 어려움을 겪고 있습니다. 그들은 1 일째에 자신이 무엇을하고 있는지 알지 못하기 때문에 비즈니스 영역과 싸우고 왜 그들이하는 일을하는지 이해합니다. 그들은 다른 비즈니스 사람들과 누가 의사 소통 해야하는지 모릅니다.

대답하기 어려운 질문이지만 내가 생각하는 한 가지 방해 많은 CS 프로그램의 프로그래머는 실습 코딩이 부족합니다. 컴퓨터 과학 이론을 아는 것이 중요하지만, 수업에서 프로그래밍 연습이 필요하지 않음으로써 많은 이론적 인 CS 프로그램이 중단된다고 생각합니다. 예를 들어, 연구와 논문이 필요한 많은 AI 클래스를 보았지만 코드는 없었습니다. 제 생각에는 컴퓨터 과학 이론을 이해하는 것이 매우 중요하지만 적용하는 것도 마찬가지로 중요합니다.

학업 공허는 학생 단체 나 독립적 인 학생 프로젝트로 채워야한다고 생각합니다.

우리 대학에서 우리는 컴퓨팅 기계 협회 CS 학생들을위한 학생 챕터와 비디오 게임 개발 전용 학생 조직도있었습니다. 이 조직들은 업계의 스피커를 데려와 학생들이 서로 일하도록 강요함으로써 학생들에게 "실제 세계"에 대해 가르치는 데 도움이되었습니다.

또한 선도적 인 소프트웨어 그룹에 관심이 있거나 학생들이보다 기술적으로 능숙 해지기를 원한다면 교양에서 미성년자가되기를 원한다면 컴퓨터 과학 미성년자를 전공하는 학생들이 권장합니다. 나는 그것이 이상하게 보인다는 것을 알고 있지만, 나는 이것을했고 나는 그것이 순전히 기술적, 수학적 관점 밖에서 생각하는 방법과 인간의 사고를 소프트웨어 개발에 적용하는 방법을 가르쳐 준다는 것을 알았습니다.

데이터베이스 시스템과 소프트웨어 엔지니어링 프로젝트 과정 간의 관계라고 말하고 싶습니다. 우리 학교에서 학부 학위에는 과정이 필요하지 않지만 학부생들에 의해 수강 할 수 없습니다. 데이터베이스에 대한 지식을 갖는 것은 대부분의 프로그래머의 알고리즘보다 더 필요할 것입니다. 코스 프로젝트에서도 프로젝트 팀에서 작업하면 팀 역학과 팀 환경에서 일하는 방법을 이해하는 데 도움이 될 수 있습니다.

반면에, 나는 데이터 구조, 알고리즘, 운영 체제 등을 포함한 기본 컴퓨터 과학 주제에 대한 이해가 프로그래머로 성장할 준비를하는 데 중요하다고 굳게 믿고 있습니다.

셰필드 대학교 (University of Sheffield)의 소프트웨어 엔지니어링 학위에서 직장과 가장 관련이있는 두 가지는 2 년째 소프트웨어 헛 모듈로, 실제 고객을위한 소프트웨어 제품을 생산하는 팀의 학기 동안 관련된 소프트웨어 헛 모듈이었습니다. 내가 생각하는 세 명의 고객이 있었고 팀은 서로 경쟁하여 최고의 시스템을 제작했습니다.

그런 다음 4 년째에 3 년 3 분의 1 마크는 소프트웨어 회사를 운영하고 다시 실제 고객을 위해 발생했습니다. 실제 비즈니스 운영을 좋아하지는 않지만, 우리가 생산 한 모든 제품에 대한 IP 제한으로 인해 (대학의 학생이었던 것처럼, 그들은 일을 소유하고 있었기 때문에) 회사 운영의 대부분의 측면에 참여했습니다. 회계/계약서 작성.

데이터베이스 디자인

기능적 프로그래밍

객체 지향 프로그래밍

X 구동 디자인

내 테이크 (영어 IT 감독으로서)는 사무실에서 하루가 학교에서 일주일 가치가 있다는 것입니다. 따라서 경험을 얻을 수있는 방법을 얻을 수 있다면 그만한 가치가 있습니다.

그 외에는 당신의 끔찍한 일에 대해 확신을 갖고, 당신의 강점을 가지고 놀고, 당신이 모르는 모든 것을 Google에 준비하십시오!

평범한 군중에서 눈에 띄기를 원한다면 '최고'졸업생이 할 수 없는지 놀랍기 때문에 제대로 의사 소통 할 수 있는지 확인하십시오.

대학 밖에서 더 나은 프로그래머? 학교가 응집력, 커플 링, 우수한 프로그래밍 관행, 버전 제어, 구성 관리, 현대 개발 모델과 같은 개념을 가르치기 시작할 때까지 나는 그렇게 생각하지 않습니다. 내가 일반적으로 보는 것은 자기 학습자들이 스스로 배우거나 운이 좋으면 좋은 일을 전파하고 실천하는 조직에 고용되기를 원합니다.

그것은 당신이 프로그램하고자하는 것과 어떤 종류의 문제에 관심이 있습니까?

분명히 일반적인 콤보

  • 불연속 수학 (당신의 논리, 그래프 이론, 일부 숫자 이론 및 재발)

  • 알고리즘 설계 (다양한 문제 해결 모델 학습, 설계 패러다임, 컴퓨터 자원에 대한 생각)

  • 소프트웨어 공학 (소프트웨어 프로젝트 관리, 기존 구성 요소 작업, 쌍 또는 그룹에서 작업, 버전 컨트롤, 패턴 등) 이와 같이

  • 프로그래밍 집약적 코스 (나는 가져 갔다 이 과정) 문제에 접근하는 것에 대한 일반적인 아이디어를 가르쳐주고, 한 줄의 코드를 작성하기 전에 당신의 생각을 수집하고, 다른 프로그래밍 패러다임에 노출

    대부분의 프로그래밍 문제에 대비할 것입니다.

그 후에는 모든 작업을 수행하려는 도메인에 달려 있습니다. 고문, 대학 및 교수의 선배에게 문의하고 목표와 관심사에 대해 이야기하십시오. 그들은 여기있는 사람보다 당신에게 더 잘 조언 할 것입니다.

그러나 비판적 사고, 작문 수업을 무시하지 마십시오. 아이디어를 발표하고 대중 연설을 준비 할 수있는 수업을 들으십시오.

내가 가장 많이 얻은 과정은 데이터 구조 및 알고리즘. 지식은 기술의 진행과 무관하며 모든 종류의 프로그래머가 사용하는 기본 도구를 제공합니다.

우리가 커뮤니티 서비스 프로젝트로 무언가를 구축해야했던 수업. 이를 위해서는 전체 소프트웨어 엔지니어링 Gambit을 사용하고 배워야했습니다.

교사가 가능한 한 어려운 일을하려는 목표를 목표로하는 수업에 몇 개의 스크류 볼을 넣기로 결정하지 않는 한, 이와 같은 과정은 크게 부족할 것입니다 ...

학부생 중에 데이터 구조 및 알고리즘 과정은 저의 직장에서 많은 도움이됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top