自己紹介用の記事です。
私の技術レベルを把握してもらうために、書きました。
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を学ぶ
- 学んだだけ。コードは書いていない。
- 教授よ、なぜFortran90でなくFortran77を勧めた
-
動画に興味を持つ
- DVDを
dd
コマンドでコピー(iso形式) - DVDリッピングソフトを使う(DVD Decrypt, DVD Shrink)
- ネットからダウンロードした動画をDVDに焼く
- 動画形式、難しい
- 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は書いていない
- いろいろ設定して思ったこと「デフォルトのキーバインドがまともなソフトを使った方がいいのでは?」
- 「『Emacsテクニックバイブル』技術評論社」で、カスタマイズする
-
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してはいけない
- Visual Studio 2010を使用。
- Javaを学ぶ(0.5カ月)
- Eclipse使用。
- メモリ気しなくていいの、便利
- getter, setterの必要性が分からない
- 「車」の例えで、オブジェクト指向を知る
- 4~5人のチームで、Androidアプリを作る(1カ月)
- Android全然分からん。XML, Activityなどなど。
- Eclipseプラグインのエミュレータ、遅い
- とりあずアプリはできた。なんだかんだで楽しかったし、意味はあったと思う
- 退職するまでの6年間、Androidアプリのお仕事は一度もありませんでした。
2012年(入社1年目)
-
Excel VBAで、グラフ描画アプリを作る
- Visual Basic Editor、使いづらい。
- マウスホイールのスクロールが効かないし。http://blueskynet.seesaa.net/article/34501807.html
- バージョン管理は、ファイル名に日付と連番
- ソースの差分も分からん
- Excel VBAの便利さを知れた
- Visual Basic Editor、使いづらい。
-
応用情報処理試験に合格!
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個ずつ試すのが好き
- サービスやアプリを作ったことがない。今年は何か作りたい!