読者です 読者をやめる 読者になる 読者になる

そうきたか

技術的なことや読んだ本など雑多にブログを書きます。

僕が参考にしている技術書セレクト記事

Book

f:id:ryskit:20160807220305j:plain

就職してエンジニアとして働くにあたって、どんな本を読んで行けば良いのか、迷うことが多々あります。 特に職場であまり技術書を読んだりする人がいなかったり、周りにどんな本がおすすめか聞く人がいない場合、自分の感覚で選んでいかなければなりません。

ただ、技術書は基本的に 3,000円ぐらいしますし、高いものだと1万円ぐらいするので、こちらとしてはハズレの本を何冊も買いたくはありません。

そんな時に僕は、企業の開発者ブログであったり、エンジニアさんの個人ブログ、Qiitaにわざわざリストアップしてくださっている記事を参考にさせてもらっています。

新人とか新卒、基礎知識などのキーワードとともに検索すると結構出てくるので、いろんな人が同じ本をピックアップしていると買いだなと思ってAmazonでポチります。

そこで、いつも技術書を買う時に参考にしている記事を紹介します。(随時更新します)

新卒ソフトウェアエンジニアのための技術書100冊 - クックパッド開発者ブログ

techlife.cookpad.com

クックパッドの開発者ブログの記事で、現場でRubyを使われているということでRubyの本は多いですが、技術書を選ぶ際に必ず参考にしています。

新人プログラマに正月休み中を使って読んでみてほしい技術書をセレクトしてみた。 - Qiita

qiita.com

いつまでも使える知識・基礎的な考え方が身につく本をリストアップされているみたいです。 変化が速い業界だからこそ、基礎的な知識を見に付けたいので参考にさせてもらっています。

読んで良かった基礎知識の入門書 - Qiita

qiita.com

アルゴリズムやデータ構造についての本が多くリストアップされています。 僕自身、大学では経営学を専攻していたので、計算機システムやOS、アルゴリズムについてはどのような本を読めばいいのかを参考にしています。

新米エンジニアが入社して半年で読んだ・読まされた本まとめ - Qiita

qiita.com

この記事では一冊一冊概要やコメントを残してくれています。 業務で必要な部分の本を全体的に紹介してくれていて助かっています。


また、技術書とは関係ないですが、Qiitaですごい数ストックされていた新人エンジニアサバイバルガイドなるものの記事も参考にさせていただいています。

ロシアの天才ハッカーによる【新人エンジニアサバイバルガイド】 - Qiita

qiita.com

[翻訳] 技術向上ガイド - Qiita

qiita.com

Angular 2 + webpackで書きたい

JavaScript Angular2

f:id:ryskit:20160807220737j:plainAngular2でwebpackを使いたいのに、Tutorialはsystemjsを使っていて、Githubのangular2-webpack-starterのリポジトリはよく分からない状態だったので、とりあえず自分でなんとか動かせるように設定ファイルを書いてみた。

Angular2もwebpack も初めてなので、書き方が正しいのか分からないですが、設定ファイルを晒します。

package.json

{
  "name": "angular2-webpack",
  "version": "1.0.0",
  "description": "trying angular2 + webpack",
  "scripts": {
    "tsc": "tsc -p . ",
    "start": "webpack-dev-server",
    "webpack": "webpack",
    "build": "npm run tsc && npm run webpack",
    "postinstall": "typings install"
  },
  "dependencies": {
    "@angular/common": "2.0.0-rc.4",
    "@angular/compiler": "2.0.0-rc.4",
    "@angular/core": "2.0.0-rc.4",
    "@angular/forms": "0.2.0",
    "@angular/http": "2.0.0-rc.4",
    "@angular/platform-browser": "2.0.0-rc.4",
    "@angular/platform-browser-dynamic": "2.0.0-rc.4",
    "@angular/router": "3.0.0-beta.1",
    "core-js": "^2.4.0",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.6",
    "zone.js": "0.6.12"
  },
  "devDependencies": {
    "angular2-template-loader": "^0.4.0",
    "css-loader": "^0.23.1",
    "extract-text-webpack-plugin": "^1.0.1",
    "file-loader": "^0.8.5",
    "html-loader": "^0.4.3",
    "html-webpack-plugin": "^2.15.0",
    "jasmine-core": "^2.4.1",
    "null-loader": "^0.1.1",
    "phantomjs-prebuilt": "^2.1.7",
    "raw-loader": "^0.5.1",
    "rimraf": "^2.5.2",
    "style-loader": "^0.13.1",
    "ts-loader": "^0.8.1",
    "typescript": "^1.8.10",
    "typings": "^1.0.4",
    "webpack": "^1.13.0",
    "webpack-dev-server": "^1.14.1",
    "webpack-merge": "^0.14.0"
  }
}

tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true
  },
  "filesGlob": [
    "./**/*.ts",
    "!./**/*.d.ts",
    "!./node_modules/**/*",
    "./node_modules/typescript/lib/lib.es6.d.ts"
  ],
  "files": [
    "./app/main.ts",
    "./node_modules/typescript/lib/lib.es6.d.ts"
  ]
}

webpack.config.js

var webpack = require("webpack");
var path    = require("path");

module.exports = {
    entry: {
        bundle: ["./app/main.js"]
    },

    output: {
        path: path.resolve(__dirname, "build"),
        publicPath: "/assets/",
        filename: "[name].js"
    },

    resolve: {
        root: __dirname,
        extensions: ['', '.webpack.js', '.web.js', '.js', '.ts']
    },


    module: {
        loaders: [
            {
                test: /\.ts$/,
                loaders: ['ts', 'angular2-template-loader']
            },
            {
                test: /\.html$/,
                loader: 'html'
            }
        ]
    }
};

この設定ファイル書いて、

npm install

実行して、チュートリアルでも始めれば良いと思います。

いろいろ理解が深まったら、もう少し詳しい記事書きますね。 あぁ難しい。。。。