무료 프로그래밍 관련 e북 모음
다음은 이 링크에서 발췌한 것들로 내가 관심있는 분류 위주로 링크만 뽑아 보았다.
Parallel Programming : 병렬 프로그래밍이란?
Software Architecture : 소프트웨어를 설계하는데 있어 참고할 이론들
- The Architecture of Open Source Applications
- Programming Pearls
- Seamless Object-Oriented Software Architecture
- Summary of the GoF Design Patterns
- How to write Unmaintainable Code
- OO Design
- Object-Oriented Reengineering Patterns
- Patterns and Practices: Application Architecture Guide 2.0
- The Definitive Guide to Building Code Quality
- Patterns of Software: Tales from the Software Community (PDF)
- Best Kept Secrets of Peer Code Review
- Domain Driven Design Quickly
- Essential Skills for Agile Development
Bash : 리눅스나 유닉스에서 쉘스크립트를 작성할때 꼭 필요한 스킬
- Advanced Bash-Scripting Guide
- Bash Guide for Beginners by Machtelt Garrels
- Lhunath's Bash Guide
- The Command Line Crash Course (also a Powershell reference)
C / C++ : 설명이 필요없는 프로그래밍 랭귀지
- Beej's Guide to Network Programming
- Beej's Guide to C Programming
- The C book
- C++ Annotations
- C++ GUI Programming With Qt 3
- CS106X Programming Abstractions in C++
- Essential C
- Learn C the hard way
- Matters Computational: Ideas, Algorithms, Source Code, by Jorg Arndt
- The new C standard - an annotated reference
- Object Oriented Programming in C (PDF)
- Software optimization resources by Agner Fog
- Thinking in C++, Second Edition
- Also see: The Definitive C++ Book Guide and List
Clojure : Functional programming 분야에서 요즘 핫한 랭귀지. 최근에 어떤 글에서 본 바로는 클로져로 어떤 문제를 풀기위한 프로그램을 작성했을때 라인수는 C/C++에 비해 1/8 정도로 줄어든다고..
Erlang : Distributed System을 설계할때 적합한 랭귀지.
Go : 구글에서 개발한 프로그래밍 언어로 최근에 Youtube 에서도 실제 Production에서 사용되고 있다고 한다. 개발에 참여한 사람중 유명인으로 Ken Thompson 이 있는데 이 사람은 유닉스의 기반을 만들었고, C 언어의 전신인 B 언어를 발명한 사람이다.
HTML / CSS : HTML5의 부상으로 다시금 주목받고 있는..
- Dive Into HTML5
- GA Dash
- HTML Dog Tutorials
- HTML5 Canvas - Steve Fulton & Jeff Fulton
- HTML5 for Publishers - Sanders Kleinfeld
- Learn CSS Layout
JavaScript : 요즘의 Dynamic 웹페이지를 개발하기 위해서는 필수적으로 알아야 하는 프로그래밍 랭귀지.
- Crockford's JavaScript
- Eloquent JavaScript
- Essential Javascript & jQuery Design Patterns for Beginners
- JavaScript Essentials
- jQuery Fundamentals (starts with JavaScript basics)
- Mozilla Developer Network's JavaScript Guide
- JavaScript Allongé
- Learning JavaScript Design Patterns
- O'Reilly Programming JavaScript Applications - Early Release
Node.js : Javascript로 백엔드 소프트웨어 개발이 가능하게 되었다. 요즘 가장 뜨고 있는 핫아이콘.
.NET (C# / VB / Nemerle / Visual Studio) : 얼마나 많이 쓰이고 있는지는 모르겠지만 유니티에서 요즘 개발을 하다보니 C#에 관련된 내용을 많이 찾아 보게 되었다.
- C# Essentials
- C# Programming - Wikibook
- C# Yellow Book (intro to programming)
- Charles Petzold's .NET Book Zero
- Data Structures and Algorithms with Object-Oriented Design Patterns in C#
- Entity Framework
- Moving to Microsoft Visual Studio 2010
- Nemerle
- Programmer's Heaven C# School Book (covers C# 1.0 and 2.0)
- Threading in C#
- Visual Basic Essentials
- Visual Studio Tips and Tricks (VS 2003-2005 only)
Python : 역시 프로그래밍계의 핫 랭귀지. 정말 많이 쓰이고 사용도 쉽다.
- Byte of Python
- Data Structures and Algorithms in Python
- Dive into Python
- Dive into Python 3
- Hacking Secret Cyphers with Python - Al Sweigart
- How to Think Like a Computer Scientist: Learning with Python
- Invent Your Own Computer Games With Python - Al Sweigart
- Learn Python The Hard Way
- Natural Language Processing with Python
- Python Bibliotheca
- Python Cookbook - David Beazley
- Python for Fun
- Python for Informatics: Exploring Information
- Python for you and me
- Snake Wrangling For Kids
- Think Python (PDF) - Allen B. Downey
R : 통계쪽에서 주로 쓰이는 랭귀지. 빅데이터가 이슈가 되면서 덩달아 주목을 받고 있는 듯 하다.
Ruby : Python과 함께 많은 인기를 끌고 있는 랭귀지로 찬양하는 사람들에 의하면 Syntax가 그렇게 아름다울 수 없다나..
- Learn Ruby the hard way
- MacRuby: The Definitive Guide
- Mr. Neighborly's Humble Little Ruby Book
- Programming Ruby
- Why's (Poignant) Guide to Ruby (mirror)
Scala : 객체지향형이면서도 함수형언어로 Java가 가진 한계를 극복하기 위해 개발되었다고 한다. 스칼라로 작성한 프로그램은 Java와 호환이 가능하며 수많은 Java 라이브러리를 그대로 이용할 수 있다고 한다.
- Exploring Lift (published earlier as "The Definitive Guide to Lift", PDF)
- Lift
- Pro Scala: Monadic Design Patterns for the Web
- Programming in Scala, First Edition
- Programming Scala
- Scala By Example (PDF)
- A Scala Tutorial for Java programmers (PDF)
- Xtrace
- Another tour of Scala
Algorithms & Datastructures : 소프트웨어 엔지니어라면 프로그래밍 언어를 잘 다룰 수도 있어야 하지만 프로그램을 작성하는데 있어 문제해결에 적절한 알고리즘을 선택하고 거기에 걸맞는 데이터 구조를 잡을 수 있는 능력도 꼭 필요하다.
- Algorithms and Data-Structures (PDF)
- Algorithms (draft)
- Binary Trees
- Clever Algorithms
- Data Structures and Algorithms: Annotated Reference with Examples
- Planning Algorithms
- Linked List Basics
- Linked List Problems
- Open Data Structures
새로운 프로그래밍 언어는 이 외에도 계속 개발이 되고 있지만 그 각각은 해결하려고 하는 문제가 무엇인지에 따라 컨셉이 약간씩은 다르다. 주위를 보면 C/C++ 만 알면 세상의 모든 소프트웨어는 구현 가능하다고 믿는 사람들도 있다. 틀린 말은 아니지만 적절한 도구를 선택하여 생산성을 높일 수 있다면 굳이 한가지 도구에 집착하여 호미로 될 일을 가래로 해결할 필요는 없는것이 아닐까.
'IT News' 카테고리의 다른 글
아이패드 미니 레티나 실물 사진들 (0) | 2013.10.23 |
---|---|
웹의 자유를 지키는 구글 프로젝트 쉴드 (0) | 2013.10.22 |
프로그래밍 언어 2013 인기 순위 TOP 20 (0) | 2013.10.20 |
구글 안드로이드 홈페이지가 킷캣으로!! (0) | 2013.10.14 |
스팀 컨트롤러 플레이 영상 공개 (0) | 2013.10.13 |