모든 것이 지나가는 유행입니다. 대학을 졸업 한 모든 해보다 대학 졸업 첫해에 더 많은 것을 배울 것입니다. 컴퓨터 과학은 컴퓨터와 관련이 없습니다.
College는 도구로 가득 찬 도구 상자를 제공합니다. 이것은 스크루 드라이버, 즉 초승달 렌치입니다. 대학에서 각 도구를 한 번씩 사용할 수 있습니다. 당신이 현실 세계에 들어갈 때 당신이 가지고있는 것을 정말로 발견 할 때입니다. 나머지 것 중에서 유용한 것, 만일을 대비하여 집에두고 싶은 것, 혹시라도 집에두고 싶은 것, 매일 주머니에 보관하는 것 등을 분류합니다.
Tqm, Iso, Cmm, Agile, 등등. 이것들은 그들이 올 것이고 갈 것입니다. 성공적인 것 중 어느 것도 상식 이상이 아닙니다. 모든 성공적인 엔지니어와 회사는 상식을 사용하여 성공을 거두었으며 이름이 필요한 사람은 거의 없습니다. 문제는 당신이 상식을 팔 수없고, 관리자가 눈에 띄는 이름 없이는 상식을 훈련하고 사서 회사에 그들의 가치를 증명할 수 없다는 것입니다. 상사가 뉴스 기사 나 잡지에서 읽은 이름을 붙이면 관리자는 일을 계속하고 당신은 당신의 일을 계속합니다. 이러한 관행을 따르고 있다고 주장하는 회사는 실제로 거의 없습니다. 대부분은 컨설턴트에게 수표를 쓰고 연간 및 또는 평생 인증서를 일부 클럽에 전달하여 웹 사이트에 그래픽을 표시하거나 제품이 들어있는 상자에 라벨을 붙일 수 있습니다. 많은 사람들은 이것이 드문 일이라고 주장 할 것입니다. 이것은 모두 사업의 일부입니다. 수익성을 유지하고 문을 열고 조명을 켜두 기 위해 때때로 모서리를 잘라야합니다. 이 모든 관행의 열성적인 추종자들은 모두 마지막 것은 유행이고 이건 그렇지 않다고 주장했습니다. 마지막 것은 정말 따라 가기에는 너무 비싸고 이건 아닙니다. 마지막은 가짜 였어요 방금 컨설턴트를 고용했는데 이건 진짜예요 프로그래밍 언어와 마찬가지로 이것들도 진화 할 것입니다. 마지막은 가짜 였어요 방금 컨설턴트를 고용했는데 이건 진짜예요 프로그래밍 언어와 마찬가지로 이것들도 진화 할 것입니다. 마지막은 가짜 였어요 방금 컨설턴트를 고용했는데 이건 진짜예요 프로그래밍 언어와 마찬가지로 이것들도 진화 할 것입니다.
비즈니스의 현실, 대학 시스템 및 그 안에서 자신의 역할을 이해하는 능력이 핵심입니다. 인생의 모든 것과 마찬가지로 전투를 선택하십시오. 당신이 필요로하거나 알고 싶어하는 것을 가르치는 것은 대학이나 기업, 정부 또는 다른 사람의 직업이 아닙니다. 1 위를 찾는 것이 당신의 일입니다. 마찬가지로 당신은 이것을 할 시간을 제공 한 것에 대해 다른 사람을 비난 할 수 없습니다. 당신은 그것을해야합니다. 당신은 말에서 떨어질 것입니다. 당신은 희생자가 아닙니다. 일어나서 다시 타십시오. 변명 할 필요도 없습니다. 삶은 공정한 거래가 아닙니다. 유인물을 활용하고 독립적 인 척하지 마십시오. 그리고 확실히 당신의 회비를 지불하고, 회사에 유인물을 흘리지 마십시오.
사람들은 왜 cmm이나 애자일 또는 다른 것들이 유행이라고 생각합니까? 왜 그렇지 않다고 생각합니까? 교수님이 왜 그런 식으로 프로그램을 가르쳤나요? gotos를 피하거나 상수를 피하거나 이것 저것을 피하려면? 더 안정적인 코드를 생성하기 때문입니까? 더 나은 성능의 코드? 인적 오류 감소? 아니면 연구에 더 많은 시간을 할애하는 논문 / 프로그램을 채점하는 것이 더 쉽기 때문입니까? 그들은 프로그래밍 방법을 모르고 주제에 대한 다른 사람의 책을 따르기 때문입니까? 유지 보수가 가능하고 신뢰할 수있는 고성능 코드를 가질 수 없다고 가르쳤습니까? 당신은 신뢰성과 고성능 모두를 방해하는 유지 보수를 "둘 중 하나를 선택"할 수 없습니까? 때로는 성능을 위해 안정성을 희생합니다. 때로는 안정성이나 성능에 신경 쓰지 않고 버전 117.34에서 얻고 싶을 때가 있습니다. 버전 118.0.0에 대한 또 다른 회계 소프트웨어 프로그램의 2 개. 귀하의 비즈니스 모델은 버전 업그레이드 및 기술 지원 판매에서 비롯되며 소프트웨어 개발자는 동일한 코드를 동일한 방식으로 작성할 수있는 모든 오래된 로봇이 수행합니다. 불에 타 버린 것을 새로운 대학 졸업생으로 교체하고 업그레이드를 계속 판매하십시오.
이 질문에 대한 보편적 인 답은 없습니다. 당신의 의견이 무엇인지 알아 내고, 그것에 따라 생활하고, 그것을 방어해야합니다. 마음을 바꾸고, 함께 생활하고, 방어하십시오.
모든 것에 의문을 가지십시오. 스토브에있는 전골을 만지면 정말 화상을 입을까요? 두려워하는 심리적 효과가 단순히 화상을 입는 것보다 더 많은 피해를 입힐까요? 다 치지 않고 답을 테스트 할 수있는 안전한 방법이 있습니까?
내가 그것을 감당할 수있을 때 나는 내 기숙사 방에있는 트랜지스터, 캡, 저항기 등을 사서 결국 녹이 곤했다.이 모든 것들은 독특한 악취가 난다. 첫 번째 트랜지스터 수업 다음날 빌드하는 것보다 스테레오 용 앰프를 구입하는 것이 훨씬 저렴하고 쉽습니다. 물론 Linus는 운영 체제를 작성하는 것보다 구입하는 것이 더 쉬운 예외입니다 ... 그 시간에 배운 내용이 Linus가 배운 내용과 다르더라도 더 많은 일을 할 수 있습니다.
대학 안팎의 세계는 문제를 해결하기 위해 이러한 공식 (cmm, agile 등)을 채택 할 것이며 다음 문제가 나오면 빠르게 떨어 뜨릴 것입니다. 성공하기 위해 버전 제어를 사용할 필요가 없습니다.없는 것만큼이나 많은 성공이 있습니다 (실제로 산업 시대로 인해 지금까지 버전 제어없이 더 많은 성공이있었습니다). 마찬가지로 최소한의 테스트로도 성공할 수 있습니다 (컴퓨터 업계에서 정말 큰 이름을 예로 들어보십시오). 자신의 코드를 테스트하여 성공할 수있을뿐만 아니라 자신의 코드를 절대 테스트해서는 안된다는 규칙을 따르면 성공할 수 있습니다. emacs를 사용하여 성공할 수 있고 vi를 사용하여 성공할 수 있습니다. 어떤 믹스가 자신에게 적합한 지 결정하고 운이 좋으면 자신에게 맞는 일할 장소를 찾아야합니다.
대학을 졸업하고 현실 세계에 접어 들면 "오래된 타이머"의 말을 듣고 함께 일하며 논쟁하십시오. 그들은 수십 년에서 수세기의 결합 된 경험을 가지고 있으며, 당신이 피하거나 스스로 테스트 할 수있는 함정에 빠졌습니다. 대부분의 사람들은 이러한 유행 중 적어도 한두 개가 왔다가 사라지는 것을 보았을 것이며, 특히 얼마나 심하게 태워 졌는지, 그리고 회복하기 위해 무엇을했는지를 보았습니다. 그들은 사물을 테스트하는 여러 가지 방법을 알고 있으며 테스트 스타일의 이름도 알고 있습니다. 작동하는 것과 그렇지 않은 것. 위험이있는 곳과 접선에서 시간 낭비를 피하는 방법. 당신이 성숙하고 낡은 타이머가 될 때, 그것을 앞으로 전달하십시오. 당신을 따르는 사람들을 가르치려고 노력함으로써 당신이 배운 것을 지불하십시오. 낚시하는 법을 가르치는 것을 잊지 마십시오. 그들에게 물고기를주지 마십시오. 그리고 때로는 성공하기 전에 실패하도록해야하며 너무 심하게 타지 않도록해야합니다.
제가 여기서 정말로 말하고 싶었던 것은 지금 우리가 평행 우주의 진화를 목격 할 수있는 (아마도 영향을 미칠 수있는) 드문 상황에 처해 있다는 것입니다. 예, 컴퓨터 과학은 물리학에 비해 젊은 과학입니다. 그러나 동시에 그것은 여러 번 진화했습니다. 당신이 어디에서 일하고 누구와 함께 일하는지에 따라 하드웨어 엔지니어를 관찰 할 수 있습니다. 하드웨어 세계의 프로그래밍 언어는 확실히 새로운 것은 아니지만 소프트웨어 세계만큼 빠르게 발전하지 않았습니다. 소프트웨어는 수십 년 전에 시작되었습니다. 하드웨어는 항상 소프트웨어 엔지니어를 2 급 시민으로 생각했습니다. 우리의 일은 쉽고 그들의 일은 어렵습니다. (참고로 저는 실제로 하드웨어 및 소프트웨어 엔지니어입니다.) 흥미로운 점은 지금도 우리가 초등 또는 유아 문제로 간주하는 문제를 다루고 있다는 것입니다. 버전 제어를 사용해야하는 이유는이 칩에서 작업하는 유일한 사람입니다. gcc 또는 기타 저렴한 컴파일러 또는 무료 IDE에 대한 귀하의 경험은 내가 사용하는 값 비싼 도구와 비교할 수 없을 것입니다. 만약 회사가 귀하가 그것을 사용할 가치가 있다고 생각하거나 심지어 그것을 사용하는 방법을 알고 있다면 사본을 사줄 것입니다. 그리고 다른 변명의 긴 목록. 나는 vhdl과 verilog를 둘 다 배우고 1 주일 만에 하드웨어 엔지니어로부터 거의 감히 생산적이되는 것을 즐겼습니다 (전기 엔지니어가 내 직책이 소프트웨어 엔지니어라고 말 했음에도 불구하고). 나는이 언어들을 배우고 싶었고, 도구를 사용할 수있을 때 나는 밤까지 사무실에 머물면서 스스로 가르쳤습니다. 그때부터 그 엔지니어는 제가 말한 것이 사실이라는 것을 깨달았습니다. 언어는 단지 구문 일뿐입니다. 프로그래밍 기본 사항은 동일하며 도구는 모두 동일한 작업을 수행합니다. 그 사과와 사과는 사과와 오렌지가 아닙니다.
일반적으로이 두 병렬 산업 중 하나가 다른 산업보다 언어, 프로그래밍 습관, 소스 제어, 테스트, 도구, 프로그래밍 환경 등에 대한 경험이 훨씬 많다는 메시지를 보내는 것은 여전히 어렵습니다. 제가 해결하고자하는 문제는 하드웨어 설계가 개발 될 때 가져 와서 프로세서의 시뮬레이션 (가상 머신)과 연결할 수있는 저렴한 기능 시뮬레이터를 만들어 하드웨어 테스트를 시작하고 테스트를 개발할 수 있도록하는 것입니다. 우리가 실리콘으로 가기 훨씬 전에 제공 가능한 소프트웨어. 이에 대해 "새로운"것은 없지만 최신 코드를 가져오고 코드 변경 사항을 추적하여 시간을 집중해야하는 부분을 확인할 수있는 메커니즘이 없습니다. 하드웨어에 대한 사용자 (프로그래밍) 인터페이스를 정의하는 문서를 추적하는 메커니즘이 없습니다. 골든 카피는 누군가의 이메일받은 편지함에 바이너리 형태로 들어 있고, 그럴 때만 변경됩니다. 무슨 일이 일어나고 있는지 확인하기 위해 verilog를 읽을 필요가 없습니다. 잠깐, 그 verilog는 몇 살입니까? 내가 일주일 내내 당신에게 보낸 그 버그는 3 주 전에 알아 내고 고쳤나요? 그래서 우리는 단지 6 개월 동안 휴가지와 파티로 날아가서 하드웨어 직원이 작업을 끝내고 벽에 던져 넣을 때까지 기다리거나,이 기회를 통해 인내심을 갖고 낙관적으로 그들에게 가르치려고 노력합니까? 작업을 수행하고, 작업을 백업하고, 동료 검토를 위해 자신의 물건을 공유 할 수있는 방해가되지 않는 상식적인 방법이 있습니다. 그 verilog는 몇 살입니까? 내가 일주일 내내 당신에게 보낸 그 버그는 3 주 전에 알아 내고 고쳤나요? 그래서 우리는 단지 6 개월 동안 휴가지와 파티로 날아가서 하드웨어 직원이 작업을 끝내고 벽에 던져 넣을 때까지 기다리거나,이 기회를 통해 인내심을 갖고 낙관적으로 그들에게 가르치려고 노력합니까? 작업을 수행하고, 작업을 백업하고, 동료 검토를 위해 자신의 물건을 공유 할 수있는 방해가되지 않는 상식적인 방법이 있습니다. 그 verilog는 몇 살입니까? 내가 일주일 내내 당신에게 보낸 그 버그는 3 주 전에 알아 내고 고쳤나요? 그래서 우리는 단지 6 개월 동안 휴가지와 파티로 날아가서 하드웨어 직원이 작업을 끝내고 벽에 던져 넣을 때까지 기다리거나,이 기회를 통해 인내심을 갖고 낙관적으로 그들에게 가르치려고 노력합니까? 작업을 수행하고, 작업을 백업하고, 동료 검토를 위해 자신의 물건을 공유 할 수있는 방해가되지 않는 상식적인 방법이 있습니다.
하드웨어 엔지니어는 당신처럼 반짝이는 새로운 도구 상자를 가지고 대학을 떠났다는 것을 기억하십시오. 17 개의 다른 프로그래밍 언어를 배웠으며 그중 하나만 사용할 수 있으며 나머지 언어는 대학을 졸업 한 후에 발명 될 것입니다. 그들이 대학을 떠났을 때 그들은 미적분과 상대성 이론에 대해 알고있는 것을 말할 수 있고 각 원소에 얼마나 많은 전자가 있는지 가우스 표면 주위의 전하를 계산할 수 있습니다. 그러나 그들의 경력의 대부분은 1, 0, 또는 아닙니다 (공통적으로 컴퓨터, 1, 0 및 하드웨어 또는 소프트웨어 엔지니어가 아닌 컴퓨터에 대해 알아야 할 모든 것). 물리, 미적분, 전자의 기본 법칙은 프로그래밍 언어만큼 빠르게 변하지 않을 것입니다. 그러나 프로그래밍의 기본은 모든 언어에서 동일하며 앞으로도 계속 될 것입니다. 당신은 그것을 알고 대학을 떠났거나 자바가 C ++보다 다르고 더 낫다고 생각 했습니까?
다른 사업과 마찬가지로 대학의 업무는 수익성을 유지하는 것입니다. 그들은 대학의 수익성을 높이기 위해 적절한 학생과 적절한 연구 비용과 적절한 종류의 연구를 모두 제공하기 위해 적절한 학자를 고용해야합니다. 그들은 올바른 학생들을 데려오고 올바른 졸업생을 배출하기 위해 올바른 수업을 제공해야합니다. 그래야 수십 년 동안 대학 근처에서 고용주가지나 갈수록이 대학이 생산적이고 수익성있는 직원을 배출한다는 사실을 알게 될 것입니다. (예, 때로는 적절한 TV 시청 시간과 적절한 이름 인식 및 스포츠 수익을 얻기 위해 적절한 스포츠에서 적절한 운동 선수를 유치해야합니다). 일부 대학은 C ++ 및 Java를 가르치지 만 일부는 결코 가르치지 않습니다. 일부는 CMM을 발명하고 일부는 Agile을 가르치고 일부는 둘 다하지 않습니다. 대학에 가치가 있다면 배울 것이 있습니다. 그들은 당신에게 배워야 할 모든 것을 가르치지는 않을 것이지만 유용한 것을 가질 것입니다. 거기에있는 동안 무언가를 배우고, 적절한 수의 다양한 형태의 도구를 도구 상자에 모으십시오. 대학을 떠나 일자리를 구하십시오. 도구 상자가 좋지 않으면 다른 대학을 찾고 첫 번째 대학을 언급하지 마십시오. 괜찮은 도구 상자라면 해당 도구를 사용하고 자신의 시간에 새로운 도구를 만드십시오. 그것이 꽤 좋은 도구라면, 그 대학과 당신이 이것을 배운 좋은 학자에 대해 좋은 것을 말하고 그들이 당신에게 준 것에 대해 학교에 갚으십시오. 대학 도구의 범용 카탈로그에서 가능한 모든 도구를 얻지는 못했지만 특정 하위 집합을 사용하게 될 것입니다. 졸업하지 않아도 ...