지금이 java와 .net의 시대라고 생각하는 사람들도 있는데, 아직도 C와 어셈블리가 필요한 사람이 있을까요? 누가 알겠습니까? Java와 .net은 소프트웨어를 기반으로 하며 시장을 독점하기 위해 구축된 시스템입니다. 마치 황금 벽을 파고 뛰어내리라고 하는 것과 같습니다. .실은 구덩이 속의 개구리가 되었습니다. 진정한 프로그래머가 되고, 마스터 프로그래머가 되려면 기계부터 시작해서 CPU, 운영체제, 그리고 소프트웨어 시스템까지 거쳐야 합니다. 훌륭해요, 내가 바로 프로그램입니다. 프로그램이 바로 나입니다.
방관한 리시가 말했다: 이 사람은 바보야! 컨트롤 몇 개만 마우스로 드래그하면 xxx 관리 시스템이 됩니다. 1년 동안 C 언어로 작성하지 못할 수도 있습니다! 글쎄요, 이런 말을 하는 사람들은 이미 MS의 노예라는 걸 인정해야겠습니다. MFC 자체가 폐쇄적인 아키텍처이기 때문에 MS는 폐쇄적인 사고 모드만 형성하게 됩니다. 많은 사람들이 피상적인 것만 배우고 마스터가 되지 않기를 바라기 때문에 소위 시각적 프로그램 개발 도구에 속아서 결국 길을 잃는 사람들이 정말 많습니다. 그가 프로그램을 처리할 수 없다고 가정해 보겠습니다. 하지만 프로그램이 더 복잡해지고 문제가 발생하면 어디에서 문제가 발생하는지 알 수 없게 됩니다.
훌륭한 사람인 Liang Zhaoxin은 "마우스로 프로그램을 작성하는 방법을 이해하지 못합니다. 우리 회사에서는 전문가 키보드가 계속 삐 소리가 나고 마우스도 가끔 삐 소리가 납니다. 마우스가 계속 울고 키보드 경고음이 가끔 경고음이 있더라도, 급여의 차이는 두 배 이상입니다. , Windows는 모두 C 언어로 개발되었습니다. (어떤 곳에서는 어셈블리 언어와 혼합하여 개발되었습니다.) Windows API가 C 언어 기능에 대한 인터페이스라는 것을 보지 못하셨나요? 대다수의 Unix/Linux 응용 프로그램은 C 언어로 개발됩니다. 순수 API로 개발된 Windows 응용 프로그램은 많지 않으며, 대부분은 실제로 VCIDE를 참조하는 소위 VC++와 같은 일종의 응용 프로그램 프레임워크에 의존합니다. +C++ 언어+MFC(현재 초점은 ATL 및 WTL로 전환됨)이지만 Windows 서비스, 네트워크 및 드라이버와 같은 기본 소프트웨어는 여전히 C 언어로 개발됩니다. JVM(Java Virtual Machine)을 비롯한 다양한 언어용 컴파일러가 C 언어로 개발되었습니다. 휴대폰, PDA 등 다양한 임베디드 기기도 C언어로 개발되고 있습니다.
가방에 가장 먼저 넣고 앞으로 나아가는 것이 바로 '표준화된 형식'입니다. 따라서 표준화된 형식은 시작하기 위한 기초입니다. 그렇다면 이 사양의 형식에는 어떤 내용이 포함되어 있나요? 꽤 많은데, 그것을 하려면 인내심을 가져야 합니다! 긴 식별자 이름 지정, 코드 들여쓰기, 한 화면을 초과하지 않는 중괄호 쌍 등
두 번째로 챙겨야 할 것은 인내심입니다. 일을 잘하려면 먼저 도구를 갈고 닦는 것이 중요합니다. 성공하려면 상대적으로 평범한 프로세스 없이는 불가능합니다. 이는 학습 과정에서 인내심을 갖고 단계별로 진행해야 함을 의미할 뿐만 아니라 또 다른 중요한 측면인 조정 과정에 대해서도 이야기합니다. 디버깅은 프로그램을 작성하는 과정에서 중요한 부분인데, 누군가가 한 번에 프로그램을 작성할 수 있다면 그 사람은 대단한 사람이고, 그 사람은 큰 소일 뿐만 아니라 제가 타고 있는 녹색 황소이기도 합니다. 인간은 비윤리적이다! 디버깅은 모든 프로그램이 반드시 거쳐야 하는 과정이다.
첫 번째 행보, 무엇을 배워야 할까요? 개를 때리는 막대기 방법! ㅎㅎ
어떤 위인은 "권위를 반복하는 것이 성숙에 이르는 유일한 길"이라고 말했습니다. 이것은 무술을 하는 사람이 가장 먼저 배워야 할 것이 바로 거인의 어깨 위에 서는 것입니다. 예를 들어, 사악한 검술을 익히고 종파를 만들기 전에 이를 예방할 수 있습니다. 또한 이러한 방식으로 프로그램을 작성하는 방법을 배워야 합니다.
책을 읽어라, 좋은 책을 읽어라! 책에 쓰여진 내용은 수십년의 경험을 가진 선배들이 쓴 것입니다. 열 권의 책을 읽는 것은 선배들의 수십년의 기술을 흡수하는 것과 같으며, 당신의 내면의 힘도 가자를 통해 급속히 증가할 것입니다. :) 물론, 좋은 책만 읽어야 영양가가 높아지죠. 수천 권의 책과 프로그램을 신처럼 읽어야 합니다. 지루한 독서는 매우 우울하고 쉽게 화석이 될 수 있습니다! 요즘에는 소스코드를 사용하여 문제를 설명하는 책이 많습니다. 소스코드는 애니메이션이나 슬라이드쇼처럼 책 속의 동작을 하나씩 보여줍니다. 이 단계는 생략할 수 없습니다. 요즘에는 많은 책에 지원되는 소스 코드가 있습니다. 많은 학생이나 성인이 공부할 때 소스 코드를 직접 복사하여 컴파일하고 실행하는 것은 비효율적입니다.
TC에는 최소한 한 가지 이점이 있습니다. 즉, 키 조합을 사용하는 습관과 키보드 프로그래밍을 사용하는 습관을 훈련할 수 있다는 것입니다.
1. 좋은 책을 읽고, 그렇지 않으면 읽지 않는 것이 좋습니다
Kernighan과 Ritchie의 "TheC 프로그래밍 언어"(중국어 번역: "C 프로그래밍 언어")는 고전 중의 고전이라고 할 수 있습니다. 그러나 이전 버전의 내용은 대부분 구식이며 현재의 표준 C 언어와는 거리가 멀습니다. 최신 버전을 읽어보세요. 그렇지 않으면 시청하지 않는 것이 좋습니다. 또한 가장 고전적이고 권위 있는 책이라 할지라도 모든 내용을 다룰 수는 없으므로 "C 언어 참조 매뉴얼"을 항상 구비해 두는 것이 필요합니다. "C 언어 참조 매뉴얼"은 대부분의 C 표준 라이브러리 기능을 자세히 설명하는 C 언어 표준에 대한 자세한 설명을 담은 최고의 표준 C 언어 참고서라고 할 수 있습니다. 그런데 최신 "C 프로그래밍 언어"는 C89 표준에 따라 개정된 반면, "C 언어 참조 매뉴얼"에서는 C99 표준에 따라 약간의 차이가 있을 수 있습니다. 기준. "C and Pointers"라는 책도 있는데, 영어 이름은 "Pointerson C"입니다. 특히 이 책의 특징인 포인터의 중요성을 강조합니다. 하지만 이 책은 초보자에게 그다지 적합하지 않습니다. C 언어를 배운 적이 있고 C 언어에 대한 기본 지식이 있지만 그다지 탄탄하지 않은 경우 이 책을 시도해 볼 수 있습니다. 포인터를 이해하는 한 C 언어는 더 이상 신비하지 않을 것이라고 믿습니다.
C 언어 교과서를 다 읽고 더 나아가고 싶다면 꼭 읽어야 할 두 권의 책이 있습니다. 첫 번째는 매우 흥미로운 내용이 담긴 매우 얇은 소책자 "CTraps and Pitfalls"(중국어 번역: "C Traps and Pitfalls")입니다. 이 책은 20년도 더 전에 쓰여진 책이고, 거기에 언급된 C 언어의 단점은 많이 개선되었지만, 어느 정도 역사를 이해하는 것도 나쁘지는 않다는 점에 유의해야 한다. 그렇다면 『Expert C 프로그래밍』(중국어 번역: 『Expert C 프로그래밍』)에 도전해 보세요. 책 이름처럼 이 책은 꽤 어려운 책입니다. 잘 읽고 이해하고 나면 자신감 있고 과감하게 글을 쓸 수 있습니다. 이력서에 "C 프로그래밍에 능숙함"을 기재하세요.
한 가지 원칙을 기억하세요. 아직 이해하지 못하는 책은 읽지 마세요. 인생 낭비입니다. 이해할 수 없다면 필요한 기본 지식이 부족한 것입니다. 이때 어떤 콘텐츠를 추가해야 할지 주의 깊게 분석한 후, 서점에 가서 해당 콘텐츠에 대한 책을 찾아보아야 합니다. 기본 지식을 완성하고 다시 학습해야만 절반의 노력으로 두 배의 결과를 얻을 수 있습니다.
2. 유닉스/리눅스냐 윈도우냐, 이게 큰 문제다
프로그래밍 환경이 다르면 생각도 달라지는 프로그래머가 생긴다. 대부분의 Windows 프로그래머는 Visual Studio와 같은 통합 개발 환경에 의존하는 반면 Unix 프로그래머는 Makefile 및 콘솔을 선호합니다. 분명히 통합 개발 환경은 사용하기 더 쉽습니다. Windows에서 C 언어를 배우려면 몇 가지 기본 Visual C++ 도구 모음 버튼만 눌러 Hello, World! 작성을 시작하면 됩니다. 반면 Unix에서는 몇 가지 콘솔 작업에 대한 기본 지식이 필요합니다. . 어떤 사람들은 유닉스 환경이 더 단순하다고 생각할 수도 있지만, 습관의 힘은 위대합니다.
따라서 초보자는 VisualC++6.0(VisualC++.NET 아님) 또는 DevC++를 주요 학습 환경으로 사용하고 IDE 사용 기술에 너무 매달리지 않는 것이 좋습니다. 반드시 Unix 환경으로 전환하겠습니다. Visual C++ 6.0은 사용하기 쉽고 디버그하기 직관적이지만 기본 컴파일러는 C 표준을 잘 지원하지 않는 반면 DevC++는 gcc 컴파일러를 사용하고 C99 표준을 잘 지원합니다. 그런데 많은 대학의 C 언어 강좌에서는 여전히 TurboC2.0을 실험 환경으로 사용하고 있습니다. 이는 매우 바람직하지 않습니다. 첫 번째 이유는 TC2.0이 C 표준을 거의 지원하지 않기 때문입니다. 프로그램이 16비트이므로 앞으로 32비트 프로그램을 이해하는 데 큰 문제가 발생합니다(물론 djgpp 같은 것을 사용하면 TC2.0에서 32비트 프로그램을 컴파일할 수 있지만 너무 복잡합니다).
C 언어 교과서 공부를 마친 후 계속 학습하려면 Unix 플랫폼으로 전환해야 합니다. 거의 모든 고급 C 언어 튜토리얼은 Unix 플랫폼(예: "C 전문가 프로그래밍")을 기반으로 합니다. Windows 플랫폼에서의 사고방식과는 완전히 다른 다양하고 복잡한 명령에 직면해야 하지만 그만한 가치가 있습니다. 유닉스와 C는 공생관계이고, 유닉스의 사고방식과 습관은 C언어의 사고방식과 습관에 더 가깝다. Unix에서는 원하는 만큼 읽을 수 있는 우수한 소스 코드를 셀 수 없이 많이 찾을 수 있습니다. 특정 라이브러리 기능에 대한 온라인 매뉴얼을 쉽게 볼 수 있으며, 또한 최고의 코딩 스타일(코딩 스타일의 경우, 나는 특별한 글을 쓸 것입니다 (이 기사에 자세히 설명되어 있습니다).
한 문장으로 요약할 수 있습니다. C 언어를 처음 배우는 분들은 Windows 시스템과 통합 개발 환경을 사용하는 것이 좋습니다. "마스터"가 되기 위해 열심히 준비할 때, 먼저 유닉스 플랫폼.
3. 모든 것이 준비되었습니다. 당신은 동풍입니다
책이 선택되었고, 환경 구성이 완료되었습니다. 속담대로 모든 것이 준비되었습니다. 필요한 것은 오직 여러분 자신의 노력입니다. 책의 서문부터 시작해서 교과서를 주의 깊게 읽으세요. 많은 사람들이 첫 장부터 바로 읽기를 좋아합니다. 이것은 잘못된 접근 방식입니다. 서문은 책 전체에 대한 저자의 일반적인 소개로, 책을 원활하게 읽기 위해 어떤 기초가 필요한지 전반적으로 알려주므로, 이미 기본 지식을 갖추고 있는지 확인할 수 있습니다. 서문을 읽은 후에는 목차를 살펴보며 책의 전체 구조를 이해하고 스스로 학습 계획을 세워야 합니다.
예제 후에는 초보자가 모든 운동을 독립적으로 수행하는 것이 좋습니다.
이런 식으로 배우는 것이 너무 느리다고 생각할 수도 있지만 그렇지 않습니다. 주의 깊게 공부하면 나중에 배우고 이전에 이해하지 못했다는 것을 알게 될 때 이득은 실제로 손실의 가치가 없습니다. 일반적으로 책을 다 읽은 후에는 수천 줄, 심지어 수만 줄의 코드를 완성해야 합니다. 책을 그대로 복사하든, 아니면 임의로 작성하든, 앞으로도 학습을 계속하는 데 자산이 될 것입니다. . 제 자신을 예로 들어보겠습니다. 제가 "Windows Core 프로그래밍"을 읽었을 때(내용의 3/4만 읽었습니다.) 책에 있는 코드를 복사하는 것 외에도 제가 직접 많은 예제를 작성했는데 총 5574줄에 달합니다. Unix에서 wc 도구를 사용한 통계), 며칠이 지나면 더 이상 Windows의 시스템 프로그래밍을 기억할 수 없지만 몇 분 동안 이전 코드를 파헤치고 살펴보면 다시 이해할 수 있습니다. 좋은 기억이 나쁜 글쓰기보다 더 나쁘다는 말이 있다.
자세히 읽고, 소스 코드를 주의 깊게 복사하고, 독립적으로 연습을 완료하고 추가 실험을 수행한 다음, 마지막으로 모든 코드를 남겨두고 자신의 경험과 부를 얻으세요. 정말 힘든 작업이며 확실히 두 배의 결과를 얻을 수 있습니다. 절반의 노력으로. 물론 이 방법은 숙련도가 요구되는 기술 학습에만 적합합니다. C 언어를 배우지 않는다면 구체적인 상황을 분석해야 합니다.
글을 마치면서 아직 언급되지 않은 매우 중요한 점이 있습니다. 코딩 스타일은 학습 초기부터 억지로 최고의 코딩 스타일을 모방해야 합니다. 코딩 스타일은 너무 중요하고 내용이 너무 많기 때문에 "프로그래머의 길 - 코딩 스타일에 대하여"를 주목해 주시기 바랍니다.
여기서 잠시 멈추세요. 위에서 제가 말한 것은 제 학습 스타일입니다. 저는 항상 우여곡절을 겪어야 하고, 몇 번 어지러운 일을 겪다가 갑자기 깨달음을 얻게 될 것입니다. 깨달음! 나는 나만큼 어리석은 사람을 본 적이 없다. 처음에는 항상 일을 지나치게 복잡하게 만들어서 개가 고슴도치를 무는 것처럼 당황스러운 상황을 초래한다는 것을 이제는 이해한다. 그러나 예상치 못한 이득이 있다! 하지만 적어도 여자친구를 쫓을 때는 이런 스타일을 흉내내지 않는 것이 좋습니다. 인생의 많은 기회는 당신이 장악하는 순간에 있고, 그것을 잃으면 결코 되돌릴 수 없습니다.
이제 돌아와서 우연히 코드 한 줄을 이해했는데, 인쇄문이었다. 당시 너무 신나서 이것저것 살펴보며 많은 것을 이해하게 됐다. 단번에, 마치 순간적으로 무언가에 맞은 것처럼, 그는 즉시 깨달음을 얻었습니다. . . .
그러나 그래도 깨지지 않고는 성립할 수 없고 막을 수도 없는 같은 문장이다. 지금처럼 컴퓨터가 있어서 하루 종일 인터넷의 바다에 몸을 담그고 패스트푸드 문화를 느끼며 오랫동안 뭔가 생각할 여유가 없었습니다.
C 언어를 배운 친구들이라면 누구나 '기쁘기도 하고 걱정스럽기도 하다'라는 느낌을 갖고 있지 않을까 싶습니다. 다행히 C 언어는 매우 강력하고 널리 사용됩니다. 마스터하면 다른 사람에게 "나는 컴퓨터 전문가다!"라고 자신있게 말할 수 있고, 앞으로는 혼자서 다른 언어도 쉽게 배울 수 있을 것입니다. 걱정되는 점은 C언어가 '소림무술'만큼 심오하고 배우기가 너무 어렵다는 점이다. 사실 저자는 C 언어가 '어렵지' 않다고 생각합니다. 자신의 생각을 명확하게 하고 그 본질을 터득할 수 있다면 C 언어를 스스로 배우는 것은 매우 쉽고 끝이 없습니다. 오늘은 C 언어를 배우는 방법이나 C 언어 학습에서 어떤 측면에서 시작해야 하는지에 대해 이야기하겠습니다.
제 개인적인 경험에 따르면 어떤 언어를 배우든 먼저 배우는 언어의 배경이나 발전사를 이해해야 합니다. C 언어는 일종의 고급 프로그래밍 언어이며 그 전신은 "ALGOL"입니다. 창립자는 Brown W. Carnihan과 Dennis M. Leach였습니다. C 언어가 나왔을 때, UNIX 시스템에서만 사용할 수 있다는 점에서 큰 제약이 있었습니다. 그러나 과학기술의 발전과 컴퓨터 산업의 발달로 C언어는 점차 유닉스에서 분리되었다. 1987년 미국 표준 협회(American Standards Institute)는 "ANSIC"이라고 하는 C 언어에 대한 국제 표준을 제정했습니다. 이후 C 언어는 널리 사용되는 프로그래밍 언어가 되었습니다. C 언어에는 많은 장점이 있는데, 주요 내용은 다음과 같습니다.
고급 언어와 저급 언어의 장점을 모두 갖고 있으며 중급 언어입니다.
구조적 프로그래밍에 매우 적합한 구조적 프로그래밍 언어입니다.
선택할 수 있는 다양한 데이터 유형, 연산자 및 함수가 있습니다.
메모리로 직접 작업하여 다른 프로그램과 문서를 쉽게 수정하고 편집할 수 있습니다.
C언어를 잘 배우려면? 가능한 한 빨리 시작하려면 컴퓨터의 특성을 숙지해야 합니다.
컴퓨터는 문제를 처리하고 모든 가능성을 알려주는 방식이 매우 까다롭습니다.
컴퓨터에서는 프로그램 설명이 정확하고 명확해야 합니다.
컴퓨터 프로그래밍은 전체적인 관점과 논리가 탄탄해야 하며, 기복의 문제가 없습니다.
컴퓨터는 소유자에게 문제를 종합적으로 고려하고, 가능한 모든 상황과 해결 방법을 알려주고, 침착하고 안정된 사고방식을 갖도록 요구하며, 의사소통에 사용되는 문장은 명확하고 단일한 의미를 가져야 합니다.
어떻게 하면 C언어를 빨리 배우고, 길들이기를 더 빨리 통과할 수 있나요? C 언어의 문법 규칙을 암기하고 이해하는 것은 물론 필수입니다. 또한 다음과 같은 측면에도 주의해야 합니다.
정신의 균형을 맞추세요. "사물에 만족하지 않고 자신에 대해 슬퍼하지 않는" 수준에 도달할 수는 없지만 적어도 성급하지 말고, 성공을 위해 서두르지 마세요. 서두르면 낭비가 됩니다.
내면 없이도 크고 작을 수 있도록 자신의 전반적인 인식을 기르십시오.
프로그래밍 과정에 따라 엄격하게 프로그램을 설계하세요. 규칙 없이는 규칙이 없습니다.
전체적인 품질을 향상시키기 위해 노력하십시오. 프로그램은 인간의 사고를 표현한 형태로서, 문제를 다루는 인간의 사고와 언어의 결합이다. 당신이 객관적으로 인식하는 정도는 당신이 가지고 있는 지식에 정비례합니다. 당신이 다루고 있는 문제를 이해하지 못하고, 그것을 다루는 방법을 모른다면, 당신은 프로그램을 작성할 수 없을 것입니다.
소통하는 방법을 배우고, 더 많이 소통하고, 서로를 보완하는 것도 매우 중요합니다.