개발도서

[IT 5분 잡학사전] - TIL (2023.01.14)

짜잉이 2023. 1. 14. 16:49

Assignment #01 책 구매 인증과 Assignment #02 읽기 진도를 동시에...!🫡

📚 Assignment #01

노개북 챌린지 시작!

뉴스레터를 읽다가 노개북 챌린지 소식을 접하게 되었고

매일 꾸준히 하기 연습 & CS 지식을 채우기 위해 챌린지에 참여하게 되었다.

끝까지 완주하고 작은 성취감을 쌓아보자! 파이팅💕


📚 Assignment #02

  • 오늘 읽은 범위 : ep.01 개발자에 대한 오해 5가지! ~ ep.05 C, C++, C#은 이름처럼 비슷할까?
  • 기억하고 싶은 내용 (간단하게 내용 정리):
    • ep.01 개발자에 대한 오해 5가지!
      • 오해 1: 개발은 누구나 쉽게 배우고, 할 수 있다?
        - 직업은 무엇보다 자신의 흥미, 적성과 잘 맞아야 한다.
        - 개발자는 논리적으로 생각하기를 좋아하고 문제 해결을 즐기는 성향이 필요하다.
        - 힘든 과정을 참고 만들어 낸 결과물에서 느끼는 엄청난 성취감! 그 성취감 때문에 프로그래밍을 한다.
      • 오해 2: 개발을 잘하려면 암기를 잘해야 한다?
        - 프로그래밍은 이해하는 과정이 암기력보다 훨씬 중요하다. 문제에 어떻게 접근해서 어떻게 해결할 것인지가 더 중요하다.
        - 개발자는 구글링의 천재! 좋은 개발자는 암기력이 아니라 개발 과정을 잘 이해할 수 있어야 한다.
        - 개발 과정을 잘 이해하고 있어서 무엇이 필요한지, 어떻게 검색해야 문제를 해결할 수 있는지 알고 있는 개발자가 시니어 개발자이다.
      • 오해 3: 개발자는 천재 또는 해커?
        - 천재만 개발자가 될 수 있는게 아니다. 이 세상에는 보통 실력을 가지고 주어진 역할을 성실하게 수행하는 멋진 개발자가 훨씬 더 많다.
      • 오해 4: 개발자는 타고난 재능이 필요하다?
        - 개발은 재능의 세계가 아니라 근면 성실의 세계이다. 끈기와 근면 성실함이 재능을 이길 수 있다. 포기하지 말자.
      • 오해 5: 개발자는 수학을 잘해야 한다?
        - 수학 능력이 필수 조건은 아니다. 하지만 수학을 모르면 개발 분야가 제한된다. 논리적인 사고를 위해 잘하면 좋다.
        - 분야에 따라 인공지능, 게임개발, 물리 엔진, 머신러닝, 자율주행, 주식 트레이딩 자동화 도구 개발 등 분야에서는 수학 능력이 필요하다.
    • ep.02 어떤 언어부터 공부해야 할까?
      • C언어는 '기계가 소통하는 방식에 매우 가까운 언어'. 가전 제품에 이식되는 프로그램을 만들고 싶다면 배우는 것이 좋다.
      • 자바는 정부, 은행, 기업에서 많이 사용한다. 자바 기반 전자 정부 프레임워크를 사용하는 우리나라 취업 시장에서 유리한 언어. 오래된 프로그램 보수하는데 많이 쓰인다. 
        안드로이드 앱 개발에는 자바, 코틀린을 모두 사용한다.
      • 파이썬은 인공지능, 머신러닝, 데이터 과학, 웹 스크래핑, 웹 사이트, 서버, 앱 등 다양한 용도로 사용할 수 있는 범용성이 넓은 언어이다. 초보자 친화적인 언어이다.
      • 자바스크립트는 HTML, CSS과 세트로 웹 프로그래밍을 하고 싶다면 꼭 배워야 한다. 특히 자바스크립트는 동적인 웹사이트를 만들 수 있게 해주고, 백엔드 서버 영역도 개발할 수 있기 때문에 더욱 잘 다룰 수 있어야 한다.
    • ep.03 새 언어를 쉽게 배우는 노하우?
      • 개발자가 새 프로그래밍 언어를 배우는 것이 중요한 이유
        : 새로운 프로그래밍 언어를 공부하면 그 언어에 담긴 철학, 코드 구조, 개념, 패턴 등 중요한 내용을 배운다. 이것들을 내 주력 언어를 사용할 때 녹여 낼 수 있다면 개발자로서 능력을 발전시키는데 굉장한 도움이 될 것이다.
        새 프로그래밍 언어가 나오면 너무 두려워하지 말고 배워보자!
      • 방법 1. 공식문서 살펴보기
        • 공식문서에는 언어 만든 사람의 철학, 언어를 사용해야 하는 사람, 올바르게 사용한 예, 관련 커뮤니티 등 모든 자료가 있어서 문법부터 확인하는게 아니라 일단 공식문서부터 확인하는게 좋다.
      • 방법 2. 문법 확인하기
      • 방법 3. 다른 언어와 비슷한 특징 집중해서 보기
        • 기존에 잘 알던 언어가 있다면 내가 알고 있는 언어와 새 언어가 얼마나 비슷한지 연관지어 공부한다.
      • 방법 4. 새 언어로 코딩 시도하기
        • 공식 문서를 더 읽어야 한다면서 시간 낭비하지 말고 새 언어로 최대한 빨리 코딩을 시작하자. 원래 알고 있던 언어 지식을 바탕으로 함수나 변수를 선언하는 등 특정 패턴을 새 언어로 작성해보자.
      • 방법 5. 튜토리얼 시작하기
        • 위 4가지 과정을 거친 후 오픈소스 프로젝트를 가져와서 공식 문서에 있는 해당 튜토리얼을 참고삼아 해체하고 다시 만든다. 프로젝트 한 마당을 제거하거나 다른 부분을 해체하면서 무슨 일이 일어나는지 살펴보고 다시 조립한다.
      • 방법 6. 나만의 프로젝트 만들기
        • 이미 만들어 봤던 주제의 프로젝트를 새 언어로 만들어보자. 언어만 다를 뿐 프로젝트를 완성하는 과정이나 논리가 같으므로 새 언어를 공부할 때 큰 도움이 된다.
    • ep.04 언어 이름은 왜 그렇게 지었을까?
    • ep.05 C, C++, C#은 이름처럼 비슷할까?
      • C언어는 컴퓨터의 자원을 효율적으로 사용하면서도 최대 성능을 내는 프로그램을 만드는 것을 목적으로 만들어졌다. 자원이 열악한 상황에서 쓰기 좋은 언어이다.
        화성 탐사선에는 메모리를 적게 사용하면서도 최대 효율을 내는 프로그램을 만들기 위해 C언어를 사용했다.
      • C언어는 절차 지향을 지원하고, C++언어는 절차 지향, 객체 지향을 모두 지원한다. 두 언어의 속도 차이는 거의 없다. 실행 속도가 빠르다. 하지만 공부하기 어렵고, 개발 속도도 느리다.
      • C#은 마이크로소프트 기업이 만든 자바 언어로 C, C++만큼 강력하고 다양한 영역에서 사용할 수 있다. 공부하기 쉽고, 개발 속도도 빠르다. 하지만 C언어와 C++ 언어에 비해 실행 속도가 느리다.
  • 오늘의 파트에 대한 소감 (떠오르는 생각) :
    • 개발자에 대한 오해 파트를 읽고 개발을 막 배우던 때의 아무것도 모르던 내 모습이 떠올랐다. 그 당시의 나 역시 궁금해했던 내용들이었기 때문이다. 이런 책을 좀 더 일찍 접했다면 좋았텐데..! 나도 부족한 점이 아직 많지만 계속 반복하고 붙잡고 있다보니 어느 순간 개념이 이해가 가고 쓰는 것이 익숙해졌던 경험이 있다. 그래서 그런지 '재능이 아니라 포기하지 않음이 더 중요하다'는 말이 공감이 되고 와닿았다. 지금 들어도 참 힘이 되는 말이다.
    • 자바와 자바스크립트로 개발을 처음 접했고 C언어는 학교 전공으로 배웠다. 처음 시작은 쉽지 않지만 결국엔 언어들이 비슷해서 한 언어를 배워놓으면 다른 언어를 배울 때 크게 어렵지 않다는 걸 C언어를 수강하면서 느꼈다. 파이썬은 아직 배워보지 않았지만 확실히 코드가 자바에 비해 직관적이고 보기 좋아서 궁금해졌다. 남은 학기 중에 수강해봐야지.
    • 자바와 자바스크립트는 내가 배운 첫 프로그래밍 언어이기도 하고 웹개발로 방향을 정하고 첫걸음을 뗄 수 있게 해준 언어들이라 그런지 뭔가 끝까지 같이 가야할 친구 같은 느낌이다. 어떤 언어부터 공부해야할까? 파트를 읽고 더 잘해줘야지(?)라는 생각이 들었다. 
    • 새 프로그래밍 언어를 쉽고 빠르게 공부하는 방법 부분에서는 역시 공식문서 읽기는 정석적인 방법이구나 하고 깨달았다. 뼈맞은 느낌...책이나 강의로 공부하는 것은 익숙하지만 공식문서는 잘 보지 않았는데 공식문서를 보는 것이 익숙하도록 해야겠다. 특히 오픈 소스 프로젝트를 가져와서 튜토리얼을 참고해서 뜯어보는 방법은 꼭 해보면 좋을 듯!
    • 게임 개발쪽에는 큰 관심이 없어서 잘 몰랐는데 C, C++, C#의 차이점을 알 수 있어서 흥미로웠다! 특히 C언어는 역사가 오래된 언어답게 생각지도 못한 여러 분야에서 쓰이고있다는 사실이 신선했다.
  • 추가로 알게된 것 (책내용+a 로 궁금한 것, 이해가 가지 않는 것 등):
    • 언어 이름의 탄생 비화들! 
      • 자바는 자바 언어 개발자들이 좋아하던 커피 종류인 자바 커피의 원산지인 자바섬에서 이름을 따왔다. 그래서 로고도 커피잔 로고이다.
      • 코틀린은 자바의 영향을 많이 받은 자바의 업그레이드 버전인 프로그래밍 언어로서 러시아의 섬인 코틀린섬에서 이름을 따왔다.
      • 자바스크립트는 자바와 아무런 상관이 없지만, 자바의 유명세를 활용해서 알리려는 의도로 자바스크립트로 이름이 정해졌다.
      • C언어는 당시 유명했던 B언어의 이름을 따라 지었다. 기능면에서도 B언어의 영향을 받았다.
      • C++ 언어는 C에서 조금 더 발전한 언어라는 의미이다.
      • C# 언어는 음악에서 반올림을 뜻하는 #(sharp), +기호 4개를 붙인 모양에서 이름을 따왔다. (C -> C++ -> C#)
      • 고(Go)는 구글이 만든 언어로 google의 앞 두글자를 따서 만들어졌다. 마스코트 고퍼(GOPHER)는 원래도 두더지를 뜻한다.
      • 러스트(Rust) 언어는 곰팡이를 좋아하는 창시자의 취향을 반영해 이름이 지어졌다.
  • 소감 3줄 요약 (오늘 TIL 3줄 요약) :
    • 개발은 쉽지 않지만 재능의 세계가 아니라 근면 성실의 세계이다. 끈기와 근면 성실함이 재능을 이길 수 있다. 포기하지 말자.
    • 새 프로그래밍 언어가 나오면 너무 두려워하지 말고 배워보고 내 주력언어에 녹여보자.
    • 새 프로그래밍 언어를 쉽고 빠르게 배우기 위해서 공식문서를 활용하자.