2019년 9월 1일 일요일

2018년 전공 공부들 / Computer and IT books Read in Year 2018

2018년은 Haskell이 어려워서 Ocaml을 (!), 환경 변화에 적응해야 했기에 Go와 docker를, 그리고 회사에서의 다음을 위해서 NFV를 공부한 한 해였다.

I've studied three area in this year: Ocaml for becoming better programmer, Go/docker to prepare for IT environment change, and SDN/NFV to use at work.

다음 책이 특히 좋았다. The following book is especially good.

A Philosophy of Software Design
John Ousterhout
너무 책 내용이 좋아서 아마존에 리뷰도 썼다. This book is for the programmer, who want to like programming again. 내 이야기다. 소프트웨어 개발자의 금과옥조. (201808)

As an experienced programmer, the author tells us a story of how to make a maintainable software.

Software should be simple enough to be understood and maintained by ordinary people. It should be read easily without cognitive burden. We should exercise proper abstraction to reduce complexity. Since complexity sums up, we should take "zero tolerance" approach while programming.

This book does not provide any design pattern. There is no hard-to-understand topic at all. The author gives us his practical and sincere advice that looks so simple but is not easy to practice consistently. He likes programming really! I know it. He wants to share his experience with us.

I recommend this book to working programmers who want to like programming, again.


그리고 나머지는 시간순으로.

Real World Ocaml: Functional programming for the masses
Yaron Minsky

Haskell이 어렵다. Ocaml을 시작했다.
2nd ed로 봐야한다. 2nd ed도 아직 작업이 많이 필요한 상태. (201801)
OCaml Books, Refman, Developing Applications with Objective Caml

Ocaml에 필꽃혀서 보는데, core language는 쉬우나, (1) object/class (2) module (3) language extension (4) Core library가 쉽지 않아서 Ocaml 책 및 매뉴얼을 계속 반복해서 보게되는데, 시간도 너무 많이 걸리고 업무와 동시진행이 어려워서 Long-term으로 읽어야 할 것이다.
Dev.. 책은 
class/object쪽 설명이 어려워서 읽기 어렵다.. 후반부는 skimming. 4일동안 대략 훓어보았다. (201801-02)
More OCaml: Algorithms, Methods, and Diversions
John Whitington
3일동안 skimming. 굳이 볼 필요는 없었다. (201802)

The Go Programming Language
Alan A. A. Donovan
멋지네 Go. 내 프로그래밍 인생이 다 여기 녹아있는 기분. 4/28일 A Tour of Go page에서 Go를 보기 시작한 이후 한달정도 본 책. (201805)
Go in Practice: Includes 70 Techniques
Matt Butcher
앞의 반정도까지 봄. 후반부는 특별히 볼 필요가 없었다. (201805)
Concurrency in Go: Tools and Techniques for Developers
Katherine Cox-Buday
멋지네 Goroutine. Go를 더욱 사용하고 싶게 만들어 준 책. (201805)
2025 블록체인 세상 여행하기
김현우, 아시아경제블록체인연구소 지음. 클라우드나인.
블록체인 약파는 책. (201807)
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
Gregor Hohpe
이 책 좋다. 비싸지만 사두고 참고해야할 책. integration pattern은 EP가 아니더라도 지금 내가 하는 일과 동일하다. (201807-201808)
C in a Nutshell: The Definitive Reference
Peter Prinz
Expert C Programming만큼 좋은 책. C11까지 포함하여 전체적으로 닦고 조이고 기름쳤다. (201808)

API-Driven DevOps: Strategies for Continuous Deployment
Chris Wood
Docker study. 대충봤다. (20180924)
Docker in Production: Lessons from the Trenches
Joe Johnston
Docker를 봐야 현재 기술 스택에서 살아남을 수 있을 것임. 꽤 괜찮았다. (201809)
조경현 교수딥러닝을 이용한 자연어처리
조경현
Terry’s Deeplearning talk에서 추천받아 본 것. NN을 blackbox화하여 딥러닝을 설명하는데 젊지만 똑똑하다. 추천강좌.(201809)
Network Programmability and Automation: Skills for the Next-Generation Network Engineer
Jason Edelman
Skills for the Next-Generation Network Engineer. 챕터1 SDN설명이 좋아서 거기만 봄. SDN을 파보기로 했다. (201810)

Arista Warrior: Arista Products with a Focus on EOS
Gary A. Donahue
SDN 스위치 Arista스위치에 대한 책. chap 12정도까지 보고 후는 너무 switch oriented라서 중단했다.. SDN switch에 대해서 개념을 잡고 싶었다. SDN 스위치를 만들게 될 경우 다시 참고할 책이다. (20181008)

Network Warrior: Everything You Need to Know That Wasn't on the CCNA Exam
Gary A. Donahue
이거 꾸준히 두고 소설책처럼 봐야할 책이다. 네트워크계에 20년 있었는데 VLAN도 모르는 내게 꼭 필요한 책.  (20181008)

Docker in Practice
Ian Miell
도커 공부. chapter4까지 읽었고, 뒤는 필요한 부분만 조금씩 봤다. (201810)
Docker Networking Cookbook
Jon Langemak
이틀동안 용어들만 보았음. (201810)

네트워크 가상화의 모든 것
라젠드라 차야파티, 시에드 파룩 하산, 파레시 샤 지음, 최성남 옮김. 에이콘출판.
SDN, NFV 단어에 익숙해지기 위해서 급하게 봤다. SDN과 NFV는 굉장히 많은 개념들이 들어간 거대 프레임워크라서, LTE볼때같이 잘 이해가 안간다. VPP, OpenDaylight, OPNFV, NETCONF/RESTCONF/YANG등 더 공부할것만 늘어나고 있다. 아이구 AI해야되는데.. (201810)

LogoFD.io VPP User Guide

대충 훑어봄. VPP 굉장한듯. (20181015)

SDN과 NFV
SDN/NFV포럼 지음, 에이콘출판.
NFV로 간다. (20181016)

The Data Science Design Manual
Steven S. Skiena
뒤로 갈수록 영어도 어렵고 개념도 어려워지고. 사람은 똑똑한데, 어려운 내용을 너무 축약해두어서 읽어나가는데 큰 의미는 없다. 레퍼런스로 활용해야될것이다. (201810)

The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win
Gene Kim
DevOps. 재밌게 봤음. 좋은 느낌. 하지마 영어가 어려웠다. (201811)

Python Essential Reference
David Beazley
Fluent Python이 너무 하이 레벨이었다. 이 책이 가장 많이 권해지고 있어서 그 다음으로. 2017년에 조금 봤지만, Part 1만 다시 봤다. ML, 그리고 HO 갈켜주려고 다시 봤다. (201812)
Image result for perfbook linux penguinPerfbook Python Essential Reference
David Beazley
Is Parallel Programming Hard, And, If So, What Can You Do About It?
concurrency 관련 최근 숱한 버그를 양산하고 있다. 공부 다시 하고 가자. (201812-)