【GAS:コード】西暦を和暦に変換する関数の作成
基本的には以下サイトをがっつり参考にさせて頂きましたが、
和暦1年を「元年」とするところや、明治より過去を別表記にするなどを少し工夫しました
Google Apps Scriptで西暦を和暦変換するスプレッドシート関数を作る
以下コードです
※GASのシンタックスハイライトが無いのでjavascriptのを使ってます。
//西暦を和暦に変換する関数の作成 function WAREKI(n){ var result; var m = n - 2018; var o = n - 1988; var p = n - 1925; var q = n - 1911; var r = n - 1867; var g = "元"; if(m == 1){ m = g; } if(o == 1){ o = g; } if(p == 1){ p = g; } if(q == 1){ q = g; } if(r == 1){ r = g; } if(n>=2019){ result ="令和"+ m +"年"; }else if(n>=1989){ result ="平成"+ o +"年"; }else if(n>=1926){ result ="昭和"+ p +"年"; }else if(n>=1912){ result ="大正"+ q +"年"; }else if(n>=1868){ result ="明治"+ r +"年"; }else if(n!=false){ result = "はるかなる過去じゃ" } return result;
【GAS:抱負】非エンジニアなのでGoogle App Scriptを勉強してみる
なぜやるのか
環境構築がめちゃ簡単で無料で便利なこと出来るから
お久しぶりです。かにへーです。
パソコンのお勉強サボって魚食ってました。
https://postd.cc/warning-your-programming-career-2/
この記事読んで、あーこりゃ耳が痛い。となりました。
C言語ちょっとやってみたものの投げ出し、pythonとSQLの本買ってみては読破せず途中で投げ出し、そんな中でエンジニアに、
「なんの言語やれば良いかな?」
とか聞いたりしてたわー。
非エンジニアだと学ぶ必然性は無いから迷子になっちゃうんすよね(言い訳)
そんな中、会社でGASについてすこし学ぶ機会がありまして、それをきっかけにGASって環境構築簡単だし、VBA少しやったことあったり、Googleサービス使いまくりな自分にとって相性良いなと思って勉強はじめました。
GASとは何か
Google App Scriptの略で、Java ScriptをベースにしてGoogle先生の中の人が作った言語
Gmail、Google カレンダー、Google スプレッドシート、Google ドキュメントなどなど…
Googleが提供するサービスを他サービスと連携させたりなど一歩踏み込んだ使い方ができます
自分が特にいけてると思ったのは、
「Googleスプレッドシートを簡易クラウドデータベースにしていろんなこと出来ること」
魚に関する情報などのデータ集めが大好きで、Evernoteに整理してInstagramに投稿してるんですが、
・この情報をスプレッドシートに整理して面白いこと出来ないかな〜
・水産業に必要なのは漁獲した直後の情報が消費者に効果的に伝わることだよな〜
とか思ってたので、データベース管理と活用法とかを少しずつ勉強したかったんですよね。
スプレッドシートはまさにそれがめちゃやりやすいと思ったわけです
何をつくるか
とりあえずもう勉強始めててコードもほぼ出来てるんですが、スプレッドシートにデータを記入してクイズを決まった時間に通知してくれるBotみたいのを作りたいと思ってます。
どうやって勉強するか
超シンプル
めちゃ良さそうなサイト見つけたんで、それを毎日コード書きながら少しずつ読み進めていきます
https://tonari-it.com/google-apps-script-manual/
どうやら日本のGAS界隈ではよく名前を目にするらしい「タカハシノリアキさん」という方が作られたサイトのようです
クイズが終わったら、
・Googleカレンダーの予定を一発で登録する
・LINEに来たメッセージをGAS使ってSlackへ通知する
とかやりたいな〜
自分が水産流通には関わるということで、業務改善系がメインになりそうです
(だからGASはコスパ的に相性良いのかも)
【C:コード】5個の正の整数を入力すると、3の倍数でアホと評価される
なぜ書いたか
C言語入門書を1冊読むと、どの程度のコードが書けるかを伝えたくて頑張りました!
実力が無いくせに、PCをただの計算機ではなく、人のように振る舞わせたい…
その想いで文字列を返してみました。
最初は日本語で「アホ!」「素敵!」「かっこいい!」などと言わせたかったんです
ただ、
読んだ入門書には文字列のことは一切書かれてなく、調べたら結構複雑だったので挫折。
他のプログラミング言語のことは知りませんが、文字列のバイト量まで考えなきゃいけないなんて…
結局妥協してローマ字の「aho」になってます。
他にも妥協点あるのでahoほど暇な方は探してみてください。
//5個の正の整数を入力すると、3の倍数でアホと評価されるコード #include <stdio.h> #define N 5 int main(void){ int x[N], i, j = 0; char y[20]; for(i=0; i<N; i++){ scanf("%d", &x[i]); } for(i=0; i<N; i++){ j = i*5; if(x[i]%3==0){ y[j]='a'; y[j+1]='h'; y[j+2]='o'; y[j+3]='!'; y[j+4]=' '; }else{ y[j]='n'; y[j+1]='i'; y[j+2]='c'; y[j+3]='e'; y[j+4]=' '; } } printf("入力:"); for(i=0; i<N; i++){ printf("%d ",x[i]); } printf("\n評価:"); for(i=0; i<=20; i=i+5){ printf("%c%c%c%c%c",y[i],y[i+1],y[i+2],y[i+3],y[i+4]); } printf("\n"); return 0; }
【本】教える・学ぶC言語入門/牛田啓太
こちらです
2019年3月から読み始めて今日(5月4日)読み終わりました
なぜ読んだか
1.基本情報技術者試験対策として
まず、なぜC言語を勉強する気持ちになったのか。
午後試験で以下5つから言語を選択する必要がありました。
*2020年春季からPythonが追加されるらしいっす
非エンジニアは表計算を選ぶことが多いらしいですが、僕は試験はあくまで基礎知識習得のためのモチベーション維持で、目指すはコーディングが出来るようになることだったので、試験を機に言語の勉強をしてみたかったんです。
中でも「C言語」は、
・情報系の高校や大学で学ぶ人が多いこと
・WindowsのOSのベース、家電にも使われたりすること
などを知り、基礎が身に付くようなふわっとした気持ちで勉強を開始しました。
2.近所の図書館に置いてあったから
この本を手に取った動機はただ「図書館に置いてあったから」です。
図書館は「できるWindows10」などのあまりにかしこまった初級レベルのものか、古い技術書が多いので今後は全く使わない予定です。
ただ、この本と出会えてよかったです。
・ パラパラめくって課題が章ごとにあり、解答と解説がしっかり書かれていたこと
・群馬工業高専の助教の方が書いたもので、実際高校の教科書としてわかりやすそうなこと
を認識したうえで読み進み始めました
何が身についたか?
超基本的なC言語の作法など、以下が身についたと思います
・超基本的なコーディング、関数の使い方
・超基本的なアルゴリズム(探索、整列)
・配列とは何か
それと今後も学び続ける上で大事な、
「1冊言語の技術書を読み切ったぞ〜〜!」
という達成感とささやかな自信を得ました
物足りないこと
ただ結局何が出来るようになったの?
というと超微妙です
たぶん仕事でC言語を活用はしないし出来ないとは思います
また、勉強していることを社内のSEに伝えたところ、
「GAS(Google Apps Script)の方が実務に役立つと思う。」
と言われてしまい、途中読破を諦めかけた時もありました
ただ結果としては上記達成感も得られたので読み切ってよかったです
余談
ちなみに課題を解くにあたってのプログラミング環境としては、
PC:Mac
で行いました。
Xcodeの使い方も全然よくはわかってないので、今後言語を学びながら知っていきたいと思います。
以上です。
時代遅れのC言語本の感想文ですが、誰かの参考になれば幸いです。
【試験】基本情報技術者試験受けてきました
31年春季試験受けてきました
当日の動きを振り返ろうと思います
日程:31年4月21日(日)
場所:明治学院大学白金台キャンパス
桜の木はすっかり青々しい頃合い
季節の変わり目で服装が難しく、パーカーにコートを羽織って行ったのですが、自宅から試験場に着くまでには結構汗ばんでしまいました
朝ごはんは、試験場近くのローソンでサンドイッチとカフェオレを購入
9時頃と試験の受付直前のため人が多くいて店内の飲食スペースは座れませんでした
コンビニ近く、大学入口のすぐ脇に座れるところがあったので、そこで食べてから会場へ向かいました
午前試験:9時半〜12時
11時15分くらいに解き終わりました
自己採点では64/80問正解だったので、恐らく午前は問題なく受かっていると思います
こちらのサイト(https://www.fe-siken.com/)の過去問道場でシコシコ過去問を解いていた効果がすごく出たような気がします
〜〜お昼ご飯〜〜
また大学入り口付近のローソンに行きました
おにぎり1個、コロッケを朝食と同じ場所で食べました。
そこでスマホを使って悪あがきの勉強もしようとしたのですが、眩しすぎて画面が見辛く、結局大学構内の教室脇の日陰になったところで勉強しました
1週間前まではC言語を選択しようと考えてましたが、結局基本的な参考書を1冊終わらすことも、充分なコーディングも積み重ねませんでした
そのため、この昼休み中は勉強しきれなかった後悔と自信のなさが膨らみ、午後は昔VBAも少しかじったし、非プログラマーがよく選択するという表計算にしようと考えてました
試験前最後の勉強としては、午後試験の過去問をデータベースなど2−3問だけ解きました
午後試験:13時〜15時半
問1→8→3→9→2→6→4の順番で解きました
事前に時間が不足することを知っていたので、まずは効率よく進めるために1→8と必修から解き始めました
次に表計算をやろうとしましたが、文章が多くやたら時間がかかりそうだと見えてしまい、結局C言語にチャレンジ!
50%くらいしか正直理解できずに問題を解きました
その後は直前に勉強したデータベースを選択、あとは問題文をパッと見て理解しやすいものを解いていきました
1問20分ペースと問6までかなり順調でした
問6のdで急ブレーキ・・・
工数や生産性をどう計算したら良いか、スケジュールが途中まで進んでいる状況をどう判断したら良いか・・・など頭がごっちゃになってしまったのです
結局、腑に落ちないまま6のdからhまで40分くらい使ってしまい
残す時間は20分弱・・・
あと1問どれを選ぶべきか悩む時間も惜しい中、満点は無理だけど3問くらいは出来そうという判断で問4を選択
設問3は向かい合う時間と余裕を持てずにあてずっぽうになるも、予定通りそこまで解いてはいけました
結果、
午後の自己採点結果は66.3/100
もしかしたら受かっているかもしれない結果ですが、試験を目指す時に身につけたかったコーディングスキルやアルゴリズムへの理解には満たないので試験結果にとらわれず引き続き精進していきたいと思います
<Next Action>
・教える学ぶC言語入門/牛田啓太を読破する
・仕事でもすこーし使ってるSQLを理解するためSQLの本を読破する
wordpressで素敵なHPを作るためにphpや、phythonで遊んだりもしたいのですが、自分は普段の仕事もかなり大事なのと、データベースへの知見は今後の水産業界で重視されそうという直感でSQLの優先度をあげました
<参考資料>
基本情報技術者試験ドットコム
このサイトの過去問道場には非常にお世話になりました
2月から使い始めて以下までやったところで試験を受けました
ここまでやっときゃ午前試験は8割取れるかもという参考にしてください
【本】キタミ式平成28年度基本情報技術者検定
かにへーのパソコン勉強第一歩はこの参考書から。
その名の通り、平成28年度、すなわち2016年に購入し少しめくって塩漬けしていた参考書です。
いつかは読み通すんだ…という想いで持ち続けてました。
今年1月に再び本を開き、試験がある4月までには終わらせられるか。と分厚さに怯えながら進めること数週間。
最初の1−2章は「進数」の話なので計算や、慣れないことに頭を使うことが多く苦労しましたが、あとはPC内部の構造など暗記系が多く、この本は驚くほど絵柄を用いながらシンプルに記載しているのでサクサク読み進められました。
おかげで2月で無事読了。
ただ、肝心な基本情報技術者検定対策としては、これだけでは微妙と言わざるを得ません。
プログラミングの腕(作りたいものへのコーディングの速さと定義する)もこの本を読んだだけじゃ全くつかないですね。
同じ参考書を2週して地力をつけようと思ってましたがやめました。
ただ読まない方が良かったという訳ではなく、幅広く簡易に整理されているので少し踏ん張るだけで読み進めれて達成感を得られたので、勉強の第一歩としてこれを選んで良かったなとは思いました。
スポーツの前のストレッチみたいな感じ。
次は、もう少しストイックに知識をつけたいので、過去問を解いていって自分の弱点を把握したいと思います。
以下のサイトが便利な様子。
スポーツが上手くなるための筋トレみたいなもんですね。
同時にコードを書きたいのでやりたいスポーツ考えます。
Wordpress絡みでhtml5やCCS、phpありかな…と思いましたが、仕事絡みでSQLから手を付けるのもありかなと思い始めました。