hankyu blog

毎日半休とってのんびりしたいな〜

どうやってプログラミングを学んだか振り返る

Twitterでフォロワーさんがやっていて面白そうなのでやってみました。
lifina.hatenablog.com


なお、自分は文系卒&社会人からプログラミング始めた勢なので、同じような属性の方は参考になるかもしれません(たぶん)。

自分の勉強スタイル

  • 業務で振られてから身に着ける危機感駆動型
  • 仕事中に調査で時間ロスして残業するのが嫌なので、休日に気になる点を予め調べといたりする
  • 基本的に趣味プログラミングはしない(1)
    • 遊んだりのんびりしてたい
  • 業務以外で新しいことを身に付けたいときは金を払うか、発表する機会を作ってチベーションを保つ(2)
    • 金を払う:スクールとか資格とか 
    • 発表する機会:登壇とか技術書典とか
  • (1)と(2)を気分によってぐるぐるしてる
    • だいたい1,2年で一つの言語や分野に飽きるので気になるものがあったら検索したり勉強会に顔出したりする
  • プログラミングを通して新しいことを知るのはとても好き

プログラミングをはじめたきっかけ

  • IT企業に内定したから
    • たまたま最初に行った合同説明会がIT企業でそこで初めてエンジニアという職業を知った
    • 飽きっぽいので銀行とかは無理だな〜と思ってたので、パソコンさえあればものづくりできるって楽しそうやなと思い何個か受けたら内定した

1社目

  • やったこと
  • 最初の会社は研修が手厚くてありがたかった
    • 実際業務に関わったのは秋からで、春・夏はアルゴリズムからSQLJava研修をやっていた
    • Java研修はやってることの半分も理解してなかったと思う
  • 1年目の春で基本情報、秋で応用情報をとった
    • プログラミングのプの字も知らなかったのでこれは最初にやっといてほんと良かった(資格取ると一時金もらえたので半分そっち狙いだった)
    • 応用情報で選択したプログラミング言語表計算でした(Javaむり)
  • 実務に入ってからはプログラミング覚えるというよりは業務理解がメインだった
  • SQL苦手なんですよね〜ってリーダーに言ったら次の日からSQL使う作業ばかり振られるようになった
    • このおかげでSQLへの苦手意識がなくなった
  • 案件リーダーやったり後輩の面倒見てたりしてた
    • 設計書作ったり手順書つくったり進捗管理したりtお客さんと打ち合わせしたり、この頃が一番マネジメントしてた
  • Web案件を担当した
    • ずっと同じシステムの開発ばかりで飽きたから別のチームに行きたい!ってリーダーに言ったら、同じシステムのWeb化の話があるからそれ頑張ってみよう?って諭された
      • ASP.NETの分厚い参考書と理系の同期に凸していろいろ教えてもらいながら何とか乗り切った
      • この頃から社内だけだと困ったときに聞ける人が足りないことに気がついて、外の勉強会に興味を持つようになった
  • Railsの勉強会に参加するようになった
    • とりあえず潰しの効く技術やってみるかと思いRailsの勉強会に出入りするようになった
    • LTデビューしたりコミュニティの良さを感じながら、Web楽しそうだな〜と漠然と転職を意識し始めた
  • HTML5プロフェッショナル認定資格をとった
    • HTMLを後輩に教えることになったので、体系的な知識を得るために資格をとった
    • これも基礎を網羅できてとても良かった
  • 最後の半年はプログラミングスクールに通った
    • Web系のメジャーな会社とか技術とかよく知らなかったのでそのあたりの情報を得るために入った
    • 同期に恵まれて本当に楽しかった(社会人になってからの友人は貴重)
    • 卒業制作発表に2社目の企業に声かけてもらって、ビジョンが気に入ったので転職を決めた
    • スクールで学んだPHPが2社目のスキルとも合致しててラッキーだった

1.5社目

  • やったこと
  • 2社目に行く前にRails勉強会でお世話になった人のところで2,3ヶ月ほど働いた
    • 初めてリモートで働いた
    • 初めてGitを使った
    • 初めてPRを書いた
  • いわゆるモダンな開発の仕方を教えてもらってとても勉強させてもらった
  • RubyKaigiにみんなで行ったりしてカンファレンスの存在を知った(また行きたいな)

2社目

  • やったこと
  • 知識が足りなさすぎて最初の頃ほぼ毎日泣きながらコード書いてた(凹みマックス期)
    • ここから一行一行全部意識してコードを書くようになった
      • 今までのプログラミングとは...ってくらいカルチャーショックだった
      • 「寝起きでも理解できるコードを書け」と何回も言われた
  • AWS覚えた
    • サーバーを使う人はインフラまで理解してないとだめだという教えを受けてAWSも一通り触れるようになった
  • Webページ制作した
    • css苦手なんですよね〜って話したらアニメーションバリバリのサイトやLPの制作をすることになった
      • このおかげでcssへの苦手意識がなくなった
    • WebのSEOわからなすぎてスクール時代の同期に泣きついて添削してもらった
  • 初めて副業した
    • 本業と同じLaravel×Vueだった
    • ここでDDDを知ったので3社目でGo×DDD見たときに理解が早かったのはラッキーだった

3社目

  • やってること
    • Go
    • AWS
    • Docker
    • Vue
    • Swift
  • Goは未経験だったが他の言語やったことあるから大丈夫でしょうというポテンシャル採用だった
    • 内心最初はとてもビビってた
    • 速攻業務に突っ込まれて実コードを見ながら学べたので、スムーズにGoに慣れることができた
  • 社内にエンジニアがいっぱいいるので周りにすぐ聞ける環境で嬉しい
  • 最近Swiftも触らせてもらえるようになった
    • AutoLayoutがもっとサクサクできるようになりたい

以上です!
2社目3社目のときにやったことは結構端折りましたが、勉強会に開催したり技術書典で本作ったりもしてました。
もし質問とかあれば気軽にどうぞです。
marshmallow-qa.com