이 글은 프로그래밍 입문자 혹은 초보자 분들을 위한 글입니다

이 글에서는 내가 생각하는 효율적인 입문방법을 소개하고자합니다

학습에는 왕도가 없고 사람마다 맞는 방법이 다를 수 있다는 점 참고하시기 바랍니다

Zm9yIChsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7CiAgIGNvbnNvbGUubG9nKGkpOwp9CmDsnbQg7L2U65Oc7JmAYAoKbGV0IGkgPSAwOwp3aGlsZSAoaSA8IDEwKSB7CiAgIGNvbnNvbGUubG9nKGkpOwogICBpKys7Cn0KYArsnbQg7L2U65OcCgrssKjsnbQg7J6I7J2E6rmM7JqUPwoKZm9y66Gc66eMIOqwgOuKpe2VmOqzoCB3aGlsZeuhnOuKlCDrp4zrk6Qg7IiYIOyXhuuKlCDqt7gg66y07Ja46rCA6rCAIOyeiOydhOq5jOyalD8KYA==
for (let i = 0; i < 10; i++) { console.log(i); } `이 코드와` let i = 0; while (i < 10) { console.log(i); i++; } ` 이 코드 차이 있을까요? for로만 가능하고 while로는 만들 수 없는 그 무언가가 있을까요? `

그런거 없고 차이점 없습니다

그러면 같은 역할을 하는 while랑 for둘다 알아야 할지에 대해 이야기해보려고 합니다

처음에는 둘중 하나의 사용법만 익히기를 추천합니다

그리고 선택한 한개에 익숙해지기 위해 많이 사용해보는것이 아주아주 중요합니다

익숙해졌을 무렵 나머지 한개를 익히는 건 별 문제 아닙니다.

그때가 되어서도 나머지 한개는 익히지 않아도 상관없습니다.

이쯤에서 궁금해지는것이 있습니다.

그러면 왜 같은역할을 하는게 두개나 있지?

프로그래밍언어는 시간이 흐르면서 계속 버전이 올라가요

구버전으론 만들수 없는 프로그램을 신버전으로는 만들 수 있게된다는 의미일까요?

그렇지 않습니다

구버전으로도 신버전으로도 동일한 프로그램을 만들 수 있습니다

그런데 이때 차이가 있습니다

그 차이는 코드의 모습입니다

신버전의 코드로 더 예쁘게 만들수 있습니다

프로그래밍 할때에는 고려해야할 가치들이 있는데요

일단 성능을 생각해야겠지요

또 성능만큼 중요한것이 예쁜코드입니다

버전 올라감에 따라 새로운 문법들이 생겨납니다

이렇게 생겨나는 새로운 문법들은 예쁜코드를 만드는데 도움을 주기위함 입니다

그런맥락에서 while과 for가 있는것이고 두개는 같은역할을 하지만 코드의 모습이 다릅니다

코딩을 처음 하는 우리 입장에서 생각해봅시다

우리에게 지금 중요한건 뭘까요

코드를 예쁘게만들기?

아닙니다

우리는 예쁘게는 둘째치고 돌아가게 만들기도 쉽지 않습니다

돌아가게 만드는데 먼저 집중합시다

돌아가게 만드는데 필요한 최소한의 문법만 익혀서 돌아가게 만드는 연습을 합시다

돌아가게 만드는데 어느정도 익숙해졌을 때 그때 비로소 코드의 미적인 부분에서의 아쉬움이 눈에 들어오는겁니다

그런데 지금은 아닙니다.

프로그래밍언어는 버전을 거듭할 수록 코드의 아름다운 설계를 위한 여러가지 문법들이 늘어났고 현재 프로그래밍언어에서 제공되는 기능들중 대부분의 것들은 편의, 아름다운 설계를 위한 것들입니다

우리 초보자들은 위에서 말했듯 코드의 미적인 내용을 고려할 여유 없습니다

돌아가게도 못만듭니다

또한 우리는 코딩을 하며 아쉬움이나 불편을 느껴본적도 없습니다.

프로그래밍언어에서 편의를 위해 제공되는 다양한 요소는 우리들에게는 불편함을 해소해주는 요소가 아니라 그저 배워내야하는 부담들일뿐인겁니다.

우리는 그것들을 보며 편하다는 생각을 전혀 할 수 없습니다.

애초에 그게 없어서 불편했던적이 없습니다.

지금 코딩 처음시작했으니까요.

우리는 배워야할 내용을 최소화 하고 최소화해서 배운 몇개안되는 방법에 익숙해지는데 집중하는게 중요합니다.

몇개안되는것을 익혔다고 해서 더 알면 만들수있는거 조금안다고 해서 못만들고 그런거 아닙니다.

필수적으로 알아야할 것들과 선택적으로 알아도 되는 것에 대해 간략히 이야기해보겠습니다.

 

let 으로 변수만들기

값을 담기위한 방법입니다

이때 var, const는 알지 않아도 됩니다.

let과 동일한것은 아니지만 나중으로 미뤄버려도 상관없습니다.

변수를 만들때는 그냥 let을 사용하세요.

변수를 익히면서 유효범위에 대한 내용은 익힙시다

클로저와 실행컨텍스트라는것에 대해서는 나중으로 미룹시다

클로저, 실행컨텍스트는 변수의 유효범위에 대한 이해가 생겼을때 스스로 당연하다고 생각할 수 있게 되는 내용입니다

 

if 조건에 따라 코드 실행하기

만약 마트에 계란이 있다면 우유를 사오도록 하는등의 상황에 따라 흐름의 분기를 만드는 방법입니다

switch문, 삼항연산자는 익히지 않는것으로 합시다

if의 else, else if 정도는 익혀봅시다

 

while 로 반복하기

반복을 구현할 수 있는것이 상당히 많습니다 나열해보자면 for, while, do...while, for...in, for await.. 많습니다.

이 모든것들은 나중으로 모두 미룹시다.

while만 씁시다. while만으로 모든게 가능합니다.

while이 싫다면 for를 써도 상관없습니다.

그런데 while을 추천하는 이유는 if와 코드의 모습이 같습니다.

 

함수 사용방법 익힙시다

이것은 코드를 예쁘게만들어주는데에 큰 역할을 하는 요소입니다

저는 코드예쁘게 만드는 요소는 우선순위에서 순위를 낮추고자하는데 그럼에도 함수는 필수 익힘요소로 넣었습니다

함수의 매개변수는 뭐고 리턴이 뭔지는 잘 알도록 합시다

다만 화살표함수는 익히지 않아도 됩니다

제러레이터, 이터레이션, 프라미스, async/async 키워드 익히지 않아도 되고 this, arguments, call, apply, bind등 함수관련 기능들 익히지 않도록 합시다

콜백이란것에 대해서 따로 공부하지맙시다

 

배열과 오브젝트는 익힙시다

배열을 반복시켜주는데 사용되는 forEach, map, reduce, filter, every 등등등 익히지 맙시다

옵셔널체이닝, 널리시, 게터세터, 스프리드, 비구조화할당 익히지 맙시다

프로토타입과 상속, 클래스 만드는 방법 익히지맙시다

 

문자열, 숫자 처리방법익힙시다

백틱사용법익히지맙시다

++ 같은 연산자익히지 맙시다

비트연산 필요없어요

 

에러핸들링 방법익히지 맙시다

try catch throw 등등 익히지 맙시다

핸들링 하지 말고 그냥 에러가 애초에 안나게 합시다

에러핸들링이란건 에러를 나게해서 그 에러를 처리하는 방법에 대한 내용입니다

 

 

물론 여유가 된다면 하면 됩니다만 그렇지 않다면 위에 나열한 최소한의 내용만 익혀서 그것에 익숙해집시다

근데 어떻게 익숙해지지?

자주 써봐야지요

뭐에 써먹지..?

내게 만들어보고싶은 아이디어가 넘쳐난다면 좋겠지만..

코드를 이용해서 할 무언가가 떠오르지도 않을 수 있습니다

이럴때 쉽게 선택할 수 있는 해볼거리가 코딩문제 풀기입니다

많은 코딩문제 풀어볼 좋은 사이트들이 있습니다

검색해보면 어렵지않게 접할 수 있습니다

 

나는 yeu를 추천합니다

https://yeu.kr/