>  기사  >  백엔드 개발  >  프로그래밍 언어를 빠르게 마스터하는 방법

프로그래밍 언어를 빠르게 마스터하는 방법

WBOY
WBOY원래의
2016-07-25 09:04:38875검색
PHP를 배우고 싶은데 추천할만한 PHP 입문서가 있나요?
Android를 배우고 싶은데, Java를 시작하려면 어느 정도 알아야 하나요?
아직 c/c를 시작하지도 않았는데, 파이썬을 직접 배울 수 있나요?
초보자들이 자주 하는 질문들입니다. 우리 자신의 현재 상황과 달성하고자 하는 목표 사이에는 항상 '선행조건'이라는 큰 강이 존재하는데, 이 강을 헤엄쳐 건너는 데는 많은 에너지를 쏟는 것 외에는 다른 방법이 없는 것 같습니다. 안타깝게도 대부분의 사람들은 목표물에 가까이 다가가기도 전에 강한 조류에 휩쓸려갔습니다. 그러나 어떤 기술이라도 배우는 것이 그다지 힘들지 않은 듯, 지체 없이 반대편에 도달하며 알라딘의 마법의 양탄자를 타고 있는 듯한 사람들이 여전히 몇몇 있다. 무슨 일이야?
새로운 언어나 새로운 기술을 배우는 것은 능력보다는 방법에 가깝습니다. 어떤 사람, 인생의 어느 단계에서 가장 효율적으로 학습하는지 묻고 싶습니다. 무엇이 가장 효과가 좋나요? 대답은 분명합니다. 유아기입니다. 두 살도 안 된 내 딸은 아마도 수십 개의 명사, 수십 개의 동사, 3~5개의 형용사와 전치사만 알지만 매일 수백 단어를 말합니다. 중학교 때 "안녕하세요 여러분, 만나서 반가워요"라고 완전히 말할 수 있으려면 몇 년 동안 영어를 배워야 하는지 생각해 보세요. 고등학교? 아니면 대학? 3,000개의 단어가 있으면 얼마나 잘 의사소통할 수 있는지 생각해 보세요.
주의깊게 관찰해보면 아기의 학습 방법이 매우 실용적이라는 것을 알 수 있습니다. 모방, 시행착오, 연습, 소위 "권위 있는" 문법과 어휘에 관계없이 모든 것은 적용을 기반으로 합니다. 제 딸을 예로 들어보겠습니다. 그녀의 표현은 주로 구문과 문장을 기반으로 합니다.
그녀가 말하는 대부분의 문장에서 그녀는 각 단어의 구체적인 의미를 알지 못하지만, 단어의 모호함은 알고 있습니다. 이런 식으로 따라하고, 시도하고, 실수도 반복하며 피드백을 받으며, 자신이 이해할 수 있는 '지식'을 끊임없이 쌓아간다. 직접 사용합니다.
이것이 실용주의자의 학습 방식입니다. 장애물을 우회하고, 주제로 곧장 나아가고, 즉시 배워야 할 것에 집중하는 것입니다. 몇 년 전, 저는 뭔가를 배우기 전에는 입문서부터 고급서, 전문가까지 거의 모든 책을 인터넷에서 검색하곤 했습니다. 다양한 리뷰를 많이 읽은 후 만족해서 그 책을 샀습니다. -'고품질 제품'이라고 부르며 공부하기 전에 꼭 필요한 의식인 것처럼 책상 앞에 놓아두세요. 그러나 이러한 접근 방식은 Douban과 Amazon을 성공으로 이끌었습니다. 내가 첫 번째 책의 10장(X<=5)을 자랑스럽게 읽은 후 축적된 책은 종종 보류되었습니다. 나중에 나는 소위 "학습에는 체계적이고 탄탄한 기초 기술이 필요하다"는 말에 속았다는 것을 알게 되었습니다. 나는 계속해서 "기초 지식"의 수렁에 빠져 공부를 하면 할수록 더 열심히 일했고, 점점 더 깊어졌습니다. 나는 투쟁할 수 밖에 없었다. 이런 투쟁의 결과로 80%의 경우는 포기하게 됩니다.
사실 이런 '기초 지식'은 따로 두고 필요한 만큼만 배울 수 있어요. 예를 들어 Rails를 배우고 싶다면 Rails부터 시작하고, Ruby와 관련된 문법적 장애물이 있으면 다시 돌아가서 Ruby 문서의 관련 내용을 살펴보겠습니다. Ruby 상승으로 시작하는 대신 즉시 Rails 자체로 돌아갑니다. 아시다시피, 레일에 사용되는 루비 기능은 전체 루비 언어 및 클래스 라이브러리 기능의 20% 미만을 차지할 수도 있습니다! 루비를 배우기 시작했을 때, 나는 방향을 잘못 잡았습니다.
소프트웨어 개발은 ​​기술이며, 그 학습은 거의 사용되지 않는 모든 종류의 지식의 축적이 아닙니다. 모든 이론적 지식이 준비된 후에는 학습을 시작할 수 없습니다. Scala의 저자는 Java의 비효율성을 비판하면서 Java가 프로그램 작성을 의식으로 바꾸므로 전혀 재미가 없다고 말한 적이 있습니다. 그렇다면 초보부터 전문가까지 온갖 종류의 책을 책상 앞에 쌓아두면 배움이 성대하고 엄숙한 의식으로 변하는 걸까요? 중요한 것은 지식을 얼마나 축적했는지가 아니라, 배운 것을 어떻게 적용하는지입니다.
단순히 집중하고 요점만 파악하는 것만으로는 충분하지 않습니다. 많이 연습하고 배우면서 피드백을 받아야 합니다. 아기들은 3,000단어를 쌓은 후에는 말을 하지 않았고, 몸과 두뇌가 준비된 첫날에 말을 했고, 많은 실수를 저질렀음에도 불구하고 점점 더 용기를 내어 전쟁에 실패했습니다. 마찬가지로 ipython을 사용하지 않고 파이썬을 배우고 REPL 환경에서 다양한 활용법을 시도해 본다면, 실행 가능한 웹 프로젝트를 구축하지 않고 django를 배우게 된다면 학습 효율은 당연히 높지 않을 것이고 그 효과도 그만큼 클 것입니다. -그래서. 체육관에서는 강사의 동작을 직접 해보고 다른 사람의 교정 제안을 받아들이는 대신 강사의 동작을 백 번 관찰하더라도 여전히 올바른 동작을 마스터할 수는 없습니다. 나는 사람들이 책에 있는 예제를 편집기에 하나씩 입력하고 모두 올바르게 실행된 다음 이 기술을 "통달"했다고 만족하는 것을 보았습니다. 모두가 알고 있듯이 이런 '연습'은 가치 있는 실천이 아닙니다. 아기가 걷고, 따라하고, 걷고, 넘어지고, 일어나고, 또 한 걸음 내딛는 시행착오가 필요합니다. 실수하는 것도 학습의 일부입니다. 튜토리얼을 읽고 여기에 설명된 내용을 숙지한 후 애플리케이션이나 사용 시나리오를 직접 구상하고 처음부터 작성할 수 있습니다. 많은 질문을 발견하고 튜토리얼에 대한 이해가 깊어질 것입니다. 질문에 스스로 답할 수 없다면 커뮤니티에 도움을 요청할 수 있습니다. 대부분의 개발 관련 질문은 stackoverflow에서 해결될 수 있습니다. 끊임없이 연습하고 피드백을 받으면 개발 능력이 빠르게 향상됩니다. 많은 비체계적인 지식과 능력(심지어 통찰력)은 지속적인 연습과 시행착오를 통해 무의식적으로 학습됩니다. 이러한 것들은 너무 조용히 나타나서 당신을 제외한 다른 사람들은 그것을 일종의 재능의 일부로 여깁니다.
그렇다면 언제 체계적으로 공부해야 할까요? 실제 전투에 필요한 기술과 경험이 있고, 배운 내용을 거시적 수준에서 승화시켜야 할 때, 또는 실제 전투 능력에 병목 현상이 발생할 때. 레일을 잘 사용하기 위해 좋은 루비 엔지니어가 될 필요는 없지만, 좋은 레일 엔지니어가 되려면 루비를 잘 마스터해야 한다는 말이 있습니다. 안타깝게도 많은 초보자들이 가지고 있는 문제는 기술을 빨리 시작하고 싶지만, 체계적인 학습 방법을 사용하고 시작하기도 전에 힘든 실습의 길에 빠지게 된다는 것입니다.
Brothers PHP 원본 비디오 튜토리얼 CD를 무료로 받으세요. 자세한 내용은 공식 웹사이트 고객 서비스에 문의하세요.
http://www.lampbrother.net



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.