IT 5분 잡학사전 - 에피소드 01~05

Gata·2023년 10월 7일
0

📘IT 5분 잡학사전

목록 보기
2/10
post-thumbnail

TIL (Today I Learned)

2023.10.07

오늘 읽은 범위

에피소드 01. 개발자에 대한 오해 5가지!
에피소드 02. 어떤 언어부터 공부해야 할까?
에피소드 03. 새 언어를 쉽게 배우는 노하우?
에피소드 04. 언어 이름은 왜 그렇게 지었을까?
에피소드 05. C, C++, C#은 이름처럼 비슷할까?

오늘 TIL 3줄 요약

  • 개발자는 재능의 영역이 아닌 포기하지 않는 꾸준함의 영역이다.
  • 앞으로 관심 분야가 바뀔 수 있지만 현재 나는 앱이나 웹 개발, 그리고 서버를 만들고 싶다. 그에 적합한 프로그래밍 언어는 안드로이드는 자바(Java)와 코틀린(Kotlin), iOS는 스위프트(Swift)와 오브젝티브(Objective)-C, 웹 개발은 HCJ, 또는 파이썬이 있겠다.

책에서 기억하고 싶은 내용

📌에피소드 01. 개발자에 대한 오해 5가지!

오해 1. 누구나 프로그램을 잘하는 것은 아니다.

프로그래밍은 어렵고 괴롭지만 모든 과정을 참고 만들어 낸 결과물에서 느끼는 성취감 때문에 우리는 프로그래밍을 계속한다.

오해 2. 프로그래머는 암기력이 부족해도 된다.

시니어 개발자가 개발에 능숙한 이유는 암기력이 뛰어난게 아니라 개발 과정을 잘 이해하고 있어서 무엇이 필요한지, 또 어떻게 검색해야 문제를 해결할 수 있는지를 잘 알고 있기 때문이다. 구글링 천재들!

오해 3. 개발자는 천재나 해커가 아니다.

천재만 개발자가 될 수 있는 것이 아니라 이 세상에는 보통 실력을 가진 개발자가 훨씬 많다. 주어진 역할을 성실하게 수행하는 사람들이 더 멋진 개발자이고 이런 사람들이 세상을 만든다.

오해 4. 코딩은 재능이 아닌 끈기의 영역이다.

개발에서는 재능이 아니라 포기하지 않음이 더 중요하다. '이 함수 고칠 때까지 잠자지 않겠다.'라는 각오가 필요하다. 이 버그를 잡을 때 까지 끝없이 파일을 읽고 또 고치고, 새롭게 다시 시작하는 과정을 반복할 수 있는 끈기와 근면 성실함이 재능을 이길 수 있다.

오해 05. 수학 못해도 개발자가 될 수 있다.

물리 엔진, 머신러닝, 자율주행, 주식 트레이딩 자동화 도구 개발 등의 분야는 수학을 잘해야 한다. 하지만 다행히 아직까지 나는 이 분야들에 관심이 없다. 이 외에도 내가 만들 수 있는건 무궁무진하고, 또 필요하면 공부하면 되니까 괜찮다!

📌에피소드 02. 어떤 언어부터 공부해야 할까?

프로그래밍으로 무엇을 하고 싶은지 부터 스스로에게 질문 해 보자.

  • 웹 개발 회사: HTML, CSS, 자바스크립트
  • 관공서: 자바
  • 인공지능 연구소: 파이썬
  • 데이터 분석가: 파이썬, R

아무 언어나 무작정 배우려고 하면 시간을 버리게 되고 공부도 재미 없어진다. 우선 뭘 하고 싶은지 생각 해보면 어떤 언어를 배우면 될지 가닥이 잡힌다.

✔️가전제품에 이식되는 프로그램을 만들고 싶다면? C언어

에어컨, TV, 스마트 냉장고 같은 가전제품에 들어 있는 프로그램은 C언어로 프로그래밍 됐다.
C언어는 제한된 상황에서 최대 성능을 내기 위해 만들어졌다. 예를 들어 냉장고는 음식을 차갑게 유지하는게 중요하니까 프로그램을 실행하는 부품의 성능보다 냉각 부품의 성능이 더 좋아야한다.

✔️시스템 유지 및 보수, 안드로이드 앱 개발을 하고 싶다면? 자바

자바는 주로 정부나 은행, 기업에서 많이 사용한다. 우리나라 대다수 회사는 자바에 기반한 전자 정부 프레임워크를 사용하기 때문에 취업시장에서는 자바가 유리하다. 하지만 스타트업에서는 자바 개발자를 많이 구하지 않는다. 자바는 역사가 아주 긴 언어여서 오래된 프로그램을 보수하는데 더 많이 쓰이지만 스타트업에서는 최신 기술을 주로 사용하기 때문이다.

안드로이드 애플리케이션 개발에도 자바가 쓰이므로 안드로이드 개발자가 되고 싶다면 자바를 공부하자. 이쪽 진영에서는 자바와 코틀린을 모두 사용한다.

코틀린

  • 자바의 친척. 자바의 영향을 많이 받은 자바의 업그레이드 버전
  • 젯브레인즈(JetBrains)에서 개발함
  • 구글이 안드로이드 공식 언어로 채택함
  • 코틀린은 프로그램을 실행하기 전에 자바로 완전히 변환되는 특징이 있어 자바를 알면 코틀린도 쉽게 배울 수 있다.
  • 코틀린은 자바에 비해 최신 언어라 개발자에게 편리한 문법이 많다.

✔️웹 개발, 인공지능 개발 등 범용성이 매우 넓고 초보자에게 강추! 파이썬

파이썬은 머신러닝, 데이터 과학 분야, 웹 스크래핑, 웹 사이트 만들기, 서버 만들기, 유용한 애플리케이션 만들기 등에서 사용 가능하다. 또한 읽기 편하고 코드가 예뻐서 초보자들에게 추천한다.

자바 코드 예

public class Main {
	public static void main(String[] args){
    	System.out.println("안녕");
    }
}

파이썬 코드 예

print("안녕")

✔️웹 개발을 하는 웹 프로그래머가 되고 싶다면? 자바스크립트

웹 프로그래밍(웹 사이트나 웹 앱 만들기)를 하고 싶으면 HCJ(HTML, CSS, JavaScript)를 배우자.
이 중에서 특히 자바스크립트가 중요하다. 자바스크립트는 버튼을 누르면 데이터를 전송하거나 메뉴를 접었다 폈다 할 수 있는 등 동적인 웹사이트를 만들게 해준다. 또한 서버 쪽의 코드, 백엔드 영역도 개발할 수 있다.

📌에피소드 03. 새 언어를 쉽게 배우는 노하우?

새로운 프로그래밍 언어를 공부할 때 그 언어에 담긴 철학, 코드 구조, 개념, 패턴 등을 배워서 언어를 사용할 때 녹여 낼 수 있다면 개발자로서 능력이 어마어마하게 발전할 것!

✔️ 새 프로그래밍 언어를 쉽고 빠르게 공부하는 방법

  1. 프로그래밍 언어의 공식 문서 살펴보기
    공식문서에는 그 언어를 만든 사람의 철학부터 시작해서 누가 이 언어를 사용해야 하는지, 올바르게 사용한 예, 관련 커뮤니티 등 모든 자료가 있다.

  2. 문법 확인하기
    문법을 보고, 입력하고, 이해하고, 기억하려고 노력한다.

  3. 다른 언어와 비슷한 특징 집중해서 보기
    내가 알고있는 언어와 새 언어의 공통점, 차이점에 집중한다. 우리 뇌는 이미 아는 것과 연관 지어 공부하는 것을 좋아하기 때문.

  4. 새 언어로 코딩 시도하기
    공식 문서를 더 읽어야 한다며 시간 낭비하지 말고 함수나 변수를 선언하는 등 특정 패턴을 작성해보자. 그럼 쉽게 익숙해질 수 있을것.

  5. 튜토리얼 시작하기
    오픈소스 프로젝트를 가져와서 해당 튜토리얼을 참고삼아 해체하고 다시 만들어본다. 프로젝트의 한 마당을 제거하거나 다른 부분을 해체하면서 무슨일이 일어나는지 살펴보고 다시 조립해본다.

  6. 나만의 프로젝트를 만든다.
    거창한 목표보다는 이미 만들어봤던 주제의 프로젝트를 새 언어로 만들어보거나 간단한 프로젝트부터 시작해본다.

📌에피소드 04. 언어 이름은 왜 그렇게 지었을까?

  • ✔️자바(Java)

    ‘오크(Oak)’라고 이름이 될 뻔 했다. 이 언어를 개발하던 사람들이 좋아하던 커피 종류가 '자바 커피'였다. 자바 커피는 인도네시아의 섬 자바에서 생산한 원두로 만들어졌다.

  • ✔️코틀린(Kotlin)

    러시아의 섬인 코틀린에서 이름을 따왔다.

  • ✔️자바스크립트(JavaScript)

    자바스크립트의 원래 이름은 '라이브스크립트(LiveScript)'였다. 그 당시에 자바가 엄청나게 유행이어서 라이브스크립트를 널리 알리려는 의도로 자바스크립트로 이름을 바꿨다. 그 덕분에 개발자의 관심을 쉽게 이끌어 낼 수 있었지만 이름 때문에 '자바와 비슷한 언어?'라는 오해를 너무 쉽게 받는다. 자바스크립트는 자바와 아무 상관이 없다.

LS가 됐을지도 모르는 자바스크립트의 로고

  • ✔️C언어

    C언어는 당시 유명했던 프로그래밍 언어인 'B언어'의 이름을 따라 지었다.
    이름만 따라한 것이 아니라 여러 기능 면에서도 B언어 영향을 많이 받았다.

  • ✔️C++ 언어

    C언어에서 1단계 더 발전한 언어
    프로그래밍 세상에서 ++는 1만큼 증가할 때 사용하는 기호다.

  • ✔️C# 언어

    C#는 C++ 다음으로 나온 언어다. #(샾,sharp)은 음악에서 반올림을 뜻하면서 + 기호 4개를 붙인 모양이기도 하다.

  • ✔️루비(Ruby)

    루비는 펄(Perl) 언어의 영향을 많이 받은 일본 개발자가 만든 언어다.

  • ✔️파이썬(Python)

    코미디 쇼 <몬티 파이썬>에서 따왔다. 또한 파이썬은 비단뱀이라는 의미도 있다.

  • ✔️고(Go)

    구글이 만든 언어이기 때문에 Google에서 앞의 두 글자인 Go만 따왔다. 그리고 Go를 검색하면 고퍼(GOPHER,두더지)가 뜨는데, 고 로고에 두더지 이미지를 사용했다.

  • ✔️러스트(Rust)

    러스트는 '녹슨다', '식물의 녹병'을 뜻하기 때문에 녹병이라는 곰팡이 이름을 따서 만들어졌다. 러스트의 창시자가 진짜로 곰팡이를 좋아해서 지은 이름이었다고 한다.

📌에피소드 05. C, C++, C#은 이름처럼 비슷할까?

  • ✔️ C

    50년 전에 개발된 언어다 보니 자원이 열악한 상황에서 사용하기 좋다.
    화성의 지면 모습을 촬영해 NASA(나사)에 보내도록 화성 탐사선에 탑재된 프로그램은 C언어로 개발됐다. 왜? 화성 탐사선의 메인 부품은 엔진, 이동 부품, 우주 비행사의 공간 등 여러 장치가 더 중요하기 때문에 메모리를 최대한 적게 사용하면서 최대 효율을 내는 프로그램을 만들기 위해 C언어를 사용했다.

  • ✔️ C++

    C언어는 절차 지향을 지원하고 C++은 절차 지향, 객체 지향을 모두 지원해서 C 언어에 없는 class와 같은 문법이 C++에 있기도 하다. 실행 속도는 C와 비슷하다. C와 C++은 공부하기 어렵고 개발 속도가 느리다.

  • ✔️ C#

    C#은 C, C++와 이름은 비슷하지만 완전히 다른 언어다. C#은 C나 C++도 아닌 자바와 비슷한 언어이고 개발자가 개발한게 아니라 기업(마이크로소프트)에서 필요해 만든 언어다. 마이크로소프트는 '닷넷'이라는 윈도우 프로그램을 개발하기 위해 도구와 실행 환경을 제공하는데, 여기서 C#을 사용한다. 자신들만의 개발 유니버스를 구축하려고 만든 언어라고 생각하면 된다.
    윈도우 운영체제 기반에서 동작하는 프로그램을 개발하거나 백엔드, 프런트엔드 개발, iOS 애플리케이션 개발까지 다양한 영역에서 사용할 수 있다. 세 언어 중에서는 공부하기 쉽고 개발 속도도 빠르지만 실행 속도는 가장 느리다.

"C#는 마이크로소프트가 만든 자바 언어다."

오늘 읽은 소감 및 떠오르는 생각

"영화에서 부풀려 표현한 해커의 천재 이미지 때문에 주니어 개발자들은 스스로 자신감이 한참 부족하다고 생각한다. 취업은 하지 않고 방구석에 처박혀 계속 공부만 하는 사람도 있다. 열심히 공부하는 학생들한테서 자주 볼 수 있는 유형이다." -에피소드 01

이 문장은 내게 적잖은 충격을 주었다. 정확히 나를 설명한 문장이었다.

난 늘 스스로 많이 부족하고 아는 것이 없어서 취업을 하기엔 무리라고 생각했다. 심지어 공부할 게 아직 많이 남았다는 명분 하에 취업을 피해왔고 스스로 완벽해질 때까지 기다렸다가 취업을 하고 싶었다. 어쩌면 나는 '공부'라는 자기 합리화 뒤에 숨어있는 것은 아닐까? 책의 내용대로 나는 '이미 개발자로 일할 준비가 되어 있을지도' 모르는 걸까? 이미 이전에 취준 경험이 있고, 취업 성공까지 해서 회사를 다녔고, 새로운 꿈을 위해 용기를 내서 퇴사까지 하는 과정을 거쳤지만 여전히 나는 취업으로 뛰어드는 것이 두렵다.

오늘 읽은 다른 사람의 TIL

https://velog.io/@missingusers/IT-5%EB%B6%84-%EC%9E%A1%ED%95%99%EC%82%AC%EC%A0%84-TIL-EP.-6-10

https://velog.io/@polyjean/it-reading-02

profile
개발은 즐거워🪇

0개의 댓글