Nomad Coders Book Club Challenge (2 weeks) - Day 2

오늘 TIL 3줄 요약

  • 개발자는 끈기있는 사람만이 할 수있는 직업이다.
  • 프로그래밍 목적에 따라 알맞는 개발언어를 선택해야한다.
  • 개발언어의 문법보다 먼저 개발언어의 철학을 이해하는 것은 프로그래밍에 대한 깊은 이해에 도움을 준다.

TIL(Today I Learned) 날짜

2024/01/06

오늘 읽은 범위

Episode 1 ~ Episode 5
1. 개발자에 대한 오해 5가지!
2. 어떤 언어부터 공부해야할까?
3. 새언어를 쉽게 배우는 노하우?
4. 언어이름은 왜 그렇게 지었을까?
5. C,C++,C#은 이름처럼 비슷할까?

책에서 기억하고 싶은 내용을 써보세요.

[EP1]

직업은 무엇보다 자신의 흥미, 적성과 잘맞아야한다. 개발에서는 재능보다 끈기, 근면 성실함이 가장 필요며, 개발은 모든사람이 해낼 수 있는 것은아니다.
시니어 개발자는 개발과정을 잘 이해하고 있어서 필요한 내용을 적절히 구글링해낼수 있는 사람이다.
만약 그동안 자신의 실력을 엄격하게 평가해왔다면, 자신감을 가지고 앞으로 나아가도 괜찮다. 이미 개발자로 일할 준비가 되어있을지도 모르기때문이다.

[EP2]

어떤 목적을 위해 프로그래밍을 하는 것인가에 따라 필요한 프로그래밍언어가 달라진다. 가장 많이 쓰이는 개발 언어 4가지: C, Java, Python, Javascript

C: 가전제품에 이식되는 프로그램에 사용된다. ex) 가전제품, 냉장고, 세탁, 포토샵, 프리미어 프로
기계가 소통하는 방식에 매우 가까운 언어로 타 언어들에 비해 가볍다고 할 수 있다. 제품에 이식되는 프로그램을 실행하는 부품의 성능이 컴퓨터 만큼 좋진않다. 예를들어, 냉장고에선 음식을 차갑게 유지하는 것이 중요하기때문에 프로그램을 실행하는 부품 보다 냉각부품의 성능이 더 좋아야한다.

Java: 시스템 유지, 보수, 안드로이드 앱 개발에 사용된다.
역사가 긴 언어로 유지보수하는데 많이 쓰이며, 정부나 은행, 기업에서 자바에 기반한 전자 정부 프레임워크를 사용하기 때문에 취업시장에서 유리한언어이다. 또한 안드로이드 개발자가 되고 싶다면 Java, Kotlin을 사용해야한다. Kotlin은 자바로 완전히 변환되기때문에 먼저 자바를 알면 학습하기 쉽다.

Python: 웹개발, 인공지능 개발 등 범용성이 매우 넓고 초보자에게 강력추천하는 언어 ex) Machine Learning, Data Analytics, webscrapping.
파이썬은 다른 언어와 비교했을때, 깔끔하고 좀더 직관적으로 코드를 읽을 수 있다.

Javascript: 웹개발을 위한 필수, HTML + CSS + JS
front-end, back-end, server 등 여러 영역의 개발을 가능하게 해주며, 파이썬 처럼 다양한 목적으로 코딩할 수 있는 언어이다.

[EP3]

좀 더 나은 코드를 짜기 위해, 개발자들은 항상 새로운 프로그래밍 언어를 배워야 한다. 새로운 개발 언어를 배울때는 언어에 담긴 철학, 코드구조, 개념, 패턴 등을 습득하는 것이 중요하다.
1. 언어의 철학과 누가 이 언어를 사용해야하는지, 사용의 예시들을 확인하기 위해 공식 문서를 살펴본다.
2. 반복 및 학습을 통해 문법을 습득한다.
3. 기존에 알고 있는 언어가 있다면, 그 언어와 새로운 개발 언어가 가진 비슷한 특징을 연관지어서 살펴본다.
4. 새 언어의 문법, 패턴을 이용하여 코딩을 시도한다.
5. 오픈소스 프로젝트를 가져와서 공식 문서에 있는 튜토리얼을 참고하여 해체 및 재 조립하는 하며 학습한다.
6. 이전에 만들었던 프로젝트를 새언어를 사용하여 동일한 프로젝트를 만들어 본다.

[EP4]

Java: 인도네시아 자바섬에서 생산한 커피를 좋아하는 사람들이 언어를 개발해서 JAVA이다.
Kotlin: 자바의 영향을 많이 받은 프로그래밍 언어로, 러시아의 섬의 이름인 Kotlin에서 유래했다.
Javascript: 자바가 유행할 시기에 이름을 활용해서 널리 알리려는 의도로 자바스크립트가 되었다. Java랑 Javscript는 아무런 상관이 없다.
C: 당시 유행하던 B언어의 이름을 따라 지었다. C++은 C에서 조금 더 발전한 언어라는 뜻이다. C#은 C++에서 조금 더 발전한 것을 의미하며 #은 ++++와 비슷한 모양이다.
Ruby: 일본 개발자들이 만든 프로그래밍 언어로 Perl의 영향을 많이 받았다. 일본어로 P Ruby가 Pearl비슷한 발음이어서 그렇게 만들어졌다.
Python: 코미디쇼 <몬티 파이썬>이름에서 왔으며, 비단뱀이라는 의미를 가지고 있어 비단뱀 두마리가 로고가 되었다.
Go: 구글이 만든언어로 단순히 앞의 두글자만 따왔다.
Rust: 식물의 녹병이라는 의미를 가진 단어를 좋아하는 개발자가 만들었다.

[EP5]

C,C++,C#은 앞서 말한것처럼 C에서 점차적으로 발전했다는 의미를 가진다.

C: 컴퓨터의 자원을 효율적으로 쓰는 언어로, 메모리 자원을 적게 사용하면서도, 최대 성능을 내는 프로그램을 만들기 위해 개발되었다. 따라서, 열악한 상황에서 사용하기 좋은 언어이다. ex) 화상 탐사선

C++: C++은 C언어를 포함했다. 가장 큰 차이점으로는 C언어는 절차 지향을 지원하고, C++언어는 절차지향, 객체 지향을 모두 지원해서 C언어에 없는 class와 같은 문법이 C++언어에는 존재한다. 두 언어의 속도는 차이는 거의 없지만, 철학과 용도는 다르다.

C#: C# 언어는 개발자가 개발한게 아니라 마이크로스프트(MS)에서 필요해서 만들었다. MS는 .Net이라는 윈도우 프로그램을 개발하기위한 도구,실행환경을 제공하는데 C#을 사용하였다. C#은 C나 C++ 보다 실행속도가 느리지만, 공부하거나 사용시 보다 쉽다는 장점이 있다. Front-end, Back-end, IOS애플리케이션 개발등 다양한 영역에서 사용할 수 있다.

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요.

처음 책을 읽었을때, 눈으로 쉽게 쉽게 넘어가는 부분들이 오늘은 조금더 마음에 와닿았다. 특히나 첫번째 에피소드는 몇장안되는 내용을 계속해서 깊게 생각하며 읽게 되었다. "개발자는 재능보다 끈기, 인내심, 포기하지 않는 것이 중요하다. 그래서 아무나 할 수있는 일은 아니다."해당 문장에 크게 공감하였다.
실무자로서 근무할때, 항상 일에치여 하는일을 쳐내는 것이 급급했던 나는 늘 새로운 언어를 배워야한다는 생각에 사로잡혀있었지만, 정작 실행을하지 않아 스트레스를 받았던 기억이있다. 이때, 포기하지않고 내가 꾸준히 하나씩하는 것에 의의를 두었다면, 지금쯤 다룰 수 있는 언어가 더 여러개이지 않았을까하는 아쉬움이 남는다.
또한 내가 생각하는 '시니어 개발자'는 모든지 척척 다 할수있는 척척 박사같은 역할을 맡고 있는 사람이라고 생각는데 필요한부분을 '구글링할 수 있는 사람'이라고 정의를 해주어서 약간의 안도감을 느꼈다. 연차는 쌓였지만 단순업무만 하던 나에게 '시니어개발자'는 아직도 먼 포지션이라고 생각했었는데, 저들도 구글링을 하는구나!! 라는 깨달음을 갖게해준 문장이었다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

세번째 에피소드에서 다룬 새로운 프로그래밍언어를 배우는 방법에서, '5. 오픈소스 프로젝트를 가져와서 공식 문서에 있는 튜토리얼을 참고하여 해체 및 재 조립하는 하며 학습한다.' 는 잘 상상이 가지 않았다. 그래서 어떤 식으로 오픈소스를 보고 그 소스를 해체하여 재조립하는지에 대한 가이드가 있었으면 좋겠다는 생각을 했다.
사실 '오픈소스'라는 단어는 나를 긴장시킨다. 명확하지않은 개념과 모호한 사용법은 아직도 잘 모르겠다. 여러 블로그를 통해 정의 및 의미들을 살펴 보았지만, 어떤 용도로 왜 오픈소스를 여럿이서 함께 만들고 사용하고 어떻게 수익구조가 형성되는지 등 아직도 잘 이해할 수 없는 개념이다.

profile
Fresh Start

0개의 댓글