自宅の片隅から

日々の考えを綴る

今後エンジニアとしてどう生きていくか、考えてみたい

【近況】

最近プロジェクト全体のタスクを挙げ工数を出し、不測の事態に陥らぬよう仕様の不明点を調べ上げ、顧客に説明し、実際に手を動かして案件を推進する…というのをやっていると「ソフトウェア開発、システム開発の難しさ」を身に染みて感じることが非常に多い。

これはいち作業者としての立場からプロジェクトを推進する立場への業務やマインドのシフトでもあり、かつて主体的だと思っていた行動が実は"しっかりレールを敷いてもらいある程度求められるアウトプットが定められた上でのもの"であったと気が付いたりもする。

自分の手と頭で敷いてきた道筋になんとなく目途が立ってきて、ようやく自分なりに考えを整理する余裕が出てきた。求められることの範囲が広がったり責任が増える中で感じた自分自身の強みや弱点、プロジェクトを推進するうえでの改善ポイントなどは、振り返りつつ徐々に言語化していきたいと思う。

プロジェクトの品質、効率性など含めたビジネス的な成功は、プロジェクトの絵を書く人物の力量にかかるところが大きいと思うが、その中でも「いかに弱点が露呈することを回避できるか=手戻りや無駄な労力を避ける」の要素が大きいと感じている。

今回痛感した自分の弱点は「仕事をチームに振れず、結果一人でやろうとしてしまう」だったり「あれもこれも心配になり調査を重ねた結果、本来実施すべきタスクに必要十分な時間と集中を注げず、結果工程がキツくなる」こと。

前者の弱点は、もっと事前にチームをプロジェクトに巻き込んでいくことで改善が見込めると思う。後者は実際やって悪いことはないのだが、調べ方を改善することが重要だと思う。例えば、「設定値Aは具体的にどういった意味を持つのか?」からではなく、「設定値Aはそもそも問題ある値なのか、それとも問題ないのか」という問いから始めるというもの。

自分自身が抱える業務はプロジェクトの流れ全般であり、「本当にこだわって確認すべきものなのか」を篩にかけ、バランスよく力を掛けていかねばプロジェクトの成功はおぼつかないということだ。

============

今後エンジニアとしてどう生きていくか、考えてみたい

こういった訳でここ3か月ほどは自学する時間や趣味でプログラムを書いたりそれで遊んだりする時間もなかったのだが、これからしばらくは、また色々なことをインプットし、アウトプットしていく時間が必要だと思うようになった。多分、会社組織の中での成長といちエンジニアとしての成長や成功はイコールではないと思うからでもあるし、かつ、新しい刺激や目標がイチエンジニアとしての成長に繋がると思うからでもある。

今後のエンジニアとしての成長に繋がる活動の方向性を考えてみたい。

  • 通信課程でコンピュータサイエンスの学位を取ってみたい

  • OSS活動を行っていきたい(プルリクを出す)

  • 趣味で作ったプログラムを題材に技術書典に出品をしてみたい

ひとまず、今日は大きく3つ挙げてみた。また近々それぞれについて掘り下げて考えを述べてみたいと思う。

今日のところはこれにて。

Qiitaへの投稿を始めた件

Qiitaへの投稿を始めた

要件はタイトルの通りなのでそれ以上も以下もないのだけど、LGTMが1つでも付いたのは大変うれしかった。ちょっとだけエンジニアの階段をのぼった心持ち。 ※LGTMは「Looking Good To Me」(いいかんじよ)という意味でイイネと大体同じらしい。

資格試験の勉強等に出てくる概念的な用語をより具体的に理解するために、Qiitaで検索してソースコードを写経するなどして理解する方法など、読んで書いて活用していきたい。

自分が書いて投稿した記事は以下の3点。

論理ゲートの処理をPowerShellで実装した

タグ:PowerShell ユニットテスト Pester 基本情報技術者

シェルスクリプトを対話式にする

タグ:ShellScript shell 対話型 ksh

緯度・経度を自動生成してGoogleMapを開く

タグ:PowerShell GoogleMap

作りたいプログラムについて書いておく(2020/05/12更新)

記事の目的

個人で作りたいプログラムを言葉にしてアウトプットしておき管理すること。

記載する内容

  • 個人で作りたいプログラムの案
  • プログラムを作る目的
  • 実現方法の検討
  • 技術キーワード
  • 進捗状況
  • 取り組む中での学び
  • 今後の展望

運用

進捗したら都度更新していく。

作りたいプログラムリスト

  1. 海外の日本人サッカー選手情報まとめ 【UPDATE 2020/05/12】
  2. LINEで動くコンテンツ  【UPDATE 2020/05/12】
  3. Google Map APIで旅気分を味わうプログラム
  4. AWSを使用するプログラム
  5. コンパイラとかOSを作ってみたい 【NEW 2020/05/12】

各プログラムについて詳細

海外の日本人サッカー選手情報まとめ

目的

僕はフットボールが大好きで海外で活躍するサッカー選手の情報を仕入れるのが大好きなんですが、スポーツナビなど一般にみることができる情報だけでは満足できなくなってしまったのです。なので、自分で満足できるような情報まとめを作ってしまおうと考えました。

技術キーワード

実現方法の検討

  • 選手の情報は、ドイツの情報まとめサイトのtransfermarktから収集します。
  • 選手を掲載するウェブページ全体に対してスクレイピングを行います。
  • スクレイピングによって取得したデータの中に"日本国籍"を表すデータがあるので、"日本国籍"を持つウェブページだけを手元に記録していきます。
  • WindowsのPCから簡単に実行できる仕組みを採用したいので、Windows10に標準搭載されているPowerShellを採用しました。

状況

  • 情報を取得することはできており、かつ、"日本国籍"を判定することもできている。 いつも決まった回数のアクセスで「500 Internal Error」が返ってきてしまう。
  • transfermarktの選手情報ページは動的コンテンツのようで、URLの指定が難しい。
  • まずは「500 Internal Error」がなぜ発生するのか理解しないといけない。
  • 地道に少しずつ情報を取得させていただくようにした。
  • ↑の事象はアクセスの頻度が多かったことが原因と思われる。 冷静に考えて、どんだけウェブサーバに負荷かけるつもりだったんだろうと反省しつつも勉強させていただいた。

このプログラムでの学び

  • PowerShellでできることや使い方
  • ウェブスクレイピング(初めて取り組んでいる)
  • ウェブプログラミングのいろは(仕事ではC言語SQLがメイン)
  • htmlの中のscriptタグの中にソースが埋め込まれてるのを知った。
  • ウェブサーバやサービスに負荷がかかるようなやり方は避けるべきだし、今後は同じことにならぬよう気を付ける。

今後の展望

* まずは「500 Internal Error」がなぜ発生するのか理解しないといけない。 * "動的コンテンツ"を作っているところがカギになりそう。 * htmlのscriptタグに埋め込まれているJQueryJavaScriptのソースを追っていく。 * その過程で、HTMLやjQueryJavaScriptを学んでいく。 * 取得したURLをもとに、どう情報をまとめるかを検討する。

* ゆっくり、着実に知見を積む。

LINEで動くコンテンツ

目的

先日、大学時代の友人とZoom飲みをやった時に、「暇つぶしになるコンテンツ作ってほしい」みたいな話を聞いて、何か作ってみたいと思った。

技術キーワード

  • LINE bot
  • Heroku
  • Node.js(v12.14.1)
  • LINE Developers

実現方法の検討

  • 皆が使っているプラットフォーム上で動くものが良いな、ということでLINE botを使ってコンテンツを作ってみることにしました。
  • コンテンツをデプロイする方法として、Herokuを採用しました。
  • Herokuで使えるプログラミング言語としては、少しだけ勉強しているNode.jsを採用しました。
  • コンテンツとしてはクイズ的なものが面白いかと思いつつ、まずはbotとして動かせることを最優先。

状況

  • LINE Developersでアカウントを作った。
  • Herokuのアカウントを作った。
  • LINE bot初号機として、「ラテン語ひとこと格言bot」を作って公開した。 f:id:kjmdon0:20200429224113p:plain
  • f:id:kjmdon0:20200429224235p:plain
  • クイズ的なコンテンツはどうやったら実現できるか検討してみる。
  • いまだこのbotを友達登録してくれているのは身内(私含めて3人)なのだけど、拡充は続ける予定。(笑)

このプログラムでの学び

  • LINE botってこうやって作るんだ、という知見を得た。
  • Herokuって、デプロイってこういうものなのか!という知見を得た。
  • 作って公開してみてなんだけど、ただのbotだと正直あんまりコンテンツとしておもしろくないと感じる経験を得た。

今後の展望

  • Herokuってどういう仕組みで動いているのか知りたい。
  • より安心安全なデプロイするためには?を考えるきっかけにしたい。
  • 日々botコンテンツの拡張を行っていく予定。
  • ユーザとの相互のやり取りができるようなコンテンツはどうやって作るのか調べてみる。

Google Map APIで旅気分を味わうプログラム

目的

最近旅してないなーと思っていたところにコロナ禍も重なり、自宅にいながら旅気分を味わいたいと思ったことが最初のきっかけ。プログラマとしてはGoogle Map APIを使ってみたいと思っていたので、使ってみることにした。

技術キーワード

実現方法の検討

  • 緯度・経度を自動生成する。
  • その情報をGeocodingAPIに渡して位置情報を得る。
  • WindowsのPCから簡単に実行できる仕組みを採用したいので、Windows10に標準搭載されているPowerShellを採用した。

状況

  • 緯度・経度を自動生成する仕組みを作った。
  • 位置情報を持ったJSON形式のデータを取得することができた。
  • 緯度・経度だけ指定すれば、ブラウザ上にGoogleMapを表示できることも分かった。
  • できたのが↓。

[ランダムに緯度と経度を生成し、Google Mapを表示させるスクリプト]

PowerShell script that display and indicate site randomly on Google Map.

github.com

このプログラムでの学び

  • 緯度・経度がどういう値を持っているか知った。
  • Google Map APIの導入の仕方を知った。
  • 海があまりに多く、広いことを思い知った。(太平洋、大西洋、インド海、北極海…)
  • ロシアやアルゼンチンなど国土の広い国があまりに広いことを思い知った。
  • ヨーロッパの各都市とか、日本とか、本当に地球のごくごく一部。世界は広い!

今後の展望


AWSを使用するプログラム

目的

単純にAWSとウェブプログラミングを学びたいと思って。

技術キーワード

実現方法の検討

  • Node.jsでローカルホスト上にサーバを立てて、HTMLを読み込ませる
  • ホームページの自作をしてみる。
  • 静的コンテンツはAmazon S3に配置する
  • 画像はパブリックドメインのものを使ってみる。

状況

  • ホームページのコンテンツ作りはストップしている。
  • AWSの仕組み、難しい。
  • そもそもウェブプログラミングの知見を増やす必要ありと思慮している。

このプログラムでの学び

  • ホームページを作るのは大変と知った。HTMLやCSSの実装大変と知った。

今後の展望

  • ウェブプログラミングの勉強、実装の経験を積むことが先決。
  • HTMLやCSSの勉強(ページのデザイン的な要素)は今やることじゃないかなと思っている。

コンパイラとかOSを作ってみたい

目的

普遍的なコンピュータアーキテクチャを学びたい。

技術キーワード

実現方法の検討

状況

  • Intelのプロセッサマニュアルをダウンロードして読み始めた。 焦らず着実に知識を積み重ねる所存。

このプログラムでの学び

  • まだ確たる学びはないが、ソフトウェアエンジニアとして重要な礎になると思っている。

今後の展望

  • 興味がある人がいたら、読書会的なことやりたいですね。
  • アセンブラ言語をはじめ低レイヤのプログラミングについてもやっていきたいところ。

【自己紹介】経歴や作っているものについて

はじめまして、kjmdon0と申します。

このページを訪れていただきありがとうございます。

 私の職業はソフトウェアデベロッパーです。

(システムエンジニアと言った方が一般的かもしれません)

 

【このブログを始めるにあたっての目的】 

 自分自身の考えを整理する機会を持ちたい、それとともに、自分が書いたものがどのように読まれ、

評価されるのか興味があり書き始めることにしました。

このブログを書くのは自分の為ですが、読んでいただいた誰かに喜ばれたり

役に立つような存在になれれば何よりです。

 

【このブログで書かれる内容(予定)】

・個人で作っているプログラムについての記事(要件レベルからコードレベルまで)

・ソフトウェアデベロッパーおよびシステムエンジニアの仕事に関連する記事

・組織の課題改善についての私見

・読んだ本、観た映画、聴いた音楽の感想

・キャリアについての回顧や今後の展望について

・その他雑記

 

【経歴】

ざっくり経歴:現在3社目です。

文系大学(経営学部)→肥料会社営業→SES/2次請け→社内SE(開発:SI部門)

大学時代:

テレビCMや企画のお仕事に憧れがあって経営学マーケティング学科に入学。

国際経済学のゼミに所属して、経済学や自由貿易の勉強をしてました。

大学時代の夢は農業まっしぐらといった感じでした。

元は鉄腕DASH!のDASH村みたいなのをやりたかったのですが、それが高じてトマト農家住み込み⇒

植物工場のコンサルファームでのインターンオランダへの取材旅行…といった風。

いろいろやりました。

■就職活動:

志望は農業業界一本でしたが、いわゆる大手も受けていました。

大学時代の伝手で、理転してインドの大学院に行く道もありましたが、

最終的には商社系列の肥料会社を選んで入社しました。

■1社目(1年):

肥料会社の営業をしていました。農家のお宅に訪問して、肥料や農薬を販売するお仕事でした。

■2社目(2年半):

業界未経験の第二新卒として、受託開発のソフトウェア企業にプログラマーとして入社しました。

プログラマージョブチェンジした経緯諸々は別途記事を書こうと思います。

■3社目(~今):

社内SEとして、自社のサービス開発に携わっています。

業務系のサーバサイドを担当しています。組織課題改善のお仕事もやってます。

 

【個人で作っているプログラム】

GitHubhttps://github.com/Massas

【個人で運営しているサービス】

LINE botラテン語ひとこと格言bot

ラテン語の格言で返事をするbotです。

Twitter bot:journeybot -次の旅先勝手にススメます-

https://twitter.com/journeybot2021 (@journeybot2021)

⇒241の国と地域からランダムに次の旅先を選んでくれるbotです。

 

【その他】

Twitterhttps://twitter.com/kj53192539 (@kj53192539 )

ブクログ: booklog.jp/users/kjbook316

LAPRAS:https://lapras.com/public/KV8APXJ

 

以上です。

よろしくお願いします。