더 나은 프로그래머가되는 방법? 나는 7 개의 제안을 요약했다

더 나은 프로그래머가되는 방법?  나는 7 개의 제안을 요약했다

 

몇몇 사람들이 React 컨퍼런스에서 더 나은 프로그래머가되기위한 질문을했습니다. 사람들은 저를 매우 경험 많은 프로그래머라고 생각하므로 제 조언을 들어 볼 가치가 있습니다. 수년에 걸쳐 프로그래밍에서 내 "사고 방식"을 공유 할 수 있다고 생각합니다.

간단히 소개하겠습니다. 제 이름은 James Long이고 32 세이며 10 년 이상의 풍부한 업무 경험을 가지고 있습니다. 하지만 최근에야 일에 대해 점점 더 자신감을 갖게되었습니다. 지금도 계속해서 나 자신을 의심합니다. 핵심은이 느낌이 사라지지 않을 것이므로이를 무시하고 계속해서 기술 지식을 탐구하며 경험을 축적하는 것입니다.

이는 귀하의 기술을 향상시키기위한 몇 가지 제안 일뿐임을 다시 한 번 상기시켜 드리겠습니다. 궁극적으로 자신에게 적합한 것이 무엇인지 파악해야합니다.

영감을 줄 수 있지만 숭배하지는 않는 사람을 찾습니다.

지난 수년 동안 많은 사람들을 존경하고 그들을 통해 신기술에 주목했습니다. 나는 그들이 옳다고 믿고 그들이 한 일을 공부하고 많은 것을 배웠습니다.

이 사람들은 매우 효율적이고 재능이 있으며 영감을주는 경향이 있습니다. 당신은 그들을 찾기 위해 가능한 모든 것을해야하고, 그들이 당신에게 영감을주고 인도하도록해야합니다.

그러나 그들을 숭배하지 마십시오. 트위터에 올라온 글만 보면 손이 닿지 않는 곳에서 찾을 수 있습니다. 그러나 실제 작업에 접근하면 그들과 다르지 않다는 것을 알게 될 것입니다. 그것은 단지 모든 곳에서 시도하고 있으며 우리 모두는 단지 실험하고 있습니다.

마지막으로 그들을 맹목적으로 믿지 마십시오. 의견이 다른 경우 의견 충돌 과정에서 참여하고 배우도록 요청하십시오.

가장 유익한 대화 중 일부는 이런 식으로 이루어졌습니다. 한때 내 Emacs 구성은 엉망이었습니다. 이유를 모르겠습니다. OCaml 자동 완성 기능을 더 이상 사용할 수 없습니다 (한 달 이상 중단되었습니다). 자동화 할 것이없고 때로는 셸 기록에서 필요한 명령을 찾아야합니다. 문제를 해결하기 위해 나는 가장 추악한 코드를 작성하기 시작했습니다. 나는 물건을 전역 객체로 썼고 끝까지 내가 무엇을했는지 이해하지 못했습니다.

가장 경험이 많은 프로그래머들은이를 파헤 치고 탐구 해 왔습니다. 가장 중요한 것은 작업을 완료하고 목표를 달성 할 수 있다는 것입니다.

당신의 일을 얕보지 마십시오

프로그래머 Xiaobai는 종종 초보자이기 때문에 자신의 작업이 가치가 없다고 생각합니다. 또는 숙련 된 프로그래머 일 수도 있지만 새로운 분야에서 일하면 불편 함을 느끼게됩니다. 하지만 내 생각에 최고의 아이디어는 종종 기존 기술의 개선을 볼 수있는 새로운 프로그래머에게서 나왔지만 확고한 사고를 가진 사람들은 그렇지 않습니다.

어쨌든 당신의 작업은 가치가 있습니다. 최악의 경우 아이디어가 성공하지 못하더라도 커뮤니티는이 방법이 작동하지 않는 이유를 알 수 있습니다.

(커뮤니티에 대한 힌트 : 우리가하는 방법에 따라 다르며 신규 이민자들이 쉽게 참여할 수 있도록합니다.)

뒤쳐지는 것을 두려워해서 일을 멈추지 마세요

매일 새로운 기술이 나옵니다. 하룻밤 사이에 기술을 만지지 않으면 세상을 따라갈 수 없다고 느낄 수 있습니다. 이것은 사실이 아닙니다. 사실, 작업을 자주 포기하면 새로운 아이디어가 생기기 때문에 더 잘할 수 있습니다.

일하지 않을 때는 항상 새로운 아이디어가 생깁니다.

사실, 매일 인터넷에 게시되는 대부분의 콘텐츠는 "새 병에 담긴 오래된 포도주"이며 진정으로 혁신적인 기술은 몇 년에 한 번 씩만 등장합니다. 이번 호에서는 해먹 기반 개발 동영상을 시청할 수 있습니다.

보풀 무시

객관적으로 말해서, 당신이 더 빨리 발전 할 수있는 주요 방법 중 하나는 당신의 기술을 향상시키지 않는 "보풀"을 무시하는 것입니다. 즉, "시간을 현명하게 사용하십시오." 하루에 제한된 시간이 있으며 더 깊은 것을 탐구하는 데 시간을 할애해야합니다. 시간이 지남에 따라 큰 발전을 이루게 될 것입니다.

그래서 "보풀"은 무엇입니까? 자신의 상황에 따라 다릅니다. 그러나 내가 "보풀"이라고 생각하는 몇 가지 예를들 수 있습니다. 언어 구문, 라이브러리 API 및 구성 빌드 도구입니다. 예를 들어, 새로운 ES7 JS 구문을 배우는 것이 당신을 더 나은 프로그래머로 만드는 것은 아닙니다. 그것은 컴파일러가 어떻게 작동하는지 배우는 것과 같습니다. 마찬가지로 동일한 아이디어를 구현하지만 새 API를 사용하는 새 라이브러리를 채택하는 것은별로 의미가 없습니다. 물론 이러한 것들은 중요하지만 더 깊은 개념을 배우는 데 더 많은 시간을 할애하는 것이 좋습니다. 이러한 개념은 평생 동안 많은 이점을 얻을 수 있습니다.

질문이 하나 있습니다. 코드를 아름답게 보이게 만드는 데 많은 시간을 할애하십니까? 그렇다면 그런 것에 너무 많은 관심을 기울이지 않는 것이 좋습니다. 어쨌든 코드는 시간이 지남에 따라 많이 변경됩니다.

추상화 계층을 신중하게 고려하는 것과 같이 해결하려는 핵심 문제에 집중하는 것이 가장 좋습니다. 이러한 모든 작업을 완료 한 후 잠시 시간을내어 코드를 개선 할 수 있습니다. 이것은 DRY 원칙에도 적용됩니다 (자신을 반복하지 말고 반복 된 코드를 작성하지 마십시오). 그러나 너무 걱정하지 말고 마음대로 복사하여 붙여 넣으십시오.

과거 연구 결과에 대한 심층 연구

새로운 아이디어가 있으면 매우 흥분되고 어쩔 수없이 앉아서 즉시 행동하고 싶을 것입니다. 그러나 이렇게해서는 안되며, 전임자들이 어떻게 해결했는지 이해하기 위해 먼저 대략적인 조사를해야합니다. 비슷한 상황이 발생하면 며칠 동안 먼저 연구하면 결국 문제 해결 방식이 완전히 바뀔 것입니다.

학술 논문을 읽는 법을 배우는 것은 매우 귀중한 기술입니다. 표시 및 운영 의미론에 대해 아무것도 모르기 때문에 많은 논문을 읽을 수 없습니다. 그러나 많은 논문은 문제를 설명하기 위해 수학 공식보다는 코드를 사용하므로 읽기가 너무 어렵지 않습니다. 지난 30 년 동안 논문을 통해 많은 양의 지식이 발표되었습니다. 이 정보를 잘 얻으면 곧 사고 리더가 될 것입니다.

예뻐지는 좋은 예입니다. 나는 내가 원하는 것을 알고 있지만 그것을 달성하는 방법을 모릅니다. 몇 가지 조사를 한 후이 논문을 찾았고 며칠 후에 어떻게해야하는지 알게 될 것입니다. 일주일 만에 주요 작업을 완료했습니다. 다른 사람의 연구 결과를 무시하면 시간이 더 오래 걸립니다.

논문을 찾고 있다면 GitHub의 Papers We Love를 추천합니다.

큰 프로젝트에 참여하려면

경험은 무엇보다 소중합니다. 모든 사람이 시도 할 기회가있는 것은 아니지만 시간이 있으면 큰 프로젝트를 시도 할 수 있습니다. 끝낼 필요조차 없습니다. 처음 몇 주 동안 많은 것을 배울 수있는 컴파일러와 같은 것을 작성하십시오.

솔직히 말해서 복잡한 문제를 어떻게 해결해야할지 모르겠다는 느낌이 싫다. 이것은 고통 스럽습니다. 해결책에 접근하기 전에 많은 연구와 연구를해야합니다. 그런 고통스러운 경험을 한 후에는 항상 승진하고 더 나은 프로그래머가 될 수 있습니다.

새로운 언어를 배우는 것으로 시작하십시오. 이것은 현재의 습관을 없애고 새로운 관점에서 문제를 볼 수있는 가장 효과적인 방법입니다.

저에게있어서 제가 젊은 프로그래머 였을 때 가장 좋은 일은 Scheme을 배우는 것이 었습니다. 이것은 매우 간단한 언어이며 모든 것을 기능적으로 수행하고 코드 작업의 기본 원칙을 실제로 이해하도록 강요합니다. 저는 Scheme에서 몇 년을 보냈고 지금도 여전히 혜택을 받고 있습니다. 그리고 내 코드에 대한 견해가 근본적으로 바뀌 었습니다.

해야 할 여섯 가지

프로그래머로서의 경력에 ​​큰 영향을 미쳤던 몇 가지를 권장합니다. 더욱이 그들 중 많은 것들이 여전히 나에게 미묘한 영향을 미치고 새로운 아이디어를 분석하는 데 도움이됩니다. 좋은 프로그래머가되기 위해 똑같은 일을 할 필요는 없습니다. 자신을 향상시키기 위해 다른 많은 것들을 배울 수 있습니다.

1. C 언어를 배우십시오. 아직 배우지 않았다면 몇 가지 기본 사항 만 배우십시오. 왜 모든 사람들이 그것에 대해 불평하는지 생각해보십시오. 이것은 매우 가치가 있습니다.

2. 컴파일러를 작성하십시오. 이것은 매우 불편하게 만들 수 있습니다. 초소형 컴파일러 프로젝트를 살펴볼 수 있습니다.

3. 매크로 배우기-Scheme, Lisp 또는 Clojure (스크립트)를 참조하십시오. 매크로는 실제로 코드보기를 변경합니다.

4. SICP-SICP는 오래된 책입니다. 지금도 여전히 매우 가치있는 책이라고 생각합니다 (일부 사람들은이 견해에 동의하지 않을 수 있습니다). 프로그래밍 지식이 거의없는 한 메타 순환 평가자 및 컴파일러를 얻을 수 있도록 안내 할 수 있습니다. 내가 매우 좋아하고 컴파일러에 대한 심층 연구를 수행 한 또 다른 책은 Lisp In Small Pieces입니다. Python에 관심이 있으시면 선생님의 WeChat : abb436574를 추가하고 학습 자료와 비디오 코스를 무료로받을 수 있습니다 ~

5. 연속 이해 : 연속은 저수준 제어 흐름 메커니즘입니다. Scheme은 그것을 구현하는 유일한 언어입니다. 프로덕션 환경에서는 절대 사용하지 않지만 제어 흐름에 대한 인식을 변경합니다. 나는 그들을 설명하기 위해 블로그 포스트를 썼다.

6. 가능하면 새로운 언어를 사용하십시오. 무엇을하든 다른 언어를 실제로 탐색해야합니다. Clojure, Rust, Elm, OCaml / Reason, Go 또는 Scheme 중 하나를 권장합니다. 그들은 모두 새로운 사고 방식을 배우도록 유도 할 수있는 고유 한 특성을 가지고 있습니다.

추천

출처blog.csdn.net/weixin_45820912/article/details/108470738