2021-06-17

CTOだけど、一ヶ月Web就職レビューしてみた。

https://anond.hatelabo.jp/20210617075257

0. 温度感

基本的現在では、バックエンドフロントエンド運用保守全てができないエンジニア価値は無い。

経験者でも、これらができない/わからないのは、相当恥ずかしいことだと思った方がいい。

典型的はてなー意識の高さ。

上がってるような基本(元増田に上がってるやつの倍ぐらい)が全部立ち上げからできて

2〜3個プロジェクト経験したらテックリード素養が既に身についてそう。

まり、ただのエンジニアにはそこまで要求されない。

プロジェクト的にもどっちかが弱いと

Rails/DjangojQuery+Bootstrapみたいな構成

Amplify/FirebaseにVue/Reactみたいな構成全然あるので

フロントバックエンドも一旦はどっちかでいい。

面接はなんとか抜けてもらうとして、

チーム開発での最低限の目標としては、

成果物から指導学習コストレビューコスト技術負債マネジメントコストを引いた分が正になっていれば

ひとまず「チームに居ていい人」と見なされそう。

チーム的に良くても、経営層にそれで許されるかはわからんのでその辺の立ち回りも上手いことやるとして、

一旦は、正の生産性を目指してほしい。

以後、ブコメで誰一人一ヶ月でできるって言ってなくて笑うので、

一ヶ月というのは無視して、三〜六ヶ月程度をイメージしつつ書いていく。

1. 言語: PythonJavascript

これだけで一ヶ月経つ気がするが正気か。

似たような言語なのでどっちからやってもいいし、両方同時にやってもいい。

どっちかしかやらないならJavascriptおすすめ。後ででてくる、Flaskは適当Expressかに置き換える

現場だとほぼTypescriptなので、Javascriptはある程度慣れたらTypescriptに移行したほうがいい。

どちらも、Python2とES2015以前の記法というレガシーネット上に転がってるので参考にしないように注意。

パッケージ管理単体テストタスクランナー

この辺は6のフロントフレームワークと同時にやる。

コードは断片的なサンプルではなく

一貫性があって

・正しい書き方がされた

お手本プロジェクトをなにか(github書籍など)で手に入れて読むべき。

おそらくフレームワークに乗っかっているので並行して進めることになる。

6. フロントエンドフレームワーク: Vue.js

話の流れで先にこっち

現在コーディングのグッドプラクティスデザインパターンフレームワークの形をしている。

なので、ReactとVueをその思想から理解しきれれば、プログラミング言語の潮流の最先端に追いつけるはずだ。

とはいえ最低限としては使い方が分かるところまで。

TypescriptVue.jsも書き方をどこまで取り入れるかが使用者裁量に任されてるし、

開発でVueとReactのどっちを使うかはチーム次第なので、

一旦React+Typescriptガチガチに書かれたコードプロジェクトを拾ってきて、必死で解読するのがいいと思うなー。

2割ぐらいわかった気になればチーム入ってから(React, Vueどちらだったとしても)動けそう。

パッケージとかテストタスクデプロイ辺りもこのタイミングで拾ってきたプロジェクトを使って学ぶ。

2, 4. ツール: gitDocker

バージョン管理コンテナ思想が優れているのは自明なので、これらはツールと見ていい。

そして、後からプロジェクトに入った人がプロジェクト流儀に沿って使う分には難しいことはなさそう。

採用に来た人がgitとかわかってるとチーム開発経験者だなーって思うし、知らないと未経験者なんだなーって思うし、

そういう意味ではチーム開発の経験があるかどうかの試金石にはされてそう。

構築できる、ではなく、触れる程度で良さそう。

gitプロジェクト流儀によると書いたが、git-flowイメージ図を理解して運用できるのがよい。

https://qiita.com/KosukeSone/items/514dd24828b485c69a05

3. OS: Linux

これは「パソコンの使い方わかってますか」ぐらいの温度感

ファイルパーミッションユーザープロセスのような基本概念理解する

一冊読めば済むだろうし、概念系はさらっておいてほしい。

grepやfindやxargsなどのコマンドを組み合わせて簡単な処理を自動化する

こういうのができるんだなーって言うのを知っておいて、調べつつ書ければ十分。

sedとか正規表現も。

あとはシェルスクリプトとかって思ったけど同様のことはPythonでもできそう。

IPアドレスを調べたり、SSHリモートマシンログインする

地味にSSHログインした先の環境だと、vimが主要なテキストエディタになるので

vimを最低限触ることだけ要りそう。もういらないかもって思ってたんだけどなー。

ファイル開いて入力モードに切り替えて書き込んで保存して終了

チュートリアルする。拡張とかはいらない。

細かく書いたが、LPIC-1の範囲がほどよくまとまっているのでそっちを参照するとよい。

5. サーバーフレームワーク: Flask

フレームワークを覚えること自体重要なのではなく、Web開発の基本を習得することが重要

これが意図なら

HTTPルーティングデータベースSQL認証セッション管理などは当然すべて覚える。

この辺の機能を持った小規模Webアプリを作ってHerokuデプロイすれば一旦完成とみなしてよさそう。

コード書き写しただけにならないようには注意しつつだけど、長く見て5人日ぐらい?

慣れると1日あればいけると思う。

フレームワークもなんでもいい。

軽量である必要もなくて、

Djangoとかでも各コンポーネントがどんな働き方してるか程度はわかるだろうしそれで十分。

余力があれば複数個触ってみたり、人から勧められたらそっちでも。

最近サーバーレス&NoSQL流行ってるのでFirebaseとかもやればいいと思う。

7. アルゴリズム

コメントリーが荒れててウケる

実務プログラミングで最低限必要アルゴリズム力は

「書いてるコード計算量オーダーを把握していること」

に尽きる。

計算量を気にしなかったせいで線形検索メソッドとfor文を組み合わせて

O(n^2)やO(n^3)のロジックを書いてしまって

データ量が万〜十万の本番データで遅延するとか

それらに対して分散や非同期処理で解消しようとするとか、

ちょっとでもアルゴリズムを触った人ならアホらしいなって思うような行為

アルゴリズム不要勢は平気でやるぐらい、両者は溝が深い。

計算量を意識するだけなら、AtCoderABCのC〜D問題辺りが解ければ十分。

8. セキュリティ

有名な脆弱性攻撃手法は、ほとんどフレームワーク等で解決手段が用意されている

(XSS対策自動エスケープなど)

のでアドリブをせずに正しい書き方でやれば良い。

開発現場でもセキュリティリスクがある箇所を1から自前で実装することを経験が浅い者にはやらせないので、

ただただ、フレームワークが正しいとしているやり方をなぞるのが良い。

最後

開発の勉強のやり方としては、

・正しいコード見本を手に入れること

公式リファレンスを読むこと

エラーメッセージを読むこと(そしてググること)

この辺りの習慣があればやってけんのかな、

その他、チーム開発って面では

アジャイルサムライプロジェクト管理)とか

TeamGeek(人間性)とかインプットしておくと共通言語が増えて嬉しい。

この方向で進めてけば、その途中で正の生産性≒足引っ張らないぐらいになれるので、

そしたらやってけるんちゃうーって感じ。

記事への反応 -
  • 取り上げた技術は、本格的な開発でも役に立つもので、最も学習コストが低いものを選んだ。 重要度が低いものは載せていない。たとえばHTMLとCSSなんてググりながら書けば全く問題ない...

    • https://anond.hatelabo.jp/20210617075257 0. 温度感 基本的に現在では、バックエンド・フロントエンド・運用保守全てができないエンジニアに価値は無い。 経験者でも、これらができない/わ...

    • ⑦ 基本的なアルゴリズムを学ぶ は不要 それ以外は同意

      • その心は? たとえば、Pythonの標準ライブラリにはheapqというものがありますが、二分ヒープの仕様を知らずにどうやってこれを使うのでしょうか。 Pythonの組み込みのlistと、collections.dequ...

        • この2つはどっちも基本情報に出てくるような常識的なこと ヒープからの要素の取り出しは最小値を取り出すこと リストの左端からの取り出しと、デックの左端からの取り出しは計...

      • 初心者にこんなものやらしたら、挫折しそう。順序がまるで違う。

        • そもそもエンジニアはソフトウェアを作ってお金をもらう人だぞ 能力が低い人が挫折するようなことが出来るのは当たり前なんだよ 会社は社会不適合者にお金を恵む慈善団体じゃない

          • 日本のような超IT途上国で働いている人に言われても説得力ない

        • 初心者にって、、アルゴリズムなんて大学なら1年め(か2年め)くらいには教わる必修事項じゃん。アルゴリズムを通らずにCSをやったとは言えないだろ。(それでもエンジニアの自称...

        • 教える気がないなら何とでも言えるからね 10人中1人いる秀才や適正がある人を見つけるならこれだろうけど

          • 「教えて欲しい」なら、個人の判断でそういうとこ行けばいいじゃん ほとんどのプログラマは(別にプログラマに限らずほとんどの専門技術職は)独学で最先端のレベルまで身に付けて...

            • 元増田の事に対して言ってるのであって、私も同じ意見だよ

      • 基本的なアルゴリズム「名前だけでも覚えて帰って下さい」

        • サンドの人殺してそうな方「スパゲティコード書いてるとこすみません」

      • これはマジ。計算量とかアルゴリズムとかぶっちゃけそんなん気にする人が気にすればいい。 jsとかpythonとかの遅い言語使うならいるかもしれんが、大抵のコンパイル言語なら適当にマ...

    • まーーーーーーたこの手の代わり映えのない虚無増田かよ 手軽にブクマ貰えると思ってゴミを増やすなよ

    • 「当然すべて覚える」と書かれている部分をどう覚えるべきなのかも教われたらうれしい。 FlaskやDjangoの教科書やオンラインのコースを見てもおまじないと写経ばかりで、根本的な部分...

      • flaskやDjangoはフレームワークだから、深く考えずにそんなもんかなぐらいの認識でいいんじゃないの。楽するためにあるわけだし。  

      • じゃあ根本的な理屈を勉強すればいいじゃん

    • 日本でPython使うのは機械学習系ばかりで、初心者エンジニアに最適な言語とはいえない。世界じゃ流行ってないネトウヨが作ったRubyという落ち目な言語をオススメする。自分は使わない...

      • 言語は何でもいい(COBOLとかFORTRANとかを除いて) 「ソフトウェア開発の技術」が身に付いていることが重要

        • オバチャマはね、COBOLを推したいと思うのよね。

        • 実務経験を得るためには就業先ですでに使われている言語の理解をしておく必要がある。その間口を少しでも広げるために広く使われている言語を選択すべきだ。

      • むしろRubyの方が使われている領域が狭いではないか。ほぼWeb系の世界だけだろ。それも日本限定に近い。 それに比べたらPythonの方が実際の守備範囲は広い。また、初めてのプログラミ...

        • 別にどっちでもいいと思うよ Rubyにするなら、Webフレームワークはほぼ必然的にRailsをやることになる RailsはFlaskよりは学習コスト高いが、この「カリキュラム」を1ヶ月でマスターできる...

    • まあまあ、これ系の増田にありがちな強い主張ですこと 実際は半分(4/8)できてりゃ上等

      • それでももちろん就職はできるよ ただ就職先は、ブラック企業か、スキルの低いエンジニアしかいなくて成長が無い会社しかないというだけ

        • では優秀なエンジニアの集まるそのweb企業を屏風から出して下さい

      • 半分でいいわけねーだろ(笑) 別に、世界中に1000万人のユーザーがいるサービスを作れとか言ってるわけじゃない。 こんなん、公式ドキュメントか本読んで一通りの使い方と正しい実用例...

    • web系企業なら未経験でも短期間に技術が身に付いて楽に就職できるという幻想だと思うけど 土建屋の方がずっと楽で金もいいし労働時間も短いよ

      • web系企業なら未経験でも短期間に技術が身に付いて楽に就職できるという幻想だと思うけど 一体どこをどう読んだらそう読めるのか

    • 人事俺「え、未経験なのにjavaやってないんだ笑」

      • 面接された俺(後で「圧迫面接された」「嘲笑われた」「人にマウンティング取る面接官がいる」「オフィス内にモチベーションアップ株式会社のポスター貼られてる」「面接官の顔がチ...

        • 面接官俺「うーん、スラップ訴訟で晒しあげ!wついでにハセカラけしかけとこw」

    • 「未経験」というのは「業務として未経験」という意味であって、「プログラミングをしたことが無い」とか「PCを操作できない」ということではない。 そもそも、なぜそんなレベルの...

    • よいまとめだね JavaScript/Git/Linux/セキュリティ、この4つが優先度高いと思う あとは基本的なHTML/CSSの理解は必須 これ一通りやってれば「とりあえず」の就職は絶対困らないはず ほかのラ...

      • 確かに合ってるんだが、最近はスクールが面接指導でこういう「ツボを抑えたPR」まで面倒見てるみたいで、本当にわかってるのかどうか細かくツッコんで確認しないといけないのが、採...

        • なるほど 実技試験ってすくないのかね まあ面接だけじゃわからんよな ワイの経験ではCSS/JSの簡単なテストはさせられたな30分くらいで

        • コードを提出させても、スクール謹製のチュートリアルに毛が生えたものを提出してくるからな これは詐欺だと思う

          • RailsでCRUDやログインなどの一通りの機能を実装したアプリを提出してきて、結局教材のコピペだったなんてことはよくある

          • スクール業界ってわりと独自の論理=金儲けロジックをもってるからなあ PC教室専門に卸してる教材制作会社とかと癒着しててかなりエグいで

            • スクール業界がいま目を向けてるのがプログラミングだからなw 自学自習という根本的なベースを知らない初学者が食われてしまう・・・

    • 勉強法じゃなくて勉強する範囲を示してるだけじゃん。

      • 何を知りたいの? 単語カードの書き方?

        • いや知りたいとかじゃなくて勉強法って書いてるのに内容違うよねって指摘。

          • あなたの言う「勉強法」って何?

          • 「何を勉強するのか」は勉強法だろう 少なくとも普通の大人にとっては 「どうやって勉強するのか」を教えないといけないのか?公式ドキュメントか本(オライリー、翔泳社、技術評論...

          • Pythonチュートリアルを読みます。 書いてあることを理解して、コードを書きます。 期待通りに動いたら次へ。そうでなければ自分の理解が間違っているところを探して、再びコー...

      • ↓これおすすめ 誰でもプログラムを書けるようになる方法見つけた https://anond.hatelabo.jp/20190311201003

    • これが不必要に高いハードルを課しているとは思わない どれもWebアプリエンジニアには必須の知識でしかない 世の中には、 「プログラマになるには、コンピュータサイエンスの全分野...

    • 未経験者がこれを1ヶ月で覚えられるなんて一体どんな画期的な勉強法なんだ、と思ったら肝心の勉強法が書いてなかった… ワロタ

    • newnakashima エンジニアになって楽して年収1億稼ぎたいとか思ってるカモを集めて1ヶ月でPython + Flask でサイト作らせて「これで君もエンジニアだ!(笑)」でボロ儲けしてるプログラミ...

    • 本当に就職するだけなら、Python か Javascript のどちらか片方とアルゴリズムだけ覚えて、Paiza で A ランクとか取ればそこそこ選んで就職できるよ。 もちろん就職してからこのあたりの知識...

      • Paizaがいいのか…

        • Paiza は AtCoder と比べて簡単な割に、いつでも受けられて、求人もちゃんとそこそこ良い条件のところが揃っていて良いよ。 正直 AtCoder の方がプログラムコンテストとしては質が高いとは...

    • これのどこにマウント要素があるのか分からん クライアントとサーバーそれぞれで使う言語とフレームワークを習得して下さい 業務で使うツールの使い方を覚えて下さい アルゴリ...

      • 未経験者が一ヶ月で学べる量じゃないからだろ

      • ぶっちゃけ研修で全部教えてくれる企業のが多いだろ、未経験者歓迎ならさ 教えてくれない所はそれこそブラックだからやめとけ

      • 全部出来たら企業に就職する必要ないな。 フリーランスで月70~80万はもらえる。

    • 正直、CSの学位や有名企業での経験などが無いのに、この程度のこと勉強せずに就職したいというのは、虫が良すぎる そういう人がいるから、悪質な就職エージェントやスクール業者も...

    • anond:20210617075257 私は一流SIerの上級管理職をやってるけど、こんな要素技術なんて結局意味がないんだって何回いったらわかるんだろうね日本のエンジニア()は。この程度を勉強したと...

    • web技術ってつくづく興味湧かねーな…。技術と言うよりは技能なんだよなあ。原理がなくてノウハウの寄せ集めでしかないというか。それはそれで世の中には求められてるんだけどさ。 ...

    • >PythonとJavaScriptをマスターする この時点で趣味程度に嗜んでるレベルなんだなとわかった なんで素人に毛が生えた程度の奴ってすぐ言語を「マスターする」って言い回しするの? 言語...

    • 碌にコード読めない人間がごろごろ参画してるジャップランドではこんな水準必要とされていないシーンのほうが多い。

    • これに文句言ってる奴ってどんだけ意識低いの 書いてあることは、中上級者レベルのプログラミングの本を数冊読んでいればその過程で身に付くような内容ばかり 「言語とフレームワー...

      • そりぁまあ東京大学に受かるためには東京大学レベルの勉強をしましょうって意見に反論する人はおらんやろな。

        • 東大で学ぶことを高校で勉強したら大学いかんでいいやん、

        • 具体的な勉強内容書いてあるんだから、勉強すればいいじゃん

      • 「言語とフレームワークの知識をきちんと身に付けましょう」「Git、Linux、Dockerの基本的な使い方覚えましょう」「アルゴリズムとセキュリティの基本を勉強しましょう」 これに反論...

    • これ、「将棋で初段になるには定跡をひとつしっかり覚えて、複雑でない5手詰は数秒で解けるようになりましょう」程度の内容だろ それに対して、「それが出来たら羽生より強い」み...

    • ここのコメント欄を見てホリエモンの「賃金が安くても働く奴がいるから賃金が上がらない」論がようやく理解できたわ プログラマになるのに「プログラミングを勉強する気がなくて未...

    • タイトルに無理があるけど、やるべきリストとしては参考になると思う。 アルゴリズムを含めるべきかどうかは正直どうでもいいかな。ただ、最初ではなく最後の方に持ってきたのは割...

    • アルゴリズムいらないって言ってる奴いるけど正気か。 そういう奴は、これのどっちが正しいかみたいなことをいちいち個別に覚えるのか。 nodes = get_node_list() // 処理対象のノードをリ...

      • そのnodesのデータ型が分からんからどれが正解か分からん。 っていうか速度とかメモリ使用量って言語に依存する場合もあるし、何が正解かなんて結局分からん。 スレッドセーフなのは...

      • こういうのは中身知らなくてもいいように、引数無しが最も高速なように作ってある とはいえ、知らなかったからググったけど、Pythonのリストは内部的にはCの配列だから、pop(要素を取...

    • 情報系卒業予定のワイ、来年の研修でこれらの一部やらされるのか… それにしてもwebとかシステムのエンジニアを「エンジニア」って表記する人嫌い 機械や化学の分野にもエンジニアは...

      • 業界の人は自分の業界の名前を省略するよ どの業界もだいたいそうだよ

        • インターネットユーザ全員がweb系エンジニアだと思ってそう

          • 単に情報系エンジニアのネットリテラシーが高く他業種のエンジニアはネットに出没しない傾向にあるだけの話だと思ってる

    • これは何がいけないのか分からん プログラミング言語とフレームワークを理屈理解して書けるようになれなんて、プログラマとして初歩の初歩じゃん プログラミング勉強する気ないけど...

      • 1ヶ月でできる、って点じゃないかな?

      • 少なくとも増田にいる連中は年収1000万の夢は見てない定期

      • 「アルゴリズムはいらない」という人がいるのが信じられん たとえばスレッド型掲示板で、各レスに何回アンカーがついたか調べるのに、↓のどっちがいいのかとか考えないのか var repl...

    • 1ヶ月では無理とか言ってる奴いるが 無理なら半年かけてやりゃいいじゃん やるのは自分なんだから 「これをやれ」って示されたことすらアレコレ文句言ってやらない奴が仕事なんかで...

    • 「アルゴリズムはいらない」という人がいるのが信じられん たとえばスレッド型掲示板で、各レスに何回アンカーがついたか調べるのに、↓のどっちがいいのかとか考えないのか int[] re...

    • これのコメント欄を見ていて、日本の(自称)貧困は自己責任だと確信したわ 技術を勉強したくない ぶっちゃけブラック企業でいい 入社してたまたま研修等が充実してたらラッキ...

    • 1ヶ月でできるかどうかはともかく これができるなら弁護士目指した方がいい 就職してから勉強すること無さそう ○年やってるけど、ここに書いてること半分も身に付いてない ...

    • これを批判してるのって、人生においてまともに勉強した経験が無い奴ばかりなんだろうな。 たとえば、大学の教科書なんて、1科目500ページを超えるようなものが何冊もあって、学生...

    • 「言語をマスターする」に食い付いてる奴って、典型的なイキり低学歴だよな 正直、一定レベル以上の技術者からしたら、プログラミング言語において 絶対に覚えてなければいけな...

    • これは何が叩かれてるのかわからん まともなエンジニアなら当たり前のことばかり 「アルゴリズムは学ばなくてもいい」なんて意見が散見されるのは、素人が思い込みで言っているので...

    • 専門技術職として働くつもりなら、このくらいはやろうよ 料理人になるのに調理器具の使い方覚えるようなもんだろ

      • 料理人なら、一流料理店の料理人とチェーン店のキッチン担当で格が違うのは一般人にも明らかだが プログラマの場合、ちゃんとした技術を身につけている人と量産型プログラマが同列...

        • いや腕に見合った会社に入れよ。 ファミレスで働いてんのに、俺の料理の腕は一流なんだから、それなりの給料払え、って通じないでしょ。

    • リンク 2021年度 匿名ダイアリーTOP250 2021年度 匿名ダイアリーTOP251-500 ランキング 順位 ブクマ タイトル 1 2558 当たり屋対策の集合知 2 2336 洪水被害にあったらやる...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん