NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

- CPUとメモリの知識。C言語のポインタとかアセンブリとか多少分かる程度
- http://schweigi.github.io/assembler-simulator/ <- これでFizzBuzzとか実装できるくらい?
- OSの知識。メモリ割り当て・マルチタスクなど

この辺が分かると、GC付きのオブジェクト指向な言語が目に見えないところで何をやっているかが想像つくようになる。
メモリリークとかマルチスレッドプログラミングとかも理解しやすくなるはず。
「30日でできる!OS自作入門」はこの二つを学べるので超おすすめ。

---

- Linuxが使える
- VPSでCentOSに最新のPHP入れてphpinfo出すとこまで軽くできればOK

実務的なスキルだけど、「VPSでCentOSに最新のPHP入れてphpinfo出す」の過程にはかなり色んな知識が必要になってくる。
「xxの技術を使って~~する」みたいなノウハウ記事の場合、こういうスキルを前提に書いてるものが多い。
この辺が分かるとそういう情報をスムーズに自分の環境に応用できるはず。

---

- 問題を解決するためのアルゴリズムを自分で組み立てられる能力
- http://vipprog.net/wiki/exercise.html <- この問題くらいは苦労せず解けるくらい

これは絶対要るので、もし身についてないと思ったらひたすら色んな問題を探して解いていくしかない。練習あるのみ。
GoFのデザインパターンの発想とかはこれがちゃんと身についてればわざわざ覚えなくても自然に思いつくものが多いと思う。俺が天才なだけだったらごめん。
デザパタの名前を覚えておくと設計の議論をする際に役立つことはあると思う。

---

- 公開鍵暗号基盤
- Webの仕組み
- 「Webを支える技術」に出てくるやつ
- ブラウザの開発者コンソールとかCharlesはズットモと言えるレベル
- OAuth、OpenID Connect
- 簡単なドキュメントが用意されてればどんなサービスのWeb APIも叩けるよってレベル
- 「めんどうくさいWebセキュリティ」に出てくるやつ
- 最低限、 XSS・CSRF・SQLi は分かるしCTFでそれ系の問題が解けるレベル

WebでもGUIでも、Webが絡むアプリを作る時に必要になる知識。
分かってないとハマることが多かったり、気付かない内に脆弱性を作りこんだりすると思う。
自分で生のパケットやWebリクエストを読んだり、書き換えたりする経験は割と大事。
なのでCTFに没頭するとこの辺の知識が身に着く、かもしれない。
何も分からないなら「セキュリティ・ミニキャンプ」ってイベントに参加すると教えてくれる人に会えるかも。
CTFまとめ: http://nanuyokakinu.hatenablog.jp/entry/2015/08/24/213158
XSS Challenges: http://xss-quiz.int21h.jp/

---

- ネットワークインフラ
- http://aws.clouddesignpattern.org/index.php <- これが理解できるレベル
- RDBMS
- ググりながらでもSQL一通りかければOK

特にWebアプリを作る時に必要になる知識。
パフォーマンスチューニングに関しては、ISUCONの過去問を解くと良いと思う。

---

- イベント駆動型プログラミング
- 非同期プログラミング
- アプリケーションのライフサイクル

Webにしろスマホにしろ、フロントエンドをやる場合に必要になる知識。
何個か作るうちにこういう壁にぶつかるはず。
フロントエンドに特化するなら、最近のクライアントサイドMVCを追うと良いと思う。データバインド・MVVM・Flux・リアクティブプログラミング辺りがキーワード。

---

- アルゴリズムとデータ構造

Topcoderとかで試されるやつ。
「プログラミングコンテストチャレンジブック」、通称蟻本をやると良いと思う。
自分は分かってないんだけど、この辺ちゃんとやってたらもっとスマートにいけたのかな?って思うときがたまにある。

---

- Computer Science
- 「SICP」とか「アンダースタンディング・コンピュテーション」でやるやつ

間違いなく基礎と呼べるものだけど、実務で役立つものかは微妙。やってないので何とも言えない。
関数型プログラミングのかなり深いとこまで潜るには役立つと思う。
     
 
what is notes.io
 

Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 12 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.