>  기사  >  백엔드 개발  >  컴퓨터 전공자가 프로그래밍을 잘 배울 수 있는 방법에 대해

컴퓨터 전공자가 프로그래밍을 잘 배울 수 있는 방법에 대해

WBOY
WBOY원래의
2016-07-25 08:49:58833검색
이 글은 저학년을 위해 쓴 글입니다. 이미 직장을 다니고 있는 분들은 제 말도 안되는 글을 읽으시느라 시간을 낭비하실 필요가 없습니다.
요즘 사람들은 방향을 어떻게 정하느냐고 늘 물어보는데, 어떤 사람은 휴대폰으로 작업하고, 어떤 사람은 웹페이지 작업을 하고, 어떤 사람은 게임 작업을 하는 모습을 본다고 하더군요. 그는 너무 많은 것을 알고 있었고 무엇을 해야할지 몰랐습니다. 나는 많은 학생과 실무자가 있는 일부 소프트웨어 개발 그룹에 어울리고 있습니다. 기초가 탄탄하지 않을 때 '다양한 프로젝트를 하는' 사람들에 대해 두 가지 의견이 있습니다. 하나는 성급하다는 것이고, 다른 하나는 시야를 넓히는 것이 좋다는 것입니다.
대학은 4년만이에요. 학교에서는 일반적으로 첫 2년 동안 수학과 영어를 공부하고, 1학년에는 언어를, 2학년에는 데이터 구조를 공부합니다. 3학년에는 좀 더 구체적이고 복잡한 과정이 많고, 그다음에는 인턴십을 찾아야 하는데, 4학년에는 실제로 수업도 없고, 건강검진도 없습니다. 임대 학교 기숙사에 사는 것과 같습니다.
그래서 이 짧은 3년 동안 컴퓨터 과학의 여러 분야에서 자신이 좋아하는 것을 찾고, 공부하고, 결국 무언가를 성취하는 것은 꽤 어렵습니다. 그러므로 많은 사람들은 주변에 있는 두세 사람이 갑자기 매우 만족스러운 일을 하는 것을 종종 봅니다. 나는 이런 사람들을 몇 명 만났습니다. 내 반 친구 중 한 명은 고등학교 때 코드 괴짜로 불렸다고 말했습니다. 그는 에뮬용 코드를 작성한 후 자신의 인스턴트 메시징 도구를 만들어 판매했습니다. 대학에 입학한 이후로 이 글을 계속 써오다 드디어 인턴십을 위해 텐센트에 가게 되었습니다. 며칠 전 어떤 분을 만났는데, 초등학교 때부터 플래시로 액션 스크립트를 다루다가 펄로 바꾸었다고 하더군요. 1학년 때까지 2,000줄이 넘는 프로그램을 작성해 본 적이 없다고 하더군요. 나는 그것을 확인하러 가지 않았고 단지 그것이 믿을 수 없다고 생각했습니다.
그래서 저는 전통적인 방법을 따라 먼저 언어를 마스터하고("C Primer") 데이터 구조를 배우고("알고리즘 입문") 라이브러리를 배우는 것("STL 소스 코드")이라고 생각했습니다. 분석" "간단한 언어로 MFC 소개"), 그런 다음 몇 가지 디자인 패턴("디자인 패턴")을 수행하고 마지막으로 특정 관리 시스템을 작성합니다(웃음). 이것도 약간 지루합니다. 가시적이고 실질적인 프로그램을 만들기 전에 실제로 많은 것을 배워야 하는 것은 실제로 사람들의 의지력에 대한 시험입니다. 거의 모든 사람들이 컨트롤을 끌어서 시작합니다. 흑백 화면에서 알고리즘 작업을 시작한 사람들은 NOI나 ACM 소속이었고, 몇 가지 알고리즘 문제를 해결하는 데 지치지 않았습니다. 그러나 결국 아무것도 성취하는 사람은 거의 없습니다. 학교에서 ACM 사람들을 정말 많이 만났는데, 결국 그 중 Google로 간 사람은 단 한 명뿐이었습니다. 아직은 리스크가 좀 높은 것 같아요.
하지만 그 반대도 문제다. 처음부터 인터페이스부터 시작하면 사람들은 쉽게 성급해질 것입니다. 그 결과 많은 사람들이 다채로운 세계를 추구하게 되었습니다(그룹 내 사람들의 통계에 따르면). 특히 ListView 앞에 나무를 그리는 방법에 대해 고민하고 있습니다. 그러한 사람들 중에서 추구하는 사람들 중 일부는 결국 Windows SDK를 따르고, 그 다음 DDK로 가서 마침내 드라이버를 작성하고 진흙 구덩이에 들어서서 결코 스스로 벗어날 수 없을 것입니다. 사람도 소수다. 소수의 사람들이 "오늘 나는 워드에서 이런 저런 파일을 열지 못하게 하는 방법을 깨달았다"라고 나머지 대다수의 사람들과 비슷한 말을 할 때마다 그들의 눈은 밝게 빛나더니 무릎을 꿇고 빌기 시작합니다. 어떤 API가 사용되었는지 미친듯이 물었고, 최종적으로 코드를 얻었을 때 주의 깊게 준비된 폴더에 넣어 영원히 봉인되어 다시는 볼 수 없게 되었습니다. 물론 항상 책을 다운로드하는 것과 같은 다른 버전도 있지만 여전히 드물고 압축을 풀지 않습니다. 한때 자신이 가지고 있는 전자책이 몇 기가바이트인지 자랑하는 사람이 있었다. 스크린샷을 올려달라고 요청했지만 결과는 모두 희박했습니다. 그는 그것을 전혀 보지 않았고 스스로 인정했습니다.
그래서 두 길은 어떻게 보아도 매우 위험합니다. 4학년에 성공할 수 있는 사람은 많지 않습니다. 그것에 빠지는 것은 너무 쉽습니다. 이것은 무엇을 의미합니까? 사람들은 항상 자신이 잘하는 일에만 관심이 있습니다. 아직 해보지 않은 일에 관심을 갖는 것은 호기심이며 진지하게 받아들여야 합니다. 사람들이 마침내 어떤 일을 잘하게 되면 계속해서 연구하게 될 것입니다. 이것은 물론 좋은 일입니다. 그러나 나무만 보고 숲을 놓치고 프로그래밍이 세상 프로그래밍의 전부라고 생각한다면 분명 고통을 겪게 될 것입니다.
그러므로 우선 우리는 시야를 넓혀 세상에 할 수 있는 일이 너무 많다는 것을 깨달아야 합니다. 프로그래밍이 무엇인지 거의 알게 되면 이것 저것 가지고 놀아볼 필요가 있습니다. 그렇지 않으면 옆에 있는 동급생이 Java를 사용하여 1 1 = 2라고 말할 수 있는 무언가를 실행하는 것을 보게 될 것입니다. 그 사람은 PHP MYSQL을 사용하여 메시지 게시판을 만들었고 C에 직면했다고 말하면서 침을 흘리게 될 것입니다. 너무 오랫동안 흑백 화면에서 작업하다 보니 그 작은 장치도 만들 수가 없어 자존심이 쉽게 무너지네요.
그러므로 플레이를 마친 후 시간에 맞춰 멈추고 싶다면 구체적으로 한 가지만 하세요. 왜냐하면 이때 나는 내가 보는 것이 거의 그런 것이라는 것을 이미 대략 알고 있기 때문에 내가 원하면 스스로 할 수 있고 다른 사람들이 멋진 프로그램을 작성하는 것을 보는 것이 나에게 너무 많은 부담을 주지 않을 것입니다. 한 가지를 전문으로 한다는 것은 방향을 정하고, 책을 찾고, 사람을 찾고, 코드를 읽고, 프로그램을 작성하는 것을 의미합니다. 예를 들어 게임을 만들기 위해 그래픽 작업을 할 수도 있고, 스크립트 엔진과 컴파일러 작업도 할 수 있으며, 선생님을 따라 데이터 마이닝, 임베디드 작업 등을 할 수도 있습니다. 한 분야에서 심층 연구의 가장 큰 활용은 복잡한 문제에 노출된다는 것입니다.
물론 연구가 심도있게 진행되면 프로그램도 점점 커지게 되고, 이때 다양한 문제도 많이 나타나게 됩니다. 예를 들어 효율성이 너무 낮고, 프로그램에 오류가 나면 완전히 뒤집어엎고 다시 시작해야 합니다.(이건 상당히 슬픈 일입니다.) 함수, 클래스 등을 구성하기가 어렵습니다. 또는 이름이 부족합니다. 이때 데이터 구조와 알고리즘은 물론 디자인 패턴 등 다양한 이론적 지식이 필요하다. 물론, "이 세상에 만병통치약은 없다"고 말할 수 있는 것은 몇 가지 밖에 없기 때문에 일반적인 것은 많지 않을 것입니다. 나머지는 여전히 다양한 분야의 사람들의 축적이나 자신의 일에 달려 있습니다. 자신의 연구 재능이 마침내 해결되었습니다.
위에서 언급한 다양한 작업은 더 이론적인 것입니다. 실제로 학문 분야만으로는 충분하지 않습니다. 결국 프로그램은 IO라고도 하는 입력 및 출력에 의존하기 때문입니다. 이게 뭔가요? 즉, 원하는 데이터가 어디에 저장되어 있는지 알고 있으므로 이를 가져와야 합니다. 스스로 무언가를 알아냈고 그것을 어디에 두어야 할지 알고, 그것을 넣을 수 있어야 합니다. 여기에는 키보드와 화면의 일반적인 입력 및 출력, 네트워크에서 사용되는 소켓 및 웹 서비스, 표시되는 창 및 컨트롤, 하드 디스크 읽기 및 쓰기 등과 같은 많은 것들이 포함되어 있습니다. 특정 플랫폼에서 이러한 전용 API 중 하나 이상에 대해 잘 알고 있어야 합니다. 그렇지 않고 이 알고리즘, 저 알고리즘만 배워서 무슨 소용이 있겠습니까? 예를 들어, 사진을 압축하고 싶은데 그 지식을 구체적으로 배웠는데 하드 디스크의 bmp를 읽을 수 없다면 그건 무의미하지 않습니까? ?
그래서 너무 많이 말씀드렸는데, 처음에는 세상을 보고, 하나를 골라 천천히 공부하고, 프로그램이 커지면 자연스럽게 공부하게 되실 거에요. 많은 고급 문제에 직면합니다. 이때 가서 해결하면 사실상 학사학위에서 요구하는 수준에 거의 도달한 것입니다.
정말 많은 사람들이 마음을 바꾸고 마침내 한 분야의 문제를 연구하기 위해 열심히 일하기 시작했습니다. 그 분야는 항상 복잡해서 이때 많은 프로그래밍 문제에 부딪치게 됩니다. 예를 들어, 알고리즘이 표현하기에는 너무 복잡하고, 파일을 읽는 동안 멈추기도 하고, 실수로 선을 넘어가서 이상한 문제가 많이 발생하는 경우도 있습니다(C). 에. 이런 종류의 디버깅 문제의 경우 일반적으로 자신에게만 의존하여 많은 실수를 저지르고 마침내 성공할 수 있습니다. 물론 선배들도 자신의 경험을 요약해 『프로그램이 실패하는 이유』라는 책을 썼다. 읽고 싶다면 직접 다운로드할 수도 있다. 둘째, 특정 라이브러리에 대한 책과 문서가 항상 많기 때문에 할 일이 없으면 더 읽어야 합니다. 예를 들어 Visual Studio를 사용하는 모든 사람은 MSDN을 설치해야 합니다.
이게 제가 말한 거의 전부입니다. 하지만 나 자신도 이 기사가 '보편적인 것'이기 때문에 조금 약하다고 생각합니다. 구체적으로 무엇을 해야 할지 잘 생각해야 합니다. 대학 1, 2학년을 지내면서도 아직도 미로 속에 빠져 있는 후배들에게 이 글을 바치고 싶습니다. 혹시 특별히 어려운 질병이 있으신 분은 개인적으로 연락주시기 바랍니다.
간단히 말하면, 항상 공부할 수 있는 질문을 가지고 있어야 합니다.
LAMP Brothers의 원본 PHP 튜토리얼 CD/"Essential PHP in Details"를 무료로 받아보세요. 자세한 내용은 공식 웹사이트 고객 서비스에 문의하세요: http://www.lampbrother.net
PHPCMS2차 개발 http://yun.itxdl.cn/online/phpcms/index.php?u=5
WeChat 개발       http://yun.itxdl.cn/online/weixin/index.php?u=5
모바일 인터넷 서버측 개발 http://yun.itxdl.cn/online/server/index.php?u=5
자바스크립트 강좌 http://yun.itxdl.cn/online/js/index.php?u=5
CTO교육 캠프                                                                             5


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