개발이야기 -새로운 언어를 조금 더 빠르게 익히기위해서.

in #kr7 years ago (edited)

어제 설거지를 하면서 문득 든 생각이 어떻게 하면 개발이야기 쉽게 할 수 있을까?에 대해 고민을 했다.
하지만 쉽지 않다. 용어도 많고, 개념도 많고 알아야 할 것도 많고. 수많은 선구자들이 이에 대해 고민했으리라.
코딩열풍이라며 학원사업쪽에서까지 뛰어들었으니, 더 뛰어나신 분들이 '어떻게 하면 더 쉽게, 잘 이해 시킬 수 있을까?' 라는 것에 더 많은 시간을 고민하고 있으리라.

그럼에도 불구하고, 내가 지금까지 일해오면서 익힌 것들에 대해서 조금이나마 항상 정리하고 싶었다.

새로운 언어를 부득이하게, 아니면 재미삼아 배운다면 난 무엇을 외워야 할 것인가?

새로운 언어를 익힌다는 것은 정말 어렵고 , 쉽지 않다. 그것을 손에 익히기까지가 정말 어렵다. 하지만 내가 파이썬을 익히면서 몇몇 나의 패턴과 다른 언어를 사용할 때 역시 패턴들을 내가 관찰 해본 결과.. 새로운 언어를 배운다고해도 결국 다음과 같은 것들이 내 머릿속에서 맴도는 것이기에 그것을 해당언어로 외운 상태라면 그 이외의 것들은... 거기서 거기다.(?) 라고 감히...... 말하고 싶다.

기본

  • 변수
  • 함수
  • 모듈 불러오기
  • 클래스
  • 반복문

이것들은 사실 각각의 언어의 특성에 따라서 조금씩 다르기에 새로운 언어를 익힌다면 이부분들을 가능하면 빠르게 암기하는 게 해당언어를 빨리 습득하는 지름길이다.
이글은 일반인을 위한 글이 아니기에, 위 나열된 항목들에 대한 설명은 생략하겠다. 추후에 이와 관련한 글들을 올려야징

파일 읽고, 쓰기

어떤 언어로 프로그래밍을 하던지 결국 데이터를 저장하고, 혹은 다시 저장된 것으로부터 읽는 것은 반복이고 항상 필요하다. 그렇기에 파일에 읽고, 쓰는 것은 새 언어를 익히자마자 외워야한다. 그렇지 않고 이부분을 매번 필요할 때마다 찾는다.. 이거만큼 시간낭비인게 없다. 그렇기에 그냥 외우는게 낫다.
JSON 으로 읽고 쓰는 거는 특히나 기본으로 외우는게 좋지 않을까?

파라미터 입력받기

대부분의 새로운 언어라 친다면 - visual 쪽은 우선 예외로 치자. - 프로그램을 완성했을 때 결국 터미널에서 실행이 가능한 형태가 되는 것이 맞으리라. 그럼 그 때 터미널에서 파라미터를 실행파일로 어떻게 넘길 수 있는가를 빠르게 암기하는 것이 해당언어로 다양한 실험을 해볼 수 있는 조금 더 빠른 발걸음이라 생각한다. 처음부터 GUI로 프로그램을 완성하는 것이 틀리다고 말할 수 는 없지만, 기본적으로 핵심기능은 터미널, 콘솔에 작동하는 형태로 작성하고 그에 따라서 다양한 파라미터를 넘겨서 GUI와 쉽게 연동될 수 있는 형태로 프로그램을 개발하는 것이 다양한 OS가 있고, 가상환경이 보편화된 시대에 조금 더 유연한 프로그램을 만드는 방법이 아닌가 생각된다.

배열

기본적으로 C언어를 익히면 메모리와 배열을 익히는 데 많은 시간을 들이게 된다. 마찬가지로 다른 언어에서도 이부분이 결국 많은 비중을 차지 하지 않는가 생각된다. 배열이라하면 Array만을 생각할 수 있지만, 조금 더 넓게는 List, Dict, Set .. 이와 같은 데이터 구조를 어떻게 사용할 수 있는지를 빠르게 감을 잡는 것이 새로운 언어에 능숙해지는 것의 핵심이 아닐까 생각한다.
결국 프로그래밍이라는 행위는 데이터를 반복해서 조작하는 행위를 하는 것이기에 데이터구조와 관련된 기능을 머리가 생각할 때 바로 손으로 써 나갈 수 있는가는 굉장히 중요하다고 생각한다. 그렇기에 이부분.. 암기 필수..

Standard 문서

앞서 말한 것들을 빠르게 외웠다면 그다음부터는 언어의 기본문서를 쭈우욱 훑어보자. 그리고 기본적으로 언어가 제공하는 기능들이 무엇이 있고, 기본적인 라이브러리에서 어떠한 것들을 제공하는지 눈에 익혀둘 필요가 있다. 그래야 머리에 생각이 나면 바로 문서를 켜서 그부분에 대한 것들을 참고 할 수 있도록.. (난 파이썬 기본 개발문서를 항상 옆에 둔다. -
devdocs.io 와 같은 사이트에 좀 더 검색하기 편한형태로 개발문서를 모두 제공하는 곳도 있으니 어떻게든 편하게, 빠르게 문서를 참고할 수 있는 개발환경을 세팅하는 것은 굉장히 중요하다고 생각한다.

그외

추가적으로 알아둬야 할 것들 중에서는 동적언어냐 (스크립트언어 - python, ruby, php) 정적언어냐( c, c++, golang, rust...) 에 따라서 조금 틀린 부분이 있으리라 생각한다.

맺음말

아주 적은 시간을 할애해서 글을 썼지만 한번은 이 주제로 글을 쓰고 싶었다. 그래야 새로운 환경에서 새로운 언어를 익히고 새로운 프로젝트에 투입할 때에 조금 더 시간을 줄이고, 빠른 성과를 낼 수 있지 않을까라는 ... 하지만 결국 기본이 탄탄하다면 어떤 언어가 무슨 상관이겠는가.. (그 기본이 뭔지는 .....이것도 한번 쯤 정리를 해보는 것도 나쁘지 않으리라)
그럼에도 불구하고 위에 나열한 것들을 토대로 새로운 언어를 익히고 새로운 언어로 개발하는 것에 대한 자신만의 패턴(?)을 구축한다면 조금은 더 시간을 단축할 수 있지 않을까?

글을 읽으시고, 더 보충되었으면 하는 부분이 있다면 댓글에 남겨주세요. 새로운 언어를 익힐 때 이런부분은 꼭 익히는 게 필요하다.. 이런 것들요.

Sort:  

저도 20년 넘게 개발자로 일하고 있는데 참 많은 생각이 드네요 ... 이제 정말 AI가 모든 것을 해주는 세상이 오려는지 ... 저는 좀 하드웨어와 밀접한 일을 하다보니 리눅스와 C가 거의 전부라서 새로운 언어를 배울 일은 많지 않았습니다. 여기서 이런 개발자의 글을 만나니 무척 좋네요 ^.^;;

와우~~ 고수님이라 불러야 할까요. 아님 선배님이라 불러야 할까요. 저도 현재는 윈도우에서 일하긴 하는데, 리눅스가 솔직히 편하긴 더 편하죠. 새로운 언어로 파이썬 한번 배워보세요. 그 사이다 같은 매력에 푸욱 빠지실 듯~!!

저는 쭉 자바만 쓰고있는데 기회가 되면 다른 것도 배워보고싶긴하네요~

잘 보고 갑니다

Coin Marketplace

STEEM 0.17
TRX 0.13
JST 0.027
BTC 60147.92
ETH 2613.63
USDT 1.00
SBD 2.55