こんにちは、明日名古屋駅まで遊びに行きます。
さて、本題。
以下のようなブログ記事が投下されてバズってます。
上記記事群の感想から自身の体験より「初心者がプログラマとしての能力を身に着ける方法について書きたいと思います。」
なお、筆者はまだ学生なので間違いがあると思います。ブコメ楽しみにしてます。
言葉の定義
初心者
変数とか関数とかは少し理解してプログラムを書いたことがある人(業務未経験、プログラムの最大行数は100行程度)
プログラマとしての能力
できてなくてもプログラマ(エンジニア)として働くことができるかもしれませんが、幸せな環境で働くために求められそうなのを二つほど。
大学等でコンピューターサイエンス的なものを身につけている(た)からの方が望ましい。
情報収集能力
エラー文やLog をググって答えがあったら解決できるレベル。
ブログなりTwitterなりをみて最新の技術を得れる力。
設計能力
規模にも依存しますが、
- main 関数に全てのプログラムを書かない
- DRY の法則を知ってる。
- リーダブルコードの内容を大体知っている
とか、
お断り
そうだいさんの記事にも書いてある通りこの方法では大量生産は実質不可能です。
また、年齢等により実行不可能な人はかなりいると思いますが、まだ学生の方は是非試してください。
まとめ
学生時代にIT企業でインターンシップでプログラマとしての能力を身につけれる
前提知識
インターンシップという学生が企業での就業体験をする風習があります。
筆者の紹介
筆者は上記の手法を利用してIT企業でのインターンシップを通してプログラマとして必要そうな知識に少し触れてます。
一応、高校時代から含めて合計9社ほどの会社でインターンシップしてきました。
流れ
1. 独学で少し最低限を学ぶ
ここは適当な本を買って読んで試せば良いでしょう
私はここは一人でやっていたのでほんと寂しくて辛かった。 (話す人欲しい...
私はなんとか頑張って Windows Phone App Store 向けに(今考えるとしょぼい)アプリを公開してました(本当にしょぼいやつ)
2. プログラムを作り終えて公開まで行った実績を元に企業のインターンシップを申し込む
単なる初心者ではダメで、ある程度作り終えるところまで行ったのをアピールします。
- 最初の企業からそこを評価されたと言われましたし、他の企業での似た感じでした
- もちろん最高の出来栄えのが最初から作れるならそれの方が良いでしょう...
3. 他の企業も色々インターンシップ行く
あとは繰り返しで色々な開発(自分の場合 iOS, Android, 組み込み, C#, サーバーサイド) を吸収していけば良いのではないでしょうか。
インターンシップで吸収するメリット・デメリット
メリット
聞けば教えてもらえる
業務とかだと聞く暇ないところあるのではないでしょうか(他の人の記事見てると)
色々な現場を体験できる
SES 主体の会社の売り文句みたいですが、、、
自分の場合は色々な会社を見てました。
それぞれで学べることはありました。
授業料がかからない、むしろ給料もらえる
よく知らないけど、プログラミング教室とか行かずにすみます。
会社によってはお給料が時給でもらえます。 1500円〜が相場かな。Google とかだと3000円ぐらいですね。
地方に住んでいる人へ
開発をまともにするIT企業のインターンシップの9割は東京で行われえています、しかし、地方の人でも週何回〜参加すれば交通費は宿泊費がでるのでそこは自分の可能性を狭めないようにご注意を〜
デメリット
「大学生のうちは遊んでおけ」って言われる
どうせプログラミングして遊んでるんだからインターンシップしてた方が楽しいんだよな...
どうでもいいけど
Mac, Google Chrome で書いてますが、はてなのエディタ壊れてない??(標準IME