「typescript」を含む日記 RSS

はてなキーワード: typescriptとは

2022-08-27

センスの無い未経験年収300万強のプログラマとして就職して必要だったこ

学歴がよくなくて、就職が困難だったので中小 SIer で働いていた。 (プライム案件を取ってこれる分マシらしい)

レキサルティレクサプロデパスのお世話になって続けてたけど、結局は薬でどうにかできず、辞めてしまった。

参考程度だけど、未経験の人が 300万 をもらうために、どのようなスキル必要かを、まとめておく。

ちなみにどれくらいプログラムが書けなかったかというと、競技プログラミング努力しても AtCoder黄色になれず青色のままってくらい。

AtCoder でいう、初心者から抜け出せないという、要するにセンスがないということなのだけど、そういう人も居そうなので、参考までに。

要するに

経験プログラマに対して、これだけ要求されるのだから、未経験の人は覚悟するようにという指針を提供したいので書いた。

入社時に覚悟しておかなければならない事

誓約書

基本的に、損害を与えた場合には、それを作業者補填するという誓約書を結ぶ。

要するに、捨て駒として扱って、失敗したら賠償しろ、という事になる。

このことを認識して、失敗しないように振舞ないと、連帯保証人含めて迷惑をかける事になる。

要するに、低賃金で未経験プログラマ案件にノーリスクで送りこんで、稼ぐための手段です。

必要だったスキル

ディレクション

基本的に PL (夢想家) → PM (御用聞き) → プログラマ という環境なので、プログラマ自分ディレクションして意思決定する必要がある。

例えば、下請け場合は、PM の御用聞きの結果の WBS に合わせないと、顧客から DM瑕疵担保責任がどうとか言われる。

社内開発の場合は、PL の方から直接、長時間の叱責を受けなくてはならない。

そういう不幸を防ぐためにも自分ディレクションして、PM の決めた実態を反映していない WBS に合わせて作業するスキル要求される。

基本的に手戻りは個人の過失になってしまうため、手戻りしないように考え抜いて意思決定をする、というのが重要になる。

これこそ、ガクチカと呼ばれる、頑張れますというスキルなので、学生時代に頑張っておけばよかったなぁ。

デザイン

こう見せたい、こう表現したい、という事を伝えるには、必然的デザイン知識必要になる。

創造思考デザインは切っても切り離せない概念で、デザインとは創造なのだから、当たり前である

ソフトウェアアーキテクチャも、ソフトウェア設計も、コーディングデザインと言えるかもしれない。

言語技術 (言語能力)

顧客と 1:1 で話す事が DM でもボイチャでも突発的に発生するので、いつ、いかなる時でも論理武装していなければならない。

まぁ、顧客であったり PL であったりはキレるのが仕事なので、それに対して理路整然と説明する必要がある。

なんとなく、では納得しないし、すぐ損害賠償請求とかそういう話にいくので、答えられないと持ち帰りますお茶を濁して、エマージェンシーになる。

後述する設計能力においても、課題を把握するための言語技術(言語能力)は重要ファクターだと思う。

ソフトウェア設計

C/C++システムプログラムフレームワーク基本的に無いので、自分概念を整理して、どのような変更、拡張があるかを考えて設計する必要がある。

この能力が弱いと、手戻りが発生しやすくなり、瑕疵担保責任を問われることになる。

読んだ本の中だと、ボブおじさんの本が、やっぱりしっくりくるなという個人的な感想がある。

ネットワークプログラム (C)

UDP で送ってくるデータを受けて 24/365 で停止しない WebAPI への繋ぎ込みという簡単作業があって、振られた。

リークしてはいけないという事で malloc禁止で、グローバル変数を利用するという変なルールがあった。

Rust で書けばいいんじゃないかなと思ったけど、Rust 書くのもシンドイし、C/C++ で、しんどくて読みづらいコードを書いた。

あとで保守する人が大変そうだけど、そういうルールを決めたのは PL だしね。

システムプログラム (C++)

なんか、特殊PCI Expressカードからベンダーが用意している SDKデータ引っこ抜いて Web API へつなぎ込む部分をやった。

データの中の特殊信号を取りたかったらしい。

一応、SDK の使い方をパラ見して 1 日で作ったので、別に負担じゃなかったけど、素人やらせるんなとは思った。

Webバックエンド (Express/Fastify + PostgreSQL)

当たり前だが、DB 作って RestAPI を生やすのは現代プログラマにとって自然にできなければならない。

なので、新規開発のサブモジュールバックエンドを任せられた。

だが、ORM の癖を把握したり、発行されるクエリ確認したりするのは、疲れる。 SQL を直書きするのはシンドイ。

結局 SQL を直書きすることにしたけど、あまりいい決断ではなかったと思っている。

それ以外は フレームワーク に乗ってしまっていいので、書き捨てる分には楽だった。

最近だと、TypeScriptPrisma 使うのが、型安全でよさそうだなと思っている。

Nest.js個人的には好み。

Linux操作 (EC2 とか)

デプロイEC2 直でやったり ECS にしたりとしていたので、ベアメタル知識必要になった。

要するに systemd のいじり方とか、死活監視の仕方とか。

個人的には、クラウド嫌いなので、ベアメタルの方が安心できる。

Bind権威DNS管理して、postfix絶対止めてはいけないメールサーバ管理するとかもあったけど、出来て当然ではある事だし。

Webフロントエンド (React/Vue)

会社Webアプリ案件を取ってきたので突っ込まれた。

経験プログラマでも、月単価 100 万以上で顧客請求してるんだから会社はそりゃ儲けるだろうと思った。

会社が一人前の経験N年のプログラマといったら、その通りに振舞う必要がある。顧客責任はないのだから

当たり前だが、WebディレクションWebデザインWebプログラミング, Webマークアップ は、全て作業者であるプログラマ仕事になる。

個人的には、これが分かれている理由が良く分からないけど、分けたい人がいるんだろう。

デザインで、CSSフレームワークを使うと、その色が出るという事で、全部 CSS手書きしていた。

tailwind が出た現在では使っていればよかったなと思う。

結局、全く分からない中、手探りでデザインし、コードを書いて、顧客に 1 日 5 ~ 10リリースするという行為をした。

顧客大手企業だったので、自社のエンジニアならもっと出来る、と叱責されまくったけど、だったら自社でやればいいじゃんと思った。

一応、今でもサービスは生きていて、ユニークユーザ数は上がっているらしい。

そして、焼き付け刃だったので、 WAI-ARIA を知らず、アクセシビリティへの配慮が足りない事が問題になってしまった。

これはなんとか保守対応ねじ込めたのでトラブルにならなかったけど、瑕疵担保責任と綱渡りだなと思った。

CI/CD 構築 (Azure Pipelines)

当たり前だが、リリースサイクルを短くしないと顧客はキレてしまうので、CI/CD を整えないといけない。

今は Github Actions とかあるけど、昔は無くて Bitrise が高いからみたいな理由Azure Pipelines で CI/CD フローを構築した。

もう Multi Stage Pipeline になってるだろうけど、Release Pipeline が GUI からしか設定できないのが辛みだった。

IaC (Terraform)

当然だが、デプロイするためには IaC を整える必要がある。

これを知らずに、コンソールポチポチしていたので、 IaC 出来てない事がバレた時に色々怒られてしまった。

今は CDK とか便利なものが出来てるんだなぁ。

自動テスト

本来テスト自動テストを整えて、質保証をしてバグを減らさなければならない。

だが、テストを書くという手間を払えなかったので、人力テストしかできなかった。

一応、リグレッションテストを人力でやりまくったので、バグ発見曲線が結合テストでの IF 不一致しかない、という結果にはなったけど

自動化できれば費用必要じゃなかったから、怠慢だと、責められてしまった。

同じような未経験の人へ

経験でも誓約書を盾に、振られた事全部を出来なくてはならない慣習があるので、プログラマはそんなに良い職業じゃないよ。

甘い考えで、プログラマになろうと思っているのなら、考え直した方がいいです。

2022-08-20

アカデミアやめて本当によかった

スペックアラサーIT系人材Web系はだいたい一通り触れてきてフロントエンドバックエンドもある程度できるけどインフラは最低限くらいにしかできない程度に苦手。言語PerlJavaScriptから始まってPHPRubyPythonGoTypeScriptあたりは言語レファレンスを見なくてもある程度は書ける。非WebだとC++とかも一応書けるには書ける。フレームワークで言うとRailsとかDjangoみたいな全部込み込みのものからFlaskとかpeeweeとか選定して作るみたいなレベルまで色々経験してきたし、フロントエンドもnodeとio.js喧嘩してた頃からAngularとかBackboneを経由してReactやVueなんかに触れてきた。某転職サイトでは得意な言語は一通り偏差値65-70で某ポートフォリオサイト技術スコアは3.6くらい。運良く趣味やらバイトやらでWeb系をやってきたから外向きに見せられる実績もある程度あるしエンジニア人材マーケット内でもそこそこ需要があるといった感じ。ずば抜けた才能があるわけではないけどどんな現場でもそれなりにスキルを発揮できる器用貧乏タイプだと思う。

そんなこんなで博士に至るまでIT系スキルを活かしつつだいぶウェット寄りの分野でプログラミングを駆使して色々なことに取り組んでた。民間エンジニア人材としては平々凡々でも周りがプログラミングできない連中だらけのアカデミアの世界では神扱いされてちやほやされた。そんでもてはやされて勘違いして工学じゃなくて科学博士課程に進んだのが間違いの始まりだった。

身バレするのが嫌だから詳細は伏せるけど、まあパワハラアカハラなんて日常茶飯だった。指導教員はまともに指導なんてしないし周りの教員たちも工学的なことばっかやってるのを見て好き勝手言ってきた。正直進む道を間違えたのは自業自得だけど、そのくせ「せっかく進学したのにやめちゃうの?」みたいなこと言って引き留めてくるからタチが悪かった。今からして思えばプログラミングができるレアな便利人材を手放したくなかったんだろうなって感じがする。

そんなこんなで博士の終わりが迫ってくる頃にはアカデミアに対してこれでもかというくらい嫌気が差していたけど、それでもやりたいことがあるから一応就活アカデミア系と民間系で両方やってた。どちらもオファーが来たけど結論から言うとお話にならないくら民間の方が条件が良かった。

まず給料民間が1.5倍以上、アカデミアの技術職との比較だと2倍以上の開きがある。しかもこれは「民間の一番下」と「アカデミアの一番上」を比較した数字でそれぞれ逆をとったら正直目も当てられない。その上福利厚生もさまざまな手当も民間の方が条件がいい。給与の伸び代も民間の方がいいし就労条件も民間の方がいい。そもそもアカデミアでフルリモート可なんて存在しないんだから勝てるわけがないんだけど。その上で民間原則として終身雇用に対してアカデミアは任期付きのポストばかり。就活を始める前からわかってたけどいざ現実として待遇の違いを突きつけられるともはや笑うことしかできなかった。

「それでもアカデミアは自分研究ができるんだからいいじゃないか」と言う意見を目にするけど、結局はPIとして独立するまでは他の先生ラボで雇われになる。その間にうまくやらなきゃ一生そのまま下請け仕事をし続けることになる。そしてたとえ独立できたとして、選択と集中の名の下に文科省にとって都合のいい研究テーマ立案しなければまともに研究費を取ることすらできない。大口予算を取ろうと思ったらいかビッグマウス役人丸め込んでそれっぽいことをやれるかで全てが決まる。

自分が外れ値であることは否定しない。プログラミングが楽しくてWeb系の技術が好きで、可処分時間を使って夢中になって勉強したり色んなものを作って遊んだらして過ごしてきたからこそ今がある。でも正直少しでもプログラミングができるならアカデミアに残るより民間就職した方が待遇ワークライフバランスもいい。きちんとリサーチすればカルチャーだってすごくいい会社はたくさんある。

それを承知の上でアカデミアに残る人は正直すごいと思う。自分がその立場にいることを想像したら気が狂いそうになる。もし似た立場で迷ってる人がいたら心から伝えたい。アカデミアやめて本当によかった。

2022-08-19

仕事始めて数年目なんだけど、業務でやってるうちに

プログラミング簡単だなって思うようになってきてしまったので

誰か諌めてほしい。ReactとTypeScript扱ってる。

2022-08-11

Pythonが初めて学習する言語にいいとかない

GoやらRustやら新しめの有力な言語は静的型の言語

JavascriptTypeScriptが生み出されて、PythonPHPは型宣言が取り入れられて、Rubyも型チェックを取り入れようって話が出てる。

実際にコードを書いてる人らは、動的型の言語なんてやってられんってみんな思ってる。

機械学習をやりたいとかじゃなかったら初心者Pythonやる理由はない。

2022-07-14

anond:20220714202534

TypeScript意味不明バグが発生してなんだこれはと掘り来んでいったらasを使って型に嘘をつかせてる糞コードにたどり着いたときも心が怒りで満たされて豊かになったで

2022-06-21

もうtypescriptエラーわけわからん

declareが影響してたなんて気付かないわ

2022-06-17

TypeScript全然楽にならないんだが

TypeScriptが使われてるプロジェクトだったから仕方なく使った

面倒な型を書いてる分、色々楽になることを期待してたが思ってたのと違った

 

JavaScriptとある場所の値がなにかわからない

コードを追うのも大変だからbreakpointの設置かdeubugger文を置いてたりして、値とスタックトレースを見てみる

 

TypeScriptだと静的だからクラス名がわかってすぐにどういう値になるかわかると思ってた

だが実際には型は具体的なクラス名じゃなくてインターフェース(もしくはtype)

 

それだけだと◯◯ってプロパティがあるという情報はわかっても具体的な値まではわからない

最低限◯◯があるだけで書いてないけど実は✕✕もある可能性はある

 

実装を見るにはそのインターフェース実装するクラスを探すしか無い

ある程度大きいプロジェクトなら多数見つかるし、呼び出し場所を見てコードを追わないと実際にどれなのかはわからない

結局breakpointかdeubggerを使ってどんな値なのか見てる

それってJavaScriptと一緒

全然楽にならない

 

あとは補完がちょっと便利になるくらいだけど、JavaScriptだって静的解析をある程度やってくれるし補完はそこまで便利になった感を感じられてない

tauri は Electron の代わりになれず死ぬと思う

触った人の記事を見る限り、node 依存なのは草。

って誰が使うんや。

完全に node だけで書けて動作も速い Electron-mini みたいなツールが出るか Electron が問題解決したバージョン出して終わると思う。

同じような感じで WordPress が失敗してる。

って開発者も離れるよそりゃ。

2022-05-29

anond:20220529085043

早いうちからTypeScriptを使いこなしてる人って

java経験者だと思うからバックエンドフロントエンドの垣根って消えてる気がする。

最近フロントエンドフレームワークバックエンド言語知識(開発現場で使うような色々)がない人が学習するのキツくね?

ってのが多い印象。これどうやって初心者勉強すんの?

意外とできるのか?って思ってるけど真実は闇の中…。

javascriptjava化してきた

typescript勉強してたら

<T>

って出てきてお前ジェネリクスじゃん〜!!

久しぶり〜!!って気分になった。

 

javajs名前似てるけど実は全然違うんですよ。

って言えなくなるかも。

2022-05-19

TypeScript

TypeScriptって静的型付け言語やってるとなんてことはないのばっかりだけど

動的型付けばっかやってた人には馴染みがなさすぎるのでは?

 

JavaScriptモダンフレームワークTypescript

学習ってかなりキツそう。特に初心者からロードマップイメージできない。

 

Javaメインの開発やってた人より。

2022-05-12

Dartってそんなあかんか?

これ今見てたんだけど、Dart不評だよね。

https://b.hatena.ne.jp/entry/s/www.publickey1.jp/blog/22/flutter_3fluttermacoslinuxmac.html

TypeScriptJavaの方が良いみたいな感じに言われてるけど、そんなにあかんか?

どこがそんなにあかんのや?

2022-04-22

anond:20220422121001

TypeScriptなんて、JavaScriptで書いておいて拡張子だけ ts に変えればいいだけじゃないの。

そりゃ、TypeScriptの全機能を使うのは無理かもしれんけどさ。

あなたTypeScriptはどこから

つの間にかみんな「TypeScript使えますが何か?」になってて僕1人だけ時代に取り残されて戦力外通告から無職

悔しくてTypeScript勉強を始めてるけど、ただでさえPC関連以外の万物に対する才能がない僕がPC関連の仕事もできないとしたら、もう僕にできる仕事などこの世界には1つもない。

2022-04-21

anond:20220421044739

動的型の言語ダメだろ。

世の中にどれだけ損失を与えたか計り知れない。

90年代の前半頃は、basicでさえ型宣言が取り入れられて、Cも型チェックが厳しくなってた。

それがインターネット時代になって、Perlがヒットして、それに影響されたphprubyブラウザ方面からJS覇権を取ってしまう。

プログラミング生産性が大きく後退してしまった。

GoしろRustにしろ、新しい有力な言語は静的型。

Jsからtypescriptがでてきて、pythonrubyphpも型チェックを取り入れる動きが出てきている。

どれでもいいとか言ってもう後戻りしないで欲しいわ。

2022-04-14

エルビス演算子 ?:

?の部分がリーゼント

TypeScriptオブジェクトプロパティを省略可能にする ? と、その直後の型アノテーションの : が合わさってエルビス演算子に見えてすごく困った。

日本人には読めないアルファベットを前にしたかのような感じで困った。

2022-04-06

なぜぼくがTypeScriptを選んだかって?

アンダースバーヘルスバーバーグが作者だったからに決まってんだろ💢

2022-03-11

Javascript規格に型宣言追加の提案

https://www.publickey1.jp/blog/22/javascripttypes_as_commentsjavascripttc39.html

Javascriptが登場したころはVBでさえ、型宣言は省略せずにしっかりしようって言われてたのに、その後PerlJavascriptRubyPHPPythonなど、動的型の言語が広まってしまう。

動的型の言語流行って、後退だよな。

プログラミングの失われた20年だわ。

その後に一部で関数型の言語流行ったり、Rust、GoTypeScript等が影響力をもって、JS,Ruby,Pythonでも型チェックのしくみを取り入れようという動きがでてくる。

最初からいれとけよって感じだわ。

2022-02-09

その辺の技術者知識で負けないくらいのふるすたっくえんじにあになりたい

機械工学大学で学んだ。機械系4力学さわりだけなら大体やったがもう忘れている。

・切削加工はけがきフライス盤、ボール盤、くらいならできるが複雑な形状は作れる気がしない。そういえば旋盤は使わなかった。耐久性を考えなければ3Dプリンタでなんでも作れるらしいが、3Dプリンタは触ったことがない。

CAD大学の演習でSolidWorksを触った程度。もうすっかり忘れている。手書きの製図とかは調べて思い出せば簡単な形状ならできるかもしれない。

シミュレータANSYSマニュアル通り触った程度。動力学解析とか連成解析とか仕組みは全くわかっていない。

電気工学はだいぶ勉強不足。簡単回路図チップ製品情報を睨めっこしながらINとOUTと接地をどうすればいいかくらいはわかったが、複雑なものになるとダメArduinoとRasberryPiは買ってみたが埃かぶっている。論理回路の読み方はすっかり忘れているが調べれば思い出せると思う。

化学系は全くの無知大学受験で知識は止まっている。物性物理的なところも無知

数値計算PythonMatlabちょっとできる程度。ライブラリを使った行列計算簡単ニュートン法くらいなら書けるが、精度や速さが必要だったり複雑になるとダメ。解析は微分積分常微分方程式を調べて思い出せばできる程度。測度論とか特殊積分かいわゆる大学数学的な道具が必要になる解析はできない。

競技プログラミングちょっとかじったがやめてしまった。むずかしすぎた。

機械学習や統計はなんとなく知識はついているが、手を動かして何か作ったことはない。この前統計検定1級落ちた。

バックエンドSQLをそれなりに書いてとりあえず動くものなら書ける程度。可用性とかパフォーマンスとか考えられるレベルではない。JavaJavaEEを横展開的に書いた程度。理解できている自信はない。保守性高めたりデザインパターン的に綺麗な書き方とかできない。C++は一瞬だけ触ったことがあるが、環境構築ハマった&謎のSegmentation Faultで苦手意識を残したまま。Go?Rust?なにそれおいしそうだね。

クラウドAWSマニュアル通りに使っている程度。1から設計なんてできない。なのでAWSソリューションアーキテクトを勉強中。AzureやFirebaseは触ったこともない。

ネットワーク系とかセキュリティ系は全く勉強不足。応用情報ギリギリ合格できる程度の知識しかない。わかるようにはなりたい。

フロントエンドFlutter勉強中。Flutterむずかしい、どんな言語でもそうだけどチュートリアルから業務レベルまでの乖離ありすぎてよくわからない。javascriptはjQuery一強時代ちょっと書いた程度。VueとかReactとかなにもわからない。TypeScript?なにそれおいしそうだね。

ハード系だったりファームウェア系だったりコンパイラ系は何もわからない。わかるようにはなりたい。

全部中途半端だな、、、

2022-01-12

https://taku-exs.hatenablog.com/entry/2019/07/15/223025

習得候補外になる理由としては、覚える価値がない以上のことはないなあ

自分TypeScriptPythonGo、Rust、C++を書くけど、

これらのどれと比べても収入にならないし、

欠けてるものを補ってくれもしない

そもそも5つも使ってると相互補完が効いていて欠けてる要素なんてほぼ無い

2022-01-09

Pythonかいうクソ言語はさっさと淘汰されてほしい

結局まともに扱おうとするとtype hint書くことになるし、マジで動的である利点が無い

動的型付けの言語にも利点はあるという主張は(自分同意しかねるけど)理解しているが、今のPython用途で動的であるメリットが皆無

機械学習やっててPyTorchとかTensorFlowとか既存ライブラリPythonから仕方なくPython触ってるけどマジでさっさと淘汰されてほしい

それかJavaScriptにおけるTypeScriptみたいなのがPythonにもほしい

昨今Rustで機械学習かいうのもちょっと見かけたのでそっちが主流になる未来がきてくれ

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