プログラマ養成

# この研修は15日で終わるよw
15日間は研修期間とし、給与は1/2です。
Issueを10個くらい終わったら、研修卒業

# 良い性能のPCが良い
研修期間は、自分のPCかレンタルPC(代替月1万くらい)でやってやると決まったら
Macの購入をおすすめします。(前借りなども頑張りに応じて考慮しますので、交渉して下さい)

Macbookが推奨(2014年以降のもの、Air、Pro)
Windowsの場合は(非推奨)
購入年数3年以内
windows 10
Intel Core i3-4000M 2.40GHz以上
メモリ: 4GB以上
ストレージ 128GB以上
が無ければ教えられません。上のスペックでもギリギリです。

https://qiita.com/rainbowaffro/items/b3d4962829e969073b70

# エンジニアになるのに必要なこと
a. ブラインドタッチ(1日)
http://typing.sakura.ne.jp/sushida
```
課題0: 
fとjに指がのっていることが重要
全てのコースでお得になれば合格
```

b. ターミナルを使えるようになる(2日)

http://dotinstall.com/lessons/basic_unix
#12以降は難しいので流してください

```
課題2: 
ホームディレクトリに移動する
ディレクトリ test を作成する
ファイル一覧を表示して test が作成できたことを確認する
ディレクトリ test に移動する
隠しファイルも表示するオプションを付けて ls を実行し、test の中には . と .. しかないことを確認する
hoge というディレクトリを作成する
ファイル一覧を表示して hoge が作成できたことを確認する
親ディレクトリに移動する
ディレクトリ test を test2 という名前で丸ごとコピーする
ディレクトリ test と test2 を削除する
```
が出来ればOK
#12移行は


c. エディター

http://dotinstall.com/lessons/basic_sublimetext
http://dotinstall.com/lessons/basic_vim
使えていればOK

d. html, css, javascript


http://dotinstall.com/lessons/basic_html_v3
http://dotinstall.com/lessons/basic_css3_v2
http://dotinstall.com/lessons/basic_javascript_v2
```
課題3: 
これらを使って
http://qiita.com/scivola/items/17470c52641d3ffa1650asd
この404ページのデザインを1024px幅のものを出来るだけ似せて作製する。
理想はレスポンシブで作製出来ることだが技術が追いつかなければ、固定幅で出来るだけ似せる
その際にchrome developer consoleを使うと良い
http://www.buildinsider.net/web/chromedevtools/01
```

e. ruby


http://dotinstall.com/lessons/basic_ruby_v3
```
課題4
$ irb
irb(main):001:0> 23 + 27
=> 50
irb(main):002:0> 50 - 23
=> 27
irb(main):003:0> 10 * 5
=> 50
irb(main):004:0> 10**5
=> 100000
irb(main):006:0> x = 1
=> 1
irb(main):007:0> x + 59
=> 60
irb(main):005:0> 50 / 5
=> 10
irb(main):008:0> hi = "Hello, Mac!"
=> "Hello, Mac!"
You can also invoke a single program with irb. After running the program, irb exits. Let's call our hello.rb program −

$ irb hello.rb
hello.rb(main):001:0> #!/usr/bin/env ruby
hello.rb(main):002:0*
hello.rb(main):003:0* class Hello
hello.rb(main):004:1> def initialize( hello )
hello.rb(main):005:2> @hello = hello
hello.rb(main):006:2> end
hello.rb(main):007:1> def hello
hello.rb(main):008:2> @hello
hello.rb(main):009:2> end
hello.rb(main):010:1> end
=> nil
hello.rb(main):011:0>
hello.rb(main):012:0* salute = Hello.new( "Hello, Mac!" )
=> #<Hello:0x319f20 @hello = "Hello, Mac!">
hello.rb(main):013:0> puts salute.hello
Hello, Mac!
=> nil
```
これらの意味が分かればOK

f. docker-railsを入れるまたはcloud9を使う

https://programmingnavi.com/1145/
https://github.com/akihitoalextsuboi/docker-rails

g. Ruby On Rails
https://dotinstall.com/lessons/basic_rails_v3
```
課題5
一般的なTODOアプリが作れること
```


h. git
http://dotinstall.com/lessons/basic_git
```
課題6
git-flowとgithub-flowの違いを理解していること
またそれぞれのやり方でgitを操作出来ること
Github上にgで作ったプロジェクトをpushする
参考
https://qiita.com/dev-neko/items/28ac253ea295ad6c2b73
```


- ドットインストール
- html, css
- javascript
- sql
- c
- ruby on rails
- objective-c
- android java
- python
- vim
- git

h+.
これ参考にrubyとrails, installしてみて
https://gist.github.com/satococoa/5830035
```Alexs-MacBook-Pro:iphone-repair alex$ rails -v
Rails 5.1.4
Alexs-MacBook-Pro:iphone-repair alex$ ruby -v
ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin16]
```
それでその後
https://github.com/tokonatsu/iphone-repair
このページのreadme見ながらiphone-repairをlocalで起動できるようにする

https://github.com/tokonatsu/iphone-kaitori
こちらも、これもiphone-repairとほぼ構成一緒だからこれも起動できるようにする
ほんでそこまでできたらお問い合わせ機能作る

i. テスト
BDD
http://www.betterspecs.org/

j. sql,mysql,postgresqlについて
トランザクションに関する理解
ロックに関する理解

k. linuxサーバーに関する深い理解
ログ、ファイル構成、ネットワーク

l. アプリケーション構成について
REST
CRUD
MVC
client <=> server
オブジェクト指向と関数型
monolythicとmicroservices

m. 設計やレビューに関して
人と一緒にコーディングすると格段に上達する
人のコードを見てレビューが出来るようになるとよい

# 環境構築について
https://programmingnavi.com/1145/
必ず自分より出来る人とやる

# 勉強する場所
- コワーキング
- connpass
- wantedly

# 全てはここから
http://dotinstall.com/

# 参考になった入門サイト
http://schoo.jp/

# デザインパターン
# ruby
https://github.com/nslocum/design-patterns-in-ruby

# python
https://github.com/faif/python-patterns

## javaとc++
http://www.rarestyle.net/main/patterns/patterns.aspx
http://www002.upp.so-net.ne.jp/ys_oota/mdp/

# rubyとrailsやるなら
http://qiita.com/jnchito/items/dedb3b889ab226933ccf

# 配列比較表
http://0xcc.net/blog/archives/000043.html

# 神ページpython
http://aidiary.hatenablog.com/archive

# 機械学習
https://github.com/luispedro/BuildingMachineLearningSystemsWithPython

# PCの仕組み
http://www.mtl.t.u-tokyo.ac.jp/~sakai/hard/
http://hiroshi1.hongo.wide.ad.jp/hiroshi/files/network/index.html
http://www.eidos.ic.i.u-tokyo.ac.jp/~tau/lecture/operating_systems/

# 設計に悩むようになったら
https://gist.github.com/sunaot/2937524
http://qiita.com/tos-miyake/items/8dffb16273726f538d49
http://qiita.com/jnchito/items/dedb3b889ab226933ccf

# restfulとは
http://rest-pattern.hatenablog.com/entry/collection-member-resource
https://www.slideshare.net/MonstarLabInc/rest-ful-api?next_slideshow=1
https://qiita.com/yu1ro/items/f366ded721f03ae91d96#qiita

# コーディング規約
https://qiita.com/haracane/items/03a38db2cc299bce0537

# 命名規則
https://qiita.com/takahashim/items/ccfd489c9b26f15b7193
https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/
https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/%E3%82%A8%E3%83%83%E3%82%BB%E3%82%A4/%E5%90%8D%E5%89%8D%E9%87%8D%E8%A6%81/
https://www.shibuso.net/posts/47


# パフォーマンス監視
http://mikeda.hatenablog.com/entry/2015/10/17/134805

# エラーハンドリング
https://qiita.com/jnchito/items/3ef95ea144ed15df3637

# routingについて
http://tech.kitchhike.com/entry/2017/03/07/190739

# rails girlsがすごいいい
http://railsgirls.jp/app