LoginSignup
11
10

More than 1 year has passed since last update.

ITエンジニアとしての経歴、5割以上読んだ技術書(自己紹介用)

Last updated at Posted at 2018-04-19

自己紹介用の記事です。
私の技術レベルを把握してもらうために、書きました。

2割増しで見栄が入っていると思いますが、嘘は言っていないはず。

半年ごとにメンテします。

ITエンジニアとしての経歴

学生時代

2006年(大学1年生)

  • 親の薦めで大学生協のカタログに載っていたノートPCを買う。 FMV-BIBLO MG55R/T (WindowsXP, メモリ512MB、PentiumM)この頃、パソコンに興味なし。
  • みんなやってたmixi(SNS)を始める(当時は招待制)
  • 大学の授業でVisual Basicを2日間触る。プログラミングに少し興味を持つ。

2007年(大学2年生)

  • モノづくりサークル(学生フォーミュラ)で3D CAD(Solid Works)を使う。3Dに感動する。パソコンの操作に慣れてくる。
  • サークルでプログラミングしている人(ECU)やサイトを作っている人に対して、「すごいな」と憧れるようになる。
  • 画像共有サイト(Picasa)を使う。

2008年(大学3年生)

コンピュータに興味を持ち始める。

  • サークルのホームページをイチから作成する。相談できる人がいなくて、ほぼ手探り。
    • HTML(XHTML), CSS(JavaScriptは使っていない)
    • 「『Web標準の教科書』秀和システム」を読んで、標準を気にする
      • <br />とか
    • CSSのfloatに苦しむ。カラムレイアウト難しい
    • FileZillaでHTML,CSSファイルをサーバに配置
  • 成人サイトを見るようになる(実家)
    • 家族が来たときにそなえて、Win+D, Alt+Tabなどのショートカットを重宝する
    • ショートカットキーを覚えるため、ショートカットキーのカンペをトイレに貼る
    • 家族がPCを使っても問題ないようにするため、ブラウザの履歴やWindowsの共有設定などを意識する

2009年(大学4年生)

量子化学の研究室に所属し、FortranとLinuxを学ぶ

  • 教授からLinuxを教わる

    • 教授曰く「Microsoft信者になるな」と。(うろおぼえ)

    • ノートPCにUbuntuをインストールする。いろいろハマる

      • アップグレードしたら起動しなくなった
      • Ubuntu削除したらWindowsが起動できなくなった(MBRを修正してしまったため)
    • いろんなディストリビューションを、とりあえずインストールしてみる

      • CentOS, Fedra, Vine, Puppy Linuxなど
      • なんだかんだでUbuntuが一番ラクという判断を下し、Ubuntuに決める
    • 「『Linuxコマンド ビギナーズブック』翔泳社」で、コマンドを1個ずつ試す。

    • CUI操作に憧れる

      • 当時連載していた「Bloody Monday」というハッカーが主役の漫画に、影響を受ける
      • 意味もなく仮想コンソール(Ctrl+Alt+F1~F6)で、操作する
  • 教授からEmacsを教わる

    • 教授曰く「Emacsは何でもできる」
    • 教授曰く「Emacsのキーバインドは、shellと同じ」
  • Fortran77を学ぶ

  • 動画に興味を持つ

    • DVDをddコマンドでコピー(iso形式)
    • DVDリッピングソフトを使う(DVD Decrypt, DVD Shrink)
    • ネットからダウンロードした動画をDVDに焼く
    • 動画形式、難しい
  • フリーソフトに興味を持つ

    • 「フリーソフト500選」という本を購入して、おもしろそうなソフトをインストールする
    • VLC Media Player, Gimp, Sakura Editor, Em Editorなど
  • PCの高速化に興味を持つ

    • メモリ増加
    • デフラグ
    • スタートアップの設定変更
    • Windowx XPクラシックモード

2010年(大学院1年)

他大学の大学院に進学。量子化学の研究室に所属し、FortranとLinuxを学ぶ

  • 自作PCにトライ

    • 最低スペック(OS除いて3~4万円)
    • パーツは店員さんに選んでもらった
    • ディスプレイは、大学で拾ってきた15インチディスプレイ
    • OSはUbuntu
  • Fortran90(Intel Fortran)でプログラミング

    • エディタはEmacs
    • Makefile使用
    • デバッグはprint
  • MathematicaやMaximaを少し触る

    • Mathematicaのグラフ表示便利!
  • C言語を学ぶ

    • ポインタぜんぜん分からん
  • 応用情報処理試験を受けるが、午前で落ちる

    • データベースやネットワークが全然分からなかった

2011年(大学院2年)

  • Emacsをカスタマイズするようになる

    • 「『Emacsテクニックバイブル』技術評論社」で、カスタマイズする
      • インストールするだけ。Lispは書いていない
    • いろいろ設定して思ったこと「デフォルトのキーバインドがまともなソフトを使った方がいいのでは?」
  • LaTeXを使う

    • 数式が書けるのすごい!
    • Emacs用のYaTeXを使う
  • アメーバピグにハマる

    • アイコンは当時に作成したもの
  • 応用情報処理試験を受けるが、午後で落ちる

  • CPUファンの埃を取るため、ノートPCの分解を行う

    • ノートPCが熱すぎるため、CPUファンの埃を取る必要があると判断した
    • 埃は除去できたが、ノートPCは熱いまま
    • この「分解経験」が、のちにThinkPadを買うことにつながる

社会人時代(会社I)

  • 独立系SIerに入社
    • 従業員数300~400人

2012年4~6月(新人研修)

  • Excelでフローチャートを作成(1日)
    • 閏年計算のフローチャートなど
    • Excelで図を描くことが、面倒であることを知る。これ意味ある?
  • C言語を学ぶ(1カ月)
    • Visual Studio 2010を使用。
      • IDEの存在を知る。デバッガ便利
      • 学生時代、コンソールで開発していたのは何だったのか?!
    • ポインタを理解する
    • 文字列処理、めんどい
    • 演習は、「設計、プログラミング、テスト」のウォータウォール開発
    • Wordで詳細設計書を書くことが、面倒であることを知る
      • ループやif文を文章で書くの、難しい。これ意味ある?
    • プログラミングが終わるまで、実行してはいけない
    • 関数の途中でreturnしてはいけない
  • Javaを学ぶ(0.5カ月)
    • Eclipse使用。
    • メモリ気しなくていいの、便利
    • getter, setterの必要性が分からない
    • 「車」の例えで、オブジェクト指向を知る
  • 4~5人のチームで、Androidアプリを作る(1カ月)
    • Android全然分からん。XML, Activityなどなど。
    • Eclipseプラグインのエミュレータ、遅い
    • とりあずアプリはできた。なんだかんだで楽しかったし、意味はあったと思う
    • 退職するまでの6年間、Androidアプリのお仕事は一度もありませんでした。

2012年(入社1年目)

  • Excel VBAで、グラフ描画アプリを作る

    • Visual Basic Editor、使いづらい。
    • バージョン管理は、ファイル名に日付と連番
      • ソースの差分も分からん
    • Excel VBAの便利さを知れた
  • 応用情報処理試験に合格!

2013年(入社2年目)

  • Software Designを年間購読してみる

    • 全然わからん
    • 興味ある特集のときだけ、購入しよう
  • CAD/CAM開発のプロジェクトに所属する

    • 20年以上開発が続く、C/C++で書かれたアプリ(Visual C++)
    • C++という名のC言語
    • 構造体のアライメントを意識する
    • 1ファイル2000~3000行
      • ソースコードの約1/3が、修正履歴として残っているコメント文
    • nullで落ちたときに責任を追及されないよう、とりあえずnullチェックする
    • コードを書くより、影響範囲を調べている時間の方が長かった
  • ThinkPad X220を購入

    • 武骨なところが好き。「丸み」という媚がない。
    • キーが打ちやすい
    • 分解しやすい(マニュアルあり)

2014年(入社3年目)

  • 社内Webシステム開発のプロジェクトに所属する
  • Webの用語、ぜんぜんわからん
    • request, response
    • Spring用語(AOP, DI, Autowired)
    • Struts用語(Actionとか)
    • ビジネスロジック

社内Webシステム(Terasoluna)の環境

  • データを登録して一覧形式で表示するシステム
  • Java7/8, PostgreSQL9.4, HTML5, CSS3, JavaScript(ES5)
  • TERASOLUNA Server Framework for Java(struts, springベース. NTTデータ製)
    • Spring3系
    • commonsLog, log4j
    • lombok
    • iBatis2
  • Bootstrap3/4
  • jQuery UI
  • Pure JavaScript
    • jQuery, tablesorter, lodash
  • サーバ環境
  • Windows Server 2012
    • Tomcat 8
    • Apache 2.2
    • pgAdmin3
  • 開発環境
    • Git (TortoiseGit)
    • Eclipse4.6
    • IE11, Firefoxサポート

2015年(入社4年目)

  • Webがだんだん分かってくる

  • 2000年頃に作られたWebシステムの、老朽更新プロジェクトに少し関わる

    • 独自フレームワーク
    • Java5? ジェネリックが使われていなかった
    • クソコード/クソ設計に出会う
  • Markdownを知る

    • ドキュメントをmdで書くようになる
  • ITProに掲載さているSEの小説を読み、今の職場に疑問を感じるようになる

2016年(入社5年目)

  • 仕事でSeleniumを検討する

    • IE11、期待通り動かない。つらい
    • 自動登録には使えそう
    • IDが重複している画面だとSelenium使いにくい
  • 勉強会に初めて参加する

    • まどべんよっかいち
    • WCAN
    • 高校生の発表や、サンデープログラマの発表を聴き、衝撃を受ける(今まで私は何やってきたたんだろうか?)

2017年(入社6年目)

  • ThinkPad T460sを購入

  • Spring BootでWebシステムを開発

  • ハッカソンに初めて参加する

    • SPAJAM予選
    • MashupAwards ハッカソン
  • 勉強会で発表する

  • チーム内で勉強会を開催する

  • 豊田市でもくもく会を開催

  • O社主催の勉強会に参加し、O社の中の人の技術力の高さに衝撃を受ける

    • 今までも技術力の高い人に出会ってきたが、年齢や業界が違う(Web業界)ということで、あまり意識してこなかった(ヨソはヨソ、ウチはウチ)
    • 自分と同じ年齢、同じ業界で働く「技術力の高い人たち」を見て、「こういう人たちがたくさんいる会社で働きたい」と思うようになった
      ⇒ 転職を志した

2018年 転職

AIベンチャー企業に転職.

  • ドキュメント共有としてConflucenを使用。
    • Excelでドキュメントを書く必要がない!
    • 論理構造を持った文章が書きやすい!
  • メッセンジャーで会話
  • リモートワークOK
  • 皆、技術レベルが高い!

2018年

  • Scalaで書かれたシステムを少し修正
  • AWSのEC2を使用
  • Dockerを使う
  • Pythonでデータ可視化
    • bokeh, Jupyter Notebook, pandasなど
  • レポート作成業務?
  • puppeteerでブラウザの操作を自動化

2019年

  • openapi-generatorを使って、Pythonのクライアントライブラリを作成。PyPIに登録。
  • 「検索技術の基礎」本を少し読む

5割以上読んだ技術書

技術書を買うのが趣味です。
技術書を読んだだけでは、何かができる訳ではありません。
それでも、技術レベルを測るための1つのパラメータにはなるかと思います。

「Javaができます」と言うよりは、「Effective Javaを7割読みました」と言った方が、レベル感が伝わる気がします。

技術書 何割読んだか 読んだ年
『Web標準の教科書』秀和システム 7 2008
『Linuxコマンド ビギナーズブック』翔泳社 6 2009
『Emacsテクニックバイブル』技術評論社 5 2011
『UNIXシェルスクリプトコマンドブック』 5 2011
『正規表現辞典 』翔泳社 5 2011
『明解C言語 入門編』SBクリエイティブ 10 2012
『C/C++プログラミングの「迷信」と「誤解」』技術評論社 5 2013
『Lepton先生のCの強化書』翔泳社 5 2013
『Effetive Java第2版』丸善 6 2015
『Gitによるバージョン管理』オーム社 5 2015
『JavaScript 第6版』 O'Reilly 10 2015
『JUnit実践入門』技術評論社 7 2015
『SQLアンチパターン』O'Reilly 5 2015
『理論から学ぶデータベース実践入門』技術評論社 5 2015
『良いコードを書く技術』技術評論社 5 2015
『Selenium 実践入門』技術評論社 8 2016
『Seleniumデザインパターン & ベストプラクティス』O'Reilly 8 2016
『SQL実践入門』技術評論社 7 2016
『プログラマのための文字コード技術入門』技術評論社 10 2016
『演習で力がつく HTML/CSS コーディングの教科書』SB Creative 9 2016
『Webを支える技術』技術評論社 7 2016
『Gitが、おもしろいほどわかる基本の使い方33』MdN 8 2017
『Java本格入門』技術評論社 8 2017
『システムテスト自動化 標準ガイド』翔泳社 8 2017
『正規表現 技術入門』技術評論社 5 2017
『ゼロから作るDeep Learning』O'Reilly 8 2017
『はじめてのAndroidプログラミング』SBクリエイティブ 9 2017
『達人に学ぶDB設計 徹底指南書 』翔泳社 8 2017
『改訂新版JavaScript本格入門』技術評論社 6 2017
『知識ゼロから学ぶソフトウェアテスト』翔泳社 10 2017
『Real World HTTP』O'Reilly 7 2017
『リーダブルコード』O'Reilly 10 2017
『Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門』翔泳社 8 2018
『Scalaスケーラブルプログラミング第2版』インプレス 3 2018
『Unityの教科書』SB Creative 10 2018
『プログラマのためのDocker教科書』翔泳社 5 2018
『Spring徹底入門 』翔泳社 8 2018
Pythonデータサイエンティストハンドブック 4 2018
情報検索の基礎 4 2019
『オブジェクト指向UIデザイン』技術評論社 10 2020
『はじめてのUIデザイン』技術評論社 10 2020
『UIデザインの教科書』翔泳社 10 2020
『パケットキャプチャの教科書』SBクリエイティブ 10 2022
『TCP技術入門』技術評論社 10 2022
『UXライティングの教科書』翔泳社 10 2022

勉強会で発表したときの資料

発表日 タイトル 勉強会
2016/07 テスト自動化ツール[Selenium]を検討してみて 第15回まどべんよっかいち
2017/02 新人さんに知ってほしい「文字コードのお話」 名古屋マークアップ勉強会 2/18
2017/05 私の技術書の選び方 新卒でもわかるソフトウェア開発技術書の良書の見分け方
2017/07 チーム内勉強会はじめました WCAN 2017 Summer
2018/03 col要素のspan属性値を変更するとIE11が強制終了する話 第3回名古屋若手Webエンジニア交流会
2018/04 Java7からJava8に移行した際にClassCastException発生 名古屋Javaユーザグループ 2018年4月
2018/05 ImageMagickで変換したBMP画像を、Go言語で読み込んだら「bmp: unsupported BMP image」と言われた 第4回名古屋若手Webエンジニア交流会
2018/07 PythonでBokehて Python東海

自分の中では得意な技術

  • Pure JavaScript(ただしES5)
  • Java8
  • jQuery

まとめ

  • コンピュータに興味を持ち始めたきっかけが、リビドー(リビドー駆動開発
  • インストール厨
  • 技術書を買うのが趣味
  • 何かを1個ずつ試すのが好き
  • サービスやアプリを作ったことがない。今年は何か作りたい!
11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10