CS 학위없이 성공적인 프로그래머가되는 방법 [닫기]


46

면책 조항 (답변을하기 전에 반드시 읽어주십시오) :

질문하고 싶은 것과 비슷한 질문을 많이 보았으므로 다음 과 비슷한 질문이 있습니다.

IMHO 그들은 내가 요구하는 바가 아니거나 내가 원하는만큼 철저하지도 않습니다 (아래 질문에 대한 답을 솔직하게 말하거나 질문자를 불신하는 것이 아닙니다. 단지 좀 더 철저하게) :

CS 학위는 더 오래된 프로그래머에게 도움이 될 수 있습니까?

https://softwareengineering.stackexchange.com/questions/80024/importance-of-certifications-for-java-programmer-without-bs-degree

https://softwareengineering.stackexchange.com/questions/81591/in-the-absense-of-a-cs-degree-how-can-i-fill-in-the-gaps-so-to-speak

개발 작업 신청시 CS 학위의 중요성?

다음을 묻지 않겠습니다.

  • 처음부터 프로그래밍을 가르치는 법 (CS 학위없이)
  • CS를 학위없이 우수한 소프트웨어 개발자로 마케팅하는 방법
  • CS에서 학위를받지 않고 소프트웨어 개발자로서 높은 임금을받는 방법

약간의 맥락 :

이제 면책 조항을 벗어 났으므로 소프트웨어 개발자로서의 경험에 대한 간략한 역사부터 시작하여 내 질문을 해결해 보겠습니다.

우선, 나는 매우 운이 좋았다. 소프트웨어 개발에 대해 내가 아는 모든 것을 실제로 배울 수있는 몇 가지 직업 기회 (두 개의 무거운 백엔드 PHP / MySQL 프로젝트 및 XAML / C #의 여러 WP7 앱)를 받았습니다. 내가 가진 거의 모든 소프트웨어 개발 작업은 내가 정당하게 자격을 갖추지 못한 작업이었습니다. 나는 그것이 정당하지 않은 곳에서 나 자신을 인정하고 싶지 않지만, 완벽한 겸손은 겸허 함을 없애는 것이라고 말할 것 입니다.

내가 가진 거의 모든 단일 개발 작업에서, 나는 고용주의 기대를 넘어서 귀중한 자산으로 판명되었습니다. 물론 예외가 있습니다 1 . 그러나 내 요점은 상당히 똑똑하고 직장에서 성공하기 위해 알아야 할 것을 스스로 가르 칠 수 있다는 것입니다. 내가 가진 각 직업마다 점점 늘어나고있었습니다.

저는 워싱턴 대학교 의 시애틀 캠퍼스에 다니고 있으며 현재 수학 학위를 받고 2 년 남은 4 년차입니다. 내가했던 다양한 일을하는 동안 ( 이 목록을 원하면 이력서를 참조하십시오 ) 저는 정규 학생으로 학교에 다녔습니다.

나는 대부분의 개발자가 포함 전형적인 일반 에드 학사 과정, 연구, 동의 할 생각으로 입문 프로그래밍 과정을 절대적으로, 실제 코드를 작성하는 건물에 비해 창백 실제 이 개 제품을 작업 멋진 사람, 긍정적들의 삶에 영향을 미치는 사용자 3 .

그래서 .. 일이 갈수록 ... 나는 공부에 집중하는 대신 훨씬 더 많은 시간과 에너지를 소비했습니다. 때때로 나는 매우 끔찍한 공연을 했지만 대부분의 경우 나는 성적에 따라 떠 다닐 수있었습니다.

그러나 컴퓨터 과학 프로그램 UW에서는 매우 , 매우 , 매우 , 매우 경쟁력.

따라서 프로그램에 의해 거부 당했을 때 놀라운 일이 아니 었습니다. 두번. 아이러니하게도, 이메일을 통해 혐오스러운 거부 통지를 받았음에도 불구하고, 항상 정중 한 동일한 30 분의 기간 동안, 나는 아마존으로부터 SDE로서 여름 인턴쉽 4 를 제공하는 전화를 받았습니다 .

소프트웨어 개발에서 나와 같은 목표를 공유하는 다른 '나이 (21)'를 둘러 보면서 내가 어디에서, 무엇을 배우고 있는지, 누구인지, 무엇에 대해 기분이 좋았습니다. 내가 할 수있는. 물론 나보다 훨씬 더 많은 21 세의 노인들이 있습니다. 나는 군중 속에서 눈에 띄는 말은 아닙니다. 단지 평균 동료의 진도에 뒤 떨어지지 않는다고 느낍니다. .

저는 소프트웨어 세계에서 성공할 수있는 능력에 대해 확신합니다. 더 중요한 것은, 내가 정말로 필요할 때 계속 성장하고 배우며 창피하게 겸손 해지기를 원하는 나의 능력과 욕구에 대해 자신감을 느낀다는 점입니다.

수학 학위

나는 학위를 갖는 유일한 목적으로 수학 학위를 추구한다는 것을 알게되었습니다. 내가 탈퇴하고 지금 일을 시작해야한다고 말하는 사람들이 있고 (내가 할 수있는 기회가 있었음), 실제로 학위를 마치 야한다고 말하는 사람들이 있습니다. 나는 캠프 중 하나가 떠오르는 경향과는 완전히 다른 이유로 학위를 계속 진행하겠다고 결심 했으므로 그 문제에 대해 어떤 식 으로든 나를 격려하지 마십시오. "닫힌"문제를 고려하십시오. :)

* 심층 호흡 * ... 죄송합니다. 예상보다 오래 됐습니다 .

본질적으로 이것은 내 질문입니다.

  • CS 학위를 통해 지금까지 부족하거나 부족한 분야의 연구, 일반 지식 및 기타 기술을 객관적으로 결정하려면 어떻게해야합니까?
  • 이러한 기술을 가장 중요한 순서로 어떻게 정렬합니까?

  • 저명한 대학교에서 학부 수준의 CS를 달성하거나 능가하는 방식으로 이러한 속성을 달성하기 위해 내 교육을 보충하는 가장 좋은 방법은 무엇입니까?

다음은 이미 수행중인 단계입니다.

  1. 개발 커뮤니티에 문의 (이 게시물)
  2. 나와 비슷한 직업 경로를 공유하는 노련한 개발자와 멘토링을 추구하십시오.
  3. 단기 및 장기 "학습"목표 및 학습 주제를 요약하는 후속 음절을 정의
  4. 열정적 인 프로젝트에 대한 코드 작성 및 작업 계속

당신이 이걸 얻었 으면, 당신은 쿠키 를받을 자격이 있습니다.

그래서 ... 개발 커뮤니티, 노련한 개발자, 나와 같은 보트에있는 동료 학생들에게 어떤 조언을 하시겠습니까?

또한 ...이 게시물 상단에 내가 요구 하지 않는 것에 대한 면책 ​​조항을 명심하십시오 .

최신 정보:

나는 내 질문에 대한 성공적인 "답변"으로 간주되는 것에 대해 매우 구체적인 매개 변수를 제공하지 않았다는 것을 알고 있습니다. 나는 그 질문이 매우 모호하며 많은 "올바른"답변을 보증 할 수 있다고 생각한다.

합리적인 시간이 지나면 다음 특성에 맞는 답변을 선택하겠습니다.

  • 그들의 답변 뒤에 왜 이유를 설명
  • 어느 정도의 경험을 통해 말할 수 있음
  • 간결하지만 철저하고, 바람직하게 특정 예와 결합 된 넓은 원리를 제공
  • 마지막으로 위의 내용을 일치시키는 데 필요한 길이를 고려할 때 읽기 좋은 답변을 잘 전달하십시오. 미래에 이것에 관심이있는 다른 사람들은 그 응답에 의해 교육을 받았을뿐만 아니라 즐겁게 될 것입니다.

따라서 "올바른"매개 변수가 있습니다. 그것들은 제 생각에 매우 높지만, 제가 "최고의"답변이 될 것이라고 생각하는 것에 대한 개요로 그들을 설계했습니다. 시간이 충분히 주어지면 가장 가까운 응답을 "답변"으로 선택하겠습니다.


(1)-이 웹 사이트의 이전 버전에서 작업했지만 명시적인 내용은 없었습니다. 
      그것에 대해 대화, 나는 전혀 잘 할 수 없다고 느꼈다 (이것은 할 수 있습니다 
      그들이 웹 사이트를 완전히 변경했다는 사실에 의해 입증 됨)
(2)-첫째, 예, Chrome 에서이 게시물을 작성하고 있지만 실제 제품입니다.
      엉덩이를 차 버린다. 둘째로, 나는 시험에서 고등학교 인턴 개발자였습니다.
      IE8의 새로운 기능 중 일부에 대한 개념 코드 ... 그래서 오래 전입니다.
(3)-이 게시물을 작성할 당시 저는이 앱을 작성한 개발자입니다.
      코드베이스에 대한 책임
(4)-내 인턴쉽은 2012 년 6 월에 시작되며 웹 스토어에서 일할 것입니다 
      팀.

17
세계에는 수학 학위를 가진 더 많은 프로그래머가 필요합니다. 그런가 말했다.
Pieter B

1
심리학자 및 기타 개인 상담 또는 조언 제공 서비스 시장은 엄청나게 커야합니다. 나는 일자리를 바꾸는 것을 고려하고 있습니다 ....
Ingo

16
이 질문을 편집하여 반으로 자르십시오.
JeffO

8
@PaulHazen은 매우 장황한 배경과 면책 조항 내용을 제거하고 실제 질문에 도달하면 세 가지를 묻습니다 .CS 학위가 없어서 무엇을 잃어 버렸는지, 어떻게 잃었는지 알아내는 방법 누락 된 항목의 우선 순위를 지정하는 방법 세 질문 모두 중복 된 질문으로 완전히 커버됩니다. 답변이 마음에 들지 않으면 현상금을 제공하십시오 . 그것이 바로 거기에 있습니다.

7
@PaulHazen 또는 나열된 질문 (이전 질문과 중복 됨)에 관심 이 없으면 구체적으로 새로운 질문 만하 도록 질문을 수정하십시오. 귀하의 질문은 너무 많은 정보를 가지고 있습니다. 대부분의 정보는 아마도 귀하가 겪고있는 문제에 불필요 할 것입니다. 다른 질문으로 아직 다루지 않은 매우 구체적인 문제에 대해 질문하기 위해 짝을 이루어야합니다.

답변:


17

좋아, 나는 당신의 질문에 대답하지 않는 것이 너무 유혹적이므로 여기에 있습니다 ...


나에 대한 몇 가지 먼저


저는 26 살 이고 아버지 (수학자, 현재는 교수로 일하는 btw) 덕분에 인생의 초기 단계부터 컴퓨터를 둘러 볼 수있는 기회를 얻었습니다. (1986 년에 내가 태어 났을 당시, 가장 일반적인 것은 아니지만, 집에 항상 한두 대의 컴퓨터가있었습니다). 그 말은, 그리고 호기심이 많고 수학적으로 기울어 지거나 문제 해결 지향적 성격 때문에 분명히 프로그래밍과 사랑에 빠지기까지 오래지 않았습니다. 7-8 세의 나이에 Pascal을 시작한 다음에 거의 모든 것이 뒤따 랐습니다.

먼저, 학교에 다니는 동안 수학을 좋아한다는 이유만으로도 항상 수학과 관련된 모든면에서 뛰어 났으며 솔직히 말하면 아버지의 모범을 쉽게 따르고 수학자가 될 수 있습니다. 그러나 그것은 일어나지 않았습니다.

무엇이 일어 났는가 아마 내 인생 (지금까지)의 가장 큰 실수 : 당신은 무엇을 부를 것이다 때 누군가가 코드와 사랑 , 말하는 마이크로 커널과 웹에 컴파일러에서 코드 라인의 수천 (15 개 + 언어 및 작성했습니다 프레임 워크) 18 세까지, 갑자기 (이유는 여전히 모호하지만 여전히 미묘하지만 환경에 미치는 영향은 결코 무시할 수없는) 의학 분야에서 경력을 쌓기로 결정합니다 . 나는 "실수"를 추측한다.

결과? 5 년 후 (23 세), Med 학위를 마치기 1 년 전 (여전히 취미로 개인 오픈 소스 프로그래밍 프로젝트를 계속 진행하고 있음), 나는 내가 충분하다고 결정하고 종료하기로 결정했습니다. 그리고 나는이 새로운 분야 (의학)을 싫어뿐만 아니라이었다 너무 많은,하지만이 모든 상황, 만족할 줄 모르는 가려움 숨겨진 깊은 내부에서 동요 무언가가 있다는 것을 ( 이 경우이었을 것입니다 무엇을 ...? ) 더욱이, 나는 내가 위대 하다고 생각 했지만 실제 직업으로 상상조차하지 못한 나의 취미 는 돈을 가져올뿐만 아니라 많은 돈을 가져다 줄 수 있다는 것을 깨달았습니다 . 그래서 나는 그만두기로 결정했습니다. (= 조금 늦어도 최선의 선택).

그래서, 나는 여기, 지금 한 번거야 - 수 - 의사입니다 (온 - 더 - 직전 - 중 - - 신경 항복 정신과 의사가 정확하게하기; 바보 나!)를가는 CS 학위 실제로 내 3 년에 (; 그리고 솔직히 말해서, 두려운 전형적인 자격 이 부족하지 않기 위해 그것을 추구하는 ...) 그리고 내가 좋아하는 것, 그리고 내가 가장 많이 제공 해야하는 주제에 대해 더 행복해하는 전문가.


몇 가지 관찰 (내 자신의 경험에서)


  • 프로그래밍은 아주 좋은 분야가 무엇이든 항상 자신의 길을 찾을 수있는 매우 소수의 분야 중 하나입니다. 그리고 이것은 전형적인 자격 의 문제가 아닙니다 (솔직히, 회사가 있고 프로그래머를 모집하고 싶다면, 학위가 있는지 여부에 관계없이 몇 분 만에 누가 좋은지 쉽게 알 수 있습니다)

  • 좋은 프로그래머가되기 위해 필요한 것은 수학 중심의 지능 (수학 자체는 아님)과 열정 (무엇보다 즐거움을 배우는 끝없는 시간을 만들어 줄 것입니다.) 나는 내 인생에서 주제에 대한 자료의 톤을 순수하게 연구했습니다 .) 공식 교육은 좋은 일이지만 약간 과대 평가되었습니다. 성공의 핵심 요소는 처음 두 가지입니다.

  • 수학은 CS가 태어난 곳입니다. 그러나 CS는 더 이상 수학이 아닙니다. 나는 항상 강한 수학 중심의 뇌를 가졌지 만 결코 수학 전문가가 아닙니다. 그리고 솔직히 매일 프로그래밍에서 (그래픽 엔진이나 너무 현지화되지 않은 경우가 아니라면) 간단한 산술 (더하기, 빼기, 곱하기, 나누기, 모듈로)과 다른 것들은 필요하지 않을 것입니다 배열에 대해. (수많은 수학 자나 너무 학계 지향적 인 프로그래머 일 것입니다. 그러나 반드시 미적분학을 익히는 것이 좋은 프로그래머가되는 것은 아닙니다). 수학 배경이 양호하면 수학 자체로는 도움이되지 않을 수 있습니다. 이 두 분야가 공유하는 하나의 공통점, 즉 문제 해결 기술을 기반으로 도움을 줄 것입니다.

  • 수학은 과학 (그리고 내가 존중하는 과학)입니다.

  • 프로그래밍은 예술입니다. (그리고 당신이 주장한다면 응용 과학도 마찬가지입니다) 그러나 그것을 명심하십시오 : 예술-그것이 항상 그것을 다루는 방식입니다. 그리고 모든 예술과 마찬가지로 가르 칠 수 없습니다. 나는 당신에게 얼굴을 그리는 공식적인 방법을 가르쳐서 평균보다 더 나아지게하지만 다빈치 나 클림트를 만들지는 않습니다. Mona Lisas는 Da Vincis에 의해 그려졌으며 신중하게 교육받은 화가가 아닙니다. 훌륭한 코드는 훌륭한 코드 아티스트가 작성합니다. 그리고 기술과 헌신은 공식 교육의 균형을 쉽게 이룰 수 있습니다.


그렇다면 정말 훌륭한 프로그래머가 되려면 무엇이 필요합니까?


  • 현명하고 훌륭한 문제 해결 기술과 주제에 대한 열정을 가지십시오 (가지고 있지 않은 경우 그대로 두십시오)
  • 주제에 헌신 할 시간이 많다
  • 모든 시간을 공부 '당신은 단순히 것 사촌 ( 결코 모든 것을 알 수 없습니다 및 노트 : 않는 이유는'? '그러니까 것은 어느 정도 관련이있을하는 나는 항상 훨씬 더 많은 즐거움을 내 자신의 페이스에 일을 발견했습니다 ... )
  • 항상 코드 작성 (읽은 책의 수에 상관없이 코딩 수준은 작성한 코드 양과 직접적으로 동일)
  • 그리고 다시, 주제에 대한 사랑 (당신이 그것을 충분히 사랑하지 않는다면, 정말로 그것을 사랑한다는 것을 의미 한다면, 위의 모든 것이 조만간 참을 수 없게 될 것입니다. 나에게있어서 직업 코딩은 여전히 ​​돈을받는 것과 같습니다 .. 영화 감상 : 절대적으로 터무니 없지만 간단하게 훌륭함)

당신의 질문에


  • CS 학위를 통해 지금까지 부족하거나 부족한 분야의 연구, 일반 지식 및 기타 기술을 객관적으로 결정하려면 어떻게해야합니까?

비록 수학 학위에 무엇이 포함되어 있는지 정말로 알아야하지만, CS 학위에서 누락 될 가능성이 가장 높은 것을 요약 해 드리겠습니다 (코스 / 과목 등- 제 유니의 연구 프로그램에서 영감을 얻은 등 ). :

  • 디지털 시스템의 논리 설계 (일부 저수준 회로 및 / 또는 xors / 등-겉으로는 관련이 없지만 교육적임)
  • 컴퓨터 아키텍처 (일부 어셈블리 코딩과 함께; 당신은 그것을 사용 하지 않을 가능성이 높지만 프로그래머로서의 태도를 얼마나 형성 할 수 있는지는 알 수 없습니다)
  • 데이터 구조 (링크 된 목록에서 복잡한 트리 등), 조만간 간단 해 보일 수 있지만 이에 대한 배경 지식이 필요합니다. 이해하지 못하는 기성 솔루션을 사용하는 것은 좋은 프로그래머가 아닙니다. 할것이다)
  • 컴파일러 (예, 컴파일러! 컴파일러를 작성하겠습니까? 아마 아닐 것입니다.하지만 작성할 없다면 실제로는 어떻게 작동하는지 알 수 없습니다 ...)
  • 운영 체제 (위와 동일)
  • 컴퓨터 네트워크
  • 인공 지능 및 전문가 시스템 (Prolog에서도 코딩하지는 않지만 코딩 두뇌를 형성하고 근본적으로 다른 관점에서 볼 수있는 것 중 하나임)
  • 이러한 기술을 가장 중요한 순서로 어떻게 정렬합니까?

A - CS는 항상 도박 것 같이 항상 변화하는 분야에 우선 순위를 알면 추측 게임 .

당신이하고 싶은 것을 알고, 당신의 강자를 믿어 라. 물론, 확실한 기본 지식을 갖는 것이 필수적입니다. 그러나 당신이 탐구 할 것은 전적으로 당신에게 달려 있습니다. 또한,주의 깊게 당신의 경력을 계획 : 당신이 채택 될하려는 경우, 당신의 목표를 선택하고 그것을 잘 될 예에 의해 사용될 싶은 ( 구글 방법과 간단한을 읽는 파이썬 스크립트가 아마 그없는 이동 상황 중 하나입니다 모르고 ) . 혼자서 (회사) 무언가를 시작하고 있다면 만족할 "보스"가 없습니다. 가장 적합한 것을 선택하십시오.

예를 들어, 웹 관련 작업을 수행하려면 PHP / MySQL / HTML / CSS / JavaScript (+ jQuery / AJAX)로 이동하는 것이 좋습니다. 그러나 그것은 단지 나입니다. 누군가가 PHP보다 Ruby / Rails를 좋아할 것입니다.

예를 들어, 나는 현재 주로 Objective-C / Cocoa로 코딩하고 있습니다. 나는 당신이 그것을 추구하도록 조언 하시겠습니까? 기필코 아니다. 즉, Mac을 사용하지 않거나 Mac / iPhone 관련 소프트웨어를 판매하는 경력을 원치 않는 한. Windows 개발을하고 있다면 C # / .NET Framework를 사용하는 것이 최선의 선택 일 것입니다. (내가 주로 무엇에 대한 아이디어를 얻으려면 내 StackOverflow 프로필을 살펴보십시오 )

  • 저명한 대학교에서 학부 수준의 CS를 달성하거나 능가하는 방식으로 이러한 속성을 달성하기 위해 내 교육을 보충하는 가장 좋은 방법은 무엇입니까?

많은 책 (책, 인터넷, 다른 사람들의 코드 등)을 공부하고 최대한 많은 코드를 작성하십시오.

아, 그리고 코드와 관련된 어떤 일을하려고 노력하십시오. (저는 처음 프리랜서로 일하기 시작했으며 실제로 세상에서 일이 실제로 어떻게 일어나는지 보는 것은 정말 귀중한 경험이었습니다.)


내 .2 친화적 인 센트 ... :-)

사이드 노트 : 내 요점 중 일부는 논란의 여지가있는 것으로 알고 있으며, 나와 동의하지 않는 사람이 많이있을 것입니다. 괜찮습니다. 그러나 그것은 내가 보는 방식, 특히 내가 좋아하는 것을 바꾸지 않습니다.


이것이 바로 내가 찾던 것입니다. 감사! 다른 모든 반응도 좋았으며, 잘못되었거나 도움이되지 않은 것은 거의 없었습니다. 나는 이것을 선택한 이유에 대한 작은 섹션과 더 자세하게 설명하는 블로그 게시물에 대한 링크를 포함하도록 질문을 업데이트 할 것입니다 (프로그래머 대신 내 블로그에 그러한 설명을 넣은 이유는 이미이 글에 적합하지 않다고 생각하는 관심있는 중재자의 수가 점점 늘어나고있을뿐 아니라 게시물의 길이가 너무 깁니다. 게시 상태를 유지하십시오. 그리고 다시 감사합니다.
Paul Hazen

@PaulHazen 천만에요! 도와주게되어 기쁘다 ... (이제, 내 대답의 거대한 길이는 ... argh ... 시스템은 그것을 "커뮤니티 위키 (wiki)"게시물로 자동 인식했고 나는 노력하고있다 중재자는 그것을 초기 상태로 되돌립니다 : 단순하지만 약간 재 편집 된 답변입니다)
Dr.Kameleon

메타 ( meta.programmers.stackexchange.com/questions/3513/… ) 에서 실제로 나는 그들을 더 적절한 목적지로 옮기도록 격려하고 있습니다. 공식 FAQ에 따르면이 포럼에는 질문이 적합하지 않습니다. 그러나 실제로 프로그래머를 사용하는 것을 관찰하면 여기에있는 것이 적절하다고 생각합니다. 중재자는 자신에게 가장 적합한 곳에 마음을 정할 수 있습니다. 그것을 옮기는 것에 대한 내 생각을 요약하면 : 프로그래머가 해야한다고 생각하는 것은 여기에 속하지 않지만 프로그래머 무엇인지에 따르면 완벽하게 맞습니다.
Paul Hazen

@PaulHazen 글쎄, 적어도 나를 위해 (나는 결코 물건에 대한 전문가는 아니지만), 그것은 절대적으로 적절한 것 같습니다.
Dr.Kameleon

그래, 그냥 내 손을 공중에 던질거야. 사람들이 Google이나 스택 교환을 사용하여 최소한 답변을 찾을 수 있다면 행복합니다. 같은 질문을하는 사람들이 나중에 내용을 쉽게 찾을 수 있어야합니다.
Paul Hazen

18

CS 학위를 통해 지금까지 부족하거나 부족한 분야의 연구, 일반 지식 및 기타 기술을 객관적으로 결정하려면 어떻게해야합니까?

UW에서 CS 부서의 커리큘럼을 찾아보고 필요한 독서를 빌려서 찾아보고 이전 시험과 실습 (숙제 과제)을 살펴보십시오. 문제에 어떻게 접근 할 지에 대해 잘 모를 경우 지식에 구멍이 생깁니다.

이러한 기술을 가장 중요한 순서로 어떻게 정렬합니까?

앞으로 어떤 종류의 프로그래밍을하고 싶은지 생각해보십시오. 웹 사이트 및 CRUD 응용 프로그램을 작성하는 데 만족한다면 이미 필요한 모든 지식이있는 것 같습니다.

CS 교육은 어떻게 [분포] 데이터베이스, 웹 서버, 컴파일러 및 통역, 운영 체제, 네트워크 프로토콜 등의 작업에 관심을 이해하면 사진에 진입 후드 , 그리고 이러한 시스템을 직접 구축에 관심이 있습니다.

저명한 대학교에서 학부 수준의 CS를 달성하거나 능가하는 방식으로 이러한 속성을 달성하기 위해 내 교육을 보충하는 가장 좋은 방법은 무엇입니까?

나도 몰라. 저에게있어 대학의 가장 큰 장점은 1) 내 시야를 넓히고 (유니에서 배운 세부 사항의 90 %를 잊었지만 개념과 아이디어를 기억합니다) 2) waning : 졸업 할 때까지 시험, 다른 시험 등 목표를 향해 노력할 때 동기 부여를 유지하는 것이 더 쉽습니다. (또한 자기 교육을 구성하는 것은 쉬운 일이 아닙니다.)

[추가 : CS 프로그램을 따르고 싶은 대학교를 선택하고, 관심있는 주제의 코스를 선택하고 직접 커리큘럼을 진행하십시오 : 숙제 과제, 시험 등 대부분의 코스는 초창기부터 강의 슬라이드 및 과제 / 시험을 게시합니다. .]

충고 한마디 : 수학 학위를 포기하지 마십시오. 모든 밝은 사람은 스스로 프로그램을 가르 칠 수 있지만 유체 및 기계 시뮬레이션, 컴퓨터 그래픽, 이미지 처리, 인식 및 기계 학습 응용 프로그램과 같이 CRUD / 프런트 엔드 이외의 응용 프로그램에서 작업하려는 경우 수학은 경쟁 우위를 제공합니다. (금융도!) 등

업데이트 2-경험 [긴] : EE 교수진에서 석사 학위를 취득했습니다. 처음 2 년은 일반적인 커리큘럼 (물리, 전기 공학, 아날로그 및 디지털 전자 공학 및 많은 수학-선형 대수학; 이산 수학; 실제, 벡터 및 복잡한 응용 분석.) 이것은 매우 귀중했습니다. EE 및 전자 부품-혼합 HW-SW 프로젝트를 수행 할 수 있었으며 HW 디자이너와의 협력은 매우 흥미로 웠습니다. 나는 HW 디자인에 아무 것도 기여하지 않았지만, HW 디자이너가 그의 회로도를 "디버깅"하고 합리적인 질문을 할 수있었습니다. [버그가 SW인지 HW인지 확실하지 않았습니다. -)].

그런 다음 선이 분기되어 CS 선을 선택합니다. "세부 사항"중 일부는 개념을 세분화하는 데 기여했습니다 (예 : Dijkstra의 알고리즘을 수동으로 실행). 또한 나는 배운 세부 사항 오래된 모토로라 68000, 이미 다음의 예에서 (버스 다이어그램, 실행 등을 해석, 버스 신호) 방식의 CPU 작업에 대한,하지만 세부 사항을 통해 배운 개념 중 하나 현대 CPU에 대한 매우 다르지 않다.

기타 세부 사항, 예 : SW 구현 (예 : Dijkstra 구현)은 디버깅을위한 무의미한 연습이었고 개념 이해에 ZERO에 기여한 [고등학교 코딩에 상당히 능숙했기 때문에] 나에게 적합했습니다.

그리고 박사 과정에 등록했는데 의무 과정을 이수해야했습니다. 코스 선택에 실망했습니다. 많은 코스가 산업의 요구에 더 초점을 맞추는 것처럼 보였습니다 (예 : 과학적 데이터 분석을 위해 Python을 사용하는 경우-감사합니다. 프로그래밍 할 수 있으며 스스로에게 많은 것을 가르 칠 수 있습니다. -기본 개념을 가르치는 것보다 많은 무의미한 코딩이 다시 포함되었습니다 (다행히, 나는 이산 최적화, 프로그램의 정적 분석 및 Promela의 공식 분석에 대한 과정을 파헤 쳤습니다).

따라서 일부 세부 사항은 개념을 세분화하는 데 유용했고 일부는 명백한 불필요한 부담이었습니다 (다른 예 : 두 컴퓨터 간의 직렬 포트 통신 프로그래밍). 그런 다음 이미 HW 사양을 읽고 해석하고 레지스터를 통해 HW를 프로그래밍하는 데 익숙했습니다. 평범한 CS 엔지니어가 HW 문서를 읽는 방법에 대해 교육받을 필요가 없다고 가정하면 순진 할 것입니다.

결론 : 다양한 개념 (높은 수준의 아이디어)에 자신을 노출시키고 우선 순위를 정하고 극도로 능숙 해지는 개념에 대해 자세히 설명하십시오. [당신은 모든 것을 매우 잘할 수는 없습니다!]


+1입니다. 세부 사항의 90 %를 잊었음에도 불구하고, 세부 사항을 학습 한 경험이 개념과 아이디어에 뿌리를 내리는 것이 었는지, 더 적은 세부 사항과 더 개념적 / 높은 수준의 아이디어를 학습하는 데 시간을 투자하는 것이 더 가치 있다고 말할 수 있습니까? ?
Paul Hazen

@PaulHazen 새로운 편집 내용보기 (UPDATE2에서 시작-주석 필드에 맞지 않음)
zvrba

현재 취하고있는 단계를 매우 확신합니다. 추가 된 섹션은 매우 중요합니다. 나는 세부 사항을 배우고 싶은 것들의 목록이 너무 길어서 합리적이지 않다고 느낀다. 나는 역사적으로 그 점에서 범위 지정 문제가있다. 업계를 살펴보고 관심있는 주제 중 어떤 주제를 배우는 데 가장 도움이되는 주제를 식별 할 수있는 좋은 방법이 있습니까? 아니면 내가 더 작은 세트에 대해 자세히 배우는 한, 내가 배우는 것이 중요하지 않다고 말할 수 있습니까? 이와 관련하여 업계를 예측하기 어려울 수 있습니다.
Paul Hazen

1
업계를 예측하려는 것은 선제 적으로 잃어버린 게임이다. (예를 들어, 웹을위한 트위터 (거의) IRC 클론)가 그런 유행이 될 것이라고 아무도 모른다고 확신 할 수 없다. 그들이 장기적으로 돈을 버는 방법은 여전히 ​​미스터리입니다.]. 당신은 가지고 가야 사전 선택 종류의 작업의 당신이하고 그것을 얻기 위해 필요한 것을 발견하고 싶은 일에 대해합니다. 어떻게? 대상 산업에서 이미 일하고있는 사람을 찾아 그들과 대화하십시오.
zvrba

1
@Paul 개념은 중요하지만 세부 사항은 (보통) 중요하지 않습니다. 필요할 때 세부 사항을 살펴볼 수 있지만 처음에는이 영역에서 찾아 볼만한 것이 있다는 것을 알기 위해 큰 그림을 배워야합니다.
Donal Fellows

7

나는 대학을 졸업 한 후배들을 모집하는 데 참여하고 참여합니다. 나는 그들이 어떤 프로그램을 선택하든 그들이 선택한 주제 기술을 기반으로 한 사람을 아직 고용하지 않았습니다. 그 이유는 간단합니다. 제가 경험 한 CS 프로그램 (또는 다른 프로그램)은 전문적이고 상업적인 수준의 프로그래밍 또는 소프트웨어 개발과 관련된 구체적인 기술을 가르치지 않습니다 . 복잡한 미분 방정식에 대한 모델과 솔루션을 정리하고 최적화 된 특수 목적 분류 알고리즘을 작성하는 것은 학문적 및 / 또는 과학적 가치를 지닐 수 있지만 일반적인 소프트웨어 개발에는 영향을 미치지 않습니다.

그때 무엇을 찾아야합니까? 글쎄, 나는 대학 졸업생이 학습의 예술을 완성했을 것으로 기대합니다. 그것은 결국 좋은 대학이 학생들에게 가르치는 것입니다. 일반적인 문제를 분석하고 예측 가능한 해결할 수있는 논리적이고 개별적인 구성 요소로 분석하고 분석하는 방법 솔루션에 대한 지식과 정보를 찾고, 평가하고, 구성하고, 적용하기위한 체계적인 접근 방식.

또한 저는 함께 일하고 의사 소통하는 사람들 그룹이 개인의 합보다 훨씬 더 가치가 있다는 것을 이해하는 사람들을 찾습니다. 그것은 성숙과 겸손과 도움을주고 요청할 수있는 능력을 필요로합니다.

따라서 질문의 범위로 돌아가려면 CS 학위가 대학에서 첫 번째 인터뷰를받을 가능성을 향상시킬 수는 있지만 개발자로서의 성공 또는 숙련도와는 거의 관련이 없습니다. 나는 항상 "태도에 대한 고용, 기술에 대한 훈련"이라는 철학을 따랐으며, 그 결과는 훌륭합니다.

내 충고 : 관심있는 것이면 수학 학위를 계속하십시오. 모든 과학 교육은 당신을 잘 지원할 것이므로 가장 좋아하는 것을 가장 좋아하는 것을 선택하십시오. 그런 다음 중요한 것을 배우는 데 중점을 둡니다 : 학습 방법, 문제 해결 방법에 대한 분석 및 접근 방법 체계적인 방법, 다른 사람들과 상호 작용하고 협력하는 방법, 자신과 팀원의 전달을 위해 리더십과 책임을지는 방법. 나머지는 기술과 코딩, 무역 도구입니다. 그것들은 스스로 배울 수 있고 배울 것입니다. 대중적인 디자인 패턴 및 건축 패러다임과 같은 일반적인 지식을 수집하고 연구합니다. 연습 할 프로그램 작성을 시작하십시오. 상당히 최신의 언어 및 기술 기반을 선택하십시오. s 배우는 마지막 것. 도구와 언어는 항상 바뀌므로 소프트웨어 개발은 ​​끊임없이 학습하는 과정입니다.


CS 학위 내에는 성공적인 프로그래머가되는 데 도움이되는 것이 거의 없다고 말할 수 있습니까? 현재 나는 당신의 대답이 가장 좋을 것입니다. 내가 이해하고 이해하려고하는 많은 것들에 확실히 부딪 쳤습니다. CS 내에서 모집하는 영역에 대한 추가 컨텍스트를 빌려줄 수 있습니까? 운영 체제 작업을 위해 새로운 졸업생을 고용하는 모집 담당자는 자신과 다른 관점을 가질 수 있다고 생각합니다 (그러나 나는 그것에 대해 완전히 틀릴 수 있습니다). 시간을 내 주셔서 감사합니다. 이것은 매우 도움이됩니다
Paul Hazen

저는 0-1 년의 경력을 쌓은 IT 컨설팅 회사에서 일하고 있습니다. OS 개발 상점에 대해 자신감을 가지고 대답 할 수는 없지만 (얼마나 많은가?) 그들이 똑똑하다면 똑같이 갈 것이라고 가정합니다. 극소수의 대학원생 만이 그 자체로 경쟁하기에 충분한 주제 기술을 가질 것이므로 태도, 잠재력 및 학습 능력을 위해 고용하십시오.
pap

흥미 롭군 당신에게 "+1"을 주었고, 나는 당신이 다른 사람보다 더 많이 말해야하는 것을 좋아하지만, "소프트웨어 개발 분야에 어떻게 성공적으로 진입합니까?"라는 질문에 더 정확하게 대답하고 있습니다. , 그러나 나의 관심은 hirable 프로그래머의 속성이 아닌 성공적인 프로그래머 의 속성을 이해하는 것입니다 (예, 성공적인 프로그래머도 hirable 가능하지만 항상 반대 방향으로가는 것은 아닙니다).
Paul Hazen

내가 성공하지 못하거나 성공할 수있는 잠재력과 역량을 가진 사람들을 고용하지 않습니다. 그래서 나에게 "채용 가능"과 "성공"은 같은 것입니다. 다른 기준으로 채용하는 사람은 인재를 찾는 데 잘못되었거나 나쁜 것입니다. 어느 쪽이든, 일하기 좋은 곳이 아닐 수도 있습니다. 그러나 고용주로서의 열쇠는 사람들의 잠재력을 활용하고 그것을 실제 성공으로 전환하는 방법을 아는 것입니다. 그것은 훈련, 멘토링 및 코칭의 혼합이며 당신이 그것을 가지고 있지 않다면 당신이 재능있는 사람들을 고용하는 것은 중요하지 않습니다.
pap

7

본질적으로 이것은 내 질문입니다. 현재 CS 부족을 통해 어떤 연구 분야, 일반 지식 및 기타 기술을 습득했을지 객관적으로 결정하려면 어떻게해야합니까?

답변 1

연구에서 새로운 것을 배우는 경우 . 그런 다음 CS 학위를 통해 이것을 획득했다고 객관적으로 말할 수 있습니다 .

A1. 왜

CS 학위는 개념적으로 학습에 관한 것입니다. 순차가없는 CS 학위에서 돌아 오면 핵심 목표를 달성 할 수 없습니다. 시험과 코스워크는 배운 것을 "공식적으로"측정 한 것입니다. 그러나 개인 이해력 (새로운 것을 배웠습니까?)이 더 객관적인 척도가되어야합니다.

A1. 경험

나는 학계에 있었고 지금은 전문적으로 일합니다. 나는 이해를 넓히고 싶었고 학습에 대한 열정이 있기 때문에 컴퓨터 과학 석사 학위를 선택했습니다.

컴퓨팅 분야에서 석사를 취득한 결과 내 세상이 확장되었습니다. 저의 세계는 전문적으로 일하는 것에서 확장되었습니다.

이러한 기술을 가장 중요한 순서로 어떻게 정렬합니까?

답변 2

중요성은 누가 질문을하고 어떤 상황에 대해 상대적 입니다. 개인적 성장을 위한 것이라면 모든 것이 중요합니다. 산업에 적합하다면 알고리즘 및 우수한 OOP / 표준 소프트웨어 사례가 중요합니다.

A2. 왜

중요한 "범위"는 "컨텍스트"에 크게 의존합니다. 상황이 없으면 기술의 장점을 분류하기가 어렵습니다.

A2. 경험

"대학"과 "현장"에서 얻은 기술이 다릅니다. 대학의 "기술"은 더 많은 "이론"이며, 산업에서 "연습"이 더 높습니다. 이러한 이유로이 차이는 기술의 중요성이 실제로 다르게 평가됨을 의미합니다.

저명한 대학교에서 학부 수준의 CS를 달성하거나 능가하는 방식으로 이러한 속성을 달성하기 위해 내 교육을 보충하는 가장 좋은 방법은 무엇입니까?

답변 3

자신 파괴 점 이상으로 밀어 내고, 중단 할 때 자신을 다시 끊으 십시오.

무슨 뜻이야?

당신이 이해하지 못하는 지점에 도달하면, 당신은 자신을 부러 뜨린 것입니다. 이해할 때까지 계속 배우십시오 . 그런 다음 이해하지 못하는 다른 것을 찾을 때까지 더 밀어 넣으 십시오 (ad infinitum) .

A3. 왜

당신이 배우고 당신의 경계 안에서만 머무르면, 당신은 "확인"만 될 것입니다. 당신은 단지 "확인"되고 싶지 않습니다. 당신은 당신이 할 수있는 "최고"가되고 싶어합니다. 경계를 넘어서지 않으면 실제 잠재력에 도달 할 수 없습니다.

A3. 경험

나는 항상 평생 학생이 될 것입니다. 나는 현재의 기술 세트를 열거하지 않을 것입니다. 궁금한 경우 내 프로필을 볼 수 있습니다.

한 가지 말하겠습니다. 나는 나의 현재 지식으로 결코 성취되지 않습니다. 나는 더 높이 날고, 더보고, 더 깊이 가고 싶습니다.


확실히 좋은 말, 이것은 나와 공명합니다. 응답을 "올바른"것으로 표시하지 않는 이유가 궁금하다면 업데이트를 참조하십시오.
Paul Hazen

그리고 좋은 업데이트. 믿음을 지키십시오. 때가되면 대답을 표시하는 것을 잊지 않습니다.
Paul Hazen

1
답을 정리해 주시겠습니까? 서로 다르지만 유사한 내용을 가진 두 개의 반복 섹션 헤더가 있습니다.
Paul Hazen

안녕하세요, 폴, 내가 어떻게 정리하고 싶은지 잘 모르겠습니다. 약간 혼란스러워 보입니다. 각 하위 제목은 각 질문과 관련이 있습니다. 즉, 각 "질문"에는 업데이트에서 요청한대로 답변을 뒷받침하는 "왜"및 "경험"이 있습니다. 명확성 측면에서 어떤 변화라도 기뻐합니다.
Darknight

오 .. 정말 혼란 스러웠습니다. 제목을 늘리거나 ** 굵게 표시 ** 텍스트를 사용하여 하위 제목을 표시 할 수 있습니까? 선명도를 향상시키는 데 도움이 될 것이라고 생각합니다.
Paul Hazen

4

CS 학위를 통해 지금까지 부족하거나 부족한 분야의 연구, 일반 지식 및 기타 기술을 객관적으로 결정하려면 어떻게해야합니까?

학위 요건을 확인한 다음 각 수업에 대한 강의 계획서를 찾으십시오.

이러한 기술을 가장 중요한 순서로 어떻게 정렬합니까?

가늠자의 도움 없이는 직접이 작업을 수행 할 수 없습니다. 대부분의 자기 교육 프로그래머에게 부족한 가장 중요한 것은 알고리즘 분석과 디자인이라고합니다. 나머지는 한 조각 식사를 할 수 있습니다.

저명한 대학교에서 학부 수준의 CS를 달성하거나 능가하는 방식으로 이러한 속성을 달성하기 위해 내 교육을 보충하는 가장 좋은 방법은 무엇입니까?

프로그램에 입학하지 않아도 다른 부서의 수업을 선택 과목으로 수강 할 수 있습니다. 내가 가장 좋아하는 수업 중 하나는 항공 우주 공학의 프로젝트 수업으로, 작은 위성용 전자 장치 및 펌웨어에서 일했습니다.

원하는 수업에서 사용하는 교재를 구입할 수도 있습니다. 나는 몇 가지 수업에 대해 내 일정에 맞지 못했습니다. 또 다른 옵션은 MIT 오픈 코스웨어 입니다.


이러한 노련한 사용자는 다른 사용자가 게시 한 답변을 읽는 데 시간이 걸리지 않았다는 사실에 놀랐습니다. 기존 답변을주의 깊게 검토하거나 답변이 다르다고 생각되면 명확하게 설명해주십시오.
Paul Hazen

나는 다른 사람들이 선택 과목에 대한 CS 수업을 추천하는 것을 보지 못했습니다. 많은 사람들이 알지 못하는 것이 허용됩니다. 나머지에 가까운 중복 :-) 거대한 멀티 질문의 결과입니다
칼 Bielefeldt

죄송합니다. 당신은 맞습니다. CS 수업을 선택 과목으로 제안한 사람은 없습니다. 좋은 조언이지만 확실히 틀린 것은 아니지만 다른 답변 중 일부는 더 철저하고 세 가지 질문을 나머지 질문과 더 나은 맥락으로 해결했습니다. 당신이 한 조언을 부정하지 말고 (나는 당신에게 +1을줍니다), 진심으로 감사합니다. 내 실수로 다시 미안합니다.
Paul Hazen

3

CS 학위가 성공적인 프로그래머 가되기 위해 왜 그렇게 중요하다고 생각 하십니까?

성공적인 프로그래머가되기 위해 필요한 것은 :

  • 프로그래밍에 대한 열정
  • 새로운 기술에 대한 지식에 대한 끊임없는 갈증
  • 어쨌든 업계에 진입

일반적으로 CS 학위는 업계에 당신을 데려다 줄 것이지만 지식에 대한 열정과 갈증이 없다면 고통을 겪을 것이고 결코 훌륭한 프로그래머가 될 수 없습니다.

이미 업계에 진출한 것처럼 보이며 지식에 대한 열정과 갈증이 모두있는 것 같습니다.

당신이 알아야 할 것은 계속 연구하고 배우고 경험을 얻는 것입니다. 업계는 학위없이 당신을 감사하는 방법을 알 것입니다.

내가 같이 일하는 사람의 예

우리 팀에서 일하는 소프트웨어 개발자 중 한 명이 법학 학위를 받았습니다. 몇 년 후 그녀는 법이 마음에 들지 않으며 프로그래머가되고 싶다는 것을 알게되었습니다. 프로그래머가 아니고 (경험이없고, 학위가없는) 직업을 가질 수 없었기 때문에 6 개월의 컴퓨터 과정을 수료 한 후 직업을 얻었고 그 이후로 훌륭한 개발자입니다.


이것은 훌륭한 내용이지만 내 질문 (잘못 표현하는 것이 잘못되었을 수도 있음)에 대한 답변에 대해서는 크게 인기가 없다고 생각합니다. 나는 CS 학위를 가진 사람이 성공적인 프로그래머가된다는 확고한 신념이 아닙니다. 내 질문은 CS 학위 내에서 배운 주제에있는 "더 프로그래머의 성공에 기여하는 경향이 있고, 어떻게 객관적으로 내가 그 주제에 측정 방법을 결정합니까, 어떻게 Isupplement / 풍부하게 기존 열정, 굶주림을 그런 주제에 대한 지식과 업계 경험을 위해 당신의 대답은 확실하지 않습니다.
Paul Hazen

2

IMHO 프로그래밍 작업 (또는 영업 작업 또는 sysadmin 작업 등)이없고 문제 해결 작업 만 있습니다. 우리는 문제를 해결하기 위해 사람들을 고용하고 지불합니다. 코드 작성은 문제 해결의 일부일뿐입니다. 그렇습니다. 판매조차도 문제 해결의 한 형태입니다. 따라서 수학 학위는 CS 학위뿐만 아니라 문제를 해결할 수 있음을 증명합니다.

귀하의 게시를 통해 많은 경험 / 인턴십을 받고 있음이 분명합니다. 큰! 졸업 후 취업을 걱정하지 마십시오.

질문에 대답하려면 :

클래스? 코드 작성 클래스 대신 이론적 CS 클래스를 선택하십시오. CS / math 클래스가 아닌 다른 클래스를 찾으십시오. 철학 그것은 군중에서 눈에 띄는 데 도움이됩니다

우선 순위? 새로운 것을 배우십시오 (이미 반만 아는 쉬운 수업이 아닙니다)

다음 2 년? 사람들과 대화하고, 배우고, 관계를 구축하고, 외부 활동을 찾으십시오. (취업 / 학습에서 벗어난 취미 / 스포츠 / 통행 시간은 지원자가 얼마나 동기를 부여했는지를 보여주는 단서입니다.)

최종 팁 : 가능한 빨리 졸업하십시오. 연락처 네트워크를 구축하십시오. 그리고 유일한 안전한 직업은 자신의 직업을 만드는 것입니다. 자신의 사업을 시작할 수있는 아이디어 / 기회를 찾으십시오. 행운을 빕니다.


답변 감사합니다. 나는 "+1"을 주지만, 대답으로 표시 할 수 없으며, 다른 응답은 그 이유를 철저히 해결하고 학습 목표를 객관적으로 결정하는 방법을 식별했습니다. 이 중 어느 것도 귀하의 답변을 부정하지 않으며, 당신이 말한 것을 마음에 새기고 정말 도움이됩니다. 다시 한 번 감사드립니다.
Paul Hazen

@PaulHazen- '왜?'를 알고 싶다면 그런 다음 철학 수업을 선택하십시오 :-) 그러나 진지하게, 나는 '당신이 스스로 가르 칠 수있는 일이기 때문에'C 코스가 없었던 4 년 이론 CS 학위를 가졌습니다. 도전은 물론 훌륭한 사람들과 상쾌한 아이디어 그룹이었습니다. 그리고 귀하의 질문은 귀하가 수학 / CS 이외의 수업에 필요한 작문 기술을 가지고 있음을 분명히 보여줍니다.
jqa

1

먼저,이 질문이 몇 년 동안 저 자신에게 물어 왔기 ​​때문에이 질문을 한 것에 대해 매우 기쁘게 생각합니다.

지금까지이 분야에서 약간의 성공을 거두었다고 생각합니다. 나는 대학 경험이 있고 결국 컴퓨터 과학에서 대학 교육을 마치고 싶지만 아직 내 인생에서 학위를받지 못했습니다. 그러나 이러한 단점에도 불구하고 소프트웨어 엔지니어링에서 많은 성공을 거두었습니다 (10 년 지속). 나는 당신에게 정직해야하지만, 반드시 쉬운 일이 아니 었습니다 (물론, 할 가치가있는 것이 가장 쉬운 것은 아닙니다). 나는 그것이 여전히 가장 쉬운 것이 아니라고 말할 것입니다. 적절한 후보자에게 기회를 기꺼이 줄 수있는 회사가 많이 있지만, 그 대학 교육이 부족할 때“승인 승인”에 빠질 다른 회사와 접촉하게되었습니다. 하나,

매우 큰 회사에서 .net으로 시작했습니다. 프로그래머가 아닌 (시간에 기술 지원 담당자로 일한) 비전문가로서, 내가 일했던 회사에 적용되는 언어와 기술에 관한 모든 것을 배웠습니다. 또한, 이것은 아마도 가장 중요한 것입니다. 제목에 소프트웨어 엔지니어가있는 디렉토리에서 찾을 수있는 모든 사람에게 이메일을 발송했습니다. 성가 시나요? 아마. 나는 항상 정중하고 배우고 싶어하는 열의로 자제했다. 나는 점심을 예약하거나 식당에서 찾아 대화를 나누기 위해 앉았습니다. 때로는 당황스러워 졌거나 막히게되었지만 결국 예상 결과를 얻었습니다. 일부 내부 데이터베이스에 대해 소량의 자격 증명을 얻을 수 있었고 잠시 후 고유 한 플랫폼에서 소프트웨어를 개발하는 데 필요한 자격 증명을 얻었습니다. 그 후 곧 회사에서 근무하면서 분석 팀을 위해 내부 도구 개발 기술을 빌려 왔습니다. 거기에서 나는 항상 가장 소박한 방법으로 방에서 가장 똑똑한 사람이 되려고 노력했습니다. 나는 열망했고 모두가 그것을 알고 있는지 확인했습니다. 나는 항상 가능한 한 해결책을 제공하려고 노력했으며 충분히 열심히 노력하면 해결할 수없는 문제 영역이 거의 없다는 것을 알았습니다 (양자 이론 이외의). 회사에서 근무하면서 분석 팀을 위해 내부 도구 개발 기술을 빌려 왔습니다. 거기에서 나는 항상 가장 소박한 방법으로 방에서 가장 똑똑한 사람이 되려고 노력했습니다. 나는 열망했고 모두가 그것을 알고 있는지 확인했습니다. 나는 항상 가능한 한 해결책을 제공하려고 노력했으며 충분히 열심히 노력하면 해결할 수없는 문제 영역이 거의 없다는 것을 알았습니다 (양자 이론 이외의). 회사에서 근무하면서 분석 팀을 위해 내부 도구 개발 기술을 빌려 왔습니다. 거기에서 나는 항상 가장 소박한 방식으로 방에서 가장 똑똑한 사람이 되려고 노력했습니다. 나는 열망했고 모두가 그것을 알고 있는지 확인했습니다. 나는 항상 가능한 한 해결책을 제공하려고 노력했으며 충분히 열심히 노력하면 해결할 수없는 문제 영역이 거의 없다는 것을 알았습니다 (양자 이론 이외의).

긴 이야기가 될 수있는 것을 마무리하기 위해 (그리고 당신이 태평양 북서부에 있다면 맥주에 대해 이야기하고 싶습니다), 작은 작은 신생 회사에서 저에게 기회를 줄 기꺼이 "큰 휴식"을 얻었습니다. . 그들은 약간의 월급으로 저의 경험 부족을 거래했고, 나는 뛰었습니다. 그런 다음 몇 년 동안 한 소규모 개발자 상점에서 다음 소규모 상점으로 옮겼으며, 그 과정에서 우정과 기술을 습득하여 소규모 엔지니어링 회사의 수석 개발자이자 이사로 일하게되었습니다.

여기서 효과적으로 의사 소통을하지 못했다면 여기서 중요한 것은 네트워크에 연결해야한다는 것입니다. 친구를 사귀고, 맥주와 웃음을 나누고, 일하고 싶은 분야에있는 사람들 (바람직하게는 선택한 기술 스택 내)을 찾으십시오. 얼마나 기념비적 인 일이든지 관계없이 사람들이 자신이해야 할 일을 할 의지와 열심을 알고 있는지 확인하십시오. 당신은 기본적으로 당신의 공식 교육 부족을 극복해야합니다. 뛰어 들어 재미있게 보내십시오. 이 업계는 세계 최고입니다, IMHO. 나는 한 곳에서 다른 곳으로 나를 도왔던 지속적인 우정과 연락을 취했으며 기회가있을 때마다 계속 그들과 똑같이 할 것입니다.


1
나는 이것을 대답으로 표시 할 수 없다는 것이 정말로 기분이 좋지 않습니다. 다른 많은 응답과 마찬가지로 내가 잘못 했다고 생각하는 것은 없지만 내 질문의 핵심이 성공적인 프로그래머가 될 때 내 경력을 발전시키는 방법에 전적으로 집중합니다. 성공적인 프로그래머는 좋은 경력을 의미하지만, 나는 "성공적인 프로그래머"측면에 중점을두고 경력 부분이 생각 후 (중요하고 매우 의도적 인) 부분이되도록하겠습니다. 나는 내 질문에 부분적으로 대답하는 귀중한 정보를 위해 "+1"을 제공합니다.
Paul Hazen

아, 그리고 네트워킹에 대해 말하면, 나는 당신의 이야기에 대해 더 듣고 싶습니다! 동일한 경로 / 목표를 공유하는 것 같습니다. paulhazen.net/about 에서 가장 적합한 연락 방법을 자유롭게 선택하면 맥주를 얻을 수 있습니다.
Paul Hazen

1

먼저, 당신의 위대한 작품의 끝 근처에있는 "간결하지만 철저한"규정에 대해 LOL을 말씀 드리겠습니다. 사업에 이르기까지 :

CS 학위를 통해 지금까지 부족하거나 부족한 분야의 연구, 일반 지식 및 기타 기술을 객관적으로 결정하려면 어떻게해야합니까?

다른 사람들이 언급했듯이 코스 카탈로그 에서 시작할 수 있습니다 . 그러나 나는 당신이 그 목록의 경계를 벗어나는 것이 좋습니다. 실제로 수학을 전공하는 것이 좋습니다 . 제가 함께 작업 한 많은 엔지니어들은 간단한 통합을 수행하는 방법을 기억할 수 없었으며 전통적인 CS 이산 수학 교과 과정의 벽 밖에서는 결코 탐구하지 않았습니다.

이 답변은 구체적으로 볼 때 매우 드문 것 같습니다. 나는 CS 학위가 없으며 필요한 분야가 부족하다는 것을 알지 못했습니다. 그러나 나는 다른 관심사에 더 많은 시간을 보냈 으면 좋겠다. 예를 들어, 역사, 언어 및 영어.

이러한 기술을 가장 중요한 순서로 어떻게 정렬합니까?

당신이 사랑하는 것을 배우십시오

당신에게 중요한 것은 무엇입니까? 고용주에게 중요한 것은 무엇입니까? 내 개인적인 휴리스틱은 항상 나에게 가장 흥미로운 것을 배우는 것이 었습니다. 당신 하는 일을 사랑해야합니다. 그렇지 않으면 화상을 입을 수 있습니다. 소프트웨어는 항상에 대한 열정 유능한 개발자가 사용할 수있는 일이있을 것 같은 노력의 그런 거대한 필드 어떠한 이러한 기술의.

배우고 배우십시오

그로 인해 나머지 두 가지 메타 기술로 이어질 것 같습니다. 거만하게 배우고 열심히 노력하십시오. 그것들은 진부하고 아프게 들릴지 모르지만 그 조합은 드물다. 나는 "필요한"기술 측면에서지도 전체를 보았습니다. 프론트 엔드 HTML / 자바 스크립트에서 모바일 개발에 대한 언어 확장, 컴퓨터 비전에 대한 시스템 비전, 다시 7 개 이상의 언어로 확장되었습니다. 내 자신의 무지를 극복하는 습관을 버리고있는 유일한 진정한 핵심 기술.

나는 기타와 음악에 대한 Jack White의 철학을 정말로 좋아 하며 (정말로 그것을 보러 가십시오), 나는 그것이 프로그래밍 세계에 가장 적합하다고 생각합니다. 손이 닿지 않는 곳에 두십시오. 힘내 봐. 그러면 누군가가 원하는 모든 것이 당신의 일이면 쉬워 보일 것 입니다.

저명한 대학교에서 학부 수준의 CS를 달성하거나 능가하는 방식으로 이러한 속성을 달성하기 위해 내 교육을 보충하는 가장 좋은 방법은 무엇입니까?

  1. 비 주요 CS 수업

    당신처럼, UW의 CS 부서는 저를 거부했습니다 ... 비록 그들이 내 감각에 오기 전에 세 번째로 그렇게했다고 생각합니다. 나는 정보학 전공과 응용 수학 전공을 마쳤다. 그러나 나는 여전히 비 주요 CS 트랙 전체를 가져 갔다 . 그것은 CSE 373, 410, 413, 415, 417입니다. 그러므로, 당신이 먼저 당신의 열정을 따라야한다고 믿습니다. 내 수업으로 이끈다 그리고 나는 당신이 그들과 함께 꽤 포괄적 인 핵심 교육을받는다고 생각합니다. 비록 이론적 인 측면에서 조금 밝을 수도 있습니다.

    이제 멋진 점이 있습니다. 인포 매틱스 (Informatics)를 사용하면이 중 대부분이 필 요한 선택 과목에 포함됩니다. 수학 부서에서는 명시적인 승인을 받아야 할 수도 있으며 CSE 417 이외의 다른 사람들에게도 도움이 될 수 있습니다.

    DARS 문의 (아마도 UWNetID 전용 링크)를 소환하고 상황이 어디에 있는지 확인하십시오. 나는 다양한 전공 광고 구역에 이것을 사용했습니다 .

  2. AMATH 수업

    같은 줄에 Applied Math 부서에는 선택 요구 사항으로 작동 할 수있는 수업 이 있습니다. 당신도 당신처럼 AMATH에서 미성년자 일 수도 있습니다.

    왜 이것을 언급합니까? 수치 컴퓨팅 (예 : AMATH 301/352)은 대부분의 프로그래머에게 큰 미스터리입니다. 다른 소식 이 없으면 흥미로운 블로그 게시물 을 작성할 수 있습니다 . 그러나 언어의 숫자 유형을 둘러싼 문제를 파악하고이를 측정하고 개선하는 방법을 아는 것이 매우 중요하다고 주장합니다.

  3. 무언가를 만드십시오!

    당신이 할 수있는 가장 중요한 일은 새로운 것을 만드는 것입니다. 아이디어를 처음부터 끝까지 가져 가십시오. 당신의 안락 지대 안에 쉬운 일이 없도록하십시오.

    가장 유익한 프로그래밍 클래스에는 항상 실습용 프로그래밍 구성 요소가 많았습니다. 엔지니어에게는 이론이 실제 중요한 것으로 바뀔 수있는 한 매우 중요합니다. 멋진 CS 사운드를 찾아 구현해보십시오. 진심으로.

  4. 일자리를 구해

    자, 당신은 이미 아마존에 인턴쉽이 있다고 언급했습니다. 훌륭합니다. 실제 업무 경험이 정말 중요합니다! 있습니다 많은 젖은 종이 봉지의 자신의 방법을 프로그램 할 수 없습니다 CS 학위를 가진 사람들은. 좋은 직장 경험을 갖는 것은 가치가있다 방법이 더 차수보다.


이. 이것은 매우 좋습니다. 사실 나는 이것이 유효한 답변 이상이라고 생각합니다. 표시된 답변은 조금 더 유효합니다 ... * 한숨 * 너무 많은 훌륭한 답변으로 판단하기가 어렵습니다 :( 나는 당신의 답변을 더 많이 도울 수 있기를 바랍니다. 그러나 실제 생활에서 당신을 알고 있기 때문에 (그러나 대부분 트위터를 통해 이전에 하하에 대해 논의한 적이 있습니다. 위안 상으로 맥주 나 위스키를 사야합니다
Paul Hazen

-2

대학을 졸업하기 전에 백만장자가 된 사람들에 대한 몇 가지 이야기가 있습니다. 아마도 내가 가장 많이 듣는 것은 빌 게이츠 일 것입니다. 틈새 능력을 가진 사람들은 쿠키 스탬프 CS 졸업생보다 학위없이 더 잘하는 경향이 있습니다.

거의 지루하지 않고 지루하거나 배우기가 어려운 것을 찾아서 잘 배우고 그것에 사로 잡히십시오. 내가 들었던 일부 영역은 유닉스 백엔드 물건 (리눅스가 아니라 수요가 많지 않지만), 플래시 (플래시에 대해 정확히 기억할만큼 플래시에 대해 충분히 알지 못하지만 이사 한 사람을 알고 있습니다. 빨리 알고 그것을 그는 여전히 사람들이 죽어 가고 그것을 배우지 않을 것이라고 말하기 때문에 아직 시장이 있다고 말했다. 가려면 몇 가지 수업을 들어야 할 수도 있지만, 물건을 알고 인상적인 포트폴리오를 가지고 있다면 필요한 비즈니스가 있습니다!


1
내 질문에 대답하지 않은 경우 -1입니다. 당신은 틀리지 않았지만, "내가 찾고 있지 않은 것"섹션을 건너 뛰었고, 내가 찾던 것들에 부딪치지 않은 것 같습니다.
Paul Hazen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.