ノンプログラマーな自分が、大規模言語モデル(LLM)の助力で、初めてまともに動くプログラムを完成させることができました。
ノンプログラマーな自分が、大規模言語モデル(LLM)の助力で、初めてまともに動くプログラムを完成させることができました。
僕がプログラミングに触れた当時は、プログラミングといえば「まず C 言語」でした。それから 10 年以上が経ちました。学校の授業や企業の研修では未だに C 言語を教えているところがあるようです。関数型プログラミング言語という波が来ている 2012 年にもなって未だに C 言語をやっているというのはまるで進歩が無く残念な気もしますが、比較的多くのプログラマに浸透している共通言語を最初に教えるというのは、一方では喜ばしい事だと解釈する事もできるのかもしれません*1。まぁとにかく、本意にせよ不本意にせよ現場で プログラム初心者に C 言語を教える羽目になった 人がたくさんいて、プログラム初心者なのに C 言語を学ばざるを得なくなった 若者がたくさんいるということです。 C 言語を教えるときに避けて通れないのがポインタで、プログラム初心者が C 言語を学ぶときにやたらとつまずく人が多いのがポインタ
哲学者の東浩紀さんと思想史と近代科学史(特にコンピュータ史)の本を一緒に書いてみようという企画が今年から立ち上がった。 すると東さんがある日の生放送で、「しかし俺も最低限プログラムくらいかける必要があるんじゃないか。しかし最低限のプログラムとは何か」と言っていたところ、シラスの桂さんが「エラトステネスの篩ふるいとかですかねえ」と言っていて、もうエラトステネスと聞いたら黙ってはいられない吾輩が怒涛の勢いで生放送したところ、東さんが一番乗りで入ってきてくれたのでその場でライブコーディングしながらプログラムの書き方を簡単に教えることにした。 https://shirasu.io/t/zelpm/c/shi3zlab/p/20240105163405 プログラミング言語習得のコツプログラミング言語は、言語であるため、マニュアルを頭からお尻まで読んで内容を暗記するよりも、「これってどうやんの?」「こ
子どものころは絵を描くのが好きだった。 学校の休み時間は、クラスメートはみな外にサッカーをしにいっていたが一人教室にのこってノートに漫画を描いている、そんな小学生だった。 自宅に戻っても、自室にこもってよく漫画を描いていた。 漫画と書くいっても、別に人を楽しませるために描いているわけではなかった。もちろん褒められると嬉しかったが、それが目的だったわけではなく、いま思えば、それは自分で自分を癒すかのような行為だった。自分を救うために絵を描いていた。 絵を描いているときは、それに夢中で没頭していて、ほかの何にも代えがたい時間を過ごすことが出来た。この時間が、どこか自分の救いになっていた。 中学二年生ぐらいになって思春期にさしかかった頃だろうか。教室で絵を描いていると浮いてしまうことに気づいて、恥ずかしくなって、描かなくなった。 それでもやっぱり絵を描いたりなにか作品を作ったりするのは好きだった
英語が話せてプログラムも書けるようになったのでより就職が難しくなった件について 最初の記事にも書きましたが、日本を離れて10年以上、外資系の企業にて外国人と働き、または交渉事などをまとめ、何処に行ってもそれなりに不自由しない英語力を獲得し、さらにロックダウン中から2年あまり、毎日毎晩独学でコードを書き続けたことによって獲得したプログラミングスキルによりウェブアプリなどを自作できるようにまでなった訳ですが、そうして身につけた能力をフルに生かして条件の良い働き口を見つけてこましたろ と思った時に、そういった能力が身を助けるどころか、よりレッドオーシャンの荒波に我が身を晒すことになったことに気付き、愕然としてこの記事を執筆しています。 英語ができることによって競争が激化 例えば、自分は英語も話せて、プログラミングも出来ますよ となった場合、勿論グローバルな企業にて雇用されることを期待する訳ですが
例えば CMS の管理画面を考えます。 /posts に記事一覧画面、/posts/new に新規作成画面、 /posts/:postId に記事更新画面を置くような URL の設計はあるあるかと思います。 今回は /posts/new の画面はないほうが色々嬉しいと思った話をします。 新規作成画面があることで増える考慮事項 まず新規作成画面があると、どんな煩わしさがあるかを考えます。 下書き保存した時、どうする? 新規作成画面で下書き保存をすると、内部的にはリソースの ID が採番されます。つまり下書き保存した段階で、それは記事更新画面になるはず。 その ID で URL を /posts/:postId に書き換えるかどうかを検討します。 筆者は React 一辺倒人間なので React 寄りの話にはなりますが、Next.js や React Router などでは /posts/ne
「chatgptを使って要件定義の工数を削減したい」 「そもそもchatgptを使って質の高い要件定義ができるのだろうか」 とお悩みなのではないだろうか。 結論、chatgptで質の高い要件定義を短時間で実現することは可能だ。 実際に私もchatgptを使って下記のような要件定義書を完成させた。 通常この要件定義書を0から自力で作ろうと思うと40時間はかかるが、chatgptを使う事によって4時間で完成させることができた。 しかし、ただプロンプトをなんとな投げ掛ければ良いというわけではない。 目的を達成するために綿密に設計をしたプロンプトを投げかける必要がある。 また、要件定義の中でも ・chatgptに丸投げして良いところ ・自分で手直しをした方が良いところ を精査することも大切だ そこで今回は上記のような要件定義書を4時間で完成させるために、私がchatgptへ投げかけたプロンプトを全
(この話は最初Twitterに書こうと思ったけど、長くなるのでブログに書くことにしました) 僕はRSpecやMinitestでテストを書くのは得意ですが、常にテストファースト(TDD)で開発するとは限りません。 今業務でやってるタスクはこんなふうに進めてます。 雑に動くものを作る ↓ 見た目をきれいにする&機能を作り込む ↓ テストを書く ↓ リファクタリングする この順番で開発する理由を以下に述べます。 雑に動くものを最初に作る理由 最初は見た目とか、異常系とか、細かい仕様とかを無視して、正常系が一通り動くものを作ります。 これはこれから作ろうとしているものの認識が合っているかどうかをPO(プロダクトオーナー)に確認するためです。 実際に動く画面を見せると「こんな感じでOK」とか「ここはこういうふうにしたい」というフィードバックをもらうことができます。 また、開発者としてもコードを書きな
はじめに 「最短コースでわかる」シリーズ、「Pythonで儲かるAIを作る」著者の赤石です。 今、世界中に衝撃を与えているChatGPT。 その機能はあらゆる領域に及んでいますが、その中の一つにプログラミング機能があります。 マンデルブロウの図形を描画させるプログラムを実装したりして、十分びっくりしてはいるのですが、本当に自分で考えてコーディングしているのか。実は、有名なプログラムはテンプレートで覚えているだけなのではないか。 それを試す格好の題材を見つけました。 手前味噌ですが、私の最新刊である「最短コースでわかる Pythonプログラミングとデータ分析」では、各節ごとに、理解度を確認するための練習問題を付けています。そうです、この問題をChatGPTにやらせれば、本当に問題の意味を自然言語として理解し、それに対応したコーディングができているのか、わかるはずです。 ということで、早速試し
Elixirの虜になったPythonプログラマが、6か月後にたどり着いた、Classを使わないプログラム はじめに Elixirが、Qiitaアドベントカレンダー2022プログラミング言語ランキングで断トツのトップなのを知って、Elixirを学び始めたという方も多いかとおもいます。 私も昨年学び始めました。Elixirはとても楽しい言語です。 どこが楽しいのか? introductionに書いてある説明をみたり、パイプ演算子や、Enumの使い方を理解し、Elixirのデータの処理をプログラムで記述する術に触れてみて、この半年間で、Elixirの「虜」になってきました。 しかし、私がいままで使ってきた、Python,JavaScript等にあった、Classがありません。 虜になったからといって、Classの無い言語でいままでのように、プログラムを作れるだろうか? 今までの、クラスを使ったプ
AIベンチャーのサイドテック社(福岡市)は、複雑なコンピュータープログラムを生成するプログラミングAI(人工知能)「スパゲティ」を開発した。プログラムの可読性を低下させることで、IT業界の雇用安定化が見込めるという。 スパゲティは、ユーザーの要望に応じたプログラムを自動で生成するAI。同様の機能を備えたAIは既に存在するが、複雑な非合理プログラムを生成できる点が異なるという。また既存のプログラムを解析して、動作を変えることなく、複雑なプログラムに書き換える機能も備える。 同社が「スパゲティ化」と呼ぶ、複雑化機能は大きく2点からなる。1つは、同じ処理を何度も繰り返して回りくどくしたり、意味のない処理を入れたりするなど不必要な動作を組み込んでプログラムの行数を増やす「水増し」、もう1つはプログラムの可読性を下げてプログラマーに精神的負荷を与える「煩雑化」だ。 同社では10行のプログラムを2千兆
【150部突破🎉】最速で未経験からエンジニアになる!学習から転職までの完全ロードマップ【限定特典あり】 ※はてなブックマークの総合人気エントリと、noteの「今日の注目記事」「先週もっとも多く読まれた記事」に入りました! ※ただいま期間限定で1000円キャッシュバックのキャンペーンをしております はじめまして。 苦しんでプログラミングを学んだ柴犬こと、「くるしば」と申します。 このnoteでは、僕自身が挫折を繰り返しながらプログラミングを学習しエンジニアになったり、実務未経験の人たちを指導した経験から考えた0から最速でエンジニアになるための手法を公開します。 僕自身、プログラミング学習には2回の挫折経験があります。 ・何を勉強したらいいのか分からない ・勉強してることが理解できない ・この方法、教材で本当にいいのか分からない こんな状態を何度も繰り返し、挫折しては自己嫌悪に陥る日々からの
howto-tech-docs.md 技術文書の書き方 このメモは、私(@ymmt2005)が長年にわたってソフトウェアプロダクト開発に関わってきて 2022年現在こうしたほうが良いと考えているベストプラクティスです。 科学的な分析等に基づくわけではない経験則であるため、今後も随時見直すことがありますし、 ここに書いてあることが常に正しいわけでもあらゆるソフトウェア開発に適するわけでもありません。 しかしながら、実務経験が豊富で、モダンな技術スタックに明るいエンジニアの経験則は一定の 役に立つのではないかと考えて記します。 技術文書とは ここでは、ソフトウェア開発で技術者が書くべき文書ということにします。 ソフトウェアエンジニアにも役割がいろいろあり、アーキテクトと independent contributor では書く文書が違うということはあるでしょうけれど、ここではごっちゃにします。
優れたプログラマーは、金銭的な報酬や人々から賞賛を浴びる目的でコードを書くのではない。単純にプログラミングを楽しむためにコードを書くんだ。 リーナス・トーバルズ(Linuxカーネル開発者) コーリー・アルソフ氏の『独学プログラマー Python言語の基本から仕事のやり方まで』(清水川貴之氏、新木雅也氏による邦訳は2018年発行)を読んだので、本のタイトルの通り独学でプログラマーを目指している方や、新人エンジニアの方に一読をお薦めできると感じたので紹介します。 かく言う私もソフトウェアエンジニアリングを独学し、肩書きとしてエンジニアの職を得て2年目の身。 『独学プログラマー』を読んで初心に返り、至らぬ点を内省できました。 (エンジニアとして就業できてからも独学は続くので、経験を重ねてからでもこの本を読む価値はあると思います!) 本書の対象となる方 プロのプログラマーになる際に必要な知識や技術
はじめに gcc v12.1において、C++の正規表現ライブラリstd::regexに、正規表現のバリデーションを改善するパッチ(以下"改善パッチ"と表記)が取り込まれました。改善パッチによって、これまではバリデーションにひっかからなかった不正な正規表現文字列が"正しく"不正なものと認識されて例外が発生するようになりました。 これだけ聞けばいいことだけのように思えるかもしれませんが、実はそうでもなかったりします。経験豊富なかたであれば見た瞬間ゾッとしたかもしれません。本記事では、この一見問題なさそうな改善パッチによって発生しうる問題、および、その具体的例について紹介するとともに、この手のパッチを当てるかどうかは難しい判断になるという知見を共有します。 結論 改善パッチによって発生する問題 発生条件 gcc v12.1以降、あるいは改善パッチをバックポートされた任意のバージョンを使ってC++
Pythonが流行っているけれど、どうも便利になってない。 自分はプログラマーではないので、スキルが足りてないだけなのかもしれないけれど・・・。 例えば動画を編集していてDaVinciと他のソフトを連携したいなと思っても、そういうのはググっても出てこない。 Photoshopのプラグインとして機械学習を使ったものを入れたいと思っても、ググっても出てこない。 Pythonからエクセルを動かすのは、試してみたが、VBAマクロの方が楽に感じる。操作を記録する機能はあるし、そこから不要部分削ったりすればよく、 Pythonでエクセル動かそうとすると読みにくいし何やってるか結局わからない。 プログラマーの人はエクセルなどを嫌うけれど、matplotlibを細かい調整しようとすると調べて描画し直してを繰り返さないとならず、 GUIでポチポチ調整する方が楽に感じてしまう。 個人でGUIを作るとして、ボタ
「俺の考えた理想のゲームを世に問いたい!」 インディーゲーム開発者の話を聞いていると、大抵は作りたいゲームがあって、業界に身を投じている。 しかし、「プログラムで物を作るのが楽しいから、ゲームを作ってみるか」と、理想のゲーム像がないところから業界に入り、5年で Nintendo Switch で3作もゲームを出すに至った珍しい開発者がいる。 2021年6月24日に『レイジングブラスターズ』を Nintendo Switch 向けにリリースした Terarin さんだ。 今回、新作発売記念でゲーム開発を始めたきっかけから、Nintendo Switch でゲームを出すまで、世にも奇妙な経緯を聞けたので、皆さんにお届けする。 正直、インタビューを通じてこんなに「独特だな」と思えた人は私の経験からしても少ない。 ゲーキャス: Terarin さんは、初めてゲームを出してから5年で Nintend
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く