brunch

You can make anything
by writing

C.S.Lewis

by 찐님 Oct 28. 2022

부트캠프에 가기 전에

프로그래밍 언어도 결국 언어다.

개발자로 전향하기로 결심했다면, 가장 먼저 공부해야 할 것은 프로그래밍 언어이다.


첫글에서 내가 쉽게 개발자로 전향할 수 있던 이유로 '언어에 대한 감각'을 말했었다. 나는 영어나 중국어를 유창하게 못하지만 노력한 시간만 두고 봤을 땐 빨리 배운 편이다. 그래서 프로그래밍 언어도 다르지않을 것이라고 판단했다. 이 말은 반은 맞고 반은 틀리다. 


언어마다 문법 체계가 다르고 우리는 원어민이 아니기 때문에 별도로 문법을 공부할 수 밖에 없다. 영어에서도 중국어에서도 가장 골머리를 썩히는 것은 문법이다. 하지만 잘 생각하면 말이 있고 문법이 생겨났지, 문법이 있고 말이 생겨난 것이 아니다. 그렇기 때문에 공통적인 규칙에서 벗어난 예외를 변칙으로 규정한 것이다. 이 문법을 원리적으로 이해하려고 하면 스스로가 힘들어진다. 



우리는 외국어를 배울 때 통문장으로 암기하는 것이 좋다고 말한다. 나도 처음 중국어를 배울 때 기초회화 초급부터 중급까지 책에 나와있는 문장을 다 외웠고 그리고 문법을 공부했다. 책 3권 분량의 예문이 내 머릿속에 있으니 내가 하고 싶은 말은 그냥 단어만 바꿔서 말하면 되었고, 이미 입에 붙은 예문이기 때문에 문법을 이해하고자 노력할 필요가 없었다. 


경험해보니 코딩도 크게 다를 것이 없었다. 


프로그래밍 언어마다 문법이 상이할 수 있지만 큰 틀을 벗어나지 않는다. 변수를 선언하고, 데이터 타입을 정의하고, 데이터를 가공하여 어떻게 출력할 것인지는 방법의 차이일 뿐이다. 그리고 그것은 구글에 아주 자세하고 친절하게 나와있다. 


내가 코딩이 어려웠던 이유는 '이론'을 완벽하게 이해하려고 한 점에 있다어쩌면 너무 당연한 것이어서 구글에도 이런 의문에 대한 해답이 없었던 것 같다. 이 의문들이 프로그래밍 언어를 배우는데 있어 그렇게 중요하고 시간을 잡아먹을 것들은 아니었다. 그냥 배우다보면 자연스럽게 알게 될 것들도 있고, 혹은 몰라도 상관없는 의문점이다. 


왜 반복문 변수로 i를 사용하지? a는 안되는 것일까? 
함수가 종료된다는게 뭐야? return을 왜 쓰는거지?
괄호가 있는 것과 없는 것의 차이는 뭐야..?





본격적으로 개발을 배우기 전에 알고가면 좋을 개념들이 있다. 1, 2번은 교양같은 느낌이고 3번부터가 전공필수라고 할 수 있다. 이것은 JS나 파이썬, JAVA에도 모두 통용되는 개념(문법)으로 미리 문법 구조를 외우고 간다면 나처럼 시간을 낭비할 일이 없을 것이다. 



1. 프론트엔드와 백엔드 개념

프론트엔드 - 웹앱, 사용자가 보고 조작할 수 있는 화면

백엔드 - 프론트엔드의 요청사항을 처리

ex
유저가 아이디와 비밀번호를 입력하고 로그인 버튼을 클릭하면  ---> 프론트엔드 영역
가입된 유저인지 데이터베이스를 조회하여 확인   ----> 백엔드 영역

 


2. HTML, CSS, JS

HTML - 웹브라우저의 뼈대 = 개요 = 골조

CSS - 웹브라우저의 디자인 = 옷

JS -  웹브라우저의 실질적인 기능을 구현



3. 데이터

3.1 데이터 타입

3.1 참인 값과 거짓인 값



4. 조건문

4.1 if

4.2 switch



5. 반복문

5.1 for

5.2 while


학원은 언뜻 이해가 된 것 같으나 혼자서 해보면 못하는 경우가 허다하다. 선생님의 코드를 내 실력이라고 착각하게 되는 일이 많다. 또 책은 자세하고, 디테일하지만 이론에 치중되어 있어 용어나 쓰임이 너무 어렵다. 유튜브에 생활코딩, 코딩애플 등 쉽고 재밌게 설명해주는 영상이 많으니 학원을 가기 전에 가볍게 듣고 가면 배우는 것을 넘어 수업을 이용할 수 있다.

이전 02화 개발자로 전향할 수 있는 현실적인 방법 3가지
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari