※2024/03/06 この記事は移動しました。
いろいろ書いてみた
あくまで私の経験から。
ちがうケースもあると思う。
##Web系とSIer系の違い
Web系はお客様がユーザーそのもの(ユーザー企業と呼ばれる)。
なので、コーディングの前提があくまで対ユーザーになる。
だから仕様書は少なくていいし、エビデンスも不要だったりする。
いわゆる「憧れのエンジニア」は多分こっち。
SIer系はお客様がユーザー企業になる。
なので、コーディングの前提はユーザーというよりは企業の担当者向けみたいになる。
ユーザー企業(非エンジニア)に対して仕事をするので、
詳細な仕様書を求められることが多く、
ちゃんと動くことを証明するための画面エビデンス(全機能・全操作分)を
求められることも多い。
いわゆる「IT土方/ブラック企業」は多分こっち。
Web系はとかくコードを書く。
SIer系はとかくドキュメントを書く。
Web系は育成をある程度してくれる。
SIer系は育成とかしない(メンターとかいないので、現場で自分でもがくしかない)。
Web系は服装自由が多い。
SIer系はスーツが多い(エンジニアというより会社員という感じ)。
Web系はリリースが多い(週1回とか)。
SIer系はリリースが少ない
(バグがない前提だから複数リリースしない事が多い、Webシステムの場合は月1回とかはあった)。
Web系は自動テストが多い。
SIer系は打鍵テストが多い
(エンジニアのレベルにばらつきがあるからだと思う)。
Web系はエビデンスが最小限。
SIer系はエビデンスが最大限
(押す、スクショとる、エクセルに貼り付ける、をひたすら繰り返す)。
Web系はエンジニアの最低レベルが高い
(ある程度はできる人が多い)。
SIer系はエンジニアの最低レベルが低い
(if文がギリわかる新人からペーパープログラミングしてた超ベテランまで幅が広い)。
Web系は人の入れ替わりが少ない
(もちろん転職や引き抜きもあるだろうけど)。
SIer系は人の入れ替わりが多い
(契約終われば終了だし、突然他のプロジェクトに持っていかれたりする)。
Web系はWeb系。
SIer系はオンプレミス(ローカル環境で動くアプリ)が多い。
Web系はスキルが身につく。
SIer系は上手く行けばスキルが身につくが、ヘタなところにいくと何も身につかない。
Web系はある言語や環境に専門的になれる(受託開発ではない場合)。
SIer系は幅広く学ぶことができる
(C#,Python,RPG(ゲームではなくてIBMの言語),DBもOracle,DB2,MySQLなど)。
##個人的にいいなぁと思った環境
やり方は任せてくれるところで、人間関係が良好なところ。
心理的安全性とまでいかなくとも、思いやりがある人が多いところ。
デュアル以上のモニタをくれるところ。
※追記 MacでRetinaとかならデュアル出なくても良い。
あと、不可能な納期を押し付けて来ないところ。
##Web系にSIerの人が来たらすぐに馴染めるか?
もはや人によるとしか言えない。
自由な雰囲気に馴染めるかどうか。
戸惑う人のほうが多そう。
ただ、スキル的にはSIerは知らないスキルの習得が得意な人が
多い印象があるので、スキルの問題はないと思う。
あと、Macは珍しくて操作を知らない人のほうが多いと思う。
##プログラミングに飽きる?
飽きる。
そりゃ飽きる。
人間だもの。
飽きたらちょっと離れて、やりたくなるのを待ったりする。
エンジニアリングに完全に興味がなくなったら、
本屋さんとかで働きたい。
##アルゴリズムは役立つか?
直接役に立つ場面は多くないのかな。
詳しくないから多分だけど、
処理速度がすごく求められる場面では逆に知らないと太刀打ち出来ないイメージ。
デザインパターンも合わせて学ぶといいと思う。
##プログラム上達の最短ルート
王道なし。
体系的に学んだことがないから、むしろ教えてほしい。
体感的に言うと、
入門書読んで、なにか簡単なものを作ってみて、いじってみる。
小さく初めて、ちょっとずつ学ぶ感じ。
入門書100回読んだりProgate100周するよりも、
入門が終わったら何か作ってみたほうがいいと思う。
自分の頭を回してみる必要がある。
あとは、言葉を覚えること。
クラスとか、メソッドとか、正規化とか。
そういう意味で、基本情報技術者試験はオススメ。
実務に役立たないと言われるけども、
学ぶ上での基礎にはなる。
##他言語を学ぶコツ
王道なし。
これもまた教えてほしい。
多分、まずは言語の思想を知ること。
オブジェクト指向なのか、関数型なのか、
動的型付けなのか、静的型付けなのか。
思想を知った上で、最低限を学ぶ。
変数・if文・for文等はほぼすべての言語にあるから、
その書き方を学べばいいと思う。
##コードレビューのコツ
わからん。
場面によりけりだと思う。
処理速度より読みやすさが必要な場面なら、読みやすいかどうかだし。
時と場合によるのでは。
ただ、どうしてそういう書き方をしたのか、
理由が説明できないコードはNGだと思う。
理由は論理的以外にも、
「時間がなくて」とか「思いつかなくて」でも良い。
そして、責めないこと。
責めても得られるものはない。
##便利ツール
Visual Studio Codeがすごくいい。
AtomもSublimeもBracketsもいいが、
今はVSCodeがひとつ抜けている感じがする。
プラグインが豊富で、あらゆる環境に対応してくれる。
DBクライアントは
OracleのSQLDeveloperがいい。無料で、会員登録は必要。
特別優れたところは無いけど、見た目がわかりやすい。
Windowsにもあるというのが強み。
AdobeXDは素敵なツール。
UIを考えるのに便利。制限付き無料、会員登録必要。
Todo管理は
Microsoft To-Doが好き。
チェックリストを階層化できるし、
チェック項目ごとにメモを書ける。
Trelloも便利。
カード一覧で見れて把握しやすい。
MarkdownのメモにはVSCode。
Slackも使う。
最近はMicrosoft Teamsに注目してる。
あとは...無いものは作ればいいので作る。
##フォント
フォント好きなのでコーディング用フォントも使ってたりする。
最低限、ゼロとオーの区別が付きやすいフォントがいい。
あと等幅がいい。
Fira Code
リガチャという見せ方がついてるフォント。
https://qiita.com/tonkotsuboy_com/items/e512bfa5db7593b87d74
なれるとわかりやすくて便利。
Myrica
シャープでかわいくて読みやすい。
##最近気になっていること
Vue.jsがすごくいい。
これからも伸びそう。
Microsoftの勢いがすごい。
Appleの株価を抜いたし。
機械学習は面白そう。
インフラ・プログラマ・デザイナーの垣根が
どんどん下がっていってる気がする。
味噌ラーメン屋。北海道絶対うまい。
https://r.gnavi.co.jp/dhe1jmek0000/