프로그래밍에 대한 젠틀 러 소개

John Adesanya의 일러스트

이 글은 코칭 요청을받을 때 제가 가르치는 내용을 보여줍니다. 코드 나 설정으로 넘어 가지 않겠습니다. 나는 개념을 가르 칠 것입니다.

소프트웨어 개발 회사에서 프로그래머가 아닌 사람으로 일하는 경우 프로그래머가하는 일이 궁금 할 수 있습니다. 그리고 매일 새로운 유행어가 들립니다. 이 게시물은 귀하를 염두에두고 작성되었습니다. 영업 사원, 의사, 변호사, 비즈니스 리더 또는 회계 담당자 등 코딩 방법을 배우는 것을 염두에 두었다면 시작하기에 좋은 곳입니다.

이 기사의 구성

이 기록은 4 부분으로 나뉩니다. 각 부분을 읽은 후에는 읽은 내용을 더 잘 기억하는 데 도움이되는 퀴즈 섹션이 있습니다. 그런 다음 "앞으로 진행"섹션과 퀴즈에 대한 답변을 찾을 수 있습니다.

이 시리즈에서 소개 된 각 버즈 워드는 알고리즘과 같이 굵게 표시됩니다.

John Adesanya의 일러스트

1 부 — 프로그래밍이란 무엇입니까?

간단한 프로그래밍은 "프로그래밍은 컴퓨터에게 작업을 수행하도록 지시하는 행위"입니다. 종종 코딩이라고합니다.

그렇다면 컴퓨터 프로그램이란 무엇입니까? 컴퓨터 프로그램은 컴퓨터가 실행하는 일련의 명령입니다.

위 정의의 컴퓨터는 코드를 처리 할 수있는 모든 장치입니다. 이것은 스마트 폰, ATM, Raspberry Pi, 서버 일 수 있습니다.

프로그래밍에 대한 좋은 비유

첫째, 일상 생활에는 패턴이 있습니다. 우주는 다소 예측 가능한 방식으로 작동합니다. 예를 들어 낮과 밤, 계절, 일출 및 일몰. 사람들은 아침에 일어나거나 학교에 가거나 일하는 등의 일상을 겪습니다. 우리는 직장에서 상사와 같은 다른 사람들로부터 지시를받습니다. 특정 레시피를 요리하는 방법은 유한 한 단계로 설명 할 수 있습니다.

둘째, 스마트 기기를 사용할 때마다 일부 코드가 백그라운드에서 실행됩니다. 컴퓨터 화면의 한 부분에서 다른 부분으로 마우스 포인터를 이동하는 것은 간단한 작업처럼 보이지만 실제로는 많은 코드 줄이 실행되었습니다. Google 문서 도구에 글자를 입력하는 것만 큼 간단한 동작으로 백그라운드에서 코드가 실행됩니다. 모든 코드가 어디에나 있습니다.

컴퓨터 프로그램은 코드라고도합니다. ‘코드’라는 단어를 사용하지 마십시오 (코드는 셀 수없는 명사로 사용해야합니다). 자, 이것은 영어 수업이 아닙니다. 비즈니스로 돌아가 봅시다.

컴퓨터의 자연어

기계는 인간처럼 자연어가 있습니다. 컴퓨터는 인간의 언어를 이해하지 못합니다. 컴퓨터의 자연어는 이진 코드 (1과 0)입니다.이 두 가지 상태는 켜짐 (1)과 꺼짐 (0)입니다.

이것이 전자 장비의 자연어입니다. 인간이 이진으로 컴퓨터와 통신하는 것은 열렬한 일입니다.

프로그래밍 언어 입력

이진법을 사용하는 기계와 의사 소통하기 위해, 우리는 자연어에 더 가까운 언어로 대화합니다. 영어, 프랑스어, 스와힐리어 또는 아랍어와 같은 프로그래밍 언어는 자연 언어와 비슷합니다. 그러나 그것들은 더 구조적이며 철저히 배워야합니다.

그들은 고급 또는 저급 언어 일 수 있습니다. 고급 프로그래밍 언어는 고급 언어보다 기계어에서 멀리 떨어져 있습니다. 이“먼 멀리”는 일반적으로 추상화라고하지만이 시리즈에서는 다루지 않습니다. 산만 해지지 말자 :)

컴퓨터는 인간의 언어를 이해하는 방법이 필요합니다. 이를 위해서는 통역사가 필요합니다.

번역가는 무엇입니까

소스 코드는 특정 프로그래밍 언어로 작성된 코드를 나타냅니다. 이 부분은 2 부에서 더 자세히 설명합니다.

번역 사는 소스 코드를 기계어로 변환 할 책임이 있습니다. 이진이라고도합니다. 1과 0을 기억하십시오. 바이너리를 Object Code, 프로그램 또는 오늘 일반적인 단어 : App이라고 부를 수 있습니다.

번역자는 다음 중 하나 일 수 있습니다.

  • 통역사
  • 컴파일러
  • 통역사와 컴파일러의 하이브리드
  • 어셈블러

통역사

일부 언어는 해석됩니다. 번역기는 소스 코드를 한 줄씩 처리하고 최종 프로그램 또는 앱의 모든 줄을 실행합니다. 이는 해석 된 소스 코드가 오류가 발생할 때까지 실행을 시작 함을 의미합니다. 그런 다음 인터프리터는 이러한 오류보고를 중지합니다. 이에 대한 자세한 내용은 3 부에서 자세히 설명합니다.

파이썬은 해석 된 프로그래밍 언어의 좋은 예입니다.

컴파일러

컴파일러는 다르게 작동합니다. 컴파일 프로세스를 통해 소스 코드 전체를 이진으로 변환합니다. 그런 다음 이진 파일이 실행됩니다. 소스 코드에 오류가 있으면 컴파일 시간 동안 감지되어 플래그가 지정됩니다. 컴파일 프로세스가 중단되고 바이너리가 생성되지 않습니다.

통역사는 한 줄씩 번역하고 다음 줄로 넘어 가기 전에 줄을 실행합니다. 컴파일러는 프로그램의 모든 행을 파일 (이진)로 변환하고 전체 파일을 실행합니다.

컴퓨터 프로그램의 정의를 기억하십니까? 컴퓨터에서 실행되는 일련의 명령입니다.

실행 프로그램은 일반적으로 프로세스라고합니다. 이러한 프로그램은 메모리, 디스크 공간 및 파일 시스템과 같은 컴퓨터 시스템 또는 스마트 폰의 특정 리소스를 사용합니다. 실행중인 프로그램도 실행 중이라고 할 수 있습니다.

우리는 컴퓨터 프로그램을 실행할 때‘실행’이라는 단어를 사용합니다. 이러한 프로그램을 실행하는 데 걸리는 시간을 프로그램의 런타임이라고합니다.

앱이라고하는 프로그램을 보는 것이 일반적입니다. 또한 프로그램이 실행되거나 설계된 플랫폼 또는 환경과 프로그램을 연결합니다. Google 스프레드 시트와 같은 웹 브라우저에서 실행되는 웹 앱이 있습니다. CandyCrush와 같은 스마트 폰에서 실행되는 모바일 앱이 있습니다. Evernote 데스크톱 앱과 같은 데스크톱 앱도 있습니다.

해석 된 소스 코드는 소스 파일에서 직접 실행됩니다. 컴파일 된 소스 코드는 이진 파일로 변환됩니다. 그런 다음 이진 파일이 실행됩니다. 성공적으로 컴파일 한 후에도 런타임 중에 컴파일 된 소스 코드가 실패 할 수 있습니다. 3 부를 참조하십시오.

하이브리드 번역기

하이브리드 번역기는 인터프리터와 컴파일러의 조합입니다. 널리 사용되는 하이브리드 프로그래밍 언어는 Java입니다. Java는 먼저 소스 코드를 바이트 코드라고하는 중간 형식으로 컴파일합니다.

그런 다음 바이트 코드는 가상 머신이라고도하는 런타임 엔진에 의해 해석되고 실행됩니다. 이를 통해 하이브리드 변환기는 다양한 운영 체제에서 바이트 코드를 실행할 수 있습니다.

어셈블러

하위 수준의 어셈블리 언어를 이진으로 번역하기위한 어셈블러도 있습니다.

이 시리즈에서는 고급 언어에만 중점을 둘 것입니다.

번역기를 보는 좋은 방법은 그들 자신을 프로그램으로 보는 것입니다. 다운로드하거나 컴퓨터 시스템에 설치하고 기본 작동을 이해해야합니다.

자주 묻는 질문

초보자가 일반적으로 묻는 질문이 있습니다.

먼저 어떤 언어를 배우나요?

수백 개의 프로그래밍 언어가 있습니다. 그들은 인기, 지역 사회, 장기 지원, 교육학, 비즈니스 사용으로 순위가 매겨집니다. 또한 기능적, 명령 적, 정적, 강력 또는 느슨하게 입력되었는지 여부와 같은 기술별로 순위를 지정할 수 있습니다.

어떤 언어는 다른 언어보다 교육적입니다. 일부 언어는 교육용이며 사업용이 아닙니다. 예를 들어 아이들이 코딩하는 법을 배우기 위해 작성된 언어가 있습니다.

설정하고 배우기 쉬운 매우 강력한 언어가 있습니다. 파이썬은 그러한 프로그래밍 언어 중 하나입니다. 나는 보통 초보자에게 추천합니다.

"제 1 언어"에 대한 옵션에 대해 더 자세히 알아보고 싶으시면 Philip Guo의 훌륭한 연구가 있습니다.

새로운 언어를 배우고 싶을 때는 이제 그 언어 번역기가 필요하다는 것을 알게되었습니다. 컴퓨터 시스템에 설치 및 설정하는 프로그램입니다.

CLI (Command Line Interface) 사용법을 배우는 것이 좋습니다. CLI는 터미널 또는 셸입니다. 터미널을 GUI (Graphical User Interface)의 대안으로 생각하십시오.

GUI에서는 마우스 포인터를 통해 컴퓨터와 상호 작용합니다. 또한 디렉토리의 시각적 표현 및 모든 작업에 의존합니다.

그러나 CLI를 사용할 때 프롬프트에서 입력하는 명령이나 커서가 깜박이면 컴퓨터와 상호 작용합니다.

$ _

Windows에서 제공된 터미널은 명령 프롬프트입니다. Mac 및 Linux 사용자의 경우 기본 Bash 터미널이 이미 있습니다. Windows에서 동일한 경험을 얻으려면 Git Bash OR PowerShell을 설치하십시오.

앞으로

이제 프로그래밍에 대해 약간 소개했습니다. 첫 번째 코드 줄을 준비해야합니다. :)

시작하려면 다음이 필요합니다.

  • 컴퓨터 시스템
    이 시점에서 정교하거나 매우 비싼 것이 필요하지 않으며 잘 작동하는 컴퓨터 만 있으면됩니다.
  • CLI 설치
    CLI 사용 방법을 시작하려면이 충돌 코스를 권장합니다.
  • 텍스트 편집기 설치
    우리는 Part 2에서 이것으로 돌아올 것이다.
  • 프로그래밍 언어 배우기
    이 시리즈에서는 대부분의 프로그래밍 언어에 대한 기본 지식을 구성하는 기본 요소를 학습합니다.

놀리다

  • 프로그래밍을 시작하려면 어떤 기본 도구가 필요합니까?
  • bash (CLI)에서 다음 명령에 어떤 명령을 사용 하시겠습니까?
  • 현재 디렉토리를 확인하십시오
  • 'bin'이라는 디렉토리로 변경합니다 (bin은 현재 디렉토리에 있습니다)
  • ‘lib’라는 새 디렉토리를 만드십시오
  • ‘book.py’라는 새 파일을 만듭니다.
  • 모든 내용을 현재 디렉토리로 나열

개요

우리는 번역기 소개와 함께 프로그래밍의 기본 사항을 살펴 보았습니다. “소스 코드”라는 단어는 더 이상 이상하지 않습니다. 다음 부분에서 소스 코드가 무엇인지 자세히 살펴 보겠습니다.

퀴즈에 대한 답변

프로그래밍을 시작하려면 어떤 기본 도구가 필요합니까?
컴퓨터, 텍스트 편집기, 쉘 (터미널) 및 컴파일러 / 통역사

bash (CLI)에서 다음 명령에 어떤 명령을 사용 하시겠습니까?

  • 현재 디렉토리를 확인하십시오 : pwd
  • 'bin'이라는 디렉토리로 변경하십시오. cd bin
  • ‘lib’라는 새 디렉토리를 만듭니다. mkdir lib
  • 'book.py'라는 새 파일을 만듭니다. touch book.py
  • 현재 디렉토리의 모든 내용을 나열하십시오. ls
무료 미디어 저장소 인 Wikimedia Commons에서

2 부 — 소스 코드

프로그래밍의 개념을 이해 했으므로 소스 코드를 살펴볼 것입니다.

소스 코드는 기본적으로 Microsoft (.doc) 파일과 비슷하지만 약간 다릅니다. Windows 메모장과 같은 매우 간단한 편집기로 작성된 원시 텍스트 파일입니다. 이전 섹션에서 소스 코드를 이진으로 변환하기 위해 인터프리터 나 컴파일러가 필요하다는 것을 상기 할 것입니다. 소스 코드는 파일에 저장되어야하며 파일은 번역기에 입력으로 전달됩니다.

작성중인 언어에 따라 소스 코드 파일을 저장하기위한 지정된 확장자가 있습니다. 파이썬의 확장명은‘.py’입니다. 자바는‘.java’입니다. Php는‘.php’, PERL은‘.pl’입니다.

소스 코드 작성이 끝나면 번역기를 통해 실행해야합니다. 예를 들어 다음은 python 명령을 사용하여 Python 소스 코드를 실행하는 방법입니다.

시작하기 : 첫 번째 프로그램

  • 컴퓨터 시스템에서 Python을 설정하려면 여기의 지침을 따르십시오.
  • 간단한 편집기를 설치하여 소스 코드를 입력하십시오. 숭고한 텍스트 편집기를 사용하여 시작할 수 있습니다.
  • 편집기에서 새 파일을 열고 다음을 입력하십시오.
‘Hello Python!’을 인쇄하십시오.
  • 파일을 main.py로 저장하십시오
  • CLI에서 파일의 경로를 찾고 아래 명령을 입력하십시오.
$ 파이썬 main.py

결과는 다음과 같아야합니다.

일반적인 소스 코드 분석

이제 일반적인 소스 코드 파일의 내용을 살펴 보겠습니다. 다음은 일반적인 구성 요소입니다.

키워드

짧고 사람이 읽을 수있는 단어로 보통 키워드라고합니다. 그들은 당신이 배우는 언어에 독특하며 특별합니다. 우리는 이것을 순식간에 다시 올 것이다. 당신은 마음에 키워드의 일부를 배워야합니다. 다음은 Python에서 인식되고 사용되는 키워드 세트입니다.

https://www.programiz.com/python-programming/keyword-list

식별자

귀하가 발명 한 단어 — 예 프로그래머. 이 단어를 일반적으로 식별자라고합니다. 그것들은 당신이나 다른 프로그래머에 의해 만들어 질 수 있습니다. 그것들은 더 잘 알려진 라이브러리 형태의 플러그인 형태로 패키지되어 있습니다.

라이브러리의 예는 Math 라이브러리입니다. Javascript에서 사용되는 제곱근 (Math.sqrt)과 같은 기능에 액세스 할 수 있습니다.

많은 프로그래밍 언어에는 많은 라이브러리가 제공됩니다. 이를 일반적으로 SDK (Software Development Kit)라고합니다. 컴파일러와 함께 다운로드하여 기술, 앱 및 프로젝트 구축을 시작합니다. 이 외에도 웹 또는 모바일과 같은 특정 플랫폼을 구축 할 수 있도록 설계된 프레임 워크가 있습니다.

일부 식별자는 사용중인 언어와 함께 번들로 제공되며 사용자 이름 식별자로 사용되지 않을 수 있습니다. 예를 들어 Java의 단어 문자열입니다. 이러한 식별자와 키워드를 예약어라고합니다. 키워드는 아니지만 키워드와 마찬가지로 특별합니다.

모든 키워드는 예약어이므로 그 반대가 아닙니다.

당신이 선택한 단어는 언뜻보기에 그것을 보는 사람에게 의미가 있어야합니다.

식별자의 일반적인 사용은 변수 이름을 지정하는 것입니다. 우리는 이것을 조금 살펴볼 것입니다.

기본 데이터 유형

소스 코드, 숫자 (3, 5.7, -100, 3.142) 및 문자 (M, A)에서 다른 유형의 데이터도 찾을 수 있습니다. 일부 프로그래밍 언어에서 숫자는 정수와 같은 자체 유형으로 세분화됩니다.

정수는 부호 또는 부호 없음, 큰 정수 및 작은 정수일 수 있습니다. 크거나 작은 것은 실제로 그러한 수를 위해 예약 된 메모리 공간의 양에 달려 있습니다. 배우는 언어에 따라 소수 부분 (일반적으로 double 및 float)이있는 숫자가 있습니다.

또한 부울 데이터 유형이 true 또는 false로 평가됩니다.

복잡한 데이터 유형

위에서 설명한 데이터 유형을 기본, 기본 또는 기본 데이터 유형이라고합니다. 이러한 기본 데이터 유형으로부터보다 복잡한 데이터 유형을 구축 할 수 있습니다.

배열은 가장 복잡한 형태의 복잡한 데이터 형식입니다. 문자열은 문자 배열입니다. 이러한 복잡한 데이터 형식이 없으면 소스 코드를 작성할 때 이러한 데이터 형식을 사용할 수없는 경우가 많습니다.

문자 조합은 문자열입니다. 유추를 사용하기 위해 문자열은 인간에게 단어가 무엇인지 컴퓨터에 대한 것입니다. ‘온도계’라는 단어는 11 자로 구성되어 있습니다. 간단히 문자열이라고합니다. 문자열 처리는 그 자체로 배우기위한 광범위한 주제이며 모든 야심 찬 프로그래머가 연구해야합니다.

복잡한 데이터 유형은 사용하는 대부분의 프로그래밍 언어와 함께 제공됩니다. 클래스 시스템과 같이 프로그래머로서 우리 자신을 구축하는 다른 사람들이 있습니다. 이들은 (OOP) 객체 지향 프로그래밍이라고도합니다.

변수

변수는 단순히 이름이 지정된 메모리 위치입니다. 때때로 소스 코드의 데이터를 다시 사용하기 위해 데이터를 호출 할 수있는 장소에 유지하려고합니다. 이것은 일반적으로 컴파일러 / 통역사가 예약 한 메모리 위치입니다. 나중에 기억하기 위해이 메모리 위치의 이름을 지정해야합니다. 아래의 파이썬 코드 스 니펫을 고려하십시오.

pet_name = '힙합'인쇄 pet_name

pet_name은 변수의 예입니다. pet_name에 저장된 데이터 유형이 문자열이기 때문입니다. 문자열 변수라고합니다. 숫자 변수도 있습니다. 변수는 데이터 유형별로 분류됩니다.

상수

상수는 프로그램 수명 동안 변경되지 않는 값입니다. 대문자를 사용하여 일부 값이 상수 값이되도록합니다. 일부 언어는 상수 값을 만드는 방법을 제공하지만 다른 언어는 그렇지 않습니다.

일부 언어는 변수의 유형을 선언하는 고급 기능을 제공합니다. 우리는 종종 이러한 강력한 형식의 언어를 호출합니다. Java가 좋은 예입니다.

다른 사람들은 이러한 기능을 제공하지 않습니다. 이들은 느슨하게 입력되거나 동적 프로그래밍 언어입니다. 파이썬이 좋은 예입니다.

JavaScript로 상수 값을 선언하는 방법은 다음과 같습니다.

const petName = '히포'

리터럴

모든 소스 코드에는 코드 주위 어디에서나 사용하는 데이터 형식이 있습니다. 이러한 리터럴을 변수 또는 상수와 혼동하지 않아야합니다. 소스 코드를 살펴보면 리터럴을 볼 수 있습니다. 문자열, 숫자, 소수 또는 기타 데이터 유형일 수 있습니다.

위의 소스 코드 스 니펫에서 'Hippo'라는 단어는 문자열 리터럴 인 리터럴입니다. 소스 코드를 편집 할 때까지 항상 'Hippo'가됩니다. 코딩을 배우면서 소스 코드의 많은 부분을 변경하지 않고 유지 관리하기 쉬운 방식으로 소스 코드의 리터럴을 관리하는 방법을 배우게됩니다.

문장 부호 / 기호

대부분의 소스 코드에서 일반적으로 프로그래밍 언어에 따라 다른 문장 부호를 찾을 수 있습니다. Java는 예를 들어 Python보다 문장 부호가 더 많습니다.

일반적인 문장 부호는 쉼표 (,), 세미콜론 (;), 콜론 (:), 중괄호 ({}), 대괄호 (()), 대괄호 ([]), 따옴표 (“”), 파이프 ( |), 슬래시 (\), 마침표 (.), 물음표 (?), 캐럿 (^) 및 백분율 (%).

문장 부호가 가장 친한 친구 인 코딩 세계에 오신 것을 환영합니다. 당신은 자신을 많이 입력 찾을 수 있습니다.

연산자

작업을 수행하기 위해 코드를 작성할 가능성은 매우 높습니다. 가장 작은 방법으로 소스 코드에서 할당 작업을 수행합니다. 우리는 우리가 사용하는 프로그래밍 언어로 많은 수의 연산자를 제공받습니다. 예는 더하기 (+), 나누기 (/) 곱하기 (*), 빼기 (-) 및보다 큼 (>)을 포함합니다.

운영자는 일반적으로 다음과 같이 분류 할 수 있습니다.

  • 할당 연산자
    이것은 때때로 동일하다고 잘못 해석되기도합니다. 같음은 두 값을 비교하는 데 사용됩니다. 할당 연산자는 pet_name = 'Hippo'와 같은 변수에 값을 넣습니다.
  • 산술 연산자
    덧셈 및 뺄셈과 같은 산술 작업을 수행하는 연산자를 구성합니다. 일부 언어는 다른 언어에는없는 산술 연산자를 제공합니다. 예를 들어 계수 연산자 (%)는 나눗셈 연산에서 나머지 값을 반환합니다.
  • 관계 연산자
    값을 비교하는 데 사용됩니다. 그것들은 크거나 작거나 같거나 같지 않습니다. 표현은 배우는 프로그래밍 언어에 따라 다릅니다. <>는 일부 언어에서는 같지 않지만 다른 언어에서는! = 또는! ==입니다.
  • 논리 연산자
    논리 연산을 계산하는 데 사용됩니다. 일반적으로 사용되는 논리 연산자는 및입니다. 일부 언어는 이러한 연산자를 && for 및, ||와 같은 기호로 나타냅니다. 또는 아닙니다. 논리 연산 값은 일반적으로 부울 값 true 또는 false로 평가됩니다.

코멘트

문서화는 코딩 활동의 중요한 측면입니다. 다른 프로그래머에게 코드를 설명하는 방법입니다. 이것은 때때로 코드의 일부에 추가되는 주석을 통해 수행됩니다. 주석을 통해 다른 프로그래머에게 코드가 작동하는 데이터 종류 및 생성되는 출력 종류를 안내 할 수 있습니다.

일반적으로 컴파일러는 주석 인 코드 줄을 무시합니다.

의견은 언어마다 다릅니다. #은 파이썬에서 주석을 소개하는 데 사용됩니다.

다음은 Python의 주석 예입니다.

N 개의 피보나치 계산을위한 프로그램 스 니펫

Java, C 및 C ++에는 Python의 #과 같은 단일 행에 대한 주석이 있지만 // 기호가 대신 사용됩니다. 여러 줄 주석도 있습니다 * / *… * /. 배우기로 선택한 언어로 주석에 대한 자세한 내용을 읽을 수 있습니다.

공백 및 탭

이들은 작성하는 코드 사이에 공백이 있습니다. 이것은 스페이스 바나 키보드의 탭 키를 눌렀을 때 수행됩니다.

앞으로

컴퓨터 시스템에서 Python을 올바르게 설정하고 첫 번째 프로그램을 실행하십시오.

놀리다

간단한 퀴즈가 있습니다.
아래에서 Java 소스 코드 스 니펫에서 지금까지 연구 한 다양한 요소를 식별하십시오.

// Factorial의 재귀 구현
import java.util.Scanner;
RecursiveFactorial {클래스
  공개 정적 무효 main (String [] args) {
    스캐너 입력 = 새 스캐너 (System.in);
    System.out.print ( "계승 찾기 :");
    int num = input.nextInt ();
    System.out.println ( ""+ num + "의 팩터 ="+ fact (num));
 }
 정적 사실 (int n) {
  if (n <2)는 1을 리턴하고;
  return n * fact (n-1);
 }
}

개요

소스 코드가 무엇인지 소개하고 일반적인 소스 코드의 내용을 살펴 보았습니다.

컴파일되거나 번역 된 경우 여러 가지 이유로 코드가 실행되지 않을 수 있습니다. 이러한 이유는 일반적으로 소스 코드의 오류와 관련이 있습니다. 이러한 오류를 버그라고합니다.

이러한 버그를 찾아서 제거하는 작업을 디버깅이라고하며 프로그래머에게 배워야하는 기술입니다. 다음 부분에서 어떤 버그가 있는지 살펴 보겠습니다.

퀴즈에 대한 답변

아래에서 Java 소스 코드 스 니펫에서 지금까지 연구 한 다양한 요소를 식별하십시오.

키워드 :
import, class, public, static, void, new, int, long, if, return

식별자 :
팩토리, 메인, 문자열, 인자, 입력, 시스템, in, out, print, println, num, nextInt, fact, n

리터럴 :
문자열 리터럴 —“Factorial of”=“계승 찾기 :”
정수 리터럴 — 2, 1

연산자 :
할당 연산자 =
연결기 + (문자열을 결합하기위한)
<미만
곱하기 *
빼기-

문장 부호 및 기호
{} [] (); .

논평
// Factorial의 재귀 적 구현

3 부 — 디버깅

코드 스 니펫을 시도하거나 코드의 실제 문제를 해결하려고하면 프로그램이 중단되고 중단되고 실행이 중지되는 순간이 있음을 곧 알게 될 것입니다.

이는 종종 런타임의 버그 또는 예외로 알려진 오류로 인해 발생합니다. 코드에서 버그를 찾아서 제거하는 작업은 디버깅입니다. 코드를 더 많이 시도할수록 코드 디버깅에 더 익숙해집니다. 우리는 우리 자신의 코드를 디버깅 할뿐만 아니라 다른 프로그래머가 작성한 코드를 디버깅 할 수도 있습니다.

시작하려면 소스 코드에 나타날 수있는 일반적인 버그를 식별해야합니다.

구문 오류

이러한 오류로 인해 소스 코드가 컴파일 된 프로그래밍 언어로 컴파일 될 수 없습니다. 컴파일 타임 또는 소스 코드 해석 중에 감지됩니다. 그들은 또한 린터에 의해 쉽게 감지 될 수 있습니다. 나중에 린터에 대해 조금 더 배울 것입니다.

대부분 코딩하려는 언어의 형식이나 구조를 깨뜨릴 때 발생합니다. 예에서 방정식에 닫는 괄호가 없습니다.

시맨틱 오류

논리적 오류라고도하는 의미 오류는 모든 오류 중 가장 문제가됩니다. 쉽게 감지 할 수 없습니다. 시맨틱 오류가 있다는 신호는 프로그램이 성공적으로 실행되지만 원하는 출력을 생성하지 않을 때입니다.

이 예제를 고려하십시오.

3 + 5 * 6

일반적으로 수학에서 BODMAS라고하는 우선 순위에 따라 곱셈 부분을 먼저 평가 한 다음 최종 결과는 33이됩니다. 프로그래머가 덧셈을 먼저 평가하기를 원하면 원하는 결과와 다른 결과를 얻습니다. 산출. 이와 같은 오류는 의미 적 오류이며 구조 (구문)보다 의미와 관련이 있습니다.

3 + 5 주위의 괄호는 대신 48의 원하는 출력을 제공합니다.

(3 + 5) * 6

런타임 오류

시맨틱 오류와 마찬가지로 런타임 오류는 컴파일 타임에 감지되지 않습니다. 시맨틱 오류와 달리 런타임 오류는 프로그램을 중단시키고 더 이상 실행되지 못하게합니다. 일반적으로 소스 코드 내에서 일부 계산 결과가 예기치 않게 발생합니다.

다음은 좋은 예입니다.

입력 = 25x = 0.8 / (Math. sqrt (입력)-5)

위의 코드 스 니펫은 성공적으로 컴파일되지만 25를 입력하면 ZeroDivisionError가 발생합니다. 이것은 런타임 오류입니다. 또 다른 일반적인 예는 StackOverflowError 또는 IndexOutofBoundError입니다. 실제로 중요한 것은 이러한 오류를 식별하고 처리 방법을 배우는 것입니다.

소스 코드가 실행되는 플랫폼 또는 환경에서 메모리와 공간을 사용하는 방식으로 인해 오류가 발생합니다. 또한 런타임 오류입니다. OutOfMemoryError 및 HeapError와 같은 오류는 일반적으로 소스 코드가 리소스를 얼마나 많이 사용하는지에 의해 발생합니다. 알고리즘에 대한 지식이 풍부하면 리소스를 더 잘 사용하는 코드를 작성하는 데 도움이됩니다.

더 나은 성능을 위해 코드를 다시 작성하는 과정을 최적화라고하며 관련이없는 단어는 리팩토링입니다. 코딩에 더 많은 시간을할수록 이들도 염두에 두어야합니다.

디버깅

다음은 코드 디버깅에 대한 몇 가지 팁입니다.

  • 린터 사용
    린 터는 소스 코드를 읽어서 코딩중인 언어의 예상 표준을 준수하는지 확인하는 데 도움이되는 도구입니다. 많은 프로그래밍 언어에 대한 린터가 있습니다. 배우고있는 언어에 맞는 언어를 구하십시오.
  • 간단한 편집기를 통한 IDE
    배우고있는 언어에 맞게 설계된 IDE를 선택할 수 있습니다. IDE는 통합 개발 환경을 나타냅니다. 코드 작성, 디버깅, 컴파일 및 실행을 위해 구축 된 소프트웨어입니다. 일반적으로 코드를 보거나 단계별로 사용할 수있는 강력한 디버깅 키트가 제공됩니다.
    Jetbrains는 Webstorm 및 IntelliJ와 같은 훌륭한 IDE를 만듭니다. NetBeans, Komodo, Qt 편집기, Android Studio, XCode (Mac과 함께 제공)가 있습니다.
  • 큰 소리로 코드 읽기
    이것은 의미 상 오류를 찾을 때 일반적으로 유용합니다. 코드를 큰 소리로 읽는 동안 오류를 읽을 가능성이 높습니다. 아마도 당신이 잘못했을 수도 있습니다.
  • 오류 로그 읽기
    컴파일러가 오류를 표시 할 때 행 번호 또는 플래그가 지정된 코드 부분을 확인하십시오.

앞으로

초보자는 서적, 온라인 자습서 또는 비디오에서 코드 작성을 배우게됩니다. 당신이 볼 때 종종 코드를 입력합니다.

이러한 코드를 작성하거나 실행하면 코드를 깨는 방법을 배워야합니다. 어떻게합니까?

코드의 작동 방식을 확인하려면 무언가를 변경하십시오. 아무 것도 가정하지 않고 진행 상황을 이해하고 있다고 확신하십시오.

놀리다

1 . 아래의 파이썬 코드 스 니펫에서 발생할 수있는 버그는 무엇입니까?

아이템 = [0,1,2,3,4,5]
항목 인쇄 [8]
// 힌트 : 여기 항목은 6 개의 항목이있는 배열입니다. 예를 들어 네 번째 항목을 검색하려면 items [3]을 사용합니다. 우리는 0부터 계산을 시작합니다.

2. 아래 파이썬 코드 스 니펫의 가능한 버그는 무엇입니까?

입력 = 하마
입력 == 'Hippo'인 경우 :
  'Hello, Hippo'인쇄

섹션 요약

축하합니다! 버그 단어는 더 이상 이상한 단어가 아니며 이제 버그를 고르는 것도 마찬가지입니다. 다음으로 일상적으로 작성하는 코드의 일반적인 흐름을 살펴 보겠습니다.

퀴즈에 대한 답변

아래의 파이썬 코드 스 니펫에서 발생할 수있는 버그는 무엇입니까?
(1) 런타임 오류 : 인덱스 범위 초과 오류
(2) 구문 오류 : 1 행에 시작 인용 부호가 없습니다.

http://www.publicdomainpictures.net/

4 부 — 기본 코딩 흐름

코드 라인, 표현 및 진술

모든 소스 코드의 단위는 LOC (Line of Code)입니다. 가장 간단한 프로그램은 코드 라인입니다. LOC는 키워드, 기호 또는 명령문 일 수 있습니다. 별도의 줄에있는 한 코드 줄입니다.

간단한 코드 줄을 생각해 보자.

면적 = 0.5 * 기본 * 높이

0.5 * 기본 * 높이는 표현식입니다. 표현식은 연산자와 피연산자의 조합입니다. 여기에 주어진 예에서 피연산자는 0.5, 기본, 높이입니다. 0.5는 부동 소수점 리터럴이고, 기본 및 높이는 변수입니다. 연산자는 * (곱하기)입니다.

LOC로서 자체적으로 표현하는 것은 의미가 없을 수 있습니다. 식의 값을 다른 변수에 할당 할 때 영역 위의 경우 명령문을 명령문이라고합니다. 키워드에 표현식을 첨부 할 때 여전히 진술입니다. 예 : return 0.5 * base * height

이 섹션의 나머지 부분에서는 명령문을 기호 S로 표시합니다. n 번째 명령문은 명령문 시퀀스 (또는 세트) 사이에서 Sn이됩니다.

프로그래밍을 빠르게 이해하기 위해서는 기본적인 코딩 흐름을 이해하는 것이 좋습니다. 기본 흐름은 제어 흐름이라고도합니다. 이러한 흐름을 이해하면 배우는 많은 프로그래밍 언어에서 찾을 수 있습니다.

이 글에서 제시된 예는 순전히 기본입니다. 제공하는 키워드에 대한 심층적 인 지식을 얻으려면 배우고있는 언어를 참조해야합니다.

또한 여기에 소개 된 기본 흐름은 프로그래밍의 디자인 패턴과 다릅니다. 이러한 기본 흐름을 먼저 이해하십시오. 나중에 배울 때 프로그래밍에서 일반적인 디자인 패턴을 따라 잡습니다.

기본 프로그래밍 흐름은 다음과 같습니다.

  • 잇달아 일어나는
  • 조건부 / 분기
  • 반복 / 반복 / 루프

잇달아 일어나는

이것은 가장 기본적인 흐름이며, 한 명령문이 다른 명령문 이후에 실행됩니다. 실제로 모든 다른 흐름은 순차적 흐름으로 해석됩니다 (나중에 자세히 설명).

S1
S2
S3
.
.
.
Sn

JavaScript와 같은 일부 프로그래밍 언어에서는 S3이 S1보다 먼저 실행될 수 있습니다. S1이 비동기 작업이라고하는 데이터베이스 또는 파일 작업과 같이 시간이 더 걸릴 수있는 일부 작업에 의해 차단 된 경우에 발생합니다. 이와 같은 경우에는 여러 가지 방법이 있습니다. 걱정할 필요없이 배우기 위해 프로그래밍 언어를 선택할 때 배우는 것은 쉬운 일입니다.

조건부 / 분기

실행하는 문은 조건에 따라 결정됩니다. 여기서 핵심 키워드는 if 키워드입니다. 가장 많이 사용되는 코딩 흐름 중 하나입니다.

가장 간단한 조건부 패턴은 다음과 같습니다.

(조건)이면 :
   S1

위의 예에서 S1이 실행되거나 아무 것도 발생하지 않습니다. 주어진 조건이 참인 경우에만 S1이 실행됩니다.

다른 조건부 패턴은 다음과 같습니다.

(조건)이면 :
  S1
  S2
그밖에:
  S3
  S4

주어진 조건에 따라 S1-S2 또는 S3-S4를 실행하는 것으로 읽을 수 있습니다. 조건이 true이면 S1 및 S2가 처리됩니다. 그렇지 않으면 명령문 S3 및 S4가 처리됩니다. 실제로 이것은 순차적 인 흐름입니다.

S1
S2

우리는 또한 다중 조건 스타일을 가지고 있습니다 :

if (condition1)이면 :
  S1
그렇지 않으면 (condition2) 그렇다면 :
  S2
그밖에:
  S3

여기서 condition1이 true이면 S1이 처리됩니다. 그렇지 않으면 condition2가 테스트되고 true이면 S2가 처리됩니다. 이것은 계속 될 수 있습니다.

다중 조건 스타일의 경우 많은 프로그래밍 언어가 switchstatement를 제공합니다. switch 문의 패턴은 다음과 같습니다.

스위치 값 :
  사례 조건 1 :
    S1
    단절
  
  사례 조건 2 :
    S2
    단절
태만:
    S3

condition1 및 condition2는 switch 문의 값과 비교됩니다. 이들 중 하나라도 해당 값에 해당하면 케이스 블록의 명령문이 실행됩니다.

조건부 흐름에 대한 다른 선택이 있습니다. 일부는 조건부 연산자 (:?)와 같이 배우기로 결정한 언어 및 순환 및 중단과 같은 분기를 용이하게하는 다른 키워드에 고유합니다. 조건 / 분기 흐름을 이해하는 데 시간을 투자하십시오.

반복 / 반복 / 루프

반복 / 반복 플로우는 일부 조건이 충족되는 한 명령문을 계속 실행하고 조건이 더 이상 충족되지 않으면 명령문 실행을 중지합니다.

패턴은 다음과 같습니다.

(조건) 동안 :
  S1
  S2

위의 예에서, 명령문 S1 및 S2는 한 번, 여러 번 실행되거나 전혀 실행되지 않을 수 있습니다. while 문이 처음 나타날 때 주어진 조건이 참이면 S1과 S2가 처리됩니다. while 조건이 다시 확인되고 조건이 참인 한 S1 및 S2가 실행됩니다.

조건이 거짓이되는 순간 S1 및 S2의 실행이 중지됩니다.

조건이 참인 경우 위의 진술 결과는 다음과 같습니다.

S1
S2
S1
S2
S1
S2

어떤 코딩 흐름입니까? 순차적으로 대답했다면 매우 정확합니다. 여전히 알 수 있듯이 다른 흐름은 순차적 흐름으로 해석됩니다.

반복 패턴은 다음과 같습니다.

해야 할 것:
  S1
  S2
동안 (조건)

이 예에서 S1 및 S2는 임대시 한 번 또는 여러 번 실행됩니다. 조건이 테스트되기 전에 실행되기 때문입니다.

많은 프로그래밍 언어에서 반복 흐름을 구현하기 위해 do와 while과 같은 키워드가 제공됩니다. 또 다른 일반적인 키워드는 for 키워드입니다. for 문의 일반적인 패턴은 다음과 같습니다.

(초기 값; 조건; 초기 값 감소 / 증가) :
  S1
  S2

많은 언어는 배열이나 구조체와 같은 복잡한 객체에서 각 항목을 처리하는 데 사용되었습니다.

놀리다

다음 Python 코드 스 니펫에서 코딩 플로우를 식별하십시오.

numlist = []
cnt = 0
cnt> = 0 인 동안 :
  m = int (raw_input ())
  m <0 인 경우 :
    단절
  numlist.append (m)
  cnt = cnt + 1

개요

여기에서 다루는 흐름은 기본 흐름입니다. 많은 코드를 그룹화하고 이름을 지정할 수있는 방법이 있습니다. 이런 식으로 필요할 때마다이 코드를 호출 할 수 있습니다. 이것을 절차라고합니다. 코드 묶음이 일부 작업을 수행하고 값을 반환하는 경우 함수가 있습니다.

절차와 기능의 구현 방법은 언어에 따라 다릅니다. 모든 언어의 기본을 얻기 위해 이것을 건너 뛸 수 없습니다. 코드 구성에 매우 중요합니다. 실제로, 여기에서 코드의 빌딩 블록이 모듈 식 프로그래밍이라고도합니다.

함수를 이해하는 순간을 배우게 될 다른 흐름이 있습니다.

그러나 프로 시저와 함수 내에는 순차, 조건부 및 루프 / 반복 흐름과 같이 여기서 다루었던 멋진 코딩 흐름이 여전히 남아 있습니다.

앞으로

이제 컴퓨터 프로그래밍의 가장 기본적인 개념을 배웠습니다. 더 많은 것을 배우고 싶거나 소프트웨어 개발에서 경력을 쌓고 싶다면 더 깊은 물 속으로 뛰어 들기 만하면됩니다. 배우는 데 도움이되는 많은 자료가 있습니다. 경험 수준에 따라 어느 것을 선택해야하는지 아는 것이 중요합니다.

당신의 친구들 사이에서 더 숙련 된 프로그래머들로부터 듣는 새로운 단어에 압도되지 마십시오. 당신은이 용어들을 기록하기 위해 패드를 유지할 수는 있지만, 그 의미를 알아 내기 위해 압력을 가하지 마십시오. 배우고 연습하면서 따라 잡을 수 있습니다.

다음은 코딩 경력을 빠르게 시작하고 여기에서 얻은 기초를 구축하는 데 도움이되는 몇 가지 리소스입니다.

  • https://www.codecademy.com/
    파이썬 코스를 선택하세요
  • https://app.pluralsight.com/library/courses/what-is-programming/table-of-contents
    Pluralsight 무료 코스

참고 : 같은 주제에 대해 너무 많이 읽지 않는 것이 좋습니다. 나는 당신이 배운 작은 행동, 즉 실천에 대한 행동을 믿습니다. 이것이 내가 배우기 위해 여기에 너무 많은 링크를 버리지 않는 이유입니다. 초보자가 아닌 경우 이미 알고있는 내용을 바탕으로 Google을 검색하거나 다른 사람을 찾아보세요.

최종 도전

나는 당신에게 다음과 같이 도전합니다 :
다음과 같은 문제를 해결하십시오.

  • 온라인에서 간단한 앱을 찾아서 배운 프로그래밍 언어로 재현

또는

  • 버킷리스트 앱처럼 단순한 아이디어라도 생각하십시오.
    이 아이디어를 중심으로 앱을 빌드하십시오.

이 기사를 시작하려면 codementor의이 기사를 추천합니다.

퀴즈에 대한 답변

다음 Python 코드 스 니펫에서 코딩 플로우를 식별하십시오.

  • 순차적 흐름
  • 되풀이
    while 문
  • 가정 어구
    if 문

이 글을 검토해 주신 Maya Neria, Joshua Ugba, Mohini Ufeli, Surajudeen Akande에게 감사의 말을 전합니다. Andela의 편집 팀, 리뷰를위한 John Adesanya, 일러스트를위한 John Adesanya, 그리고 'Kunmi' 코딩하는 법을 배우려는 그녀의 소망.

당신이 이것을 좋아한다면, 박수 아이콘을 클릭하면 다른 사람들이 이것을 여기 매체에서 볼 수 있습니다. 또한 질문이나 관찰 사항이 있으면 의견 섹션을 사용하여 생각을 공유하십시오.