プログラミング素人のはてなブログ

プログラミングも電気回路も専門外の技術屋の末端が勉強したことや作品をアウトプットするブログ。コードに間違いなど見つけられたら、気軽にコメントください。 C#、Python3、ラズパイなど。

どれぐらいできるようになったらプログラミングが出来ると言えるか?

どれぐらい勉強したらプログラミング出来るのか?と言い換えることができるかもしれません。
私は現在仕事でもC#VBAPythonを書いています。
では、これがどのくらいのレベル感かというと、
・AtCorderではABCの200点はだいたい解ける
・300点は2/3ぐらい解ける
・DFSは書けるけどDPはバグる
といった感じになります。

新しい機能を作るにはググってこのあたりの関数(フレームワーク、モジュール)を使えばいいことは分かっても、実際には引数にいれるオブジェクトを変更しようとすると上手くいかなかったりすることもあります。
コピペは動くけどその先が時間がかかる、ということもあります。
1日以上試行錯誤することもあります。

出来るようになったら、出来たものはgitに残しておくので次に使うときは少なくともgitを見直すことで出来るようにはしてあります 。
2回以上、見直したら(覚えてなかったり、直感的にわからないもの)blog記事を起こすようにしています。
粒度の小さい記事はこのようにして生成されたものです。
このとき記事の作成においては再現性を心がけています。

仕事においてはいつも1日以上何から何までググっていては進捗が悪すぎますが、そうなりそうなときは「時間がかかりそうです」または「今の知識では無理です」とギブアップするようにします。
使ったことの無い分野の技術でもドキュメントを見ればそこそこ出来る、というのは理想だけど、「C#でサーバーを建てて」と言われたら難しいです。

それでも、仕事としてやっていけているのは他の分野(材料系)の技術が本業で、そこにソフトウェアを組み合わせているからだと思っています。

Findyとか興味本位で登録してみてもソフトウェアエンジニアとしては評価は低いです。
材料の秘術があることでソフトウェアとの二次元の技術分野を生み出して、この分野で優位性を発揮できているのだと思います。

何となく思ったことを書いてみました。