렇게 똑똑한 컴파일러,언어,그리고 프레임워크를 만들 벙 프로그래머?[마감]

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

  •  06-07-2019
  •  | 
  •  

문제

더 진보된 컴파일러,언어,그리고 프레임워크를 우리는 작업을 자동화할 수 있습니다,또는 특정의 복잡성에서 우리에게,그들은 궁극적으로 우리에게 멍청한 프로그래머?

짐 C 다음과 같은 비유의 계산기:

어떤 하나의 추출 사각형 뿌리 요즘, 를 사용하여 종이와 연필?우리가 사용하는 계산기 또는 간단한 함수를 호출 에서 우리의 좋아하는 프로그래밍 언어입니다.우리가 얼마나 많은 무엇인지 알 계산기지거나 심지어는 기능입니까?

그럼 왜 우리는 모두 그냥 우리 아이들을 잊을 수학 학습,즉 우리가 무엇을 계산기까?지 않는 본질적으로 확인 우리 아이 벙?

도움이 되었습니까?

해결책

그들은 좋은 프로그래머를 멍청하게 만들지 않고 더 생산적으로 만듭니다. 그러나 그들은 Dumber 사람들이 프로그래밍 할 수 있고 훌륭한 프로그래머라고 생각하게 만듭니다.

설명 : 나는 바보에 대한 정확한 정의가 없습니다. 바보에서 나는 실제로 프로그래머가되어서는 안되는 사람들이거나 중요한 것을 배우려고 노력하는 일반적인 것을 의미합니다. 나는 실제로 코딩 할 수없는 많은 사람들을 보았고 여기저기서 물건을 복사했습니다. 소프트웨어 품질 평가는 쉬운 일이 아닙니다. 그들은 마침내 (좋은 도구의 존재로 인해) 어떻게 든 작동하는 엉뚱한 소프트웨어를 구축하므로 직장을 잃지 않기 때문에 좋은 프로그래머라고 생각하므로 아무것도 배우려고하지 말아야합니다. 저를 믿으십시오. 모든 훌륭한 개발자에서 본 한 가지가 있습니다. "그들은 배우는 것을 멈추지 않으며, 작업을 완료하는 데 필요한 코드를 배우지 않습니다." 내가 말한 사람들은 자신이 필요로하는 것 이상의 것을 배우려고 노력하지 않으며 훌륭한 도구는이 "필요"를 줄입니다.

그렇다고해서 IDE가 나쁘다는 의미는 아닙니다. 나는 그들을 사랑하고 가능한 한 많이 개발되어야한다고 생각합니다.

다른 팁

나는 그들이 멍청한 프로그래머를 허용한다고 생각하며, 그들은 Dumber 프로그래머를 만들지 않습니다.

농민들은 자동화 된 기계를 사용하여 작물을 심고 수확하고 유지하기 때문에 멍청한가?

좋은 작업 자동화는 단순히 프로그래머가 아닌 프로그래머를 더 효과적으로 만듭니다.

그렇다면 우리 모두가 아이들에게 수학 학습을 잊어라라고 말하지 않겠습니까? 그것이 우리가 계산기를 가지고있는 것입니까? 본질적으로 우리 아이들을 멍청하게 만들지 않겠습니까?

계산기는 특정 작업을 수행 할 수있는 도구입니다. 물론 복잡한 수학 및 다변량 통합을 할 수 있지만 수학을 배우지 않으면 주어진 시간에 해당 작업을 수행해야한다는 것을 어떻게 알 수 있습니까?

프로그래밍 및 SDK와 마찬가지로 사전 정의 된 코드를 사용하여 많은 종과 휘파람을 던질 수 있지만 문제를 해결하기 위해 무언가를 작성해야 할 때 세계의 모든 도구와 자동화가 도움이되지 않습니다. 거기 (AI는 아직 그렇게 진보되지 않았다;).

평균, 예. :)

그들은 만들지 않습니다 우리를 Dumber 프로그래머. 그들이하는 일은 더 많은 멍청한 프로그래머가 허용되는 것입니다 (평균적으로 우리는 멍청하다고 생각합니다.) 결국 작동하고 유용한 일을합니다. 어셈블리에 글을 쓸 때는 불가능하지만 VB에 글을 쓸 때입니다. (물론, 경험이 적은 사람이 불쌍한 아키텍처의 무게로 결국 붕괴되는 큰 앱을 작성할 때 최종 WTF 스타일의 재앙의 가능성이 더 높습니다.)

틀림없이, "바보"는 여기에서 사용하는 염증성 단어입니다. 누군가가 덜 알고 있기 때문에 그들을 멍청하게 만들지는 않기 때문에 경험이 적다는 것을 의미합니다. 그러나 요점은 이해됩니다.

제 생각에는 더 빠른 기계 프로그래머를 악화시킵니다 .... 요즘 대부분의 프로그래머는 최적의 코드를 작성하는 데 시간을 거의 소비하지 않습니다. 컴파일러는 잘못된 코드를 좋은 코드로 최적화 할 수 없습니다.

빠른 기계는 나쁜 프로그래머가 나쁜 코드로 도망 갈 수 없다는 것을 의미합니다. 예전에는 코드가 작업하고 정제되어야했기 때문에 실제로 허용 가능한 방식으로 작동하기에 충분히 빠르게 실행되었습니다.

토니

아니,

스마트 컴파일러는 스마트 프로그래머가 우수한 소프트웨어 설계와 같이 실제로 모이신 것들에 집중할 수 있도록합니다.

s/make/allow/

조금 덜 화려 함 : 그들은 도구입니다. 도구 아무것도 만들지 말고 장인을 더 좋거나 나쁘게 만들지 않습니다. 강력한 도구는 단지 레버 역할을하여 특정 장인의 역량 (또는 부족)을 증폭시킵니다.

일부 프로그래밍 도구는 소프트웨어 엔지니어링 직업이 아니라면 최소한 앱을 실행하는 데 진입 장벽을 낮추는 효과가 있습니다. 작업 (또는 "작업") 앱을 생산하는 데 필요한 생각의 양을 단축하면 두 가지 방법을 모두 줄입니다. 경쟁 전문가는 Scut 작업에서 해방되어 큰 일을 할 수 있지만 초보자는 때때로 결코 나쁜 코드를 얻지 못할 것입니다. "스마트"도구없이 작업했을 것입니다. 후자의 효과는 아마도 웹에 대한 기본, VB, PHP 및 최근의 MVC 신속 개발 프레임 워크의 명성을 형성하는 데 전자보다 더 큰 영향을 미쳤을 것입니다.

에 의해 더 똑똑합니다 네 말 뜻은 자동화. 반복적 인 일을하는 것은 누구도 더 똑똑하게 만들지 않기 때문에 대답은 아니요.

계산기 예제를 사용하여 확장하겠습니다. 펜과 종이로 제곱근을 계산하는 기술은 배울 수있는 과정 일뿐입니다. 그것은 당신을 만들지 않습니다 더 똑똑합니다 이 과정을 알기 위해 계산기가없는 상태에서 정사각형 루트를 계산할 수 있습니다.

이제, 당신이 발견 정사각형 뿌리를 계산하는 알고리즘 저것 당신을 똑똑하게 만듭니다.

프로그래밍 도구와 마찬가지로 메모리 관리를하는 언어는 당신을 어리석게 만들거나 스스로 메모리 관리를 할 수 없다고해서 더 똑똑해집니다.

덜 숙련 된 프로그래머가 현장에 들어가는 것이 더 쉬워집니다. 좋은 프로그래머 멍청이가되지 않습니다. 효율성을 높일 수있는 도구를 무시하면 멍청 할 것입니다.

컴퓨터는 장치를 강화하고 있습니다. 그래서 멍청한 것은 멍청이가되고 똑똑한 것은 더 똑똑해집니다.

당신이 그들을 허용하는 경우에만.

단단하고 까다로운 일 (예 : My Tandy 102 노트북)에 대해 배웠다면 더 똑똑한 도구로도 해당 모드를 계속 생각합니다.

확실히 당신의 일을하는 도구에 의존하는 것은 쉽습니다. 그리고 많은 것을 위해 감사합니다.

예를 들어, 테이블 톱과 드릴 프레스로 목공을하는 방법을 사람들에게 가르치지 않습니다. 핸드 톱과 오거 또는 작은 핸드 드릴로 시작합니다. 그렇게하면 전동 공구로 이동하면 어리석은 일을하지 않습니다 (TM).

도구에 의존하는 것은 훌륭하지만 도구없이 수행하는 방법을 아는 것도 중요합니다.

아니요, 그러나 더 나은 프로그램과 코드를 만듭니다.

기술이 고급 언어에서 다르다고 말하고, 추상화에 대해 더 많이 생각해야하며, 걱정할 API가 훨씬 많으며 사람들은 소프트웨어에서 더 높은 수준의 품질을 기대합니다. 위의 결과로 프로그래머는 다른 도전에 직면하고 있으며 도구는 이러한 도전 과제를 해결하고 있습니다.

그들은 반드시 Dumber 프로그래머를 만들 필요는 없지만 프로그래머를 게으르게 만들 수 있습니다. 나는 때때로 코드를 서두르고 컴파일러에 의존하여 처음부터 제대로하는 대신 내 실수를 찾는 데 도움이되는 것을 발견했습니다.

그건 그렇고 이것은 권장되는 일을하는 방법이 아닙니다. 보통 훨씬 더 오래 걸립니다.

좋아, 내가 소유 한 첫 두 컴퓨터 인 나는 나 자신을 만들었다. 그때는 똑똑했고, 나는 그것이 내 시간을 잘 활용 할 것이라고 확신하지 못한다. 나는 80 년대 초에 어셈블러와 기본의 혼합으로 프로그래밍했는데, 다시 똑똑하지 않고 지금은 똑똑하지 않습니다.

내가 여기에서 얻는 것은 맥락이 바뀌 었다는 것입니다. 컴퓨팅에서 우리는 knowldge의 깊이 깊이를 knowldge의 깊이를 교환해야했으며, 필요한 '멍청한'과 함께 필요한 '바보 같은'. 'Todays Computing'이 다루는 대규모 복잡성과 폭의 응용 프로그램을 지원하기 위해 훨씬 더 높은 수준의 추상화에서 일해야합니다. 한편으로, 우리는 도메인 애플리케이션 전문가가 매우 추상화 된 도구를 사용하여 매우 좋은 솔루션을 제공하는 것을 볼 수 있으며, 다른 한편으로는 컴퓨팅 기술 / 프로그래밍 전문가가 전체 컴퓨팅 산업을 발전시킬 수있는 능력을 가진 훌륭한 코드를 생산하는 것을 봅니다. 양쪽 바보라고 부르는 것은 염증성이며 아마도 토론에서 유일한 바보 같은 비트 일 것입니다.

이러한 맥락에서 바보는 단지 더 많은 청중이 현대 컴퓨터가 효과적인 도구를 사용하는 것입니다. 이것은 좋은 일이며, 하드 핵심 프로그래머는 그것에 의해 위협을 느끼지 않아야합니다. 그것은 모든 아기의 후에입니다.

평균적으로, 그들은 프로그래머를 멍청하게 만듭니다. 그러나 그것은 그들이 우리만큼 똑똑하지 않은 사람들에게 프로그래밍을 더 접근하기 쉽게 만들기 때문입니다.

:-)

현대 개발 환경의 편의를 무너 뜨리는 스마트 프로그래머는 아마도 그다지 똑똑하지는 않습니다.

덤프? 반드시 그런 것은 아닙니다. 이전에 말했듯이, 더 똑똑한 도구를 사용하면 개발자가 응용 프로그램 기능을 올바르게 만드는 것과 같이 더 중요한 것들에 집중할 수 있습니다. 내 자신의 경력과 관련된 일화 :

나는 숙련 된 수학자가 아닙니다. 나는 캘리 루스 프리 칼 쿨 루스에서 벗어났다 (OK, 부여, 그것은 숙제를 한 적이 없기 때문이었다). 물리학의 기본적인 공식 (예 : 마찰 계산)에 약간의 녹슬었다. 이것은 비교할 수없는 연습이기 때문입니다. 이것은 단순히 그것을 사용하지 않기 때문입니다.

예를 들어 미분을 취하십시오. 만약 당신이 나에게 함수의 파생물을 찾도록 요청했다면, 나는 가장 퍼지는 단서가 없기 때문에 TI-89에 도달 할 것입니다. 그러나 - 그리고 나는 이것이 더 중요하다고 유지합니다 - 나는 그것을 사용하는 방법을 알고 있습니다. 나는 그것이 유용한 위치, 왜 사용되어야하는지 등을 알고 있습니다. Dot 제품은 또 다른 예입니다. 3D 공간에서 표면의 스펙을 계산하는 데 사용하는 방법을 알고 있지만 절대 필요하지 않기 때문에 손으로 계산하는 방법을 모르겠습니다.

나는 그것을 멍청하다고 부르지 않을 것이다. 실제로는 어쩌면 아마도 유능한 것입니다.

아니요, 그것은 스테로이드 (및 기타 성능 향상 약물)와 비슷한 것입니다. 그들은 훌륭한 선수를 더 좋게 만들지 만 약물의 전체 약국을 먹었더라도 10 대 미만의 나 같은 사람을 100m로 만들 수는 없습니다. 따라서 God Ide, Langu

나는 아니요, 그러나 많은 사람들이 있습니다 (매우 현명한 사람들) 다른 생각

나는이 강의를 정말로 추천합니다. 그것은 매우 흥미로운 의견이며 아주 좋은 에세이입니다.

나는 그렇게 생각하지 않습니다. 더 정교한 도구는 우리의 마음이 더 흥미로운 문제에 집중합니다.

우리의 사람들을 위해 배운 것을 말한 작업 또는 배에 대해 말했다 복잡한,과거에 믿 그것은 단지 우리가 더 효율적입니다.우리가 자유로움에 대해 걱정할 다른/더 중요한 일이다.우리는 경향이 있습니하거나 잊는 방법"에 대해 열심히 다음에는"또는 불법 행운의 새로운 프로그래머를 오늘입니다.

우리의 사람들을 위해 시작하고 배우지 않으면,이러한 정보를 나는 그것이 단순히 우리가 다른 유형이다.멍청,단지 우리가 보기에는 다른 문제는 다른 빛입니다.

그것은,그러나,더 낮은 이 항목을 장애물,이렇게 만들고 프로그래밍을 더 액세스할 수 있습니다.지는 좋거나 나쁜 것입니다 논란의 여지가 있다.

예,하지만 중요하지 않습니다. 종이와 연필을 사용하여 최근에 제곱근을 추출합니까? 우리는 계산기를 사용하거나 좋아하는 프로그래밍 언어로 기능을 사용합니다. 우리 중 얼마나 많은 사람들이 계산기가 무엇을하는지 또는 함수를 알고 있습니까?

당신은 일이 어떻게 작동하는지, 더 나은 프로그래머 또는 다른 것, 당신이 원하는 것이 더 많을수록 더 많이 알아야합니다. 그러나 하루에 너무 많은 시간이 있습니다.

더 나은 도구가 우리를 더 좋게 만듭니다. 트레이드 오프는 우리가 프로세스에 대한 통제력이 거의 없다는 것입니다.

어떤 식 으로든

예를 들어, 나는 운영자 과부하를 쓰는 방법에 대해 알지 못하거나 신경 쓰지 않습니다. 내가 가지고있는 도구가 C ++ DLL 프로젝트를 자동으로 생성하고 [DllImport] 내 C# 프로젝트에서. ClickOnce가 거의 없기 때문에 내 프로젝트에 자동 업데이터를 쓸 필요가 없습니다. (그리고 나는 그것이 어떻게 작동하는지 실마리가 없다.

그렇습니다. C ++ 프로그래머가 알고있는 많은 저수준에 대한 단서가 없기 때문에 더 똑똑합니다. 그러나 여전히 나는 더 많은 일을 할 수 있기 때문에 나는 승리 측면에 있다고 생각합니다. 프레젠테이션, 품질 관리 및 고객이 실제로 원하는 기능에 더 많은 시간을 할애 할 수 있습니다. 또한 .NET 프레임 워크를 깊이 파고 있으면 약간의 학습이 필요하므로 약간의 트레이드 오프입니다.

나는 그들이 프로그래머를 반드시 멍청하게 만든다고 말하지는 않지만, 내가 말하는 것은 이것입니다. 오늘날의 시대와 시대에 개발을 시작하는 사람들에게는 우리를 위해 이루어지고있는 무대 뒤에서 얼마나 많은 일이 일어나고 있는지에 대한 감사가 없습니다. 요즘 플랫폼에 내장 된 라이브러리가 너무 많아서 오늘날 시작하는 사람들은이 모든 것이 어느 시점에서 어떻게 손으로 이루어져야하는지에 대한 개념이 없습니다.

그러나 나는 말할 것입니다.

복잡성으로부터 추상화 계층을 가질 수 있도록 더 똑똑한 도구가 필요하다고 생각합니다. 그러나 나는 우리가 변화 할 수 있어야한다고 생각합니다. 이러한 추상화 계층에 액세스 할 수 있습니다. 프로그래머는 더 생산적이지만 많은 기본 개념의 개념을 쉽게 잃을 것이라고 생각합니다. 그것은 트레이드 오프입니다 ... 좋은 프로그래머는 프로그래밍의 기본 사항을 계속 이해하는 것입니다. 다른 사람들은 "Copy-and-Paste"와 LEGO 플레이어가 될 것입니다.

반대로, 더 똑똑한 컴파일러는 컴퓨터와 싸우는 방식을 의미하고 무언가를하려고하는 방법에 대해 더 많은 생각을한다는 것을 의미합니다.

어셈블러로 어려움을 겪고 있다면 익명의 방법을 거의 신경 쓰지 않을 것입니다.

나는 아니오라고 말하고 싶다.

더 똑똑한 프로그래밍 시스템 (코드를 자동으로 수정하는 도구와 같은 것이 아니라 더 높은 수준의 추상화라고 생각합니다.) IMNSHO는 실제로 사용하기가 더 어렵습니다. 내가 생각해 낸 비유는 그들이 긴 레버 역할을한다는 것입니다. 당신은 밀어냅니다 진짜 짧은 끝에는 단단 해져서 약간의 양을 옮기고 큰 변화가 발생합니다.

무엇을 해야하는지 알아 내기가 더 어렵지만, 마침내 할 때 엉망이되는 것도 훨씬 어렵습니다.

더 똑똑한 언어, 컴파일러 및 프레임 워크를 통해 프로그래밍을 가능하게합니다. 우리가 여전히 어셈블리 언어를 사용하는 것으로 제한되어 있다면 프로그래밍 상태를 상상할 수 있습니까? 도대체, 그것을 긁으십시오. C 또는 C ++로 제한 된 경우 프로그래밍 상태를 상상할 수 있습니까?

컴파일러, 언어 및 프레임 워크의 개선으로 인해 교육적 배경이 건전하거나 의미있는 이해가 좋은 것으로 가정하면 프로그래머가 더 효과적입니다.

나는 이것이 오래된 실이지만 여전히 여기에 내 의견을 던지고 싶다 ...

그들은 우리를 멍청하게 만들고, 여기에서 반응하는 대부분의 사람들은 이미 괜찮은 방식으로 프로그래밍하는 방법을 알고 있습니다. 그리고 왜? 프레임 워크가 거의 사용되지 않은 시대에서 왔기 때문입니다.

교육 시스템에서 점점 더 많은 프레임 워크가 수업에 사용되며, 프레임 워크가 사용되지 않는 클래스에서는 프로그래밍을 시작하는 것이 고무적이지 않습니다. 이 모든 코드를 배우십시오. 머리 뒤쪽에는 모든 것을 수행하는 도구가 있다는 것을 알고 있습니다. 현장/워크 플로어에서 프레임 워크를 사용하여 빠르게 진행해야합니다. 그래서 왜이 모든 시간에 코드를 배우는 데 소비합니다.

So : 단기적으로, 이미 언어를 아는 사람들은 모두 ...

장기적으로 .... 저 LVLD 프로그래머가 더 좋아지고 LVL에서 좋은 프로그래머가 악화되는 것을 보게 될 것입니다.

내 말을 명심해라!

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