文系、大した学歴なし、実務・プログラミング経験なし、本当の初心者がエンジニアとして働くまでに取組んだこと(5~6カ月)

こんにちは。乱視が急速に進みました。伊藤 大智です。

ようやくサーバーの移行が出来ました 。移行自体はずいぶん前にできたのですが、色々設定しようとしたことで解決できない不具合に遭遇してしまいました。

元々は4月までに書いて「こんな感じでこれくらいやってました」を知ってもらうために書こうと思ったのですが、もう5月になっております。完全に消化試合です。

 

2月

 

この時期やった事はどれも同時並行でした 。主なイベントは

・PHPとDB

・本を読む。

・EVERRISEに逢う

になります 。

 

PHP、DB

 

やった量に対しての腑に落ちる感覚が少ない事が気になり、とにかく理解をしたいという時期だったので個別のトレーニングを受けさせていただきました 。
これにあたっての環境はXAMPPを使いました。
やったこととしては以前HTML、CSS、Bootstrapを使って作ったポートフォリオがあったのでそちらのContactページを用いて、

「画面からフォームで入力した値を,PHPでSQL文を使いデータベース(DB)を操作する」

です。
【その中でやったこと、知った考え方】

  • ER図の作成
  • 型、カラム、テーブル
  • PDOの利用(query、prepare、excecute等のメソッドを使う)
  • SELECT文を使いながらINSERT、UPDATE、DELETE
  • プリペアドステートメント
  • ストアドプロシージャ
  • PHPとHTMLの関係性
  • CSRF

自分の中で引っかかる原因としてあったものが、
言語そのものの機能を持った名前(予約語)なのか」
自分で考えて付けている名前(変数名、関数名)なのか」
機能があるわけではないけどお決り的な名前(不文律)なのか」
の違いが分からないというのがありました 。

このことからも前提となる仕組み自体を体系的に理解する必要性を感じたので、それにはやはり本を読むしかないという考えに至りました。

 

本を読む

実は以前から本はこつこつと買っていたのですが、選び方が下手すぎて、コレクションになっていました
ようやく読み切った本がこの辺りになります。


【基礎からのwordpress】

あくまでエンジニアになろうとしている初心者が読む本でした。レビューにもある通りですが単にwordpressを使う人にとっては内容が込み入ってました。ブログシステムのソースを読みたい、ディレクトリ階層を知りたいという方は良いかなという印象です。


【いきなりはじめるPHP】

最初にとてもオススメです。


【基礎からのMySQL】

業務で使うとなったら最初に読むべき本だと思いました。基本的なSQL操作が網羅されているので手元にあれば、すごく使えるだろうなと感じました。


【達人に聞くDB設計】

設計し始めたら読む本だと思います。とにかくDBまじ大切というのだけは分かります。実際には少し読むのが早かったかなという印象です。


【マスターキートン5巻】

考古学者でありながら元SAS(イギリス特殊空挺部隊)のサバイバル教官という経歴から、突飛な依頼を受けるキートン先生が様々な人と出会いながら出来事を解決していく推理サスペンスです。

 

EVERRISE

 

2月の頭にWantedlyがきっかけで大倉さんと連絡させていただけたことで、オフィスに向かわせていただきました。そこで総務の中島さん、エンジニアの新井さんとお話しさせていただくことになります。そして代表の倉田さんともお話しさせていただくことができました

【大倉さんに会う】

エンジニアとしての活路を見出してくださった方です。採用する側ですが攻めの気概があり、自分自身の目指す結果と目標を強く持っている方といった印象でした。そしてもっと他の人にも会ってみたいと感じました。

【中島さんに会う】

物腰の柔らかい方でした。これは入ってから分かったことなのですが、全体への気配りが上手な方と感じました。

【新井さんに会う】

エンジニアになられた経緯、どのような環境なのか、などをお話ししてくださいました。この時、開発の中でDBの重要性をお聞きして、DBの知識をつけなければと思うきっかけになりました。

【倉田さんに会う】

くまさんのような方というのが印象でした。

自分のITについて思うことをお話しした後、色々な考えをお話ししてくださり、自分の中で1番関心できた事は

「自分の持ってるなにかを相手に与えるだけは簡単な事」

でした。

昔から伝えるのが本当に下手くそだったので、自分を下げても相手が持ち上がれば、犠牲してなにかをあげることはいくらでもできると思い、現にそう言った行動を取っていたところがありました。でも本質的には相手もそんな形を求めているわけではないのをわかっているのにそういう振る舞いしかできないことが本当に哀しかったので、この部分にすごく共感しました。

こうしてやらせていただくことが決まりようやく自分のイメージに沿った、現時点の向かうべきと方角を合わせることができました。

おわり

以上がこの6ヶ月でやった大まかなことだと思います。

実際にはもう少し色々なことに取り組んだのですが、
結果的にいうとやっぱり所詮は独学です。

ばかが1人で頑張った所でたいした力は付きませんでした。それよりか、人に逢って、自分のやりたいことを言って、アドバイスもらって、どうしたら良いかを考えた方が、それ自体でスキルが身につくわけではないですが、自分の中では総じてなにかが進みました

 

p.s…

日々本当に学ぶことしかなく、この環境でやらせて貰えていることをありがたく思います。

正直にいうと自分の場合、「拾ってもらいました。」 が適切だと思います。 現状まだ自分しか得してないので、EVERRISE的にも掘り出しものだったと思って貰えるようにあらゆる面から今後も全力で取り掛かっていきたいと思います。

次回からはもう、必ずしもエンジニアに限らない話とは思いますが、業務の中で大事だと感じていることとか、ずっと感じているけど言葉にできていないこととか、詰まったこととか、知識整理とか、雑多に使っていこうと思います。

EC2のt2.microにしたのですが、プラグイン入れすぎ、設定中にキャッシュ溜めすぎとかでbad gateway

自分の使い方に問題もあるけど色々やるならsmallに上げた方が良いかな

IMG_0911

文系、大した学歴なし、実務・プログラミング経験なし、本当の初心者がエンジニアとして働くまでに取組んだこと(3~4カ月)

パソコンを捨て、町へ出よう(就職活動・ひたすらググる期)

 

ドメインを持っているだけの伊藤 大智です 。

今膨大な量のアウトプットに迫られているのに未だ働き始めるまでに学んだことさえできていないので、まずはこちらから投稿してしまいます。

 

12月中旬~1月下旬

 

この頃になると意気込みに比べて全く手が動かないことで、基礎知識の必要性を知り、Web周りの知識を付けるべく、まずはWebの世界に住もうといった意識で(英語を使うなら英語圏の国住む)パソコンを起ち上げて手を置き、ぼーっとすることから始めました。そして、今までにスルーしてしまった意味の分からなかった言葉を思い起こし、ひたすらgoogle検索をするということを行いました。

パソコン棒

この時よくアクセスしていたページ、今も初心者の私に分かりやすくて重宝させていただいているページです 。
IT用語辞典 e-Words
「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

 

この頃、いつしかなにをして働きたいかがはっきりとしていた私は、就職活動を始めています 。

当時のブートキャンプのメンターさんからwantedlydoorkeeper等の存在を教えていただき、また進めていくにあたっての考え方やアドバイスをいただきました。

 

Wantedly

 

Wantedlyは主にスタートアップやベンチャー企業を中心に情報が集まっているSNS型のサイトで、

ざっくりいうと個人、企業両方の就職活動の考え方が変えられるサイト 。だと思います 。

自分のようなばかなあたまの独学で、「実力が付いてから働こう」は、おじいさんになってしまうと思ったのと、今からエンジニアになりたいなら、スピードを持って成長している環境でやることは必須条件だと感じ、またそういった企業で働いている方ととにかく話をしてみたかった事から正にマッチングしたサービスでした 。そして興味を持ち、いくつかのお話ししていただける企業に伺わせていただきました 。

そのなかで自分にもポイントになると思ったアドバイス

・スタートアップはお門違いということ(エンジニアとしてという考え方だと)

・本を読むこと。点で得た知識が1つにまとまる感覚が必要なこと

・技術は新しくなるし増えるから常に自分の知る世界の範囲から外の範囲の情報も取りに行く意識が必要なこと

・根性がないと困ること。コードが書けるだけでもダメなこと

・単純に絶対量が少ないこと。量と質どちらも意識して取り組むこと

どれも当たり前のことなのかもしれません。自分のなかでも感じていたことでした。しかし、当たり前のことを当たり前にやってきた人から聞く事はもの凄く大事なことです 。

どの話をしていただいたエンジニアの方も、その組織の中核となる活躍をされていて、とても格好良く、いつも帰りは実力がないのにやりたいと言っている自分が恥ずかしく、滑稽で仕方がないと思うのでした 。

 

そして同時にdoorkeeperを使って東京に向かう傍ら勉強会に参加をしました。

 

doorkeeper

 

イベントと場所を提供してセミナー、勉強会、交流会などを開催できるコミニュティサイトです 。

この中で自分が興味を持った勉強会に参加しました 。

サークルアラウンド式トレーニング

ここでようやく自分で考えて理解し、作り進むという感覚をつけるきっかけに出会います 。

「なぜこういうルールがあるのか」、「この動きはどんな法則があるからこういった書き方になるのか」

こういった「やりたいと考えていることをコードとして表現するにはどういう思考の過程をすればたどり着くのか」といった、自分で取り組んでいくための考え方を「聞いて教わる」のではなく「体感」することから教わった時間でした 。

どうしてもカリキュラムを進める学習は受け身の作業になってしまい、手を動かす量と理解した量に開きが出てしまいます。

自分で考えて書いてみるというのは、量と進むスピードは逆ですが、理解が違います。

 

これはオンラインでは気付かない、オフラインで学ぶ強さを感じた瞬間でした 。

そして地元に帰り、年を越します。

 

YOCCI先輩に会う

 

幼い頃から習っていた剣道の先輩がエンジニアという情報を薄々聞いていて、たまたま帰省して先輩達でご飯を食べる情報を聞いた私は、ここぞとばかりに自分も行きたいと言い、偶然を装い会うことに成功します。

そして中華料理屋にパソコンを隠し持って向かい、時間内で聞けることを聞きました 。やはり私はもっと基礎的な部分を知る必要があるのでした 。(先輩方本当にすみませんでしたm(__)m)

それがきっかけで知ったこと

・サーバーの概念(centOS、ubuntu、etc…)

・OSの概念(Windows、mac OS、Unix、Linux、etc…)

・通信方式のあれやこれ(FTP、SFTP、SSH、SSL)

ここら辺自分的にめちゃくちゃ理解しづらいです 。

そして使ってないから動かして覚えなということで、壊しても良いというサーバーを使わせてくださり(泣)、コマンドと構造をまた少し覚えます 。また、※バルスコマンドの存在も知ります 。

 

 

おわり

そんなこんなで1月は当時の職場も繁忙期にだったこともあり、こつこつとこのような環境周辺について、知識を蓄えたり手を動かすことで2月に突入してしまいます  。

→後半へーつづく(PHP、DB、本を読む。そしてEVERRISEと出会う)

 

 

p.s…

借りたまま運用しているのでEC2にサーバーの移行をしているのですが、予想通り躓きました。他にもやることがたくさんあるので、次回は上手く設置、ドメインの設定ができたらになります…

前から気付いてはいるのですが、究極に焦らないで取り組むことが結果的に一番早く進みます。
IMG_0894[1]

文系、大した学歴なし、実務・プログラミング経験なし、本当の初心者がエンジニアとして働くまでに取組んだこと(0~3カ月)

 

こんにちは 。色々未設定ですが投稿しました 。伊藤 大智です 。

6カ月弱、プログラミングを学び始めて経ってしまいました 。完全初心者がこれまでに取り組んだことと今思うことをまとめました 。

 

はじめに

 

マトリョーシカのイメージをいつも持とうと思いました 。
プログラミングでやっていることって、「地球があって土地があって家があるから人が住んでいます 。」みたいな、現象を、Webの世界では1つ1つ分解して考えて、「通信」っていう素材と「言語」っていう表現方法で「それはこういうものです 。」って1つずつ定義して、それを繋げて(合体させて)架空の世界を作っていくって感じだと思います 。
そして地球は人間が作ったものではありませんが、その本当に細かくて細かくて細かい所まで、Webの世界はちゃんと人間が作ってきたもののようです。(らしい)だから作った通り、なんでも実行の命令の通りに動きます 。世界征服できる人が地球作りから始める感じをイメージしました 。
そういった自分の意識のないところでも(大きくも小さくも)ずーーっとプログラムされているということは(知らないんだということ)理解している。というスタンスを持っていると「プログラミング」っていう世界のしくみが理解し易くなるのかなと思いました 。(自分の中ではこんな感じに言い聞かせて続けてみます。)
自分が勉強しようとはじめたプログラミング言語も、また、プログラミング言語で作られているそうです 。

 

経緯

 

公務員試験勉強のかたわら、「この内容が何に使われるのかな~」と疑問に感じる。
行政って地域のために実際は色々なことをやっているけどのに、地域の人すら知ってないこと多いんじゃないかな~と感じる。
どうせ勉強するならそういった時、実際に使えることを勉強したいと思い、プログラミングを学ぶことを決意しました。

そしてある程度こんな機能があったら便利だ ! (作りたい)というものがありました 。

 

やったこと

2015年9月あたま...

・色々な言語の存在は知っていたので名前とそれぞれの特徴を知る。
[プログラミング 言語 種類 → 検索]
ざっくりと体系的に知るのに参考にさせていただいたページの1つ

9月中旬...

・自分がイメージしているものはweb系と知る 。JAVA、PHP、Ruby辺りを検討する。
・名前の響きの良さや、ざっくり考えてRubyにする。・・・・・(実際には色々考えました 。が後で)
・Rubyの基本的なことをgoogle検索で学ぶ

そのうち、とりあえずコードを書いてみながら、かつ基礎の基礎の一部分の体験をしたページ

どう使っていくのかは分からないので作る過程の中でそれは知ろうと判断

・ブートキャンプの受講(当時フレームワークの意味はきちんと理解していませんでした・・・今もだと思いますが)

10月初旬から12月初旬まで...

techacademyのRuby on railsオンラインブートキャンプ

学んだこと・実際に手を動かしたこと

・HTMLの基礎的な仕組み
タグ、要素名、属性名、属性値、どういった種類があるか 。
・CSSの仕組み
セレクタとプロパティ、それぞれの用途に充てられている値の表現やルール、種類。
・Bootstrapの使い方とその種類
HTMLタグの属性に値を入れていくということ。グリッドシステム、ボタン、ナビゲートバー

・git、Githubの概要の理解とgitコマンド
使って使い時と意味をある程度覚えたもの・・・

init,add,clone,remote,commit,push,merge,status,diff,log,branch,checkout

不安なところ・・・オプション、通信設定(接続の設定、通信方式の違い・使い分け)

分からないところ・・・ワーキングツリーとインデックスの概念

全然分からないところ・・・チーム(複数)での使い方

      ↓

静的なプロフィールページの作成
付随的に使い、表面的に覚えたUNIXコマンド・・・pwd,cd,ls

 存在は知ったけどそこまで使いこなせないコマンド(上記以外のここの中のコマンド)

・Rubyを使った基礎知識・操作、関数・処理の種類、表記とルール
分かったところ・・・変数、処理、こういうことができますよ。ということ

 不安なところ・・・表面的に点で得た情報として頭に入ってる程度なこと。用語の概念と理解、オブジェクト指向

・Ruby on rails(Webアプリ)の仕組み、考え方、動き、構造

 通信の仕組み・・・フロントエンド、サーバーサイドについて

 RESTfulな設計について・・・メソッドなど

 動き・・・MVCモデル

 構造・・・フォルダの種類、用途

railsでメッセージボード、ツイッタークローン、アマゾンのAPIを使ったモノリストの作成

 作りながらmodel,view,controllerの物理的な部分に取り組む

4つで学んだことをふまえたサービス開発

今思うこと

これが最初の約3カ月でやったことです 。

rubyとrailsの部分はかなりざっくり書きました。(また後で書きます 。)

 

そうです 。ぶっ飛びすぎです 。

赤ちゃんがハイハイしたり立って歩く前に、いきなり自転車に乗って爆速でこぎ続けてしまったような状態でした 。

フレームワークを使わないでまずは何ができるのか、ということをよく知らないで使ってしまいました 。

よく表面的でさえ、一通りやったと思います 。

自分で考えてやってみようとすると、なかなか上手くいかないと思ったことも、全く手が動かなくなってしまうことも、そして空想的イメージ(作りたい)が物理的なイメージ(コード)に繋がらないのも、フレームワークというマトリョーシカの中のマトリョーシカを知らな過ぎたことが原因のようでした 。

そして一旦、ここの段階(レベル)で作り悩むことは止めよう(なんか違和感を感じる)と思い、そっとパソコンを閉じるのでした

 

総じてまず思ったこと...

言葉の概念を理解すること。

ひたすら、まずはこれだけに尽きると思いました。
このためだけにも様々な視点からアプローチをかけることも必要です 。
これに2カ月くらいかけても良いくらいだと思います 。

人それぞれバックボーンが違うので一概にいえませんが、(というか普通は自然と順を追うのかもしれません)いきなり「プログラミング言語」についての情報を見るのは多分ナンセンスです 。
英語でthis is a penしか分からないのに英語の本を読んでしまうようなことなので 、「これはほげほげ」、「penはn回でてきた」くらいしか理解できないと同じような状況になります 。
コスパが悪いです 。

 

そして、「Web周りの知識」というものが必要だということが分かりました 。

自分はその都度グーグルしましたが、「体系的に理解していない」のと、明らかに知識が足りなさすぎて、「用語を調べてもその説明している用語が分からない」ので 、いつまでも何個もタブを開き続けることになってしまいます 。日本語のなのに日本語じゃなさすぎて何言っているかわからないのです。それは、ネットの情報の同義語や、同意語、類義語を自分の頭の中で統合することができなかったのです。そしてある程度で掘り下げるのをやめて進めていくと「なにが分からないのかも分からない」といった状況になります 。

 

そしてそれからなにをするのかというと...

言葉の概念を理解すること。

を始めます 。

→つづく(3~4カ月目へ)

おわりに

ちなみにブートキャンプではメンターさんがいて、週に2回担当してくださる方とのビデオチャットでの相談、いつでも質問自体は投げて良い受講生とメンターさん共有のチャットツール(メンターさんだけでも10数人いて気付いた方が返答してくれます。注:即レスは15時から23時の間)で躓いたところをサポートしてもらえます 。質問するために何が分からないのかを理解したり、文章として可視化できるので、一人ではじめてしまった 、会って聞ける人がいない、会いに行く時間がないという方にはおすすめです 。また、これらのツールはプライベートでもそういう方がいれば状況が伝えられ、アドバイスを貰い易いので本当におすすめです 。特にappear inはアカウント登録ないし話しながら文字打てるし画面共有もできてしかも複数可なのでかなり便利です 。クオリティもラインよりは良いです。(デメリットは英語なこと)しかし検索する力(習慣)は始めのうちから付けないといけません 。

そして初心者という言葉は「他の言語は学んでて今から学ぶ言語については初心者」という方も初心者なのでした。
プロを目指せる中身は人によっては、「プロがすることのような体験ができる」といった感じになる場合がありました 。