はてなキーワード: Djangoとは
もと増田だけど、気分まぐれに書いた駄文なので気にしないといてくれ。
それはさておき、Python が好きってことはプログラミングが好きってことで良いね?だとすると、最終的には C 言語やることになるけど、今は Python をやろう。なんと言っても、Python は C 言語できているけど、C言語は謎いので無視してオッケー!
そんでもって、Python の「公式ドキュメント」をきちんと読みこなせるようになろう。最初はから全部は必要ないけど、最終的には読みこなせるようになろう。そんでもって、プログラミングをしたいってことは「何かを作りたい」のだろ?たとえば、増田を作りたかったら Python だと Django や Flask を、人工知能を作りたかったら PyTorch を使うことになるだろうけど、その手のフレームワークの「公式ドキュメント」を読みこなせるようになろう。プログラミングスクール(やめとけよ)や本は「公式ドキュメント」を読めるようにする手段だと思ってくれ。間違っても「本に書いてあったのに、動かない!」なんて、喚かないでね。洋書も和書も「公式ドキュメント」以外のテキストは間違っていることがあるので。
次に「エラーは友達」ということ。エラーはあなたを否定したのでなく、コードを否定したのであって、エラーが出ても気にしないでください。そんでもって、エラー文を丁寧に解決していけば、すごくスキルが身につきます。
最後に、Python 言語だけじゃ解決できないプログラミングの問題は多々あります。データベースを操作するには SQL が、ウェブサイトを動かすには JavaScript が、ウェブサイトを作るには HTML/CSS が、サーバーを設置するにはシェル言語が、Python を高速化するには C言語が、必要になる場合がありますが Python を使いこなせると、おそらく習得は容易でしょう。なぜかというと「Python だとチョメチョメだったっよなー、これでいけないか?」という勘が形成されるので。
チューリング完全な言語はどれも表現力は同じだから、「この言語だから成功する」というのは無いよ。Python は interface が無くて、class が弱くて、動的型付けを用いているけど、これらがないと「制約」を課すことができないというフリーダム過ぎるから、嫌らわれることはあるけどね。制約が強い言語は、ハンターハンターふうに言うと「制約が念能力を強くする」みたいな要素はあるよ。
どうしても教育を受けたいという希望があるのなら、ハーバードの CS50 という講義が無料で見れるから、推薦したいね。あれみると、我が国は計算機科学は負けていると思った。
(年収270万で)プログラマーを引退して、医学部にきた俺が真面目に考えてやろう。
真面目に読んでいて、ちょっと気になる箇所がある。たとえば PostgreSQL を postgre とか書くヤツは現場では嫌われるぞ。少なくとも postgres と書いてくれ。お里が知れるぞ。
消えていくエンジニアの特徴だけど、叱責されたり馬鹿にされるのが嫌で VCS にコミットしないヤツ、または貪欲にコードレビューをされるのが嫌がるやつは、成長しない。
この業界は数年前には『デジタル土方』と揶揄される業界でした。ちなみに、アメリカでも「テック系はハードだから避ける」という雰囲気でした。つまり何をいいたいのかというと、ソフトウェアの開発者っていうのは「泥臭い領域」なんだよ。エリートとは程遠い場所にあるというね。
いやぁ、是非とも楽天で働くべきだよ。どうせ野村総合研究所とか NTT DATA なんて無理だと思うから。
うん、ココはまずい。基本的にフロントエンドなんて給料が安いのよ。だって、誰にやらせてもデータベースにクソなDCLを飛ばせないから。逆に、データベースを触れることができるプログラマーはリスクと責任が大きいから、給料が高いのだよ。B4 になってもそれが理解できていないようだと、この先くらいよ。
君はソフトウェア・エンジニアになりたいのだろ?世の中は分業で成り立っているのだから、全部やろうとするやつはアホだよ。
インターン生はお客さんなの。君のスキルが通用したのはすごいと思うけど、同じ感覚で仕事はできないから注意しときなよ。
なに言ってるの?そんなことは言い訳にならんよ。プログラマーになりたいのだろ?勉強をしろよ。
逆にいうと、あなたがインターンとして週3で20万円貰えていたのは、参入障壁が少ないからでしょ?強強エンジニアが生き残っているのは、それだけすごいということだよ。
いやぁ、違うと思うよ。その問題が「難しい」なら切り分けて、上に「ココが自分の能力では解決できないです」と持っていくだけなんだからさ。CS じゃないのだったら、仕事をするまで「扱わないまま」なんだよ?しかも、土日に勉強する気もないとなったらいつするのさ?
諦めなよ。ソフトウェアというものが「変化できることに価値がある」ものだから。変化する業界はストレスフルだけど、立身出世する可能性が高いでしょ?安寧なばしょではないの。
いやー、CSでない博士課程に行って、雇ってくれる企業があるかね?無いと思うけどな。
この時点で、君はコピペしかやってきてないことが理解できる。おそらく QUIC か MQTT あたりだろ?逆にいえば、それが実装できたら他社と差のつけられるプロダクトだったはずだ。つまり会社の利益の源泉であった部分をみすみす実装できないようでは、そこらへんの専門卒以下だぞ。
ムカつくというか、虫酸が走る書き方だ。箇条書きにすると、
プログラミングに年齢はないから。自分は9歳ではじめたけどね。
あー、俺も天才が高校のときにいて、マーチの情報工学と旧帝の院の学費を会社持ちという驚異的なやつがいたよ。今もブログ見てると、Android と iPhone のアプリを書いているみたいで、元気そう。
それを上手にコントロールできるプログラマは世界中にもほとんどいねぇ。むしろ、月20万でやるもんならギルドから苦情が来るぞ。オレもアビームの人に給料を答えたら、「こんなヤクザな会社はやめろ」と耳うちされたよ。
人より良い経験をしたいという願望はあるのは素晴らしいと思うよ。しかしながら、君が到達したノウハウは他人にもできることだからね。ワン・オブ・ゼムになりたくないなら、努力し続けることだな。勉強をするのをやめたら、数年で中卒に負ける世界だからな。覚悟しとけよ。
P.S. 医学部に来たのは家庭の都合だよ。それに、自己顕示しないと「場末のコーダー」で読んでもくれないだろ?年収については、自分も低いと思うよ。なぜ低かったかというと、都内私立大学多浪中退の自分にはベンチャーの皮を被った助成金搾取がメインの反社会的勢力のフロント(ベンチャー)企業ぐらいしか相手にしてくれなかったからだよ。そこの会社は外国帰りの MDMA をキメて、未成年の子女に手を出しては警察沙汰スレスレのことをしているキチガイが社長をやっていて、人工知能を作ろうと学生インターンを酷使している会社だったのだけど、「サイバーエージェントに紹介する」という嘘にひっかかって、特定派遣事業の免許がないのに客先常駐させられ、土曜は帰社日、日曜は社長の Python の勉強会に参加させられる、というブラック会社にいてピンはね率(60%)となると、まともに考えることもできず働くアリになってしまってたからだよ。
P.S. ② 年収については、初日から派遣先の会社に引き抜きのオファーをもらって、2ヶ月後に新しい会社に移動したけど、300万だったので CodeIQ というサイトで転職をする準備をしていたよ。たしか、DMM とかサイバーエージェントの面接にいこうとしてたような記憶。その後で家庭の都合で、医学部に来たけど。
P.S. ③ 医学部医学科の6年生だよー。みんなが嫌いな私立医学部だけどね。ちなみに、俺もこの大学が嫌いだ。
P.S. ④「GraphQLをわざわざ書くのは理解できるけどな。」そうだとすると、REST や SOAP も書かないとまずくない?書くのだったら「Rails と Next のデータ受け渡しにGraphQLを使った経験が」という感じだと良いと思うけど。
P.S. ⑤「野村総研とデータを挙げるあたりSI寄りの仕事してたのかな。 」ちゃうねん。オレっちは多浪したからさ、そこのエントリーシートをかけなかったのよね。まぁまぁ大学が名門でさぁ、OB が誘ってくれるけど、年齢で弾かれて辛かったねん。
P.S. ⑥「ダウト。学費をどうやって稼いだんや 」えぇ、親の金です。だから家庭の都合でと書いてるじゃろ。
P.S. ⑦「本当に医学生ならここ数年の技術についてこの指摘ができる程詳しいわけないし少なくとも10年位は業界にいないとこういう感覚は身に付かない。 」たしかにおかしいよな。Kubernetes や Terraform を弄って、CI は GitHub Actions、CD には AWS CodeDeploy を使って、ブログは Jekyll で静的サイトジェネレータを使いつつ、自前のサービスを立ち上げるために Rails, Next, React, PostgreSQL, Redis, Kafka, Elasticsearch, S3 の勉強をしつつ、スマホ環境のために Kotlin と Swift を触れているなんて変だよな。そういえば、Docker が来るまでは Vagrant で環境をつくっていたのも忘れてたよ。あと Rust を今年に学ぶ言語にするなんて、受験生にあるまじき行為だよな。うん。
P.S. ⑧ 年収については、基本給が 22万で、残業が200時間超えたらプラスだった気がする。あと、反社ベンチャーは「ポートフォリオの作成にまる一ヶ月間で拘束された、しかも無給で」という時点でヤバいのだけど、その会社にコミットしたのは「サイバーエージェントに紹介する」ということだけであって、同時期に DMM も面接に行けそうだったのよね。馬鹿なことをした。
P.S. ⑨「特にフロントエンドを見下す感じとか」オレ自身はフロントエンド出なんだよ。何を隠そう、Adobe Flash のゲームをつくっていたから。それでもって言うよ、バックエンドが一番大切だと。
P.S. ⑪「5~10年前に人売りに捕まった話とするなら、年収270万も現実味を帯びる。」特定派遣は消えてくれてよかったよ。俺のところは特定派遣すら未登録だったけど。
P.S. ⑫「いい医者になるのだよ 」うん、頑張る。「オッサン」「社会不適合者」「あるき方がキモい」「プログラミングwww」「同じ班になりたくない」「親も頭が悪い」「生きてて恥ずかしくないの?」とか言われてるけど、頑張る!
P.S. ⑬ 「フロントエンド別に給与低くないよ。」えっ、そうなの?WebDesigning を読む限りだと、400万もいかないイメージだけど。
P.S「医学部6年でまだプログラムに興味あるの不思議。」好きなんだよ、言わせるな///
P.S. 「フルタイムじゃないのでしょ?」いいえ、東京都内でフルタイム(ひどいときで、朝7から夜24)でしたよ。入った会社が「法律よりも、派遣先の評価」という会社だったからね。
P.S. サイバーエージェントさん、ときどき御社の社名を使って「弊社に恩を売ると、サイバーエージェントに紹介する」というベンチャーが跋扈しているので、どうにかしてください。わたくし、1ヶ月間もその嘘で jQuery と Django を回収させられた挙げ句、月給 2000円だったのですけど。本当に千円札2枚だったのですけど。ついでに、Android(Java) と iPhone(Objective-C)と jQuery を使ったフロントエンドシステムに、バックエンドに Rails + Postgresql のシステムで、AWS を介したサービスを作らされたのも「サイバーエージェントに紹介する」と言われたからなんですけど。いったい、何なんですか?お前ん所は、コンプライアンスどうなってんじゃ。
P.S. 「好きそうだし医学部卒業してシレッとgoogle行ったれ 」無理っすよ。オレのスキルじゃ。
P.S. 「病院は」親がクリニックを持っていたけど、潰したよ。クリニックは人に患者がついていて、アルバイトを充てがっても患者さんが不幸になっていくのをみちゃったからね。自分は責任を持って患者さんを見たいから、バイトなんて使わないよ。
P.S. 自分はコードを書きたいタイプだったから、SIer みたいな UML とか書いて下請けにコードさせるみたいなのは絶対に嫌だったのよね。だから SIer にはならなかったよ。やっぱり、現実にある計算機が解決できる問題を、より直接的に触れて解決したいと思っているから。仕事がハードでも全く問題なし。
P.S. FPGA すごいよね。ザイリンクスとアルテラが Intel と AMD に買収されて、すごいと思ったよ。2010年頃だっけ?、CPU の限界を FPGA で突破しようという話があったけど。手を出そうと思ったけど、高性能なチップが 100万ぐらいして挫折した記憶があるよ。
P.S. 「東海大の医学部・学士」は自分は大学を卒業してないから無理でした。あと、それ以上の詮索はやめてくれ...
P.S. 「MySQLそんなに嫌いなのか。」そんなこと書いたつもりはないが、あれ?確かに MySQL は PostgreSQL より嫌いたけど、それは Oracle が親元だったり、Unicode の扱いがファッキンだったり、ストレージエンジンが切り替わるときにカオスな目にあったけどさ、MySQL は好きだよ。お世話になったし。
P.S. 給料については契約後に言われたのよ。というか、もともとは「サイバーエージェントに紹介」するという理由で、ポートフォリオの作成や Django の改修を手伝ったつもりで、入社とかする気は全く無かったのよ。それが、いきなり他所の会社に面接を受けさせられて「君は明日からXXで働くから、履歴書を書いてね」と言われて、抗議したら「俺に恥ずかしい思いをさせるのか!業界に入れなくするぞ!」と大声でシャウトされて、気がついたらあっちが用意した履歴書に拇印してしまったのよね。有料職業紹介と派遣登録をしてない会社だったから、そんなかとはできないはずなんだけどね。ホームページには「年収550万」と書いてあったけど、実際はまったく違ったのだけどね。
P.S.「うーん、いらないかな。IT土方としての仕事しかないと思う。」だよな。おとなしく医者になるよ。ありがとう。
P.S. Elasticsearch は全文検索機能がほしいからやってるよ。Redis はインメモリなセッションストアとして使いたいのよ。Kafka はさ、twitter のファボをじっそうしたいけど、RDB の書き込み速度が上がらないから利用したいの。TensorFlow は全く理解できてないよ。それは、指摘されたとおり。
逆に聞くけど、以下の知識があったらどれぐらいもらえるわけ?東京23区で。
https://anond.hatelabo.jp/20210617075257
上がってるような基本(元増田に上がってるやつの倍ぐらい)が全部立ち上げからできて
2〜3個プロジェクト経験したらテックリードの素養が既に身についてそう。
プロジェクト的にもどっちかが弱いと
Rails/DjangoにjQuery+Bootstrapみたいな構成や
Amplify/FirebaseにVue/Reactみたいな構成も全然あるので
面接はなんとか抜けてもらうとして、
チーム開発での最低限の目標としては、
成果物から、指導、学習コスト、レビューコスト、技術的負債、マネジメントコストを引いた分が正になっていれば
ひとまず「チームに居ていい人」と見なされそう。
チーム的に良くても、経営層にそれで許されるかはわからんのでその辺の立ち回りも上手いことやるとして、
一旦は、正の生産性を目指してほしい。
以後、ブコメで誰一人一ヶ月でできるって言ってなくて笑うので、
一ヶ月というのは無視して、三〜六ヶ月程度をイメージしつつ書いていく。
似たような言語なのでどっちからやってもいいし、両方同時にやってもいい。
どっちかしかやらないならJavascriptがおすすめ。後ででてくる、Flaskは適当にExpressとかに置き換える
現場だとほぼTypescriptなので、Javascriptはある程度慣れたらTypescriptに移行したほうがいい。
どちらも、Python2とES2015以前の記法というレガシーがネット上に転がってるので参考にしないように注意。
・一貫性があって
・正しい書き方がされた
お手本プロジェクトをなにか(githubや書籍など)で手に入れて読むべき。
おそらくフレームワークに乗っかっているので並行して進めることになる。
話の流れで先にこっち
現在のコーディングのグッドプラクティス、デザインパターンはフレームワークの形をしている。
なので、ReactとVueをその思想から理解しきれれば、プログラミング言語の潮流の最先端に追いつけるはずだ。
TypescriptもVue.jsも書き方をどこまで取り入れるかが使用者の裁量に任されてるし、
開発でVueとReactのどっちを使うかはチーム次第なので、
一旦React+Typescriptでガチガチに書かれたコードプロジェクトを拾ってきて、必死で解読するのがいいと思うなー。
2割ぐらいわかった気になればチーム入ってから(React, Vueどちらだったとしても)動けそう。
パッケージとかテスト、タスク&デプロイ辺りもこのタイミングで拾ってきたプロジェクトを使って学ぶ。
バージョン管理とコンテナの思想が優れているのは自明なので、これらはツールと見ていい。
そして、後からプロジェクトに入った人がプロジェクトの流儀に沿って使う分には難しいことはなさそう。
採用に来た人がgitとかわかってるとチーム開発経験者だなーって思うし、知らないと未経験者なんだなーって思うし、
そういう意味ではチーム開発の経験があるかどうかの試金石にはされてそう。
構築できる、ではなく、触れる程度で良さそう。
gitはプロジェクトの流儀によると書いたが、git-flowのイメージ図を理解して運用できるのがよい。
https://qiita.com/KosukeSone/items/514dd24828b485c69a05
こういうのができるんだなーって言うのを知っておいて、調べつつ書ければ十分。
あとはシェルスクリプトとかって思ったけど同様のことはPythonでもできそう。
地味にSSHでログインした先の環境だと、vimが主要なテキストエディタになるので
vimを最低限触ることだけ要りそう。もういらないかもって思ってたんだけどなー。
→ ファイル開いて入力モードに切り替えて書き込んで保存して終了
細かく書いたが、LPIC-1の範囲がほどよくまとまっているのでそっちを参照するとよい。
これが意図なら
この辺の機能を持った小規模Webアプリを作ってHerokuでデプロイすれば一旦完成とみなしてよさそう。
コード書き写しただけにならないようには注意しつつだけど、長く見て5人日ぐらい?
慣れると1日あればいけると思う。
フレームワークもなんでもいい。
Djangoとかでも各コンポーネントがどんな働き方してるか程度はわかるだろうしそれで十分。
余力があれば複数個触ってみたり、人から勧められたらそっちでも。
最近はサーバーレス&NoSQLが流行ってるのでFirebaseとかもやればいいと思う。
に尽きる。
計算量を気にしなかったせいで線形検索メソッドとfor文を組み合わせて
それらに対して分散や非同期処理で解消しようとするとか、
ちょっとでもアルゴリズムを触った人ならアホらしいなって思うような行為を
計算量を意識するだけなら、AtCoderのABCのC〜D問題辺りが解ければ十分。
有名な脆弱性や攻撃手法は、ほとんどフレームワーク等で解決手段が用意されている
のでアドリブをせずに正しい書き方でやれば良い。
開発現場でもセキュリティリスクがある箇所を1から自前で実装することを経験が浅い者にはやらせないので、
ただただ、フレームワークが正しいとしているやり方をなぞるのが良い。
開発の勉強のやり方としては、
・正しいコード見本を手に入れること
この辺りの習慣があればやってけんのかな、
その他、チーム開発って面では
TeamGeek(人間性)とかインプットしておくと共通言語が増えて嬉しい。
この方向で進めてけば、その途中で正の生産性≒足引っ張らないぐらいになれるので、
そしたらやってけるんちゃうーって感じ。
前にhttps://anond.hatelabo.jp/20210526121840を書いた増田ですが、Pythonを学んで1ヶ月が経ちました。
最近はPySimpleGUIを使いGUIアプリを作りつつ、更に自分の業務を色々と自動化しました。
ついつい自分の書いたコードを見返しながら、そこからコピペして作ったりばかりで
なかなか自分の記憶を引っ張ってコードを書くことが出来ていません。
最近はDjangoの講座動画を見ながら、休みの日にちょこちょこコードを書いています。
こういうのを学べば学ぶほど、サービスやアプリを安定稼働させているエンジニアの方々への感謝と畏敬の念ばかり浮かんできます。
仕事でPythonのコードに触れることになった。Djangoアプリ。
「urls.py で リクエストURL とビューのマッピングをします」 → ふむふむ
「views.py に定義されたビューで リクエストを受け取りレスポンスを返します」 → うんうん
「引数で渡される リクエストオブジェクトはこれ https://docs.djangoproject.com/en/3.2/ref/request-response/ 」 → 予想通り
同僚により実装済みの views.py を IDEで開く。 引数にrequestがある。うんうん。
requestにマウスをかざしてみる。
→ IDE無反応
まだ私は気づかない。不審に思いながら、requestの中に詰まっているモノ(method とか header とか body とか)のラインナップが現れることを期待して
request. とタイプしてみる
→ IDE無反応
ここで私はようやく、置かれている状況(相手にしているのはPythonスクリプトであること)に気づき、発狂しそうになった。
型付けに慣れきっている私にとっては
今までの自分のスキル関係なく、今日からスクラッチでソフトウェア開発するとしたら、どんな環境がいいんだろう?という問いかけです。
ちなみに自分は以前組み込み系のエンジニアでWeb系は詳しくない&ここ1年ソフトウェアの仕事から離れてましたが、最近Webアプリ作りたいなと考えてます。
・組み込みソフト・・・基本C言語、最適化するとこはアセンブラ、マイコンのコンパイラが対応してたらC++
・Windowsアプリ・・・C#(.net framework)、nodejs(electron)
・スマートフォンアプリ・・・3DだとC#(Unity)、Dart(flutter)、javascript(React)、作り込むならネイティブ(iOSはswift、androidはKotlin)
・Webアプリ・・・nodejs、ruby(on rails)、Dart(flutter+firebase)、python(Django)
・社内アプリ・・・社内がマイクロソフト環境(outlookとかteams)ならPowerApps
・AI開発・・・python(TensorFlow、scikit-learn)
djangoとかflask便利やしな
一応は Python のエバンジェリストで、人工知能(深層学習のみ)をやっていますという本を2冊読んでみたので、どんなもんか増田にきいてみたい。
『Pythonプログラミングのツボとコツがゼッタイにわかる本 』
この本をチラ見して、この会社と田中潤という人に関心が湧いた。内容は★☆☆☆☆。この本の内容は、内容はただの Python で Django と機械学習のライブラリをできるようにしようとする内容なんだ。だが、何故か本文中には田中潤という人は一切のコードの記述と解説を書いていないのよね。全部、大学生のインターン?に文章を書かせたという感じだったのだ。これでよく秀和システムの編集者は出版に疑問を感じなかったのだろうかと思う。
『誤解だらけの人工知能~ディープラーニングの限界と可能性~』
で、田中潤という人が次に書いたのが、この本らしい。内容は★★☆☆☆。まぁ、作者がデータサイエンスに自信がないから、専門の松本健太郎を誘ったという雰囲気で、初っ端から松本氏が引いた応対をしつつ、話が進んでいくのだが、何かがおかしい。田中潤という人はアメリカの博士号を数学でとったのだから、深層学習のデータの取捨選択は自分の得意範囲なはずだが、それを外注するのが変だ。それに「人工知能とは深層学習のことである」という言い切りも気になる。それでいて、途中からはベーシックインカムの話やら、よく聞く統計学の話やら、どっかの洋書からパクってきたとしか思えないシンギュラリティの話をとりとめなく綴っていき、この書は終える。誤解云々はともかく、間違っているのは作者たちなんでは...?
ついでに会社のサイトに行ってみた。https://shannon-lab.co.jp/ らしい。登記が2011年らしいが、何にも結果が出ていない。それに、ひと通りまわってみたけど、実績は一切見つからないのだ。今後のポリシーや、過去の講演会とインターン生のレポートしか書いていない。ツッコミどころとしては「どうして Python の本を出す人が PHP でサイトを運営しているのか」とね。
最初はこの人の会社にアポとってみようか、と思ったのだけど、胡散臭いので会社の実態について知りたくなった。どなたか「人工知能の開発する上で技術力を見るポイント」や「シャノンラボの実態」についてお教授ください。あと、上が人工知能の開発をやりたいらしいけど、この会社は信用に値するか判断してくれると助かります。
【追記】この人の評判を人伝にきくと、アメリカに留学したけど計算機科学や人工知能の学位は無くて、独学で Python を習得したみたいだということはわかってきた。特に TPU や GPU を使って深層学習のエンジンを作る能力はないみたいで、Python でライブラリを叩くぐらいが限界っぽいね。そんでもって、本業は学生のインターンを派遣することが主力の手配師だというのが感触としてつかめてきた。それに人工知能の開発はコモディティ化したので、この人に頼む必要性はないね。というよりも、この会社が売りにしているアコースティックマイクは指向性マイクを使えば一発で問題解決しないか?、という気持ちになった。
人工知能で詐欺まがいなことしてる香具師に引っかかった、という話をこれからしていく。この記事は「人工知能ば詐欺だ」ということでなく、「詐欺師は人工知能を使いたい」ということを語る。
もう10年ぐらい前になるのだけど、人工知能には色々あるのに「深層学習だけが人工知能」だという無勉強な馬鹿に引っかかったんだよ。本当は人工知能なんて LISP から始まって、色々あって今の AI につながるているのに、その歴史は全く無視してね。Python のライブラリでどうにかできないものは不要とのことなので、「ふーん、そうなんですか」ぐらいで対応してた。なぜなら、自分は人工知能にAPIを叩いてブラウザに表示する部位を担当したからだ。
その会社にはエンジニアがいないので、人工知能とデザインを除いた全てをほぼ自分だけでフロントエンド(当時はFlash)からバックエンド(Django)とデータベース、クラウド部分を設計・開発・運営をやることになった。それは慣れてたから良いのだけど、ひとりでぼちぼちやるのは変な感じだった。ホームページには10名近い社員がいます、とのことなのに。
この理由はなぜなのか理解できたのは、インターンがやってきてからだ。そいつは結果を出せないから有能な人がやってこないのた。それで社員数を水増しするためにインターンを社員としてカウントしていたのである。なんとインターンの無給の学生ばっかり声かけて、ただ働きさせて「成果は自分のもの、ミスは能力のない学生のせい」みたいな畜生の極み、のようなことをして糊口をしのいでいる自称『天才』に俺は捕まってしまったのにここではじめて気がついたのだった。信じられないことに。
それで、ついに API をつないで一つのシステムにしましょうという日が来た。なんとか力量で解決したのだけど、はじめて彼のソースを見せてもらったときの衝撃度ときたらね。驚いたよ、スカスカのコード過ぎてね。おかげで深層学習がライブラリを使えば簡単にできるのも学んだけのだど。
閑話休題。
まぁ、コードを書くのが本業でない人だから良いか、と思ったらなんと、Python 教室を開くというじゃないですか。それで、成果をサイトに掲載するのですよ。自分のコードは絶対に載せないのに、他人のコードを添削して「弊社は実力があります」みたいな事例にしていたのですよ。驚いたことにね。
なぜ、そのような香具師が存在できたのかというと、「人工知能は効果判定をしにくいけど、将来的にはメリットになる可能性が高い」という計算機科学の領域では珍しい特性を持っているのよね。ほら、業界人にとってブラウザやデータベースといったものは、ちょっと触ったら特性が感覚的にわかるじゃないですか。そこが人工知能はちょっと違う。
もちろん人工知能は世の中に必要不可欠なものになるのは間違いないのだけど、というよりも現状でもスパムメール判定やゲームでは活躍していますけど、おそらく個人がどうにかできるものではないのよね。理由はこれ以上はアルゴリズムの向上が困難で、高コストな専用ハードウエアを扱える資本家に対抗する術を個人が持てないという限界と、教師あり学習のような判断基準の元になる資料をどう収集するのかという問題点を解決した人や組織が皆無という状態にあるからなんですよ。特に最後の部分は未だに twitter レベルの組織ですらやらかしているので、まだまだ難しいと思われます。
学習の根拠になったもの自体をどうやってキレイなものにするかということすら、データサイエンスという学問が出てきて苦労しているのですから、ユーザーエンドからしたらこの領域は未だにキャズムを超えていないと判定されるのは仕方がないことなのでしょう。それは、そういうもんだから良いのですよ。将来的には解決される可能性が高いでしょうし。
それでですね、やっと本題に入れるのですけど、問題点は「人工知能は効果判定をしにくいけど、将来的にはメリットになる可能性が高い」という非対称性をこの領域は抱えているのですよ。これはですね、バイオ(健康食品・代替療法)や金融商品(暗号通貨・バイナリーオプション)なんかに出てくる胡散臭い「何しているのかわからない」香具師が介入しやすい環境なのですね。それっぽいことを言って、専門家なら絶対に言えないコミットメント(金融だと「100%絶対に儲かる」とか)を宣言し、私はアメリカの有名大の(別領域の) Ph.D. を持っています(嘘)、日本はゴミです、さあ皆さん『人工知能で夢』を叶えましょう、なんていうクサい台詞を(非技術者向けの)講演会で語るやつがいるのです。残念なことに。
でも、皆さん、ちょっと考えてみてください。なんで(トーシロ限定で)講演会なんてする必要があるのかと。人工知能の世界で講演会をして資金集めをする、っておかしくありませんか?OSS で有名なコミッタだったり、インパクトファクターのつく雑誌に名前がのるような人材がですよ、この御時世にわざわざ資金集めする必要がありますか?世界中から「金を出させてくれ」といって金がわんさか集まってくるに決まっているじゃないですか。逆に、プロを避けるような人物に金を出したいと思いますか? よって、(トーシロ限定で)資金集めのための講演会なんかをひらくような残念な人工知能開発者が金を稼ぐことはありません。同様なケースに遭遇したら、出資したら泣き寝入りすることになりますよ。
※ この記事はアキネーターの下りがクソです。もう少ししたら自分の言葉で書き直します。ただ、この記事を消すことはしないです。これ技術的な話をしているようにみせてますが、わかる人にはしっくりくる符牒のつもりで書いています。
うん、でも、わたし講演会でその人のつくった人工知能が動いているのみたよ、まるでアキネーターみたいな、というのでありましたら「良いものを見ましたね」とこたえますよ。あれは良いものです。実はアキネーターのクローンは今だと学生レベルのスキルで作れます。具体的にのべますと、なにかテーマを固定して、そのテーマに関係する情報を片っ端から集めて、Python のライブラリを使ってデータ処理を行い、機械学習のライブラリを介して5段階の入力に対して適宜返せるような状態に持っていき、Rails/Laravel/Django で HTML を吐き出すようにして、ウェブ・ブラウザで Vue/ReactjQuery に呼応するようにすると計算機科学ができる人だと作れちゃいますし、見た目を重視したければ美大生にでも声かければ、似たようなキャラを描いてくれることでしょう。
この程度だと、二人の学生を無休(給)のインターンにやらせて、詐欺の商売道具をただで作れます。これは、アキネーターは駄目だとは言ってません。説明すると長くなるので省きますが、あなたを騙す道具を作るのにプロは要らないと言っているのです。
それで話を続けさせてもらいますが、哀れな学生は酷使されたうえに、会社のサイトに「インターンの思ひ出(検閲済み)」を実名で掲載されるという、デジタルタトゥーを刻まれるのです。かわいそうに。
※ ここを疑え、というポイントを追加。
これだけでは済みません。詐欺の道具はこれだけでは不足しますからね。本は良い権威の道具になりますよね?そうなんですよ、出版社の知識のない馬鹿共が「学生だけが書いた技術書」(前書きと終わりにだけを本人が書き、しかも自著として講演会で提示するという狂気の書)を出しやがった。これ、マジで有名出版社がやらかしたので驚いたよ。
で、こいつもう一冊も本(これまた共著なのに、自著として講演会で使うイカれた書)を出してるのよね。まぁ、読んでみたらあまりの頭の弱さに感動したのだけど、驚いたことにこの本を出典として Wikipedia に何度も記載しようとチャレンジするキチガイ(本人かは不明)がいたのよ。もちろんリジェクトくらっていたのだけど、ビビるよねー。繰り返すが、人工知能が悪いのじゃないのですよ。人工知能を使って、投資家を騙そうとするのが許せないのであって。
ちなみに、わたくしはそいつにコードの添削されたのですけど、おそらくそいつは FizzBuzz テスト、クリアできませんよ。なぜなら、If/Else がかけないのではなく、四則計算のミスが酷いので。チューリングテストは通るとおもうけど。どうして、大切な投資家向けの資料なのに単純な数値が一致しないのかわからないのですけど、何故か数値の足し算がおかしいことが多すぎるのよ。数値が一致しない、ってヤバすぎるだろ。それ、多分病気だから、哀れに思った(元)奴隷ちゃんたちは、病院へ行くように諭してあげてください。きっと、逆上するでしょうけど(笑)。
えっ、なんでお前はやんないのか?って、そりゃ「めちゃくちゃそいつのこと恨んでいるから」に決まっているじゃない。オレは、そいつを救えるほど、冪等な人間じゃないんだよ。だって、オレは天然知能だからな。
p.s. 多分、この記事で言及している人物の被害にあった方はは多いので、「アイツだろうな」とわかるように書いてあります。「アイツってどんな人?」と聞かれたら、説明するのが辛いでしょうからこのページをさっとみせられるようにこの記事を書きました。私も辛いのです。10年フラッシュバックに悩まされてきました。ただ、これ以上の犠牲者が出ることが耐えられなくなり、今回この記事を書かせていただきました。この記事で言及している人物は専門ではないのに人工知能・情報工学という餌を使って、相変わらずボニーアンドクライド気取りで若者を搾取しています。ソーシャルエンジニアリングを使われると、若者はかんたんに騙されてしまうものです。かつての自分がそうだったように。世の中にしなくて良い苦労はあるのです。
DjangoとかRailsとかって、プログラムのいろはを知っている人でも理解するのに苦労するような独特な構文が多い
あくまでフレームワークで面倒な部分は省いているから仕方ないんだけど。
デコレータが何なのか継承が何なのかとかわかっていてもその意味を読み解くのに一苦労する。
ましてやRailsから勉強しよう!なんて人にとったら「なんかわからんけど動いた」という人が大半になるんじゃないかと思う。
Railsから入った人はたぶんRailsのためだけのやり方しか習得できんし、応用が利かないレベルになっちゃうんじゃないかと思う。
ORMを使わずに純粋にJavaなりでバックエンド書いてDB設計したりとかリクエストが来たらJSONを返すアプリケーションサイドを作ったりってなんとなく経験した人がRailsなりDjangoなりやるとこういうことか、これは便利だ、でもここは融通が利かなくてつかいにくいなみたいなことがわかるんだろうけど
大学卒業後4年ほど会社員をやったあと、ウェブ関係のプログラマを目指して1年ほど、バイトしながら独学で勉強しています。
ネット上には詐欺師まがいの情報商材屋とイキリマウントゴリラが跋扈し、普通の人間向けの情報が少なかったので、参考までに書いてみます。
なお、ここ数年のウェブエンジニア転職ブームとは無関係に転職を考えていたので、ブームは正直迷惑だと思っています。
独学にはいくつかの大きな問題点がありますが、もっとも大きいのは「全体のロードマップが存在しない」ことだと思います。
初学者は具体的に何をどの順番で学べばいいのかわかりませんし、この情報はネット上にはありません(冒頭にも書いた通り、そう思ったからこそ、このエントリを書いています)。
などありますが、どちらも普通の人間向けというには若干ゴリラ臭と商材屋臭がします。
また、プログラミング初心者向けの教材はおしなべて貧弱で、腹が立つほど不親切です。読んでいて何度もブチ切れそうになります。
特に初学者の場合は、教材の練習問題ひとつ解くにしても、誤字脱字等の初歩的なエラーのために平気で数時間のロスが発生したりします。
当たり前ですが、これは純粋に時間の無駄なので、すぐに講師に相談して解決したほうがいいです。
こういうことを書くとすぐに「自力で問題解決できない人間はプログラマに向いていない」と言いだすゴリラが現れますが、いまはそういう話はしていません。
そのほか独学だと自分の実力や相場感を測ることもむずかしく、その分詐欺師やゴリラに引っかかりやすくなりますし、基本的におすすめしません。
いまさらC言語と思うかもしれませんが、勉強するうえで重要なことはプログラミングの仕組みを理解することであって、どの言語から始めるかではありません。
その点、上記「苦C」はとても丁寧に文法を説明してくれますし、ポインタの説明を通してメモリの仕組みも教えてくれます。
ただし、回答例のコードに誤字脱字があって動かない等の発狂ポイントがいくつかあるので、注意が必要です。
勉強のやり方としては、まずはサイトを読みながらスマホのC言語アプリでポチポチ書いてみるところから始めると気楽でいいと思います。
途中で頭が混乱してきたら、再度冒頭からきっちり丸暗記するつもりで勉強するのがおすすめです。プログラミングに暗記は不要だと言うゴリラもいますが、あれは嘘です。
intはintegerだからintなんだとか、そういうことを調べながらやるだけでも解像度が格段に向上すると思います。
実際にC言語でバリバリ書けるようになる必要はないので、おおよその仕組みを理解してしまえば、最後のほうは流してしまって大丈夫です。
検索するとこの手のサービスが一番上に出てきますが、内容は不十分だと思います。かゆいところに手が届かず、使っていて非常にいらいらします。
とはいえ他に代替となるものもないので、サービスを利用しつつ、必要に応じて入門書を読むのがおすすめです。
私が利用したかぎりでは、Progateは教材の内容が薄く、Paizaは無意味にオタク臭くて私は苦手でした。N予備校やUdemyの評判がいいみたいですが、使ったことがないのでわかりません。
私はウェブ関係のプログラマ志望なので、ProgateとPiazaでHTML/CSS/JavaScript/Git/Ruby/Ruby on Railsを勉強しました。
最近は初心者Railsエンジニアが供給過多の印象があり、DjangoやLaravelのほうが就職には役立ちそうな気がしています。
余談ですが、無料の教材として有名な「Railsチュートリアル」 https://railstutorial.jp/ は、あえて劣悪な翻訳を放置することで、自社のプログラミング講座に顧客を誘導するビジネスモデルのように見えるので、内容はともかく個人的にはあまりいい印象を持っていません。
ちなみに私はこの辺で迷走していたため、いろんな言語をちょっとずつかじっています。
『スッキリわかるJava入門』はオブジェクト指向を理解するのに役立ちましたし、『退屈なことはPythonにやらせよう』で覚えたスクレイピングは求人情報の収集にとても役立っています。ほかには『プログラムはなぜ動くのか』も読んでためになりました。
基本的に本を読んで損することはないので、時間の許すかぎりたくさん読んだほうがいいと思います。私はあまり読めていません。
Railsチュートリアルを参考にRailsアプリのポートフォリオを作りましたが、完成まで半年くらいかかりました。
上述の劣悪な翻訳のせいもありますが、データベースの設計を考えたり、UIを工夫してみたりすると、いくらでも時間が吸い取られていきます。
知識ゼロから3ヶ月でポートフォリオを作りました! みたいな若手情報商材屋を見かけると、そんなにすごい能力があるなら普通にエンジニアだけやってればいいのに、と思います。
完成したアプリはDockerでコンテナ化したうえで、GithubActionsで自動テストを走らせ、AWSのサーバーにデプロイしていますが、この辺は言語の勉強やアプリの製作と比べたら全然むずかしくありません。
まともな日本語で書かれたまともな教材が揃っていますし、ネットの記事も豊富にあります。ここまでの勉強で、エラーメッセージや多少わかりづらい文章を読み解く能力も身についているはずです。
それぞれ1、2週間集中すれば最低限の実装はできると思います。ただしAWSの設定だけは、適当にやると数万円の請求書が届いたりするので注意が必要です(届いた)。