JavaRush /Java Blog /Random-KO /모든 것을 지배하는 하나의 언어

모든 것을 지배하는 하나의 언어

Random-KO 그룹에 게시되었습니다
모든 프로그래밍 언어에는 모든 코드 계층 아래에 ​​언어가 있습니다. 그리고 그는 발견되기를 기다립니다... Medium의 Better 프로그래밍 커뮤니티에서 Eric Girois가 쓴 기사를 번역하고 각색했습니다. 모든 것을 지배하는 하나의 언어 - 1이 글을 작성했을 당시 '어떤 프로그래밍 언어를 배울까'라는 스타일의 검색어가 5억 1700만(!)을 넘었습니다. 검색 결과 목록의 각 페이지는 다른 언어에 비해 특정 언어의 장점에 대해 설명하며, 90%의 경우 Python, JavaSctipt(또는 언어 언어의 권위 있는 상위 3개 등급에 속하는 언어)와 같은 것이 권장됩니다. 7월의 현재 등급은 여기에 있습니다 ;) 5억 1,700만 개의 결과 모두에 대해 공식적으로는 공식적으로 동의하지 않으며 여러분이 배워야 할 첫 번째 프로그래밍 언어는 논리 라고 말씀드리겠습니다 . 코드 작성 방법을 아는 것만으로는 충분하지 않습니다. 시장은 다양한 과정을 이수한 졸업생들로 가득 차 있으며, 이것이 주니어 개발자의 지위가 본질적으로 사라진 이유입니다. 이러한 현실에서 성공하려면 코드 작성뿐만 아니라 논리적 사고도 필요합니다.

나의 첫 컴퓨터 과학 수업

컴퓨터 과학에 대한 나의 첫 만남은 10학년 때 선택 수업에서 이루어졌습니다. 나는 수업에 왔고 기쁨을 느꼈습니다. 교실에는 아이스크림 상자와 시럽 병이 많이있었습니다. 우리가 자리에 앉았을 때 선생님은 이렇게 말했습니다. “오늘 우리는 일요일을 만들 것입니다( 아이스크림과 시럽으로 만든 디저트 – 편집자 주 ). 하지만 한 가지 조건이 있습니다. 디저트를 준비하는 방법에 대한 정확한 지침을 적어 주셔야 합니다. 그러면 제가 따르겠습니다.” “ 의심할 여지가 없습니다 . 쉬울 것입니다 .” 라고 나는 생각했습니다 . 단 1분 만에 나는 완벽한 지시 사항을 적었습니다. 컵에 라즈베리 아이스크림 세 스쿱을 넣고 그 컵에 초콜렛 시럽 두 스푼을 붓습니다 컵에 휘핑 크림을 넣고 일요일 상단에 스프링클과 체리를 추가합니다 그런 다음 내 "컴퓨터" 역할을 하는 선생님은 지시 사항을 정확히 따르셨고, 제가 본 것 중 가장 신랄한 연기를 보여 주셨습니다. 그녀는 아이스크림이 담긴 판지 상자를 맹렬하게 "공격"하기 시작했지만 튼튼한 뚜껑은 손상되지 않았습니다. “좋아, 먼저 뚜껑을 열어라.” 디저트가 빨리 나오길 바라는 마음으로 나는 말했다. "당신은 나에게 지시 사항을 정확하게 작성하지 못했기 때문에 불행하게도 나는 당신을 위해 일요일을 다음으로 만들 수 없었습니다!"

빨리 감아 시도 #2

뚜껑을 열어 라즈베리 아이스크림 상자를 엽니다. 컵에 라즈베리 아이스크림 세 스쿱을 넣습니다. 초콜렛 시럽을 열고 그 컵에 두 스푼을 더합니다. 휘핑크림을 열고 컵에 조금 더합니다. 위에 스프링클과 체리를 더합니다. 일요일에 나는 이것을 한 번 못 박았다고 확신했습니다. 선생님은 뚜껑을 열고 아이스크림 세 스쿱을 떠서 컵에 담았습니다. 드디어 저의 일요일이 준비되려고 합니다! 그런 다음 그녀는 초콜릿 시럽을 열고 두 스푼을 컵에 넣었습니다. 그러나 시럽 두 스푼이 아니라 숟가락만 있으면 됩니다! 내 지시가 다시 충분히 정확하지 않았습니다. 모든 일이 끝났을 때 나는 아이스크림 한 컵, 금속 스푼 두 개, 휘핑크림 한 톨, 스프링클 300스쿱 정도를 받았습니다. 그 순간 모든 것이 분명해진 것 같습니다. 컴퓨터는 순수한 논리에 따라 안내되는 개체입니다. 그는 맥락을 이해하지 못하고 가정도 하지 않습니다. 그는 엄격한 지시 사항을 따르고 문자 그대로 따릅니다. 일요일을 만들기 위한 마지막 지침은 엄청나게 길었지만 꼭 필요했습니다. ​​아직 개봉하지 않은 경우 다음 품목의 모든 포장을 엽니다: 라즈베리 아이스크림, 초콜릿 시럽, 토핑 및 휘핑 크림 에서 컵을 가져옵니다. 아이스크림을 한 스쿱씩 떠서, 아이스크림 세 스쿱을 떠서 컵에 담으세요. 모든 것이 끝나면 숟가락을 테이블 위에 올려 놓으십시오. 아직 초콜렛 시럽 스푼이 없다면 하나 준비하세요. 그런 다음 초콜릿 시럽 한 숟가락을 컵에 부어주세요. 이 작업을 두 번 수행하십시오. 완료되면 초콜릿 시럽을 선반에 놓습니다. 휘핑크림 병을 거꾸로 뒤집은 후 병 주출구 옆에 있는 버튼을 손가락으로 3초간 누른 후 병을 원래 위치로 되돌려 놓습니다. 컵에 담긴 아이스크림과 초콜렛 시럽 위에 스프링클 40개를 뿌린 후 스프링클 셰이커를 원래 위치로 되돌려 놓습니다. 체리 병에서 체리 한 개를 꺼내어 일요일 위에 조심스럽게 올려 놓습니다. 학생에게 일요일과 디저트 스푼을 주십시오. 지침의 마지막 명령은 매우 중요했습니다. 왜냐하면 그것 없이는 교사가 일요일을 직접 먹기 시작했기 때문입니다. 이것이 프로그래밍의 현실입니다. 컴퓨터에 가장 정확한 지침을 제공해야 합니다. 본질적으로 모든 프로그래밍 언어는 명령어로 구성됩니다.

소프트웨어 개발 경력

소프트웨어 개발은 ​​별도의 산업으로 이야기하는 것이 너무 일반적으로 보이는 개발 단계에 있습니다. 그리고 이 점에 비추어 볼 때 “소프트웨어 개발자”라는 위치는 모호하게 들립니다. 서로 다른 기술을 가진 두 명의 개발자가 취업 시장에서 똑같이 수요가 있을 수 있습니다. 이는 성공적인 개발 경력을 위해서는 프로그래밍 기술 이상의 것이 필요함을 의미합니다. 숙련된 개발자는 프로그래밍 논리 와 별개라는 공통된 특성을 가지고 있습니다 . 최고의 개발자는 비판적 사고에 강합니다. 대부분의 소프트웨어 개발 프로젝트는 제대로 문서화되지 않은 패치워크 악몽이기 때문에 이는 중요합니다. 모든 데이터를 수집하고 공백을 메우려면 비판적 사고를 가진 사람이 필요합니다. 따라서 사실을 하나의 전체로 연결하지 못하는 전문가들은 뒤쳐져 있습니다. 이 모든 것은 또 다른 매우 중요한 진술로 이어집니다. 현재와 미래 모두에서 컴퓨터 과학의 기본이 기본입니다. 코드 작성 능력보다 더 중요합니다. 인기 있는 언어는 왔다 갔다 합니다. 프레임워크는 더 이상 사용되지 않으며 기업은 사용되는 기술 스택을 결합하여 변화하는 시장 요구에 대응하고 있습니다 . 변함없이 남아 있는 것은 무엇입니까? 기본 중의 기본.

논리적 사고를 개발하는 방법

논리력과 비판적 사고력은 개발될 수 있고 개발되어야 합니다. 다음 사항에 주의하는 것이 좋습니다.

1. 런타임 환경에서 알고리즘의 효율성을 연구합니다.

Big-O 표기법은 알고리즘의 복잡성을 설명하는 데 사용됩니다. Big O 용어로 코드를 평가하고 수행된 단계 수와 소요 시간을 분석할 수 있다면 올바른 방향으로 첫 번째 단계를 밟았다고 간주하세요.

2. 데이터 구조 배우기

데이터 구조는 모든 복잡한 프로그램의 기초입니다. 어떤 경우에 어떤 유형을 사용하는 것이 가장 좋은지 아는 것이 중요한 기술입니다. 데이터 구조는 알고리즘의 복잡성과 직접적인 관련이 있습니다. 잘못된 구조를 선택하면 프로그램이 종료될 수 있기 때문입니다.

3. 읽기/보기/듣기

물론 JavaRush를 사용하여 Java 프로그래밍을 배워야 합니다 :)
기본 사항을 이해하려면 디자인 개념, 모범 사례 및 코딩 스타일에 대한 책을 읽어보세요. 프로그래밍을 배우는 사람들은 다음을 읽어볼 것을 적극 권장합니다.
  • “객체 지향 설계 기술. 디자인 패턴”(E. Gamma R. Helm R. Johnson J. Vlissides)
  • “리팩토링. 기존 코드 개선”(M. Fowler),
  • “완벽한 코드” (S. McConnell)
  • “클린 코드” (B. 마틴)
  • “실용적인 프로그래머” (E. 헌트)
  • "알고리즘: 구성 및 분석"(T. Cormen, C. Leiserson, R. Rivest 및 K. Stein)

4. 연습하세요!

수백 시간의 연습 없이는 좋은 첼리스트가 될 수 없습니다. 매일의 연습은 프로그래밍 성공의 열쇠입니다. 오늘날 데이터 구조와 알고리즘에 대한 이해가 필요한 수천 가지 작업을 찾을 수 있는 온라인 플랫폼이 많이 있습니다(HackerRank, LeetCode, CodeWars 등).
간단한 것부터 복잡한 것까지 Java 프로그래밍 문제를 JavaRush에서 사용할 수 있습니다. 이 과정에는 1200개 이상의 내용이 있으며, 미니 프로젝트와 작업 게임 도 있습니다 .
나에게 있어 이러한 플랫폼을 사용하는 가장 효과적인 방법은 문제에 대한 고유한 접근 방식을 생각하고 솔루션을 Github에 게시하는 것입니다. 그런 다음 유사한 문제에 대한 최고의 솔루션을 살펴보고 다른 프로그래머의 접근 방식을 분석하십시오. 마지막 팁은 다음과 같습니다.

5. 다른 사람의 코드 분석

프로그래밍 학습과 작업 초기 단계의 주요 실수는 자기 격리입니다. 소프트웨어 개발은 ​​팀워크가 크게 좌우되는 분야입니다. 우리는 함께 표준을 만들고, 실수를 하고, 시간이 지남에 따라(다시 시행착오를 통해) 무엇이 가장 효과적인지 알아냅니다. 숙련된 개발자의 코드를 읽는 데 시간을 투자하면 성과가 있을 것입니다. 코드가 실제로 좋은지 확인하십시오.

결론

개인적인 조언: (아직) 모르는 것을 부끄러워하지 마세요. 위에서 언급했듯이 이 산업은 거대하고, 언어의 수는 믿을 수 없을 정도로 많으며, 정보의 바다가 있습니다. 적어도 프로그래밍에 대한 일반적인 아이디어를 형성하는 데는 많은 시간과 노력이 필요하고, 경험을 얻으려면 더 많은 시간이 필요하며, 진정한 프로가 되려면 몇 배 더 많은 시간과 노력이 필요합니다. 드디어 성공하면 소식 전해드릴게요 :)
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION