はてなキーワード: ブランチとは
転職サイトでスカウトが来てさ、自動送信っぽい文章じゃなくてちゃんと俺向けにスカウト文が丁寧に書かれてて条件も悪くなかったから一応応募してみることにしたのよ
履歴書と職務経歴書とGithubアカウントの提出を求められたんだよね
で、履歴書と職務経歴書はともかくとして主に使ってるGithubのアカウントは今勤めている会社の機密情報だし提出は難しいです、って言って
一応個人用アカウントはあるので送るけどGithub管理下に置いている一部の個人開発アプリ(それもプライベートブランチ)くらいしか置いてないし大したことわかりませんよ
代わりといっちゃなんですがポートフォリオで個人開発歴とか教えますよって伝えた上でそっちも教えたの(そもそも求人票にはGithubアカウント提出必須とか書いてなかった)
結果としてはなんと書類選考で落ちたんだけど、
正直俺の経歴があって書類選考で落とされたことって人生初だったから「え?まじで?」ってなった。
学歴とか職務経歴についてはほとんど求人サイトに同じこと書いてたのに「ここで書類選考で落とすか?」「じゃあ何でスカウトした?」って思って
経歴で落とされるならまあ良いとしてこれがGithubアカウントの方が原因で、俺が一応で提出したアカウントが大して活動してない方のものだってのが人事からエンジニアの方まで伝わってなくて
Contribute数とかで機械的に足切りラインみたいなの設けられてたら嫌だなぁって。
これじゃ単に勤めてる会社の運用ルールが緩くて本業のContribute頻度とかが公開されてたりSMBC流出騒動やらかすような奴の方が得するじゃんって。
開発活動っていろんな形があるのにOSS活動してなきゃ落としますよなんてことあるのかいな?ちなメルカリやらLINEほどの企業ではない
取り上げた技術は、本格的な開発でも役に立つもので、最も学習コストが低いものを選んだ。
重要度が低いものは載せていない。たとえばHTMLとCSSなんてググりながら書けば全く問題ない。Bootstrapなどのフレームワークも全くやる必要はなく、仮に就職先で使っていたら覚えればいい。
逆に言えば以下に挙げる技術は、そもそも概念自体がプログラミングにとって普遍的なものであり、(基礎的な部分を)調べながら使うようではエンジニア失格ということ。
基本的に現在では、バックエンド・フロントエンド・運用保守全てができないエンジニアに価値は無い。
以下に挙げた技術(①⑤⑥は他の言語やフレームワークで代替可能)が身に付いていなければまともな企業に就職することは難しい(もちろん、下らない業務システムを下請けで作ってる底辺企業には入れるだろうが)。
経験者でも、これらができない/わからないのは、相当恥ずかしいことだと思った方がいい。
特定の言語やフレームワークの書き方を知っていること自体に意味は無い。
重要なのは、他の言語やフレームワークにも共通する基礎を理解すること・保守性やセキュリティなどの品質を高める使い方ができること。
この2つは習得が容易だし、今覚えておけば向こう10年腐ることはないだろう。
基本的な構文や、よく使う標準ライブラリは勿論、高階関数・クラス・非同期処理等の発展的な機能も知り尽くしていなければならない。
言語のみではなく、パッケージ管理、単体テスト、タスクランナー等の周辺ツールの使い方も熟知している必要がある。
また、「リーダブルコード」や「コードコンプリート」に書いてあるような良い作法も身に付ける必要がある。
Gitを使えないのはプログラマーとして論外。細かい機能は調べればよいが、
多くの場合、本番環境やテスト環境はLinuxサーバーであるから、以下のような基本的な概念と使い方を知っておく必要がある。
環境構築、CI、デプロイなどは、現在コンテナを使って行うことが当たり前になっている。
これも細かいことをすべて覚える必要はないが、Dockerfileの書き方や、docker-composeの使い方などは知っておかなければいけない。
Flaskは、数あるWebフレームワークの中で最も簡単。本当に呆れるほど簡単で、Pythonさえ書ければすぐにアプリを作れる。
フレームワークを覚えること自体が重要なのではなく、Web開発の基本を習得することが重要。HTTP、ルーティング、データベース、SQL、認証、セッション管理などは当然すべて覚える。
データベースは、就職したらMySQLやPostgreSQLなどを使うことが多いかも知れないが、今はPythonの標準ライブラリにあるSQLite3を使えば十分。
作ったアプリを公開したければ、「Heroku」などにデプロイするのが良いだろう。
ブコメで指摘をいただきました。HerokuではSQLite3は使用できないようです。公式のドキュメントに従ってPostgreSQLを使用して下さい。
SQLite3はファイルにデータを持てる簡易DBなんだけど、Herokuにデプロイしてもストレージ的な使い方はできないから、結局PostgreSQLを使う必要あるから注意してね。(DAOを丸ごと書き換える羽目になる)
参考: https://devcenter.heroku.com/ja/articles/sqlite3
今の時代、フロントエンドをフレームワークなしで作るのはただのバカ。
2021年現在、実用的なフロントエンドのフレームワークはReactとVueしかない。Vueの方が少し簡単なのでこちらを選んだが、JavaScriptをしっかり理解しているなら大差は無い。
フロントエンドには膨大なパッケージ群があって全部覚えるのは大変だが、とりあえずまずはVueを完璧に使えればいい。Webpackの設定などは既存のものを流用すればいい。
アルゴリズムは全てのコンピュータ技術の基礎であり、絶対に知っていなければならない。
高速フーリエ変換のような高度な数学は必要ないが、クイックソートや木構造のような基本的なアルゴリズムは当然、その性質を知っていなければならない。
それらは言語の組み込み関数や標準ライブラリでも使われており、理解していなければ、それらの機能を正しく使うことができない。
また、プログラムを読み書きする際には、そのコードの計算量を見積もれなければならない。
セキュリティは言うまでもなく学ばなければならない。
有名な脆弱性や攻撃手法(XSS・SQLインジェクション・CSRFなど)が何だか理解していて、その対策を実装できなければならない。
各種暗号化技術や署名などについても、実装の詳細は知らなくていいが、共通鍵暗号や公開鍵暗号などの特性は理解する必要がある。
3年前、世間一般にはメーカー系SIerとして知られている会社を退職した。ただ俺のポジションはパッケージソフト開発であり純粋なSIerとは異なる。
客ともSEとも会話せず、ひたすらドキュメントとプログラムを書く部署だ。といっても別にペーペーではなく主任クラスであり、
会社の業績がとてもよかったこともあり年収は1000万弱はあった。35歳。
これだけ見るととてもいい待遇に見えるだろう。でも耐えられないことがいっぱいあった。
Linuxで動くアプリなのにVMを動かすのも苦労する8GBしかメモリのないWindows PC、紙にコードを印刷して説明しないと納得しない品質保証部、
手作業で実施しExcelにチェックを付けていくテスト、jquery一つ使うのに3ヶ月かかる承認フロー、開発中にバグを一つ出すごとに
ひたすら反省文を求める品質保証部と一緒になって詰めてくるマネージャー、常にコンパイルできないtrunk、
Java 5の時代から進化しないコード、使いにくい社内ミドルウェアの利用を強制される設計、開発期間の半分以上を占める最上流設計、
一旦書いたコードは消してはならずコメントアウトしないといけないコーディング規約など、数を上げればきりがない。
色々改善活動を頑張ったものの、結局Subversionの導入も品質保証部がついていけないから、ということでClearCaseといわれる
今ではほぼ誰も使ってないであろうバージョン管理ツールが使われ続けることになった。使いにくい社内ミドルウェアは
研究所がその道のプロと聞いたので一緒に改善を図った。そしたらRubyしか書いたことがない文系新卒の子が出てきた。
一応研究所の人だし…と思って新バージョンのプロトの開発を依頼したら、1分以上稼働できない状態になって出てきた。
研究開発は準委任相当なのでそれ以上修正を依頼できずに期間が終わった。
また前の会社独特の文化として、大きなバグを出した開発者の反省会(社内ではとある固有名詞で呼ばれている)があった。
この反省会のターゲットになった開発チームはその資料準備で開発が1〜3ヶ月ほど止まるほど大掛かりなイベントだ。
このとき、担当の品質保証部は「連帯責任だから」という理由で資料レビューに大変な精を出す。余計なお世話だ。
このため10〜20ページほどの資料を毎週レビューにかけて最高のものにしていく。でも結局本番では幹部からの怒号が飛んで終わりである。
連帯責任とかいっていた品質保証部は幹部と一緒になって詰めてくる。連帯責任ではなかったのか。
幹部によると、この反省会があるから今の会社があるんだそう。これを経験して一人前らしい。
こんな感じで開発の体制はひどかったが、世間一般ではホワイト企業と見られている通り有休は取りやすかった。
そのため、転職活動を始めた。そしたらなんと「メモリ32GBのマシン」「mavenが気兼ねなく使える回線」「自動テスト」
「GitHub」「CI/CD」 という発言がポンポン出てくる。メルカリだのGoogleだのといったイケイケWeb系ではなく、
いわゆるSIerでもだ。最初は何だこの格差はと思ったが、まぁ営業トークなんだろうな、と思い直した。というわけで
イケイケWeb系も内定は出たものの、つい安定をとってしまい某大企業のDX系の部署に転職した。
そしたら何だこれは。最高スペックのMacBook ProからGitHubにpushするだけで自動デプロイで即サービスイン、
問題が発生したら社用携帯に通知が飛んできて、クラウド監視サービスでログをチェック、即修正即デプロイ。
社内の連絡はSlackで、スタンプを押せばIssueがたち即関連部署が対応に走る。OfficeツールはGoogle Docsで、
計算表はちゃんと表として使っている。開発者はちゃんと開発をしており、反省会の準備や品質保証部の接待なんて業務はなく
純粋にエンドユーザーだけを見ている。ここはなんて最高の環境なんだと歓喜した。また個人的にはおまけ程度であるが、
年収は30万ほど増えて大台に乗った。
さて、それから3年がたった。人間というのはいい環境になれると対して喜びを感じなくなる、というのはそうだと思う。
今では別にdeployブランチにマージされたらCIが走って自動でテストが走りデプロイされるのも、だから何?
って感じだしまぁ普通の仕事として淡々とやっている感じはする。待遇面で悪化した点もちらほらあるし
(例えば年間休日が5日ぐらい減った、残業が月5時間ぐらい増えたなど)などもある。
ただ一つ言えることは前の会社には戻れないな…ということである。人間一度生活レベルを上げてしまうと下げるのは
ただ、一つだけ今の会社に転職してよかったと感じ続けられることが一つある。それは人だ。
前の会社では家でプログラムを書いているなんていった日にはおちょくられたり、人生楽しいの的な目で見られたりした。
芸能人とゴルフの話ができないとコミュ障扱いされた。そのため仕事の話はしても、飲み会にはできるだけ行きたくなかった。
でも今の会社では雑談としてFastlyが落ちても大丈夫なCDN構想とか、AtCoderの話をして盛り上がることができる。
ダイバーシティなんていうが、人間は所詮同質な人間同士で集まったほうが快適なんだな・・・という複雑な思いを抱いている。
皆さん読んでくれてありがとうございます。いくつか質問が出ているので答えられる範囲で答えます。
真面目な疑問なんだけど、Java5のコード書いてる人を1000万で雇う会社があるの?どういうモチベーション??
製品自体が90年代から脈々とバージョンアップしている企業向けのソフトウェアなので、コードベースが古いというのがあります。
またユーザーからすると中身がJava17だろうがJava5だろうが関係ないわけで、要は業務が滞りなく進めばよいわけです。
そのため昔から受け継がれたスパゲッティコードを地道に解き明かし、新しく出てきた要件を今までのコードベースを壊さずにバグなしで追加していく、
もとからあったバグについては、その他の数百万行のユニットテストもないコードに影響なしで修正を施す、といった技能が必要になります。
こう考えると意外と希少なスキルなんだな・・・と思えるかもしれません。
clearcaseよりもsubversionの方が100億倍導入も運用も簡単だと思うんだけど品管どうなってんの?
ClearCaseご存知な方がいるんですね!一から作る製品だとSubversionのほうが簡単かもしれません。ただ、ClearCase専用の
社内ツールがいくつかあり、そのツールで出力した情報を社内資産として持っているという理由があったりします。
例えばお客さんから「この機能がバグってるっぽい」というクレームを受けた際、その機能周辺の情報をそのツールから検索し、
コードレベルで再発防止策を関係部署総出で練った上でお客さんに回答する、という運用フローになっています。
そのため、Subversionに変えるためには開発陣の一存では無理で、品質保証部やマネージャー層など全ての知識のアップデートが
必要になり、そこまでコストをかけて説得して回る必要はあるのか・・・という話になってしまうわけです。
ただ、社内の生産性を向上させるのが目的の部署としてはSubversionやGitを社内に浸透させたがっているのも事実で、
新規プロダクトなんかはGitを使っていました。ただしGitHubはプロキシでアク禁されているだけでなく、サービス名名指しで使用禁止
になっているので、相当の理由がない限り使えないかと思います。
主任クラスでも1000万円近くもらえるのか。すごい。
1000万という数字に興味のある方が多かったので参考までに書いておくと、等級ランクというものが存在して管理職を除く最上位のランクに
なると2人の子持ち、賃貸住まい、標準評価で大体900万になるという感じです。年功序列だが部署ごとに違うというイメージで、
研究所だと20代で到達する一方、利益を上げていない事業部や間接部署だと定年間際まで到達しない人も多い、ぐらいの感じです。
平均では30代中盤ぐらいでしょうか。
ちなみに私の場合は基本給は33万程度ですが、そこに裁量労働手当と住宅手当、家族手当がついて月給で50万を超えるぐらいでした。
ボーナスは個人評価よりも部門業績に大きく左右されるのですが、部署が最高評価の場合は夏冬とも150万以上でした。
最後の最後のダイバーシティについては、ダイバーシティを勘違いしているように思う
私もスマブラやろう!ってことで、
他のファイターは全部後から追加コンテンツで買うの?って思ったけど、
なんか時間が経過したら乱入してくるみたいで勝ったらキャラ選択できるみたいね。
そんなことよりさ、
ユーチューブで見た動画みたいに私も生き生きとキャラクターを操って戦うわ!って思ったけど、
なにこの難しさ!って驚愕よ。
あとどのモードが通常の遊び方かよく分かってなくて、
マス目が一杯出てくる、
敵も動かないし、
もう何これ大乱闘な訳?って思ってたけど、
あの年収低すぎお姉さんが言いそうなほど
でもなんか私でも遊べそうなゲームがあったの。
それは!
うそ!?楽しそう!私でもこれ遊べるんじゃん!って思わずダブルダレで絶叫したんだけど、
これもなかなか難しいのよね。
やり方は何となく分かったわ。
かっ飛ばせばぶっ飛ばせる!ってことを一瞬で把握!
それでもパンチとかダメージをサンドバッグくんに与えるんだけど
挙げ句の果てに5秒前で出てくるアイテムのバットでかっ飛ばすはずなんだけど
でもなんかコントローラーをがちゃがちゃしていたら奇跡的にバットを振ることが出来たの!
奇跡的によ。
ホームランコンテストで空振りを決め込むとはって、
そんでよし!
2回目バット振れた!って思ったら、
本来飛ばすべき逆の方向にぶっ飛ばしてしまった記録なしのファール!
最初私今バット振ってぶっ飛ばしたのになんで記録がゼロなの!?って
またガチャガチャしてたら奇跡の3回目のまぐれバットスイングが出来たのよ!
ついに吹っ飛ばすことができて、
大記録の38キロメートル!
これすごくね?って私初戦デビュー戦で40キロメートル間近の記録を叩き出すとかマジか!って思ったけど、
普通にサムスを選んでかっ飛ばしたら100キロメートル吹っ飛ばせて、
でもなんかまぐれで降っていたバットもどうやらなんだか
AとBボタンを同時押しで振れることが分かったの!
よし!これで私もどんどんかっ飛ばすわよ!って思ったけど、
あとはなんかダメージを与えることが重要なんじゃないの?って思いつつ
どうしたらもっと吹っ飛ばせるようになるの?って
ユーチューブ開いたら10,000キロメートルぶっ飛ばしているのを見て、
私のホームランコンテストの幕は静かに下ろされたの。
私てっきり100キロメートル吹っ飛ばして意気揚々になっていたけど、
それ見てもう涙そうそうだったわ。
とても太刀打ちできない記録にホームランコンテストを今日がデビュー戦なのに今日で引退しそうなほどの世界の広さというか
凄い世界だな!って思っちゃった。
相変わらず、
普通の遊び方する前に操作方法をちゃんと真面目に覚えなくちゃって
ある意味格闘しなくちゃいけないという
ダブルミーニング!上手いこと言えた割りには
以前として操作が上手く出来なくて。
そうそう、
リングアウトして復帰が出来ないの!落ちたら落ちたまんま。
なんかみんな上手に2段ジャンプ以上のジャンプをどう見てもしてるように見えるんだけど、
とりあえず
これを解決しないとぜんぜん先に進める気がしないのよね。
またホームランコンテストに戻るわ。
でもホームランコンテストが最初面白くて、
何度も何度も空振りしてゲームが終了してしまうなんかあのシュールさには
一人ツボってしまって、
笑いが止まらなかったわ。
腹抱えて笑っちゃったわ。
延々とホームランコンテストやってる場合じゃないと思ったら夜が明けてたワケなのよ。
そこまでホームランコンテストやんなくてもいいわよねーって。
でもさ
ホームランコンテストやってる途中に誰かが乱入してくるので、
何これいちいちバトル挟むの?って
まだぜんぜん技とか出せない感じで負け越しているのは悔しいけどね。
でもまあ
気を取り直してホームランコンテストで笑わせてもらうわ。
もう何度思い出しても笑っちゃうし、
うふふ。
遅かったのでブランチでも一かなーって
いつまでもホームランコンテストやってる場合か!って思っちゃって我に返って朝ご飯作ったら、
もうこれ早めのお昼でもいいじゃん!って
今朝の朝の朝ご飯は
これ野菜スープをベースにお味噌溶いて入れたりカレー粉入れたりしたら、
なんにでも変身しちゃえるから美味しいわよ。
ブイヨン美味しだわ。
ルイボスティーのパックが一杯あるのよね
すいすいすいようび~
今日も頑張りましょう!