ブログ

  • 挫折させないプログラミングロードマップ2024

    挫折させないプログラミングロードマップ2024

    プログラミングの独学は、挫折率が90%以上とも言われています。私自身も、今でこそ脱サラして自由な働き方をしていますが、病院に勤めながら独学していた時には何度も挫折を経験しました。

    多くの人がプログラミングを学び始めますが、途中で挫折してしまう原因はいくつかあります。

    この記事では、私の経験と、PCスクール講師としての知見を基に、挫折しやすい人の傾向を分析し、プログラミング学習で成功するための具体的なロードマップを提供します。時代の変化が激しい今だからこそ、この記事を読んで少しでも挫折しにくい状況で学習を進めてください。

    この記事を読んでわかること

    • 盲点?挫折しやすい原因
    • 挫折しないプログラミング学習の考え方
    • 挫折しない具体的なロードマップ

    それでは、いってみましょう!


    1. 挫折しやすい原因:なぜプログラミング学習で挫折するのか?

    1.1 初期の壁:タイピングのスキル不足

    プログラミングを始めたばかりの人が直面する最大の障壁は、実はタイピングスキルの不足です。コードを書くためにはキーボードでの入力が不可欠ですが、タイピングに時間がかかりすぎると、学習の進行が遅くなり、挫折しやすくなります。特に、ブラインドタッチができないと、毎回手元を確認しながら打ち込む必要があり、集中力が削がれてしまうこともあります。

    1.2 過度な期待と焦り

    「すぐに結果を出したい」「早くプロフェッショナルになりたい」という焦りも、挫折の原因となります。学習は時間がかかるプロセスであり、特にプログラミングは基礎をしっかり身につけることが重要です。しかし、早急な成果を求めすぎると、期待に応えられずにモチベーションが低下します。

    1.3 学習環境の整備不足

    適切な学習環境を整えていないことも、挫折の原因です。例えば、学習スペースが雑然としている、集中できる時間が確保できない、快適な椅子やデスクがないなど、物理的な環境が整っていないと、学習に集中できず、続けることが難しくなります。


    2. 挫折しないプログラミング学習の考え方

    2.1 タイピングスキルの向上が鍵

    まずは、タイピングスキルの向上を目指しましょう。ブラインドタッチを習得することで、コードを書くスピードが向上し、学習効率が格段に上がります。これは学習の初期段階で最も重要なステップであり、挫折しないための大きな要因となります。具体的には、毎日少しずつタイピングの練習を行い、徐々にキーボードを見ないで打てるようにしましょう。

    2.2 適切な目標設定とモチベーション維持

    プログラミング学習を継続するためには、現実的な目標設定が重要です。大きな目標を立てるのも良いですが、まずは小さな成功体験を積み重ねることがモチベーション維持につながります。また、学習を進める上での進捗を可視化し、達成感を得られるようにしましょう。例えば、簡単なプログラムを作成する、特定の機能を実装するなど、小さなゴールを設定して段階的に学んでいくと良いでしょう。

    2.3 学習環境の整備と時間の確保

    集中して学習できる環境を整えることも大切です。学習スペースをきちんと整え、できるだけ静かで集中できる場所を確保しましょう。また、学習の時間を確保するために、スケジュールを見直し、無理のない範囲で毎日少しずつ進めることが重要です。特に忙しい方は、短時間でも毎日続けることが成功への鍵です。


    3. 挫折しないための具体的なロードマップ

    3.1 ステップ1:タイピングスキルの習得

    まずは、ブラインドタッチの習得から始めましょう。オンラインで無料のタイピング練習ツールがたくさんありますので、それらを活用して、毎日少しずつ練習を重ねていきます。これにより、コードを書くための基礎体力が身につきます。具体的には、以下のようなツールが役立ちます。

    • e-typing: 日本語のタイピング練習に最適
    • TypingClub: 英語のタイピングスキルを磨くためのツール

    3.2 ステップ2:HTMLとCSSの基礎を学ぶ

    タイピングスキルが向上したら、次はWeb制作の基礎であるHTMLとCSSを学びましょう。これらは比較的理解しやすい言語であり、目に見える形で結果が得られるため、達成感を得やすいです。最初は簡単な静的ページを作成し、基本的なタグやスタイルシートの使い方を学びます。

    3.3 ステップ3:WordPressを使ったホームページ制作

    HTMLとCSSの基礎を習得したら、次はWordPressを使って実際にホームページを作成します。WordPressは多くの企業や個人が利用しているCMS(コンテンツ管理システム)で、プログラミング初心者でも比較的簡単にウェブサイトを構築できます。テーマのカスタマイズやプラグインの活用方法を学び、実際のサイトを作りながらスキルを磨いていきましょう。

    3.4 ステップ4:簡単なプログラミング言語を学ぶ

    最後に、JavaScriptやPHPなどの簡単なプログラミング言語を学んでいきます。これにより、よりダイナミックなウェブサイトを作成できるようになります。初めてのプログラミングに挑戦する際は、オンライン学習サイトやチュートリアルを活用して、基本的な文法やコーディングの考え方を学びます。


    まとめ

    プログラミング学習において挫折しないためには、まずはタイピングスキルを向上させ、無理のない目標設定と学習環境の整備が重要です。このロードマップに沿って学習を進めることで、少しずつスキルが向上し、挫折せずにプログラミングを続けることができます。是非、今回紹介した方法を実践し、成功への一歩を踏み出してください。

    もしこの記事が参考になったら、ぜひ私のInstagramアカウントをフォローして、さらなる学習のヒントをゲットしてくださいね。これからも一緒に頑張りましょう!

  • 業務効率化をシンプルかつスピーディにやるにはAppsheetがおすすめ

    業務効率化をシンプルかつスピーディにやるにはAppsheetがおすすめ

    世の中にはいろんな業務管理アプリがありますよね。出退勤管理、業務記録、在庫管理、顧客管理、営業管理…本当にたくさんあります。

    いろんな業務を一括で、かつオンラインで管理出来ればきっと仕事が楽になるよなぁ。一般的に業務管理のアプリケーションを作るとなると、専門的な知識のもと、数か月単位で構築していく必要があります。

    個人で頑張るには知識とスキルが必要だし、業者に頼むと大きな資金が必要だし…なかなか『システム導入』に対するハードルは高いでしょう。でも実はシンプルでもっと簡単にシステム導入できる方法があります。

    それが今回紹介する『Appsheet』というものになります。AppsheetはGoogleから出されているアプリケーションの作成ツールになります。もっとも大きな利点は、プログラミングのスキルがなくてもそれなりのツールが作れることです。具体的にはスプレッドシートがひらけて、文字を入力できれば開発ができるようになります。

    Appsheetとは?

    Appsheetの基本概要

    Appsheetは、Googleが提供するノーコード(プログラミング不要)アプリケーション開発ツールです。このツールを使用することで、ユーザーは複雑なコードを書くことなく、スプレッドシートやデータベースを基にしたカスタムアプリケーションを作成できます。これは特に、中小企業や個人事業主にとって大変便利です。コストを抑えつつ、迅速に業務管理ツールを導入できる点が魅力です。

    なぜAppsheetを使うべきか?

    Appsheetの最大の特徴は、誰でも簡単に使える点にあります。プログラミング知識がなくても、スプレッドシートを活用してアプリケーションを作成できます。さらに、クラウドベースのツールであるため、どこからでもアクセス可能で、リアルタイムでデータを共有することができます。これにより、リモートワークや多拠点での業務管理もスムーズに行えるようになります。

    Appsheetの使い方

    スプレッドシートからのアプリ作成

    Appsheetを使ってアプリを作成するためには、まずスプレッドシートを用意する必要があります。このスプレッドシートがアプリのデータベースとなり、各列がアプリ内のフィールドに対応します。例えば、顧客管理アプリを作成する場合、顧客名、連絡先、購入履歴などを列として設定します。次に、Appsheetにスプレッドシートをインポートし、アプリの見た目や機能をカスタマイズしていきます。

    直感的なインターフェース

    Appsheetの操作画面は非常に直感的で、ドラッグアンドドロップで項目を配置することができます。フォームやテーブル、グラフなど、さまざまなウィジェットを簡単に追加・編集できます。また、リアルタイムプレビュー機能があるため、変更を即座に確認できる点も便利です。

    Appsheetの活用事例

    出退勤管理

    Appsheetを使えば、出退勤管理アプリを簡単に作成できます。従業員がスマートフォンやタブレットから出退勤時間を入力し、管理者がリアルタイムでデータを確認・集計することができます。これにより、紙ベースのタイムカードやエクセル管理から解放され、効率的な労務管理が可能になります。

    在庫管理

    在庫管理もAppsheetで効率化できます。各商品の在庫数、入出庫履歴、発注情報などを一元管理し、在庫切れや過剰在庫の防止に役立ちます。また、バーコードスキャナー機能を追加することで、さらに便利に在庫管理を行うことができます。

    顧客管理

    顧客情報の管理もAppsheetで簡単に行えます。顧客の基本情報、購入履歴、問い合わせ履歴などを一元管理し、営業活動の効率化や顧客対応の質向上に貢献します。さらに、メール通知機能を追加すれば、顧客へのフォローアップも自動化できます。

    Appsheetのメリット

    低コストで導入可能

    Appsheetの大きなメリットは、低コストで導入できる点です。一般的な業務管理システムを導入する場合、開発費用やライセンス費用が高額になることが多いですが、Appsheetならば月額のサブスクリプション料金のみで利用できます。これにより、中小企業や個人事業主でも気軽に利用できます。

    カスタマイズ性が高い

    Appsheetは非常にカスタマイズ性が高く、各業務に合わせたアプリケーションを作成することができます。テンプレートも豊富に用意されており、それらを基に自分好みにカスタマイズすることができます。さらに、スクリプトを使用すれば、より高度なカスタマイズも可能です。

    リアルタイムでのデータ共有

    Appsheetはクラウドベースのツールであるため、データは常に最新の状態で共有されます。これにより、複数のメンバーが同時にアクセスしてもデータの整合性が保たれ、リアルタイムでの情報共有が可能です。また、デバイスを問わず利用できるため、場所を選ばずに業務を行うことができます。

    まとめ

    Appsheetを使えば、業務管理アプリケーションの導入が非常に簡単かつ迅速に行えます。プログラミングの知識がなくても、スプレッドシートさえ使えれば、直感的な操作でカスタムアプリケーションを作成できます。出退勤管理、在庫管理、顧客管理など、さまざまな業務に対応したアプリを低コストで導入できる点も魅力です。リアルタイムでのデータ共有や高いカスタマイズ性も備えており、業務効率化に大いに役立つでしょう。ぜひ、Appsheetを活用して、シンプルかつスピーディな業務効率化を実現してみてください。

    あなたも、Appsheetで作成したアプリケーションに興味を持たれた場合は、お気軽にお問い合わせください。お手伝いできることがあれば幸いです。

  • Appsheetの活用

    Appsheetの活用

    今月は自分の商品を作成していくことと、既存の商品をアフィリエイトしていくこととして情報発信をしていこと考えています。

    自分の商品は大きく2つ。一つは講座として自分の経験を誰かに伝えていくこと。

    そしてもう一つがタイトルにあるような、Appsheetの活用です。

    Appsheetはノーコードでアプリが作れるという優れものでして、どんなものが作れるかというと、勤怠管理アプリだとか顧客管理アプリだとか、有料のものにアップグレードすればOCR(画像認識)の機能なんかを使ってアプリを作ることができるようになります。

    Googleのスプレッドシートはよく活用していて、既存のプログラミング言語でサイトを構築して、データベースとしてスプレッドシートを利用することは経験あるのですが、Appsheet…というかノーコード開発については結構懐疑的な方でした。

    でもやってみてびっくり。めっちゃ簡単じゃん。

    これやらないてはないよね。

    ってな感じで、どんなものが作れるのか色々チャレンジ中なわけであります。

    自分で作成しているものとしては、勤怠管理アプリ、患者管理アプリ(予実管理を目指している)、家計簿アプリがあって
    他にも親子向けのお手伝い管理アプリなんかも簡単に作れそう。

    ノーコード開発は懐疑的でしたが、その理由としては細かなカスタマイズができないから。結局似たり寄ったりになるんでしょ?という思いが強くて手を出していませんでした。

    でもものは考えようで、細かなカスタマイズができないからこそ、機能の方に注力できるようになったりするわけですね。そして細かなカスタマイズができない分、制約があるからこそ頭を絞って焦点を見つけながら開発していくことができるのも良さだなぁと思いました。

    これまでweb制作もWordPressでオリジナルテーマで作らなきゃ!って思っていたのですが、これからはWixやStudioなどローコード・ノーコード開発についても積極的に触れていこうと思いました。

  • 情報発信をしていくことで思考の整理をする

    情報発信をしていくことで思考の整理をする

    長らくブログの記事執筆から離れていたのですが、色々と思うところがあり情報の発信というかブログの記事作成をどんどんしていこうと思いました。

    目的は大きく3つです。

    まずはこのブログサイトをたくさん利用して自分という人間像を言語化するのに役立てたいという思いが一つ。

    そして言語化していく中で自分の事業成長のための記録になればいいなという思いも一つ。

    さらに今取り組んでいるデザインとか、プログラミングとかについての記録になればというのが最後の一つ。

    大体2000文字〜3000文字くらいの分量で自分の考えをまとめていく、そしてそこに価値をつけて読んでくれる方が有益と思ってもらえるようにすることが目標。

    このブログはWordPressで作成しているけど、もう一つの情報発信はAstroとVercelを使ってやっていこうと計画中。
    これは特に自分の講座を販売したり、何かをアフィリエイトしていくために最も効率的で作りやすいのが現時点でAstroを利用したものだと考えたので採用。

    世の中のシェアとしてはWordPressだし、CMSという意味では扱いやすいのだけど、やっぱり脆弱性があって何度か(何度も)エラーになっていたりするので、リスクヘッジという意味でも別のものにしたいなぁと。

    あとはXで発信しようとすると140文字までしか(課金してないと)文章が打てなくて、Threadsだともう少し打てるけど何か自分の資産的な意味合いは少ないような気がしてやっぱりブログとして何か残していくのがいいなと思っているわけです。

    あとは、今後の自分の人生を考えた時に、本当に場所と時間にとらわれずお金の心配を取り除いていくためにはブログというのが大きな武器になり得るのではないかと思って。

    だって寝てる間も、旅行してる間も仕事してくれて、それでいてクライアントワークが必要なものでもないからね。

    そういう意味でブログと情報発信と始めていこうと思ったのでした。

    Astro側はGAの連携とかサーチコンソールとか色々チャレンジしたいと思います。うまくいかなかったらWordPressで作り直しも視野に入れてます。

    まずはカタカタしっかり自分の意見を言語化する、これを達成すべく頑張っていきたいと思います。

  • エルステップを使わない公式LINEの構築

    エルステップを使わない公式LINEの構築

    LINEを使ったマーケティングを考えた時、公式LINE単体だと機能がちょっと物足りないように思います。

    かといって外部のサービスを導入するにも費用的な問題もあるし、ランニングコストがかかるのもなぁなんて方も多いはず。

    そんなこんなで自分で実装してしまおうと思いまして、技術鍛錬として作ることにしました。

    今回使用している技術スタックとしては

    • HTML/CSS
    • Google apps script
    • React
    • Astro
    • Firebase
    • Supabase
    • Google spreadsheet

    1:LINEログイン機能の実装

    用途:GoogleログインやGithubログインと同列にLINEでもログインができるようにする

    メリット:自社サービスに置いて、会員・非会員でのコンテンツを分けたいなどの時にユーザーにとっての選択肢が広がる

    https://line-astro-supabase.vercel.app/
    サンプル

    LINEログインとLIFFログインの違いについてはこちらのポストの通り

    2:リッチメニューのカスタマイズ

    公式LINEのデフォルト機能では、リッチメニューの複雑なカスタマイズができません。たとえばタブを使って表示させるメニューを変えるなどする時には専門的な知識が必要になります。

    用途:リッチメニューをタブグループに分けて表示させる

    メリット:表示させたい項目が多い時でも好きに表示させることができる・他社と差別化が図れる

    3:LINEミニアプリで予約機能の実装

    用途:カレンダー機能を作成して日・時間単位での予約をLINEで完結できるようにする

    メリット:上記の通り

    4:LINEpayを使って決済機能の実装

    5:ステップ配信機能の構築

    これは技術鍛錬というよりは、実際にどんな考えで、どんなメッセージを作っていくのかということをまとめています。

    今回は、オンラインでのコーチングサービスを販売していきたいコーチ業の方を想定したものになります。

    6:データベース機能の実装

    7:アカウントフォロー時のアンケート

    用途:新規ユーザーに対して好みを確認し、今後のターゲティングに活用する

    メリット:フォロー時のイベントに設定することでこちらからアクション起こさずともユーザー情報の取得が可能

    以下のLINE友達追加ボタンからサンプルのアカウントを追加するとアンケートの雰囲気を確認することができます。

    友だち追加
  • 令和5年度(2023年度)札幌市の就学援助でスキー支給

    令和5年度(2023年度)札幌市の就学援助でスキー支給

    札幌市で行なっている就学援助。
    学年共通のもの、特定の学年に適応となるものと援助がありますが、小学1年生はスキーを支給してもらえます。

    大体10月頃に引換券が通っている学校から渡されて、用紙に書いている期間に受け取りに行けばOK。

    この用紙を学校からいただくときには『ハンコ』が必要になるので要注意!我が家はすっかり忘れていて二度手間でした。

    用紙はこんな感じ。札幌市内で引き取りができるのは3箇所です。
    私たちはスポーツデポ宮の沢店に今回いきました。

    実際に店舗へ行った時期

    引き換え期間は11月1日から可能でしたが、私たちは12月の下旬、年の瀬になってからいきました。
    というのも、子供がスキーしたい!と言い出して引換券はあるけどもしかしたらビンディング調整などで当日受け取りできないかも?!と懸念して焦って行ったのでした。

    結論としては30分ほど待つことで受け取れました。が、この辺はいく時期や時間帯によっても変わってくるので、使いたい日付が決まっている(スキー教室など)の場合には余裕を持って取りに行くのがいいですね。

    そして店舗は可能なら車で行ったほうがいいなぁと思いました。スキーとストックはケースに入れてもらって持てますがスキー靴も合わせて持って帰ることになりますからね。

    引き換えの手順①:引換券を見せて受付書にサイン

    保護者の名前以外に、子供の身長や体重、スキーの習熟度合いを書くところがありました。

    後に聞くと、ビンディング調整の時に靴をどの程度外れにくくするかといった判断のために必要なんだとか。

    あまり慣れていないとすぐ転ぶので、板が外れにくいと怪我にも繋がりやすいそうです。

    引き換えの手順②:スキー靴を選ぶ

    まず案内されたのはスキー靴のコーナー。

    もちろん他にもたくさんあるのですが、引き換え対象の靴は上記写真のような3種類。手前からグリーン・ピンク・ブルーでした。

    サイズは結構種類があったのでなくて困るという感じではなかったです。

    ちなみに靴のサイズが分からなくても大丈夫。普段履いている靴のサイズから、『スキー靴ならこのくらい』とアドバイスをいただきながら実際に履いて確かめることができました。

    費用的には約7000円の靴を支給してもらいました。

    引き換えの手順③:スキー板を選ぶ

    板も引き換え対象として用意されていたのは3種類。こちらも手前からピンク・グレー・ブラックといった感じで用意されていて、うちは真ん中にあるグレーっぽいのを選択。

    スキー板の長さは目線あたりに板の先端が来るのがちょうどいいらしく、大きすぎるよりはやや小さいほうが操作しやすいということでアドバイスをもらいながらこちらもチョイス。

    板の価格は14000円ほどでした。

    引き換えの手順④:ストックを選ぶ

    ストックも3種類。手前からピンク・ブラック・ホワイトな感じでした。

    ストックの長さは、逆さまに持ってついた時に肘が直角より少し曲がった状態になっているのが理想的な長さとのこと。

    我が家はブラックを選びました。

    費用は2500円。

    引き換えの手順⑤:スキーケースを選ぶ

    さて今度はケースです。こちらも例に漏れず3種類。レッド・ブルー・イエローという感じでした。

    こちらはスキーとストックが入れば問題ないので色の好みを確認しながらチョイス。

    最終的に、店員さんが板とストックのしまい方を実演してくれたので子供もうなずきながら見て学んでました。

    費用は2000円ほど。

    引き換えの手順⑥:手袋を選ぶ

    手袋はこれまでと違って結構種類がありました。加えてサイズも身長に応じて10cm刻みで用意されていました。

    店員さんも、『選ぶの時間かかるかもしれないから他にできる手続きだけやってきちゃいますねー』と言ってくれて
    ゆっくり選ぶことができました。

    子供はブルーっぽいのをチョイス。120cmだと小さい、140cmだと大きくて、130cmをはめてみてしっくりきたようでした。

    費用は1800円ほど。

    引き換えの手順⑦:会計と調整(その日に受け取る場合)

    会計といっても選んだものを持って、会計窓口に行くだけ。実費負担なく済ませることができました。

    そして我が家はその日のうちに持って帰りたかったので調整できるか確認すると、30分ほどの待ち時間だということで店内を見て回って時間を潰しました。普段見ないスポーツ用品とかあって退屈せずに済みました(^^)

    受け取る際に、先ほど書いたようなビンディングの数値の話とか、ケースへのしまい方を教えてもらって無事完了!!
    という形でした!

    まとめ

    こんな感じで思っていたよりもスムーズに引き換えることができ、子供もその日のうちか翌日くらいには試し乗りすることができました!

    帽子やゴーグル、ウェアは支給対象外なのでそこには注意が必要です!

    今回支給対象となった一式で合計27300円分でした!いやはやほんとありがたい限りです。

    他の店舗に行けばもっと種類があるとかもしかしたらあったのかもしれないけど、今回のは十分満足でした!

    ありがとう札幌市!

  • GmailをLINEに転送するツールを作りました【GAS✖️LINE】

    GmailをLINEに転送するツールを作りました【GAS✖️LINE】

    https://ticket.tsuku2.jp/events-detail/08522108253920

    個人・会社問わず、物販をやっている方にはぴったりなツールを作ってみました!

    入金・購入通知など特定のメールをGmailで管理している場合、わざわざそのメールを探しにいくのって面倒ですよね?

    そういった時に、「定期的に」「自動で」通知を送ってくれるツールになります。

    設定は簡単ですし、オンライン通話しながら設定していきます(特に問題なければ30分程度で終わります)

    興味ある方は下の商品ページよりお買い求めください。

    https://ticket.tsuku2.jp/events-detail/08522108253920
  • 【GAS✖️Spreadsheet】業務の可視化に簡易打刻システムを作成

    【GAS✖️Spreadsheet】業務の可視化に簡易打刻システムを作成

    世の中に業務時間とか稼動時間を記録するアプリってたくさんあるけど、スプレッドシートで自分なりに作れたらいいなぁと思っていました。

    自分の場合は、朝・日中・夜みたいな感じで1日に複数時間に分けて稼動することがあるので、そういった部分で記録をとれたらなぁと。

    こういうのって探して見つかることも多いけど、微妙にスプレッドシートのフォーマットがずれて修正したら今度はプログラムがエラーってこともあるので自作しました。

    サンプル動画

    コード

    const File = SpreadsheetApp.getActiveSpreadsheet();
    const ss = File.getActiveSheet();
    
    function WorkStart(){
        // B列(朝業務開始)の最終行を取得
        var lastRow = ss.getRange("b4").getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow();
        
        // 現在時刻を取得
        var now = new Date();
        now = Utilities.formatDate(now, "Asia/Tokyo", "HH:mm:ss");
        console.log(now);
    
        // 現在時刻を本日分のところにセット
        ss.getRange(lastRow+1,2).setValue(now);
    }
    
    function WorkStop(){
        var lastRow = ss.getRange("b4").getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow();
        var col = ss.getRange(lastRow,1).getNextDataCell(SpreadsheetApp.Direction.NEXT).getColumn();
        
        // 現在時刻を取得
        var now = new Date();
        now = Utilities.formatDate(now, "Asia/Tokyo", "HH:mm:ss");
        // console.log(now);
    
        // 現在時刻を本日分のところにセット
        ss.getRange(lastRow,col+1).setValue(now);
    }

    あとはこれをカスタムメニュー作って入れればバッチリ!!

  • WordPressでマニュアル閲覧サイトを作った話【PHP】

    WordPressでマニュアル閲覧サイトを作った話【PHP】

    勤務先で使っているマニュアルたちの管理が煩雑になったということでどうにかできないもんかと相談がありました。
    こちらの会社でしていたマニュアル作成・管理は以下の通り

    • word、excel、powerpointなど種別問わず部署や個人単位でマニュアルを作成
    • もともとは個人のPC管理していたものをDropbox共有していたが探しにくい、わかりにくい。
    • デジタルリテラシーにも差があり、多職種が一つの場所で勤務していてそれぞれ職種ごとにマニュアルを探したい

    こんな状況だったので以下の提案を行いました

    • DropboxからGoogle driveでのアップロード、管理に切り替え
    • 作成したマニュアルの種別は問わないが、アップロードした際に共有権限を設定するよう徹底(じゃないと見れない時がある)
    • 閲覧自体(コンテンツをクリックした時の飛び先)はGoogleのままとして、それらを検索できるような仕組みとしてWordPressでサイトを作る

    とにかく見やすくなってわかりやすくなれば良いよとのことで、制作を始めました。

    実はこれまで同じような考えでnotionを使って管理をしようとしていたのですが、

    • 職員への周知がうまくいかない
    • 意外と検索するための操作が直感的でなかった(フィルター・ソート機能は良かったけども)

    といった感じでnotionは職場風土的に合わなさそうというのも経験しましてWordPressでカスタマイズしちゃおうと考えたわけです。

    使用したテーマ

    オリジナルテーマを作成しました。
    理由としては、詳細ページについての作り込みをする必要がなかった+独自にページを追加していく方が良かったから。

    個人的にはブログ機能をしっかり作り込みたいとかの時には既存テーマがいいと思ってますが、デザインにこだわりなく機能面だけ好き勝手いじりたい時ならオリジナルテーマの方が早いしプラグイン依存も最低限で済むと思っています。

    テーマ構成

    必須ファイル以外だとこんな感じ

    使用したプラグイン

    サイトを運用していく上での動線やUI設計

    • 職員(ユーザー)はサイトトップURLにアクセスしたらログインを迫られる
    • ログインについては管理者である私の方でアカウントを作成・周知済みとしてそれを使ってログイン
      (特にメール認証や2段階認証は付けなくて良いと判断)
    • ログイン後は画面上部に置いた『検索バー』を利用して、マニュアルタイトルの関連語句で検索
    • コンテンツ本体部分は新着アップロード順でマニュアルを表示
    • コンテンツサブ部分にはWordなどのファイル種別、もしくは職種別で絞り込めるようなソート機能を実装
    • 検索や絞り込みしたマニュアルは複数ページに渡って表示
    • マニュアルタイトルをクリックするとGoogle drive内の当該ファイルにアクセスして閲覧することができる

    といった状態にしました。

    ちなみにこの辺の言語化・具体化についてはFigmaを使用しました。
    言うたら個人開発になるわけですが、頭の中をスッキリ整理した方がやりやすいかと思って作ってみました。

    そして今回の場合、スマホもしくはipadでの利用が多いことが想定されたため、UI設計も大きな画面というよりタブレット以下の画面を想定して作成してみました。

    テンプレートパーツの読み込みなど基本的なところで参考になった記事

    https://gri-t.com/wordpress_get_template_part/
    https://wemo.tech/400

    ログイン機能・ログアウト機能実装に関して参考になった記事

    https://www.tti-co.com/engblog/simple-membership-plugin/

    https://webgaku.net/jp/wordpress/check-administrator/#:~:text=%E5%88%A4%E5%AE%9A%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95-,%E7%8F%BE%E5%9C%A8%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%8C%E7%AE%A1%E7%90%86%E8%80%85%E3%81%8B,%E3%81%AA%E3%81%A9%EF%BC%89%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%BE%E3%81%99%E3%80%82

    カスタム投稿タイプ・カスタムタクソノミー設定に関して参考になった記事

    https://hirashimatakumi.com/blog/5509.html

    http://galileo-venus.com/2020/05/22/20200518_wp_acfsearch/#%E6%A4%9C%E7%B4%A2%E7%B5%90%E6%9E%9C%E3%82%92ACF%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%95%E3%81%9B%E3%82%8B

    https://stoock.xyz/wordpress/acf-custom-search/

    サイト内検索機能の実装で参考になった記事

    https://www.onamae.com/column/wordpress/57/
    https://kasumiblog.org/125-2/
    https://www.wp-benricho.com/wordpress-search-ci/

    メインループ・サブループ作成に関して参考になった記事

    ページ送りについて参考になった記事

    クエリのインスタンス化する際の引数に入れる配列で、paged=>$pagedを入れていないことが原因でページ送りうまくいかない話を確認することができました。
    https://kt-life.net/pagenation-wp/

    今回の公開先はエックスサーバーで独自いを取得してすることになりましたが、いずれはサーバーおよびドメインの移管作業もしておきたいところ(管理を一元化していく目的で)

  • pythonのmap関数についての使い方を記録【python備忘録】

    pythonのmap関数についての使い方を記録【python備忘録】

    python備忘録として作成している記事です。
    今までは標準入力なり、二次元配列作るような場合にforの繰り返しをしていたけどもっと楽な方法あるんじゃないかと思って調べてみたところ見つけました。

    初学者に向けた情報と、自分の振り返りとして。

    map関数の概要(自己解釈)

    map関数は『第二引数にあるものを第一引数に入れた関数によって処理させる』関数。

    注意点:map関数で処理されたものはmapオブジェクトなるものに変わるので、
    実際の利用場面を考えるとlist関数を用いて一つずつlistに入れるとかの対応が必要

    例1:リストにあるものをそれぞれ二乗して、別のリストを作成する

    def multi(i):
        return i*2
        list1 = [1,2,3,4,5]
    print(list(map(multi, list1)))

    参考:【初心者向け】Pythonのmap関数とは?基本的な使い方を解説

    list1にある要素一つずつに対して、二乗するmulti関数を行わせて、list関数を使って新たな配列にするという手順です。

    例2:文字型のリストを数値型に変更する

    map(int, input().split())

    標準入力されたものをsplitしたリストに対して、int型に変更するという処理になります。

    例3:標準入力されたものを複数数値化して変数にそれぞれ入れ込む

    A, B, C, D = map(int, input().split())

    今までの手順から考えるとすごく便利になりそうです。