html / javascript / css, 이것들은 프론트엔드가 배워야 할 것들이며, 게다가 많은 프론트엔드 프레임워크인 Angular, React, Vue도 똑같이 배워야 합니다.
프레임워크를 배운 후에야 프로젝트를 시작하고, 일자리를 찾고, 추가하고 삭제하고 확인하는 영광스러운 여정을 시작할 수 있습니다.
하지만 위에서 언급한 지식은 단지 소개로만 간주될 수 있습니다.
데이터 구조와 알고리즘을 배워야 합니다. 그렇지 않으면 당신이 작성한 코드는 옆집 Big Fatty Zhang이 작성한 코드만큼 좋지 않을 것입니다. 동일한 요구 사항에 대해 다른 사람의 코드는 보기에는 좋지만 당신의 지저분한 코드는 좋지 않을 것입니다. 지도자로부터 전면적으로 비판을 받았다.
그래서 "알고리즘", "Dahua 데이터 구조", "그래픽 데이터 구조", "알고리즘 소개"... 모두 배열, 스택, 큐, 이진 트리, 그래프, 정렬 및 검색이 포함되지 않음이 보장됩니다. 당신은 익사했습니다.
모든 사람과 대화할 때 몇 가지 일반적인 디자인 패턴, 특히 싱글턴 패턴을 작성하는 여러 가지 방법을 언급할 수 있어야 합니다. 그렇지 않으면 외출할 때 다른 사람에게 인사하기가 부끄럽습니다.
항상 업무를 맡은 주니어 코더가 될 수는 없으므로 객체지향 분석과 설계를 배워야 합니다. 그렇지 않으면 앞으로 리더가 중요한 업무를 맡기고 분석과 설계를 하라고 할 것입니다. 디자인은 어떻게 모듈을 나누고, 서비스는 어떻게 인터페이스를 디자인하나요? 어떤 원칙과 지침을 바탕으로 합니까?
소프트웨어 개발 프로세스와 모범 사례는 Agile 개발, DevOps, 단위 테스트, 연속 상속, TDD, 쌍 프로그래밍...을 따라잡는 데 있어 빠르게 필수 요소가 되고 있습니다.
프로그래머의 자기수양을 위해서는 기본적인 컴퓨터 지식도 필수입니다.
컴퓨터 구성 원리와 폰 노이만 구조를 이해해야 합니다. 그렇지 않으면 컴퓨터가 어떻게 작동하는지 모르고 하루 종일 프로그램을 작성하게 되고, 더 깊이 들어가고 싶다면 비웃음을 받게 될 것입니다. 둘째, 어두운 구석에는 항상 편집본이 기다리고 있기 때문입니다.
데이터베이스, 기본 SQL 및 테이블 디자인을 배워야 합니다. 패러다임, 잠금 및 격리 수준은 어렵습니다.
조금 더 깊이 들어가려면 아키텍처 수준에서도 하위 데이터베이스, 하위 테이블, 백업 및 읽기-쓰기 분리를 이해해야 합니다.
관계형 데이터베이스만으로는 충분하지 않습니다. NoSQL은 인터넷 시대에 매우 인기가 높으며 업무에 사용될 가능성이 매우 높습니다. 캐시는 탈출할 수 없으며 작업에는 이미 Redis가 필요합니다.
요즘은 인터넷에 연결되지 않는 프로그램이 거의 멸종되서 컴퓨터 네트워킹을 배워야 합니다. 최소한 http, https, 소켓, tcp가 어떻게 작동하는지 알아야 합니다. https에서 파생된 인증서가 작동 중입니다.
보안은 실제로 큰 주제입니다. XSS, CSRF, SQL 주입 등은 웹 프로그래밍에서 고려해야 할 사항이 되어야 합니다.
프로세스/스레드, 프로세스/스레드 간의 통신 및 동기화는 물론 동기/비동기, 차단/비차단, 선택/epoll 및 기타 유행하는 단어를 이해할 수 있도록 운영 체제도 배워야 합니다. 가상 메모리와 파일 시스템은 대략적으로 이해해야 합니다. 또한 몇 가지 기본적인 Linux 명령을 입력할 수 있어야 합니다. vi를 사용할 수 있으면 더 좋습니다.
Java 가상 머신을 깊이 이해하세요. 가상 머신이 어떻게 작동하는지 이해하지 못한다면 시스템에는 실제로 파악할 수 없는 몇 가지 문제가 있습니다.
톰캣도 있고, 엔그닉스도 있고... 단시간에 철저하게 공부하는 것은 불가능합니다.
사람들이 다음과 같이 말하는 것을 들을 수도 있습니다: 이산 수학은 매우 중요하며 컴퓨터 과학의 기초입니다! 그런 다음 부울 연산, 기타 등가 관계, 부분 순서, 명제 미적분, 술어 미적분, 그룹, 격자 등을 살펴보십시오. 이것은 사람들을 완전히 혼란스럽게 할 것입니다.
이러한 기본 지식을 익히기도 전에 클라우드 컴퓨팅, 빅데이터, 마이크로서비스, 컨테이너에 대해 더 자세히 알고 싶지 않으신가요? 뒤쳐지는 것이 두렵지 않으신가요?
코더는 정말 대단하고 다양한 신기술에 힘입어 계속해서 발전합니다. 하지만 반면에 소프트웨어 프로그래밍에 관심이 있다면 단순히 새로운 장난감이 계속해서 나타나서 기뻐할 수 없습니다. 심지어 그들과 놀아요. 따라서 이 도전적인 업계에서 경쟁력을 유지하려면 계속해서 배워야 합니다.