1. 프로그래밍이란?
1. What is Programming
프로그래밍은 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다, 컴퓨터와 커뮤니케이션하기앞서 내가 무엇을 원하는지알아야한다
Programming is kind of communication requires computer to execute
but before communicating with computer, need to know what i want
문제를 명확하게 이해하고 적절한 문제 해결 방안이 필요
need clearly understanding this problem and appropriate solution
이때 요구되는것이 문제해결능력이다
required at this time is problem-solving skills
문제해결능력에 있어서 알고리즘 학습은 큰도움이 되지만 , 문제해결능력은 개발자의 숙명과도 같은것
Algorithmic learning is helpful for problem-solving skills , but problem-solving skill are the same as deverloper s fate
프로그래밍이란 0,1 만 아는 기계에게 우리가 정확히 원하는것을 실행할수있게 정확하고 상세하게 설명하는 작업이고
programming is the task of explaining exactly what we want to in detailt to machine only knew 1 or 0
그결과물이 바로 코드다
that result is the code
문제 해결 방안을 생각할때 컴퓨터의 입장에서 생각해야한다, 이때 필요한것이 컴퓨터적 사고방식이다
when we thinkg of a solution to a problem, we had to think from the computers point of view
at this time , required Computational thinking
사람의 일반적인 사고방식은 매우 포괄적이며, 실생활에서 경험하고 있는 사항에대해 당연하게 생각하는 경우가있다
humans general way of thinking is so comprehensive, There are times when we take things for granted that we are
experiencing in real life
문제해결능력은 직감과 직관의 영역이라고 볼수있다고한다, 문제를 바라보는 우리의 사고와 경험에 영향을 많이 받는다
Problem-solving skill can be seen as an area of intuition ,it is influenced by out thinking and experience of looking at the problem
예를들어 "듣다" 라는 행위를 사람은 하나의 간단하고 당연한 기능으로 생각한다
For example we are consider "listening" is simple and natural function t
하지만 컴퓨터에게 이행위를 설명하는것은 굉장히 어렵다
but explain to computer for about "listening" is sooooo difiicult
우리는 소리의 크기를 크다, 작다라고 표현하지만 상대적인 기준이기때문에 기준이 정확하지않다
we describe the magnitude of the sound as large or small, but this is not accurate coz it is a relative criterion
컴퓨터에게는 숫자를 사용해서 설명해야한다 (현재 소리보다 1단계 크게 조정해라), (볼륨을 60으로 맞춰라)
we need to use numbers to explain to the computer (1level louder than now) (set the volume on 60)
좋다, 붉다, 사랑같은건 컴퓨터에게 너무 어렵지만 복잡한 수학계산은 컴퓨터에게 너무 쉬운일
"Like", "burning","Love" is too hard to computer , but complicated calculate is easy work to computer
(여담 사랑모르는 바보...컴퓨터...)
ps. stupid computer ,coz...he never know about love...
2.프로그래밍 언어
2.programming language
문제 해결능력을 바탕으로 결정된 문제 해결방안은 컴퓨터에게 전달되어야 한다. 해결방안을 실행하는것은 컴퓨터
problem solutions determined based on problem-solving skills should be deliver to computer
인간이 사용하는 이해하는 언어가 아닌 컴퓨터가 이해할수있는 언어 , 기계어로 해결방안을 전달해야한다
language that computer can understand, not a language that humans can understand
인간이 기계어를 이해하여 직접 기계어로 명령을 전달하는것은 매우 어렵다
very difficult for human to understand computer language and deliver directly to computer
기계어는 우리가 사용하는 언어와는 너무나도 다른 체계를 가지고 있다 (비트 단위)
computer language is sooo diffrent with human languade (have some bit)
직접 기계어로 명령을 전달하는것을 대신할 가장 좋은방법은 인간이 이해할수있는 약속된 Syntax(구문,문법)으로 구성된
best solution is to delivering instruction in direct computer language is try writing programs using
프로그래밍 언어를 사용해서 프로그램을 작성하고,
programming language consist of promised syntax that human can understand
컴퓨터가 이해할수있는 기계어로 바꿔주는 일종의 번역기를 이용하는것
like a using translator for computer
이 일종의 번역기를 compiler(컴파일러), interpreter(인터프리터) 라고 한다
we called this translator a compiler , and interpreter
언어에는 자연어와 인공어 가 있다
programming language has natural language and artificial language
프로그래밍언어란 컴퓨터와 대화에 사용되는 일종의 표현수단이고 인간과 컴퓨터 모두가 이해할 수 있는 약속된 형태의 인공어
programming language is kind of used in computer and conversation , and it s a promised form artificial language that
both humans and computer can understand too
프로그래밍은 프로그래밍 언어를 사용하여 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다
programming is kind a communication that using programming language to require a computer to execute
프로그래밍 언어는 Syntax(구문) 과 Semantics(의미)의 조합으로 표현된다
programming language is expressed as a combination of Syntax and Semantics
3. 구문과 의미
3. Syntax & Semantics
프로그래밍 학습 시작은 프로그래밍 언어의 문법을 배우는것부터 시작한다, 외국어를 배우는것과 비슷하다
programming learning begins , learning grammer of programming language, simillar to learing foreign language
하지만 문법을 잘안다고해서 외국어를 잘하지는않음 (팩트폭격)
but we are not good foreign language just know grammer well
외국어를 잘하려면 말하는 사람의 말이나 문장을 정확하게 이해하고, 문맥에 맞는 적적한 단어선택과 문장을 끝맺을수있는 문장구성이 필요하다
be good at foregin language , we need to understand the speakers words or sentences accurately, and need to select
appropriate words for the context , and organize sentences that can end of the sentence
문법에 맞는 문장을 구성하는것은 당연하고 , 문장 속에 의미를 가지고있어야 언어의 역할을 충실히 수행할수있다
It is natural to construct a sentence that is grammatically correct, and it is necessary to have meaning in the sentence to faithfully fulfill the role of language
Colorless green ideas sleep furiously.
– 노엄 촘스키(Noam Chomsky)
MIT 에 유명한 언어학자인 노엄 촘스키는 언어의 의미는 문맥에 있는것이지, 문법에 있는것이 아니라고 말하고있다
Noam Chomsky wrote this sentence, want prove meaning of language is in context ,not in grammer
위 문장은 문법적으로 전혀 문제가 없지만 의미가 없는 문장이다, 프로그래밍도 똑같다!
this sentence don t have any grammer problem , but don t have any mean , programming is same
const number = 'string';
console.log(number * number); // NaN
자바스크립트 변수에는 어떠한 타입의 값을 할당할수있다, 위 예제는 문법적으로 전혀 전혀 문제가없다
any type of value can be assigned to JS variable, this example don t have any grammer problem
하지만 의미적으로 맞지않는다. number 라는 변수 이름에 string 할당되어있기 때문이다
but this example meaning is wrong, coz "string" is assigned to the variable name "Number"
number 라는 변수 이름에는 숫자를 할당하는것이 의미적으로 옳다
"number" is assigned to the variable name "Number" is correct meaning
결국 문제해결 능력을 통해 만들어낸 해결방안은 프로그래밍언의 문법을 통해 표현한다
soulution created through problem-solving skills is expressed through the grammer of programming language
작성된 코드는 해결방안의 구체적인 결과물이다
code is concrete result of the solution
이것은 반드시 프로그래밍 언어의 문법에 맞아야하고 내가 실행하고자 하는 바를 정확하게 요구하는것
must be correct of programming language grammer and requires exactly what i want to do
요구사항이 실현되어야 한다
requirements must be realize
프로그래밍 언어들이 제공하는 문법을 적절하게 사용해서 변수를 통해 값을 저장하고 참조하며 연산자로 값을 연산하고, 평가하고
using the grammer provided by programming language appropriately, values are atored and refernced through
variables , values are calculted with operators and values are evaluated
조건문과 반복문에 의한 흐름제어로 코드의 실행순서를 컨트롤하고 함수로 재사용이 가능한 집합을 만들며
Flow control by conditional and repetitive statements controls the order of code execution and creates a reusable set as a function
객체, 배열 등으로 자료를 구조화한다
Organize data with objects, arrays
프로그래밍은 요구사항을 분석하여 적절한 자료구조와 함수의 집합으로 변환한후 , 그흐름을 제어하는것
programming is analyzed the requirements, converts them into appropriate data structures and sets of functions
and then control the flow
4.기본 개념과 동작 원리 이해의 중요성
4. The importance of understanding basic concepts and principles of action
프로그래머가 해야할일은 문제를 해결하기위한 방법을 고민하고 이것을 문법에 맞게 코드를 작성하는것
programmers need to do think about how to solve the problem and write code according to the grammer
작성된 코드는 의도한대로 정확하게 동작해서 문제를 해결해야한다
written code should work exactly as intended to solve the problem
작성된 코드가 컴퓨터 내부에서 어떻게 동작할것이고 그리고 결과가 어떨것인가에 대해 예측가능헤야하고 남들에게 설명해줄수도있어야한다
we had to can guess about how the written code ll work inside of computer and what is that result will be
and we had to be able to explain written code to others
프로그래밍 언어의 기본개념과 동작원리를 정확히 이해하는것이 굉장히 중요하다
It is very important to accurately understand the basic concepts and principles of programming language
성장을 위해서 기본기를 다져야한다
we need to learn basic skills for growth
기본개념은 문맥에 맞는 정확한 용어를 사용할수있게 도와준다, 명확한 의사소통은 협업의 기본이고 필수이다
basic concepts help us to use contextual correct terminology, clear communication is fundamental
and essential to collaboration
코드의 동작을 예측해야하만 자신이 작성한 코드의 문제점을 쉽게 알수있고,실행전에 문제를 발견할수도 있다
we had to predict the behavior of the code, but we can easily understand the problem of the code we wrote
and we can find the problem before execution
기본기는 엄청나게 중요하다
basic skill is super super super important
Reference
'Programming(ko,en) > Javascript' 카테고리의 다른 글
How does a browser works? (0) | 2022.10.12 |
---|---|
What is the JavaScript? (1) | 2022.10.10 |
JS 실행컨텍스트?...그게 뭔데요?... (0) | 2022.02.05 |
JS 스코프에 대해서...알고싶지않지만 알아야겟지 (0) | 2022.01.23 |
JS 제어문이란? (0) | 2022.01.23 |