当前位置 - 무료 법률 상담 플랫폼 - 법률 지식 - 소프트웨어 개발의 기본은 무엇입니까

소프트웨어 개발의 기본은 무엇입니까

소프트웨어는 컴퓨터로 인해 존재하고 컴퓨터의 본질은 수학이기 때문에 컴퓨터의 지식은 본질적으로 수학 지식이다. 수학 지식도 컴퓨터의 기초지식이고, 컴퓨터의 기초지식도 소프트웨어의 기초지식이라고 할 수 있다. 있습니다. 소프트웨어 개발 과정에서 소프트웨어 지식도 서서히 축적되고 있으며, 많은 소프트웨어 지식은 수학과 직접적인 관련이 없습니다. 여기서 우리가 말하고자 하는 것은 순수 소프트웨어의 기초 지식이다.

우리는 소프트웨어 지식을 두 부분, 즉 전문 기술 지식과 분야 지식 또는 업계 지식으로 나눌 수 있습니다.

1, 전문 기술 지식

프로그래밍 언어 및 라이브러리

서점에서 프로그래밍에 관한 다양한 책을 찾을 수 있지만

< < 만 더 깊이 익혀두는 것이 좋습니다 네가 깊이 습득한 언어에는 여러 가지 선택이 있을 수 있다. 드라이버 개발에 종사하는 경우 어셈블리 언어를 마스터해야 한다고 생각합니다. C 언어도 좋은 선택입니다. UI 를 하는 경우 C++가 더 좋을 수 있습니다. Java 언어는 네트워크 프로그램 개발에 더 적합합니다. 물론 JavaScript 는 구글에서 매우 추앙받고 있습니다.

프로그래머에게 프로그래밍 언어는 레인저의 손에 있는 무기와 맞먹는다. 장검일 수도 있고 단검일 수도 있고 큰 칼일 수도 있고 비수일 수도 있다. 이 무기들은 각기 장점이 있고, 이 무기의 장점을 발휘하려면 반드시 도로 수에 기반을 두어야 한다. 그렇다면 프로그래머에게는 일종의 프로그래밍 언어를 기반으로 한 코드베이스다. 예를 들어 GNUC 의 라이브러리는 libc 또는 ulibc 입니다. C 언어를 사용하고 유닉스 플랫폼에서 개발한 경우, libc 의 작동 방식, 코드에서 호출된 각 함수의 입력 및 출력, 가능한 오류, 가능한 모호성, 시스템에 미치는 영향을 정확하게 이해해야 합니다. 예를 들어, 함수가 재진입이 가능한지, 재진입이 불가능한지, 멀티 스레딩이 동시에 호출될 경우 발생하는 오류 등 세부적인 문제가 있습니다.

일종의 프로그래밍 사상

전 세계는 마오쩌둥의 리더십과 군사적 재능에 경탄하고 있으며, 그의 재능 표현 뒤에 무엇이 있는지, 그의 혁명

정신은 그의 슬기로운 사상이다. 프로그래밍도 마찬가지다. 프로그래밍 사상이 없다면 전진을 지도할 동력이 없다면 창조의 영감의 토양이 없다. 소프트웨어 지식이 오늘날까지 많이 사용되는 프로그래밍 사상은 구조화 (모듈식) 와 객체화 (디자인 패턴) 입니다.

일부 언어는 C 언어와 같이 모듈화가 널리 퍼져 있는 역사적 배경에서 발명되고, 일부 언어는 C++와 같은 객체 지향 프로그래밍 사상을 만족시키기 위해 만들어졌다. 일부 프로그래머들은 C 언어를 구조화된 프로그래밍 언어로는 객체 지향 프로그래밍 사상을 실현할 수 없다고 생각한다. 그렇지 않으면 C 언어도 객체 지향 프로그래밍 사상을 잘 실현할 수 있지만, 일부 객체 지향 작업은 프로그래머가 할 수 있습니다. 마찬가지로 객체 지향 프로그래밍 언어도 모듈식 프로그램을 작성하는 데 사용할 수 있습니다.

믿음

내가 접촉한 시스템에서 Windows 만 설치하고, 사용하고, VC/VB 도 간단한 개발만 할 수 있고, MACOS 는 한 번 설치를 경험했지만 결국 실패했다 AIX 에서 개발한 적이 있고, 현재 Fedora9 에서 개발되고 있으며, 목표판의 CPU 는 SH4 이며, 앞으로도 MIPS 가 될 수 있습니다.

MACOS, Windows, UNIX, Linux 등 각자의 추종을 가지고 있습니다. 저는 이런 현상을 신앙이라고 부릅니다. 나를 위해, 나는 리눅스 커널의 소스 코드를 믿고 나를 위해 신화 이다.

리눅스에서 일하는 것은 매우 즐거운 일이라고 생각합니다. 좀 더 까다로운 문제를 해결할 때마다

성취감을 느낄 수 있는데, 이는 Windows 플랫폼에서는 느낄 수 없는 것이다.

따라서 이 신앙에 대해 최소한 설치, 시작, 구성, 보안, 부트 프로그램 GRUB, FTP, 텔넷, sshd, smbd, named 등의 서버 구성, 네트워크 보안 구성 등을 알아야 한다고 생각합니다.

Linux 에서 개발하려면 Linux 의 API, 표준 라이브러리, libc 를 이해해야 합니다.

의 프로그램이 멀티 스레드라면 libpthread.so 의 함수 사용 방법도 익혀야 합니다. GCC, GDB, LD, AS, AR,

, Makefile, make 등의 도구를 사용합니다. Find, awk, sed, grep, od, nm, objmp

와 같은 유틸리티를 마스터할 수 있다면 생산성이 크게 향상될 것입니다.

이것이 바로 제 믿음입니다.

한마디로 프로그래밍 언어와 라이브러리, 프로그래밍 사상과 신앙입니다. 모든 게 좋아!

2, 분야 지식/업계 지식

저는 제 첫 직업이 은행의 거래 개발 프로그래머였던 것을 기억합니다. 당시 한 아웃소싱 회사가 저를 상공업

은행에 파견했습니다. 저는 공상은행의 업무에 대해 아무것도 몰랐습니다. 하지만 초창기에는 호랑이를 두려워하지 않고, 내가 아무것도 모르는 프로젝트를 혼자 완성했고, 내 자신의 기술력에 대한 자신감만 가지고 있었다. (윌리엄 셰익스피어, 햄릿, 자신감명언)

< P > 그런데 그 정수에 0.456 을 곱해서 데이터베이스에 저장해야 하는 이유도, 은행의 데이터 정확도가 얼마나 큰지도, 등 세부적인 문제에 대해서는 나는 아무것도 모른다. 그럼 나는 하늘의 가호를 구할 수밖에 없다. 어느 날 남의 돈을 더 공제하지 마라, 세상에, 이 일도 나도 했어? ! 물론 그렇게 심각하지는 않습니다.)

< P > 나중에 은행이라는 업무 시스템에 대해 알기가 어렵다는 것을 알게 되었습니다.

< P > < P > 의 C 프로그램을 쓰는 데 시간을 할애하고 씁쓸한 업무 프로세스 문서에 시간을 할애하지 않겠습니다. 그래서 그 회사에 1 년 있다가 사직했다.

< P > 대부분의 프로그래머들은 하루 종일 데이터와 데이터

라이브러리를 다루는 개발 작업과 같이 비교적 기술적인 개발 작업을 하고 싶다고 생각합니다. 욕심이 많은 프로그래머도 하기 싫습니다. 물론 돈이 충분하다면 기꺼이 하겠습니다.)

그래서 저는 여전히 자격을 갖춘 개발자가 아니라고 생각합니다. 소프트웨어 개발의 기초지식에는 전문지식과 업계

지식이 포함되며, 기초지식이 완전하지 않다면 이 프로그래머는 자격이 있고 효율적인 프로그래머가 될 수 없다.