2020년 서울시에서 주최한 강소기업탐방 프로그램에서 발표한 자료 입니다.
학교를 졸업하고 software engineer로 취직을 하기까지의 여정을 다뤘습니다
1. 개발자가 나에게 맞을지 고민하기 위한 방법
2. 개발자로 취직하기 (이력서/면접 준비 팁)
3. 개발자로 취직한 후 우리가 하는 일
"손코딩뇌컴파일눈디버깅" 모임을 소개합니다.
백문이 불여일런, 트라이얼앤에러(Trial and Error) 식의 몹쓸 교육을 받아 온 개발자들이 코딩하기 전에 신중하고 꼼꼼하게 생각해보기란 쉽지 않습니다.
개발 시간 중 디버깅 시간이 절반 이상을 차지하고 있는 실정에 버그를 줄이기 위해 TDD니 유닛테스트니 많은 방법들이 개발되고 있지만 가장 일차적으로 중요한 것은 개발자들이 꼼꼼히 따져보는 것이 아니겠는지요?
미국의 선진 SW회사들은 이미 화이트보드에 PS문제를 푸는 것을 인터뷰 방식으로 채택하고 있습니다. 이는 이와 같은 풀이 방식이 개발자들의 기본 역량을 측정하기에 알맞은 지표라는 것이고, 개발자들이 기본적으로 갖춰야 할 역량이기도 하다는 것 입니다.
또한 자신의 생각을 명확하게 정리하고 다른 사람이 이해할 수 있도록 전달하는 Communication Skill 도 개발자가 갖춰야 할 역량 중 하나 입니다. 알고리즘을 어떻게 구현할 것인가를 팀원들과 소통하면서 자연스럽게 생각을 정리하고 전달하는 연습도 할 수 있습니다.
컴퓨터에 앉아 코딩하기 전 펜과 종이를 들고 눈과 머리와 손을 굴려 보시는 것은 어떠신지요??
읽은 책은 "전문가를 위한 안드로이드 프로그래밍 : 그 한계를 넘어서" 이다.
이 책이 기존의 안드로이드 책과 다른점은. 기존의 책들이 튜토리얼, 초보자를 대상으로 만들어진 책이라면
이 책은 이미 안드로이드 어플리케이션을 몇 개 작성해보고 고급 API나 트릭을 알고자 하는 사람을 대상으로 한다.
기술서적으로 독후감을 쓰려니 막막하지만. 어렵게 생각하지 않고 이 책을 읽는다는 것이 현재 나의 환경(회사에서 일을하는)에서 어떤의미를 던지는 것일까? 생각해보니 두가지 측면에서 할 이야기가 생각났다.
한가지는 기술서적을 읽는 그 자체에 대한 생각이고 다른 하나는 주어진 프로젝트가 있는 상황에서 기술들의 나열을 보았을때 프로젝트에 어떻게 적용시킬까에 대한 생각이다.
2020년 서울시에서 주최한 강소기업탐방 프로그램에서 발표한 자료 입니다.
학교를 졸업하고 software engineer로 취직을 하기까지의 여정을 다뤘습니다
1. 개발자가 나에게 맞을지 고민하기 위한 방법
2. 개발자로 취직하기 (이력서/면접 준비 팁)
3. 개발자로 취직한 후 우리가 하는 일
"손코딩뇌컴파일눈디버깅" 모임을 소개합니다.
백문이 불여일런, 트라이얼앤에러(Trial and Error) 식의 몹쓸 교육을 받아 온 개발자들이 코딩하기 전에 신중하고 꼼꼼하게 생각해보기란 쉽지 않습니다.
개발 시간 중 디버깅 시간이 절반 이상을 차지하고 있는 실정에 버그를 줄이기 위해 TDD니 유닛테스트니 많은 방법들이 개발되고 있지만 가장 일차적으로 중요한 것은 개발자들이 꼼꼼히 따져보는 것이 아니겠는지요?
미국의 선진 SW회사들은 이미 화이트보드에 PS문제를 푸는 것을 인터뷰 방식으로 채택하고 있습니다. 이는 이와 같은 풀이 방식이 개발자들의 기본 역량을 측정하기에 알맞은 지표라는 것이고, 개발자들이 기본적으로 갖춰야 할 역량이기도 하다는 것 입니다.
또한 자신의 생각을 명확하게 정리하고 다른 사람이 이해할 수 있도록 전달하는 Communication Skill 도 개발자가 갖춰야 할 역량 중 하나 입니다. 알고리즘을 어떻게 구현할 것인가를 팀원들과 소통하면서 자연스럽게 생각을 정리하고 전달하는 연습도 할 수 있습니다.
컴퓨터에 앉아 코딩하기 전 펜과 종이를 들고 눈과 머리와 손을 굴려 보시는 것은 어떠신지요??
읽은 책은 "전문가를 위한 안드로이드 프로그래밍 : 그 한계를 넘어서" 이다.
이 책이 기존의 안드로이드 책과 다른점은. 기존의 책들이 튜토리얼, 초보자를 대상으로 만들어진 책이라면
이 책은 이미 안드로이드 어플리케이션을 몇 개 작성해보고 고급 API나 트릭을 알고자 하는 사람을 대상으로 한다.
기술서적으로 독후감을 쓰려니 막막하지만. 어렵게 생각하지 않고 이 책을 읽는다는 것이 현재 나의 환경(회사에서 일을하는)에서 어떤의미를 던지는 것일까? 생각해보니 두가지 측면에서 할 이야기가 생각났다.
한가지는 기술서적을 읽는 그 자체에 대한 생각이고 다른 하나는 주어진 프로젝트가 있는 상황에서 기술들의 나열을 보았을때 프로젝트에 어떻게 적용시킬까에 대한 생각이다.
골빈해커(김진중) 지음 | 한빛미디어 | 22,000원
텐서플로 코드로 맛보는 딥러닝 핵심 개념!
이 책은 신경망 기초부터 CNN, Autoencoder, GAN, RNN, DQN까지 딥러닝의 가장 기본이 되는 모델들을 직접 구현하며 몸으로 익히도록 구성했습니다. 이론을 깊이 파헤치기보다는 다양한 딥러닝 모델의 기초 개념과 기본적인 텐서플로 사용법을 학습하는 데 초점을 두고, 각 모델의 논문에 수록된 복잡한 코드들을 그 핵심이 잘 드러나도록 재구현했습니다. 간결해진 예제들이 여러분을 딥러닝과 텐서플로의 세계로 즐겁고 편안히 모실 것입니다.
2. 쏙쏙 들어오는 인공지능 알고리즘
머신러닝과 알고리즘 책은 엄청나게 많이 나왔고, 앞으로도 계속해서 나오지만
복잡한 수식과 코드 아니면 인문학적인 이야기로 양분되는 경향이 있다 → 중간
은 없을까?
복잡한 알고리즘을 쉽게 설명하는 방법은 없을까? → 그림과 적절한 예시가 있
으면 어떨까?
인공지능 알고리즘이 어떤 식으로 발전해왔는지 연관성을 파악할 필요가 있다
→ 상호 연관성을 보기 쉽게 만들면 어떨까?
이 책을 소개하는 이유
4. 쏙쏙 들어오는 인공지능 알고리즘
이 책에서 다루는 알고리즘
실제 사례가 돋보이는 책
• 트리/그래프 탐색: BFS/DFS
• A*/최초-최대(MIN-MAX)/알파-베타 가지치기
• 진화/유전 알고리즘
• 순서 인코딩/트리 인코딩
• 개미 군집 최적화 알고리즘
• 입자 군집 최적화 알고리즘
• 머신러닝: 선형 회귀와 의사 결정 트리
• 인공신경망
• 강화학습
5. 쏙쏙 들어오는 인공지능 알고리즘
무엇이 이 책을 흥미롭게 만드는가?(1)
그림을 잘 활용하는 책
• 문제와 알고리즘을 시각화하기 위해 그림을 적재적소에 활용
6. 쏙쏙 들어오는 인공지능 알고리즘
무엇이 이 책을 흥미롭게 만드는가?(2)
이 책의 특성
• 알고리즘 적용에 있어 어떤 점에 주안점을 두는지 알기 쉽게 소개
• 예) 의사 결정 트리의 내부 동작을 설명하면서 지니 계수, 엔트로피, 정보 이득에 대한 개념을 명확하게 짚어줌
• 작업 순서에 대해 실제 사례를 들면서 차근차근 접근
• 예) 머신러닝 중 다이아몬드 사례에서 데이터 수집/이해, 데이터 준비, 모델 훈련, 모델 테스트, 정확도 개선 과정을 알기 쉽게 풀
어서 설명함
• 개별 알고리즘에 집중하면서도 각 알고리즘이 서로 어떤 관계가 있고 어떤 영향을 주었는지에 대해 설명함
• 이 책을 순서대로 읽어야 하는 가장 큰 이유이기도 하다 → 저자 서문에서도 순서대로 읽기를 권장하고 있음
7. 쏙쏙 들어오는 인공지능 알고리즘
대상 독자
인공지능을 컴퓨터 과학 쪽에서 접근하고 싶다면? 바로 이 책이다
• 머신러닝과 딥러닝에 접근하고 싶지만 알고리즘이나 수학 때문에 주저하시는 분들
• 수식이나 코드보다는 시각적인 설명(그림이 많은 라이트 노벨 느낌?)을 좋아하시는 분들
• 알고리즘을 어떻게 구현하는지 단계 별로 설명이 있으면 좋겠다고 생각하신 분들
• 그래도 실제 구현된 코드는 봐야겠다고 생각하시는 분들
8. 쏙쏙 들어오는 인공지능 알고리즘
아쉬운 점
2% 부족한 설명과 깊이
• BFS 설명을 예로 들자면, 알고리즘 상 큐를 사용해야 하는데, 그림이나 순서도에 잘 드러나지 않는다(DFS에서는 스택 사용에 대한 시
각화가 잘 되어 있다) → 원서를 확인하니 그림과 서술 방식에 조금 문제가 있는데 번역 과정에서 이를 잡아내어 반영하지 못했다.
• 쉬운 내용에 대해서는 전개 방식이 무척 매력적이지만, 뭔가 설명이 더 필요하다는 느낌이 드는 곳에서는 용두사미가 되어버리는 지점
이 눈에 띈다.
맥을 못추는 의사(pseudo) 코드
• 영어권 독자들은 의사 코드가 코드처럼 읽히지 않고 글처럼 읽힐텐데 한국어 독자들에게는 의사 코드가 코드처럼 읽히는데 눈에 잘 들
어오지 않기에 차라리 파이썬 실제 코드였으면 더 좋겠다는 생각을 계속했다.
• 이 책을 위한 깃허브 코드를 보자: https://github.com/rishal-hurbans/Grokking-Artificial-Intelligence-Algorithms
9. 쏙쏙 들어오는 인공지능 알고리즘
결론
알고리즘에서 출발해 딥러닝으로 향하는 경로를 따라가는 기본서
• 일반적인 알고리즘과 머신러닝과 딥러닝의 차이점과 연관성이 무엇인지를 짚어주고 있음
• 키워드 중심이 아니라 키워드에 숨어 있는 동작 방식을 끄집어내고 있음
• 코드나 수식 없는 입문서보다는 조금 더 실체에 근접하기를 원할 경우 이 책을 추천한다!
• 책을 보내주신 제이펍 출판사에 감사 말씀을 드립니다.
10. 발표자 소개
기술 배경
전문 검색 엔진, 임베디드 시스템(리눅스 커널 디바이스 드라이버), 빅데이터/인공지능 연구 개발,
고성능 고가용성 데이터베이스
주요활동
IT 전문서 번역 (클린 코드, 피플웨어, 해커: 광기의 랩소디, 게임 엔진 블랙 북 등)
개발강의 (삼성전자, SK C&C, 현대자동차 기술 세미나와 교육)
활동채널
블로그: https://jhrogue.blogspot.com
슬라이드 셰어: https://www.slideshare.net/jrogue/presentations
유튜브: https://www.youtube.com/c/박재호dev
문의 jrogue@gmail.com
박재호