티스토리 뷰

시작하며

비전공 학원출신으로 취업하여 쉴틈없이 2년반이 지나니 개발자로서 나의 한계가 보이기 시작했다
나는 그저그런 개발자가 되고 싶지는 않고,
그래서 이제 그 장벽을 넘어서기 위한 긴 여정을 시작하려 한다

역시 여행은 자유여행이 가장 즐겁고 재미있으니 나는 나의 여행일정을 스스로 짜보았다
필수 관광코스들과 내가 개인적으로 관심이 있는 코스들로 구성하였다

내가 이 여정 속에서 가장 중요하게 생각하는 것은
'여행이 즐거운가?' 이다
목표만 바라보고 지금의 고통을 감내하기에, 삶은 너무 짧고 불확실하다
나는 언제라도 즐겁지 않게 되면 돌아올 것이다

알고 싶은 것들을 다 정리하고 보니 너무 많다
게다가 영어도 못하니 여러 해가 걸리지도 모르겠다
이 아득함과 어려움이 우리를 머뭇거리게 한다

가능할지 모르겠지만
어찌어찌 이것들을 끝냈을 때 다르게 보일 세상을 기대하며, 나는 시작한다

 

설명

  • Computer Science와 Web Development 학습을 위한 도서 및 강의들입니다
  • 책을 제외한 나머지 강의는 모두 무료입니다
  • 내용이 중복되는 도서 및 강의는 의도된 것입니다
  • 최대한 쉬운 것부터 어려운 순으로 나열하였습니다
  • 직접 학습해보지 않고 정리했기 때문에 적합하지 않을 수 있습니다

 

Intro to Computer Science

Code Foundations - Code academy

This path will give you an introduction to the world of code and basic concepts. 

By the end, you’ll know whether Data Science, Computer Science or Web Development is right for you.

 

AP®︎ Computer Science Principles, Computers - Khan academy

This review course includes 600+ practice questions, plus instructional articles and videos.

 

Intro to Computer Science - Udacity

In this introduction to computer programming course, you’ll learn and practice key computer science concepts by building your own versions of popular web applications. You’ll learn Python, a powerful, easy-to-learn, and widely used programming language, and you’ll explore computer science basics, as you build your own search engine and social network.

 

046.016 컴퓨터과학이 여는 세계 Computational Civilization, 이광근 - 서울대 강의

컴퓨터/소프트웨어의 근본을 알려주는 교양과학서로 디지털 문명을 탄생시킨 동시대 청년 과학도 이야기이다. 정보이론, 암호, 개인인증 등 컴퓨터과학이 보여주는 풍경 아래 흐르는, 원천 아이디어가 나온 이야기와 의미를 들려준다. 원천지식의 동기와 근본을 꿰뚫는 시각을 튼튼히 한다면 다양한 응용의 한계와 가능성을 쉽게 파악할 수 있고, 남들이 미처 보지 못하는 곳을 볼 수 있을 것이다.

 

컴퓨터 과학 총론, J.Glenn Brookshear - book

컴퓨터 과학 교재

 

Math

컴퓨터과학의 기초를 다지는 단단한 수학: CONCRETE MATHEMATICS 구체 수학, 로널드 L. 그레이엄 - book

스탠퍼드 대학에서 컴퓨터과학도를 대상으로 1970년부터 매년 가르쳐 온 동명의 강좌 내용을 바탕으로 하고 있다. 저자들은 컴퓨터 프로그래밍을 이해하기 위해 필요한 수학이 무엇인지를 파악해서 학생들에게 가르치기 시작했고, 이 책은 그 수십 년 강의를 정리한 것이다. 
이 책의 목적은 복잡한 문제를 풀고, 난해한 합을 평가하고, 자료에서 미묘한 패턴을 발견하는, 즉 알고리즘을 이해하고 문제를 해결하는 능력을 기르기 위해 필요한 수학적 기초를 제공하는 것이다.

 

Computer Systems

How Computers Work - Khan academy

everything from what makes something a computer in the first place, how computers use electrical circuits to store and process information, and the ways hardware and software work together.

 

CODE 코드 : 하드웨어와 소프트웨어에 숨어 있는 언어, 찰스 펫졸드 - book

다른 사람들과 의사소통하기 위하여 언어를 조작하고 새로운 의미를 만들어내는 독창적인 방법들을 우리에게 보여주고 있다. 또한 다른 사람들과 의사소통을 하려는 인간의 강렬한 욕망이 어떻게, 지난 두 세기 동안 기술적인 발전을 이루어냈는지 독득한 시각을 제공해 주고 있다.

 

Build a Modern Computer from First Principles: From Nand to Tetris - Coursera

The Nand to Tetris course takes you on a self-paced fascinating voyage of discovery 

in which you will go all the way from Boolean algebra and elementary logic gates to building 

a Central Processing Unit, a memory system, and a hardware platform, leading up to a general

purpose computer that can run any program that you fancy. In the process of building 

this computer you will become familiar with many important hardware abstractions, 

and you will implement them, hands on. But most of all, you will enjoy the tremendous thrill of 

building a complex and useful system from the ground up.

 

컴퓨터 구조 및 설계, David A. Patterson, John L. Hennessy - book

컴퓨터구조, 영남대학교, 최규상 - KOCW 강의

이 책의 독자로는 어셈블리 언어와 논리 설계에 지식이 있으면서 컴퓨터를 어떻게 설계하는지, 시스템이 어떻게 동작하는지, 왜 그 정도의 성능을 내는지를 알고 싶어 하는 사람은 물론이고, 기본적인 컴퓨터 구조에 대해 이해할 필요가 있지만 어셈블리 언어나 논리 설계에서 경험이 거의 없는 사람 모두가 포함될 수 있다.

 

컴퓨터 시스템, Rendal E. Bryan - book

This book is for computer scientists, computer engineers, and others who want to be able to write better programs by learning what is going on “under the hood” of a computer system. Our aim is to explain the enduring concepts underlying all computer systems, and to show you the concrete ways that these ideas affect the correctness, performance, and utility of your application programs. 

 

Data Structure

Intro to Data Structures and Algorithms - Udacity

Technical interviews follow a pattern. If you know the pattern, you’ll be a step ahead of the competition. This course will introduce you to common data structures and algorithms in Python. You'll review frequently-asked technical interview questions and learn how to structure your responses.

 

C언어로 쉽게 풀어쓴 자료구조, 천인국, 공용해, 하상호 - book

입문자들은 스택과 큐를 통하여 자료구조가 무엇인지를 이해한 후에 좀 더 복잡한 자료구조인 연결리스트나 트리 등으로 나갈 수 있다.

 

Algorithm

Introduction to Algorithms, 토머스 코멘 - book

저명한 컴퓨터공학과 교수들과 수많은 프로그래머들이 극찬한 알고리즘 분야 최고의 명저

 

Intro to Theoretical Computer Science - Udacity

This class teaches you about basic concepts in theoretical computer science -- such as NP-completeness -- and what they imply for solving tough algorithmic problems.

 

Introduction to Graduate Algorithms - Udacity

This is a graduate-level course in the design and analysis of algorithms. We study techniques for the design of algorithms (such as dynamic programming) and algorithms for fundamental problems (such as fast Fourier transform or FFT).

 

Programming

컴퓨터 프로그램의 구조와 해석 SICP, 해럴드 애빌슨 - book

프로그래밍이 무엇인가 돌아보게 해주는 MIT의 컴퓨터과학 입문 교과서. 마법사 책(Wizard Book)이라는 별명으로도 유명한 이 책은 독특하기로 소문난, MIT 컴퓨터 과학 입문 교과 과정에서 쓰는 교과서로, 프로그래밍 언어 문법이 아닌 프로그램의 뼈대를 구성하는 기술을 익히게 해준다. 흔한 프로그래밍 입문서와 달리, 난해하다는 평을 듣는 LISP에서 갈라져 나온 Scheme을 활용하며, 요약(abstraction)과 조립식 설계(modularity)에 따라 복잡한 프로그램을 간단하게 짜는 전략을 보여준다.

 

4190.310.Programming Languages, 이광근 - 서울대 강의

다양한 프로그래밍 언어들이 품고있는 공통된 원리들은 무엇인가? 현재의 프로그래밍 언어들은 얼마만큼 미개한가? 좀더 나아지기 위해서 필요한 것들은 무엇인가? 새로운 프로그래밍 환경을 효과적으로 운용할 수 있는 언어는 무엇인가? 이 강의에서는 이와같은 질문들에 대한 답을 익히거나, 좋은 답을 만들어내기 위해서 필요한 소양을 닦게 됩니다.

 

Operating System

뇌를 자극하는 윈도우즈 시스템 프로그래밍, 윤성우 - book

이 책은 거의 모든 개발자가 궁금해 하면서도 또한 상당히 어려워하는 컴퓨터 구조, 운영체제, 시스템 프로그래밍의 내용 중 꼭 필요한 부분만 간추려서 담았다. 컴퓨터 구조와 운영체제에 대한 이야기는 시스템 프로그래밍이라는 큰 주제와 어우러져 프로그래밍 안쪽에 있는 “깊이”를 전달하며, “큰 그림”을 보여준다. 

 

Introduction to Operating Systems - Udacity

Introduction to Operating Systems is a graduate-level introductory course in operating systems. This course teaches the basic operating system abstractions, mechanisms, and their implementations. The core of the course contains concurrent programming (threads and synchronization), inter process communication, and an introduction to distributed operating systems. The course is split into four sections: (1) Introduction, (2) Process and Thread Management, (3) Resource Management and Communication, and (4) Distributed Systems.

 

운영체제 아주 쉬운 세 가지 이야기, Remzi H. Arpaci-Dusseau - book

아주 쉬운 세가지 이야기란 이 책의 구성에 근간이 되는 세 가지 주요 개념, 가상화, 병행성, 영속성을 말한다. 운영체제의 기초적이고 전반적인 내용을 학습할 수 있도록 구성되었다.

 

Software

Software Architecture & Design - Udacity

Software Architecture and Design teaches the principles and concepts involved in the analysis and design of large software systems. This course is split into four sections: (1) Introduction, (2) UML and Analysis, (3) Software Architecture, and (4) Software Design.

 

Software Development Process - Udacity

you will learn how to select and implement the ideal software process for your development project. Through Professor Orso's engaging examples and interviews with industry insiders, you will learn both conceptual and practical aspects of software engineering. The course covers requirements engineering, architecture and design, testing and maintenance, and software quality in general.

 

소프트웨어 아키텍처 설계 가이드, 강승준 - book

소프트웨어 아키텍처란, 소프트웨어 결과물이 가져야 하는 비즈니스를 포함한 특성과 제약을 문제없이 시스템에 적용할 수 있게 하는 해결책이자 계획이며, 시스템을 최상위 수준으로 추상화한 표현이다. 이는 아키텍처 구성물 사이의 연관 관계를 한 가지 이상의 관점으로 표현하며, 설계 규칙을 통하여 어느 한 쪽에도 치우치지 않도록 구성 요소 간의 균형과 연관성을 만드는 구조 정의 청사진이라 할 수 있다. 이러한 소프트웨어 설계 방법론과 절차에 관한 다양한 지식은 초급 아키텍트 혹은 상위 개발자로 가는 밑거름이 될 것입니다.

 

Network

Journey into information theory- Khan academy

We've always been communicating.... as we moved from signal fires, to alphabets & electricity the problems remained the same.

 

Networking for Web Developers - Udacity

How does the Web work? Under the hood of HTTP there's a whole stack of networking protocols. Explore the 

underpinnings of the net with tools like traceroute, tcpdump, and nc.

 

Computer Networking - Udacity

This course covers advanced topics in Computer Networking such as Software-Defined Networking (SDN), Data Center Networking and Content Distribution. 

 

Computer Networks: A Systems Approach - online book

This best-selling and classic book teaches you the key principles of computer networks with examples drawn 

from the real world of network and protocol design. Using the Internet as the primary example, the authors 

explain various protocols and networking technologies. Their systems-oriented approach encourages you 

to think about how individual network components fit into a larger, complex system of interactions. 

Whatever your perspective, whether it be that of an application developer, network administrator, 

or a designer of network equipment or protocols, you will come away with a "big picture" understanding of 

how modern networks and their applications are built.

 

Database

Database Systems Concepts & Design - Udacity

This course presents an example of applying a database application development methodology to a major real-world project.

 

Database System Concepts, Silberschatz, Korth, Sudarshan - book

각종 정보를 효율적으로 관리하기 위한 데이타베이스 시스템에 대한 데이타 모델링 기법, 화일 시스템의 구성 및 인덱싱 기법, 해싱 기법,데이타베이스의 논리적 구조와 물리적 구조, 각 모델에 따른 각종 질의어(query language) 처리 및 최적화, 동시성 제어(concurrency control), 복구기법(recovery technique) 등의 데이타베이스 설계 기법에 대해서 배운다.

 

Object-Oriented Programming

객체지향의 사실과 오해: 역할, 책임, 협력 관점에서 본 객체지향, 조영호 - book

객체지향이란 무엇인가라는 원론적면서도 다소 위험한 질문에 답하기 위해 쓰여진 책이다. 안타깝게도 많은 사람들이 객체지향의 본질을 오해하고 있다. 가장 널리 퍼져있는 오해는 클래스가 객체지향 프로그래밍의 중심이라는 것이다. 객체지향으로 향하는 첫 걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다.

 

오브젝트: 코드로 이해하는 객체지향 설계, 조영호 - book

책임의 할당과 그 구현에 초점을 맞춘다. 이 책을 읽고 나면 객체에 적절한 역할과 책임을 부여하는 방법과 유연하면서도 요구사항에 적절한 협력을 설계하는 방법을 익히게 될 것이다. 나아가 프로그래밍 언어라는 도구를 이용해 객체지향의 개념과 원칙들을 오롯이 표현할 수 있는 방법 역시 익힐 수 있을 것이다.

 

Design Pattern

Head First Design Patterns 스토리가 있는 패턴 학습법 - book

다른 사람들이 뭔가를 만들어 놓았고, 누구든 마음대로 사용해도 되는 게 있다면 굳이 고생해서 똑같은 걸 만들어 써야 할 필요는 없을 것이다. 소프트웨어를 디자인하는 과정에서 똑같은 문제를 경험했던 선배들이 깨달은 교훈을 정리해 놓은 디자인 패턴을 사용하면 다른 사람들의 노력과 경험을 바로 활용해서 시간과 에너지를 절약할 수 있다. 대신 그 시간에 도전할 만한 가치가 있는 것, 더 복잡한 것, 더 재미있는 것에 시간과 노력을 쏟을 수 있다. 디자인 패턴에 대해 공부하고자 한다면 다음과 같은 것을 배워야 할 것이다.

 

서비스 디자인 패턴: Service Design Patterns SOAP/WSDL과 RESTful 웹 서비스를 위한 핵심 디자인 해결책, 로버트 다이뇨 - book

웹 서비스 디자인에 필요한 원칙을 정리하고, 웹 서비스를 사용하면서 반복적으로 마주하게 되는 문제의 해결책을 알려주는 지침서. REST 아키텍처 스타일을 따르거나 SOAP/WSDL를 활용한 디자인 방안을 제시하며, 풍부한 예제 코드로 독자의 이해를 돕는다. 여러 문제를 핵심 주제별로 분류해서 근본적 디자인 구성요소를 바탕으로 설명하고 있기 때문에, 패턴의 동작 원리를 쉽고 분명하게 이해하고 효과적으로 적용할 수 있게 해준다.

 

Web

WEB1: HTML & Internet - 생활코딩

내가 정말 좋아하는 컨텐츠

 

Internet 101 - Khan academy

The Internet is part of nearly everything we do on a daily basis. But do you know how it all works? From WiFi to IP addresses to HTML to keeping information safe online, there’s a lot of important stuff going on that most of us don’t have the opportunity to learn more about.

 

Client-Server Communication - Udacity

We use websites all the time, but how does clicking a link in your browser or typing in a URL in the address bar get you to a website? How does the server know what information you're looking for or how to send you that information once it's figured that out? How can you protect your users from attackers? Dig into this course and you'll be able to answer these questions!

 

리얼월드 HTTP: 역사와 코드로 배우는 인터넷과 웹 기술, 시부카와 요시키 - book

웹 세상을 지탱하는 HTTP 기술의 변천사와 버전별 문법 및 의미론을 살펴보는 책이다. HTTP 1.0, 1.1을 거쳐 2.0까지 브라우저 내부에서 일어나는 일과 서버와의 상호작용 등을 삽화와 예시로 소개한다. curl, Go 언어, 자바스크립트 코드 예제로 복잡 다변한 HTTP 웹 기술을 한 권으로 정리했습니다. 모든 웹 개발자에게 권한다.

 

Programming Languages: building a web browser - Udacity

This class will give you an introduction to the fundamentals of programming languages. Key concepts include how to specify and process valid strings, sentences and program structures.

 

Security

Journey into cryptography - Khan academy

How have humans protected their secret messages through history? What has changed today?

 

Intro to Information Security - Udacity

This course provides a one-semester overview of information security. It is designed to help students with
prior computer and programming knowledge — both undergraduate and graduate — understand this important
priority in society today. The technical content of the course gives a broad overview of essential concepts and
methods for providing and evaluating security in information processing systems (operating systems and
applications, networks, protocols, and so on).

 

Network Security - Udacity

This course provides an introduction to computer and network security. Students successfully completing this class will be able to evaluate works in academic and commercial security, and will have rudimentary skills in security research. The course begins with a tutorial of the basic elements of cryptography, cryptanalysis, and systems security, and continues by covering a number of seminal papers and monographs in a wide range of security areas.

 

컴퓨터 보안, William Stalling, Lawrie Brown - book

이 책은 컴퓨터 및 네트워크 시스템의 보안 위협과 위협 요소, 그리고 대응 방안에 대한 기본적인 개념들을 광범위하게 다루고 있다. 특히 2차 개정판에 비해 중요한 주제들을 포함하고 있으며, 관련 내용들이 좀 더 명확하게 표현되었다. 본 번역본으로 인해, 국내 사이버 보안에 대한 관심이 증가하고, 더 나아가 선진국들과 대등한 수준의 컴퓨터 보안 개발에 기여할 수 있기를 기대한다.

 

Testing / Debugging

Software Analysis & Testing - Udacity

This course covers the theory and practice of software analysis, which lies at the heart of many software development processes such as diagnosing bugs, testing, debugging, and more. It presents diverse techniques, each with their own strengths and limitations, for automating tasks such as testing, debugging, and finding bugs in complex real-world programs. These techniques include dataflow analysis, constraint-based analysis, type systems, model checking, symbolic execution, and more.

 

The Art of Software Testing 소프트웨어 테스팅의 기본에서 애자일과 모바일 환경까지, 글렌포드 마이어스 - book

The Art of Software Testing은 소프트웨어 테스팅 접근에서 입증된, 짧지만 포괄적인 시각을 제공함으로써 특정 개발기술, 언어 또는 테스팅 방법론 등과 같은 기술적 접근이 아니라 소프트웨어 테스팅에서 필요한 중요한 개념에 초점을 맞춰 각 상황에 맞는 기술적 발전이 이루어질 수 있는 초석을 마련하며, 최근 품질에 대한 인식이 새롭게 주목받는 시점에서 IT 종사자들이 기본적인 소양을 쌓을 수 있도록 도와줄 것이다.

 

 

더 공부하고 싶은 것들

  • C#/ .Net framework/Core
  • Cloud / Docker / DevOps
  • Data Visualization
  • Artificial Intelligence
  • Big Data
  • 클린코드/클린소프트웨어/TDD

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함