エンジニア未経験者がネットワークエンジニアとして採用されるまで
初めに
2019年にITや情報系の学問に興味を持ち、学んでいくうちにエンジニアになりたいと思うようになりました。
情報系の学問を独学で学び始めてから約4年経ち、この度ネットワークエンジニアとして採用される運びとなりました。
採用されるまでに行ったことを記録に残しておきたいと思い、この記事を書きました。
読んだ本
- OS自作入門
- 初めてのJavaScript
- 初めてのPHP、MySQL、JavaScript&CSS
- 新・明解C言語 入門編
- マスタリングTCP/IP 入門編
- マスタリングTCP/IP 応用編
- マスタリングTCP/IP 情報セキュリティ編
- スラスラわかる ネットワークとTCP/IPのきほん
- 絶対に挫折しない iPhoneアプリ開発「超」入門
- 本気で始めるiPhoneアプリ作り
- この一冊で全部わかるサーバーの基本
- 実践力を身につけるPythonの教科書
- Pythonパーフェクトプログラミングマスター
- Cプログラミング入門以前
- パケットキャプチャの教科書
- インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門
- いちばんやさしいHTML5&CSS3の教本
- CSSグリッドで作るHTML5&CSS3レッスンブック
行った事
OSの自作
- 製作期間:約6ヶ月
- 使用言語:機械語、アセンブラ、C言語
- 学んだ事:OSが「機械語やアセンブラなどの低レイヤに支えられて動いており、普段使用しているPCで目に見える部分が氷山の一角でしかなかった事」や、「メモリ管理」、「重ね合わせ処理」、「タイムアウト機能」によってウィンドウやアプリケーションの操作が行えることを学びました。
- 参考文献:30日でできる!OS自作入門 著者 川合秀実
コンパイラの自作
- 製作期間:約2ヶ月
- 使用言語:アセンブラ、C言語
- 学んだこと:「アセンブラ」と「C言語」の関係性や、「構文解析」や「パーサ」と言ったコンパイラに必要な知識から、「git」や「自動テストの作成」なども学ぶことができました。
- 参考文献:低レイヤを知りたい人のためのCコンパイラ作成入門 著者 Rui Ueyama(本が出版された是非購入したいと考えております)
ココノヒ
- 製作期間:約2ヶ月
- 使用言語:HTML、CSS、PHP、MySQL
- 使用したOS:AmazonLinux2
- 使用したAWS:EC2、Route53、AWSCertificateManager
- 製作目的:生物学の研究の際に、研究結果と画像を保存できるようなシステムを作成したかった。
さびあり
- 製作期間:約1ヶ月
- 使用言語:HTML、CSS、JavaScript
- 使用したAWS:S3、Route53
- 製作目的:スノーボードをさらに楽しくできるようなシステムを作りたかった。
放送大学に入学
- 入学目的:コンピュータサイエンスの知識を少しでも体系的に学びたかった。
- 在学期間:2年間(編入学として入学したので、他大学の単位を約60単位ほど引き継ぎました。)
- 在籍コース:情報コース
- 受講した講義:「コンピュータの動作と管理」、「コンピュータ通信概論」、「情報化社会と国際ボランティア」、「CGと画像合成の基礎」、「webの仕組みと応用」、「自然言語処理」、「データベース」などの約30科目を受講しました。
- やり残したこと:「計算機科学基礎プラン」という履修証明制度を取得し忘れました。卒業年度の単位認定試験を提出した日に履修証明制度があることを知り、悲しくなりました。きちんと資料は読みましょう。(戒め)
OSSの貢献活動
oyogenaitaiyak1.hatenablog.com
初めてのペンタブ - One by Wacom Medium
念願のペンタブ?!
Unityでゲームを作成するための素材を描くために、念願?のペンタブ「One by Wacom Medium」を購入しました。
「Wacom Intuos Small」と「Wacom Intuos Medium」も選択肢として考えており、Bluetooth接続によるワイヤレスがとても魅力的に見えたので買いそうになりました。
しかし、お財布の都合と技術力を考慮した所、なるべく安定しており、安価で購入できる「One by Wacom Medium」を選択しました。
環境
MacBook Pro (13インチ, 2019)
macOS BigSur ver 11.6
プロセッサ 2.8 GHz クアッドコアIntel Core i7
メモリ 16 GB
グラフックス Intel Iris Plus Graphics 655 1536 MB
開封の儀
Amazonで購入したら早速届いたので、開封の儀をしました。
※AmazonベーシックUSB3.0延長ケーブルもついでに買いました。
赤い箱がとてもかっこいい!
開封してみた結果、想像していたよりペンタブが大きく、使いやすそうです。
これから使用してみたいと思います。
セットアップ
1.
USBでペンタブとMacに接続を行います。
MacBookはType-Cなので、変換アダプタを使用します。
2.
下記のWacom公式URLからペンタブ用のドライバをダウンロードします。
※ドライバをダウンロードせずとも使用できますが、ペンのサイドスイッチの設定を行うためにドライバが必要みたいです。
3.
MacBookにダウンロードするので、Macのボタンを押します。
押すとドライバのインストーラがダウンロードされます。
4.
ワコム タブレットのインストール画面が表示されたら、「続ける」ボタンを押します。
5.
インストール中に「ワコムソフトウェアの読み込みに失敗」というエラーが表示されましたが、エラーの指示通りに、MacBookのプライバシー内の「アクセシビリティ」と「入力監視」という項目内に表示されているワコム商品のチェックボックスにチェックをするとエラーは消えました。
6.
無事にインストール完了の画面が表示されました。
インストーラも消えました。
7.
wacomのドライバを起動する事ができました。
これでセットアップは完了しました。
最後に
今度、絵を書いてみます。
デジタル計算機について
キーワード
「デジタルコンピュータ」
- 安価
- 高精度
- トランジスタ
「アナログコンピュータ」
- 時間の経過により変化する値
ポイント
「デジタルコンピュータ」
- 離散的な値を持つデータ項目に対して計算ステップのシーケンスを実行する機器
- 値段が安くて、非常に信頼性kが高い
- 故障率が10億分の1より少ないように設計されている
- 玉→ギアとレバー→真空管→トランジスタのように進化した
- 現在は、トランジスタを使う電子回路で構築されている
「アナログコンピュータ」
- 時間の経過に従い変化する値を使用する
- 数少ない特殊な分野では、現在も使用されている
まとめ
- デジタルコンピュータは、トランジスタにより構築されており、離散的な値を持つデータに対して、計算ステップのシーケンスを実行する機器である。故障率は10億分の1より少なく、かなり高精度である。
- アナログコンピュータは、時間の経過に従い変化する値を扱う機器である。現在では、特殊な分野でしか使用されていない。
参考文献
スノーボードの技を選ぼう「さびあり」
エンジニア未経験者がOSSの貢献に挑戦してみた②
前回について
前回、PHPのドキュメンテーションやマニュアルページを作成しているphp/web-phpと言うGitHubのリポジトリにissuesを投稿しました。
しかし、issuesを投稿して約48時間経過したがメッセージ等の返信が来なかったので、関心を持ってもらえなかったのだろうと思い諦めておりました。
oyogenaitaiyak1.hatenablog.com
GitHubからのメール
issuesを投稿して5日後にGitHubからメールが届きました。
内容は、自身のissuesに対しての返信でした。
peterddさん
英文
Not only ja pages, all other languages except en deeper nested pages.
和訳
日本語のページだけではなく、英語を除く、全ての言語のページで問題が起こっているよ。
上記のpeterddさんの返信から始まり、heiglandreasさん、salatheさん、cmb69さんの合計4名のコントリビューターの方々からメッセージをいただきました。
コントリビューターの方々のメッセージのやり取りはとてもレベルが高く、正直なところ私はついて行けておりません。
現時点で、私は「どのように話に入って行けば良いのか」や「issuesを投稿した責任から何か行動するべきなのか」などと悩んでおります。
やり取りを見ている時に
「制御は効かない。高次元だ。我々の三次元とは別世界だ。ただ観察するしかない。」
と言う、インターステラーのセリフが脳裏に浮かんできました。
最後に
私は今回、初めてのOSSへの貢献に挑戦してみました。
issuesに投稿した時や、メッセージなどの返信が来なかった時は心配していました。
しかし、今回のようにメッセージが送られてきて、issues内で議論されているのをみてとても嬉しく思いました。
嬉しい反面、自身の技術力と知識が足りないばかりにメッセージのやり取りに参加が出来ないことを残念に思います。
早く大勢の方々と議論をしたり、プルリクエストを送れるように技術力や知識を蓄えていく事に力を注ぎたいです。
参考文献
エンジニア未経験者がOSSの貢献に挑戦してみた①
はじめに
OSSに貢献したいと以前から考えていましたが、英語が苦手だったり、技術不足だったり、色々理由があり避けていました。
しかし、先日にOSSを使用させていただいたので、やはり少しでも貢献したいという気持ちが湧いてきたのと、「ハムカツおじさん」さんの記事を拝見させていただき、挑戦してみようと考えました。
「ハムカツおじさん」さんの記事では、OSSに貢献するにはコードを書いてPRを送るだけではなく、タイポの修正やissuesを立てたりする事も貢献の一貫として含まれるのではと記述されていました。
そこで、現時点の自身の技術力ではコードを書くことは厳しいので、まず初めにissuesを立てて貢献しようと思いました。
OSSとは
OSSは、Open Source Software(オープンソースソフトウェア)の略称であり、ソフトウェアのコードが公開されており、誰でも自由に使用したり、学んだり、修正したりすることが可能なプロジェクトとされています。
良く聞くOSS一覧
Linux, Apache HTTP Server, MySQL, PHP, Java, Docker
どのOSSに貢献するか
先月に自作の動的Webページを作成した時にLAMP環境を使いました。
oyogenaitaiyak1.hatenablog.com
LAMP環境は、複数のOSSで構成されていると思いますが、今回はPHPを使用させていただいたのでPHPに貢献してみようと思いました。
PHPのコードやphp.netに記述されているドキュメンテーションや、マニュアルを読みながらバグや問題点などを探しました。
問題点を探す。
php.netでドキュメンテーションやマニュアルを読みながら問題点を探していたところ、日本版のPHPマニュアルページのフッターに位置するViewSourceのリンクが壊れている事に気がつきました。
マニュアルページは、英語、ブラジル(ポルトガル語)、中国語、フランス語、ドイツ語、日本語、ルーマニア語、ロシア語、スペイン語、トルコ語に別れています。
11言語のマニュアルページがある中で、ViewSourceのリンクが壊れていなかったのは、英語版のみでした。
issuesに投稿してみた
最初に日本語で伝えたい内容を記述しました。
このプロジェクトにissuesを投稿するのは、今回が初めてです。
日本語版のPHP マニュアルページのViewSourceのリンクが壊れていました。
この問題は、ブラジル(ポルトガル語)、中国語、フランス語、ドイツ語、日本語、ルーマニア語、ロシア語、スペイン語、トルコ語で起きています。
1、phpのドキュメントページを開く
2、view onlineから日本を選択する
3、日本語版のphpマニュアルページを開く
4、日本語版のphpマニュアルページのフッターにある「ViewSource」を押す
5、「404 This is not web page you are looking for.」というエラーが表示される。
その後、20%の自身の英語力と80%のgoogle翻訳を使用して作成した英文がこちらです。
First time submitting an issues to this project.
ViewSource links are broken in Japanese php manual page.
This issues is happening in pt_BR, zh, fr, de, ja, ro, ru, es and tr.
#Procedure
1, open php Documentation page.
2, choose「 Japanese」 from View Online.
3, open Japanese php manual page.
4, push 「ViewSource」 from Japanese php manual page footer.
5, 「404 This is not web page you are looking for.」is displayed.
上記のような英文をgithubのPHPのissuesに投稿してみました。
結果
issuesを投稿してから48時間経過しましたが、返信がきませんでした。
サイボウズさんのエンジニアブログでは、OSSの貢献時に反応が3つあり、1つ目は肯定的な反応、2つ目は否定的な反応、3つ目は関心を持ってもらえないと言うことがあるそうです。
私の今回のissuesは、関心を持って貰えなかった様です。
結果の推測
関心を持ってもらえなかった理由を4つほど考えてみました。
- 英語の能力が低く、自身の説明が伝わっていない。
- issuesを投稿するページを間違えている。
- 日本語版PHPのマニュアルページ内のViewSourceのリンクを押すと「404」とエラーが表示されるが、現在は緊急で修正する箇所ではないので保留されている。
- issuesを投稿するのではなく、自身で修正してPRを出す必要がある。
最後に
今回のOSSの貢献するためのissuesの投稿は関心を持ってもらえませんでしたが、issuesを投稿したと言う経験と、OSSの貢献に1歩踏み出せたと言うことを糧に、これからも自身の技術力の向上とOSSの貢献に取り組もうと思います。
その後について
oyogenaitaiyak1.hatenablog.com
参考文献
MacにphpMyAdminをインストール
環境
・macOS Big Sur 11.4
・MySQL 8.0.25
・phpMyAdmin 5.1.1
1. phpMyAdminのインストール
ターミナルにて「brew install phpmyadmin」を入力します。
入力後、phpMyAdminのインストールが始まり、最後の方に
To enable phpMyAdmin in Apache, add the following to httpd.conf and
restart Apache:
Alias /phpmyadmin /usr/local/share/phpmyadmin
<Directory /usr/local/share/phpmyadmin/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order allow,deny
Allow from all
</IfModule>
</Directory>
Then open http://localhost/phpmyadmin
と表示されます。
2. apache2のhttpd.confを編集
httpd.confファイル内に
Alias /phpmyadmin /usr/local/share/phpmyadmin
<Directory /usr/local/share/phpmyadmin/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order allow,deny
Allow from all
</IfModule>
</Directory>
を追記して保存します。
3. apache2の再起動
httpd.confファイルに追記した後、apache2を再起動をしてブラウザで「localhost/phpmyadmin」と入力をし、phpMyAdminを使用しようと思ったが、下のような画面が出力されてしまい使用できませんでした。
4. 再び、apache2の設定
他にも設定が必要なのだと思い試行錯誤していました。
/etc/apache2/内にあるhttpd.confファイル内の
「#LoadModule php7_module libexec/apache2/libphp7.so」を
「LoadModule php7_module libexec/apache2/libphp7.so」のようにコメントアウトを外し、保存しました。
その後、apache2を再起動し、もう一度ブラウザでブラウザで「localhost/phpmyadmin」をしたところ、phpMyAdminのログイン画面を出力する事ができました。