언어란 무엇인가

푸른하늘·2022년 9월 29일
1
post-thumbnail

내가 생각하는 언어의 정의

사람들이 자신의 생각을 다른 사람들에게 나타내고 전달하기 위해 사용하는 체계.

📌 언어의 정의는 다양하다

  • 사람들이 자신의 생각을 다른 사람들에게 나타내고 전달하기 위해 사용하는 체계.

  • 사물, 행동, 생각, 그리고 상태를 나타내는 체계.

  • 언어 공동체 내에서 이해될 수 있는 말의 집합.

📍 결국, 공통적인 부분은 이해와 전달이 핵심이다.

이해와 전달을 "잘" 하기 위해서는?

언어를 디자인하라 책 한구절의 내용

"천박한 언어를 사용하는 사람은 생각의 높이가 낮고 인격이 무너져 있다.
그러니 다른 사람을 감동시킬 수도 없다"

사고 : "목표에 이르는 방법을 찾으려고 하는 정신 활동"

이 말의 요지는 "언어가 빈약하면 사고도 더불어 빈약해진다" 이며 ,
"사람은 비슷한 사람과 어울린다" 입니다.

주관적인 개발자 관점에서 보면 "개발" 을 진행할 때 "사고"를 명확히 설정하지 목적성과 목표에 대한 관점이 흐지부지 해진다. 그래서 개발하기 이전에 회사에 대한 도메인 지식과 시장에 대한 분석도 필요하다.

비슷한 사람과 어울린다는 결국 신입으로 들어갔을 때 사수의 영향을 많이 받는다. 코드의 품질 , 아키텍쳐 , 커뮤니케이션 방식 등 닮아가게 된다.

이게 어떻게 보면 양면의 칼날 인게 실무를 경험하면서 코드를 배우게 되지만 사수의
방식에 따라 "독"이 될 수도 있고, "득"이 될 수도 있다.

그렇다고 좋은 사수가 있는 곳으로 가라는 것이 아니라 , 코드를 공부하면서 스스로의 자기만의 언어 정체성(코드)를 가져가는 것이 중요하다

나만의 정체성이 있는 코드를 작성하고 코드를 해석하고
다른사람과 코드리뷰하는 과정에서 가장 나다운 길로 안내해줄 것이다.

언어의 한계란?

비트겐슈타인 (언어 철학자)

"내 언어의 한계는 내 세계의 한계를 의미한다"

C++ 언어 창시자 (Bjarne Stroustrup)

개발자라면 적어도 5개의 언어를 알아야 한다

"너가 한개의 언어만 할 줄 안다면 한개의 문화로만 한정하여 생각하게 된다"
"만약 여러 언어를 배운다면 폭 넓게 사고하고 더 나은 사람이 되게끔 해준다"

개발자라면 "누구나" "문제"에 직면하게 된다.
이러한 문제 해결을 아마추어 와 프로로 나눠서 보면

문제해결

프로

  • 남들과 다른 언어 및 기존에 없던 생각으로 문제를 접근한다
  • 자신의 객관화(한계 간파) 하여 다른 생각을 찾기 위해 관련된 정보(책) OR 분야의 대가를 찾아간다.

아마추어

  • 기존의 생각, 틀에 박힌 언어 안에서 뱅뱅 돌면서 대안을 못찾고 , 해결도 안된다.

이 상황을 극단적인 예시이긴 하지만 , 초급 개발자는 스스로 상황을 판단하고 정보를 해석할 능력이 부족하기 때문에 ,
도음을 요청하는 대신 자신의 작성한 코드를 한 줄 씩 살펴보며 고민에 빠집니다.

  • 코드베이스
  • 배포 동작 방식
  • 다른 팀에서 호출하는 API 등

이러한 부분은 혼자 고민해도 알기 힘든 부분이며 다른 누구간에게 도움을 요청하는 것이 훨씬 효율적입니다.

무엇이 좋은 개발자를 만드는가?

이 질문은 스스로의 고찰이 필요한 시점이다.

이 질문을 왜 던질까? Why

아마 이 질문을 던졌을 때 단순히 "많은 돈"== "좋은 개발자" 생각 된다면 ,
우리는 "비교"라는 단어에 의해 개발자의 "본질"이 흐려진다.( 세상에는 나보다 잘버는 사람이 많으니까)

주관적인 생각은 개발을 꾸준히 유지하고 "잘" 하기 위해서는 철학적인 관점으로 스스로 정의를 내릴 필요가 있다.
"돈" 이라는 것은 "기준"에 의해 변동성이 있는 의미 이기에
"자신의 신념" ,"확고한 의지"가 있는 자신만의 정의가 스스로 가질 수 있는 귀중한 자산이다

James Gosling (JAVA 창시자)

삶의 윤리적인 선택에 대해서 생각할 때 내가 내리는 선택(코딩)이 어떠한 세상을 만드는지 고민해야한다.

George Hotz (미국의 유명한 해커)

프로그래밍은 배우는 것이 아니라 하고 싶은 일을 코딩으로 해결 할 수 있는 방법을 찾는것 이다.

Travis Oliphant. ( numpy , SciPy, Anaconda 창시자)

배우고자 하는 의지 와 호기심이 있어야 한다. 본인의 다 안다고 생각하지 말것

마무리

"언어를 키워야 하는 이유"

우리가 평상시에 사용하는 언어는 세상을 바라보고 나만의 방식으로 생각하고 표현하기 위해서이다.
언어는 또한 내가 세상을 바라보는 자세이자 태도이고 , 깊이과 관점에 따라 결정이 된다. 또한 사유하는 방식까지 결정하여 언어가 바뀌지 않은면 사고도 바뀌지 않는다.

"해상도 높은 언어를 갖자"

해상도 : 종이나 스크린 등에 표현된 그림이나 글씨 따위가 표현된 섬세함의 정도

  • 이 언어가 최고더라
  • 이 언어가 편하더라

이런말은 "누구나" 할 수 있다. 당신이 원하던 "회사" 면접관에게도 이러한 방식으로 면접을 진행한다면 결과는...
언어의 대한 생각과 이해도가 깊은 사람은 어떠한 개발을 진행할 때도 효율성,명확성,필요성 여러가지 관점에서 진행하기에 회사 개발에 대해서도 큰 이익을 미칠 수 있다.

또한 "어렴풋이 알고 있는 것을 누군가가 언어(기술)로 분명하게 말해주면 이렇게 마음이 편안해진다" - (안녕 사모키타자의 소설)
당신도 느낄 것이다.
기술을 설명할 때 "어린아이" 가 이해시켜줄 정도로 쉽게 이해 시켜주는 사람들은 그러한 이해를 시키기위해 깊은 기술에 대한 해상도가 있기 때문이다

이글을 더 쓰고싶지만 아직 나의 정보의 한계가 있기 때문에 나중에 글을 더 수정할 생각이다
마지막 내가 좋아하는 명언을 남기고 마친다...

We can't solve our problems with the same thinking we used when we created them - Albert Einstein

참고 자료

profile
Developer-Android-CK

0개의 댓글