NodataProgramming’s diary

プログラミング初心者のアウトプット広場

プログラミングで稼ぐ程の技術が身に付く?(プログラミングスクールに通った感想)

これからプログラミングを習おうと考えている人や、初学者の方は参考にしてもらえると光栄です。

僕の自己紹介とプログラミング学習に至った経緯を簡単に説明しておくと

年齢30歳、大学(教育学部)卒業後、小学校の先生として7年間働き続けました。

安定した生活に成長の限界を感じて、今稼げると噂のプログラマーになりたいと思いプログラミング学習を始めました。

令和2年11月からテックキャンプ夜間転職コースで受講。

平日は1日2〜3時間土日は平均5時間程の学習時間を費やして半年間学習しました。

令和3年5月にプログラミングスクールのカリキュラムが終了。

そして現在転職のため就職活動中です。

ここで、皆さん気になりますよね。『稼ぐ程の技術は身についたのか?』と

 

 

 

 

結論 稼ぐほどの技術力は身につきません

 

「じゃあプログラミングスクールって無意味か〜。」と思われるかもしれませんが、カリキュラムが悪かったのではなく、学習方法やマインドに問題があったと考えています。

まずプログラミング学習のカリキュラム内容はコアな内容が多いです。

具体的には、HTMLとCSSと言った、サイトの見た目を書く方法をはじめの2〜3週間に学び残りの期間はほとんど、Rubyを使って見た目の部分を表示する為の裏側の導線(MVC)や書き方を学び、さらにはサーバーを使ってフォームの内容を存する場合の書き方等についての学習が大枠を占めていました。

 

簡単に例えるなら、車の部品について教えてくれるけど、車の作り方(組み立て方)はほとんど教えてもらえない。そんな感じでした。

・車の外観は見た目は、お客さんを引きつけるために大事よ!!(HTML・CSS

・エンジンやタイヤの軸や配管ってのは、車が動くために必要よ!!(Ruby)

・車が時速何kmで動いているかわかると便利だよね!(Javascript

 

部品の事は分かっても肝心な組み立て方がわからないので、僕の場合は学習を学習として完結させてしまっていた学習方法とマインドの部分が根本的に間違っていたなと感じています。

【学習したら実践的に使ってみる】これをしないと自分のスキルは身につかないなと思いました。

実質、仕事とプログラミング学習をした後に、実践的に使ってみる時間が取れたかどうか聞かれると、睡眠時間を削るか、家事やお風呂や食事の時間をかなり短縮。

それぐらいの無理をしないと不可能だと思います。

僕は、人生に幸せを感じないと嫌なので、余暇やリラックスの時間を大切にした結果、こんなことになっているのですが。笑

結論はあまり良くないのですが、ここからどうやって行動するかが何より大事だと思っています。

まずは、はてなブログから自分のブログ開設のためにwordpressを作成できるかやってみようと思います。

 

 

初心者プログラマーがdatabase.ymlによってエラーまみれになったって話

techcampの転職コースで学習している中、年末年始の休校期間ということもあり、エラーを自分で解決しなければいけない状況になりました。

結局最後はメンターさんに相談をして、解決に至ったのですがエラーの原因を探る目はプログラマーに必須だという事を身に染みるほど感じております。

まず結論から述べると、気になった事を調べている中、作業を怠ったせいで、様々なエラーに巻き込まれるハメになりました。

怠った作業とは、database.ymlのエンコーディング記述の訂正です。

エンコーディングの訂正で、utf8mb4の記述から mb4の記述を削除をする作業があり、【mb4があると何が問題なのだろうか?】と気になって調べました。

mb4のあるなしで扱えるデータサイズが違ったり、新・旧漢字の処理に影響があるという事をなんとなく理解して、そのまま作業を行なっていました。

今思えば、気になった事は付箋にでも書いて、後で調べるという手順をとるべきでした。

結果的にはVSコードに記述したHTMLがうまく反映されなかったり、userモデルを作成しても、db:migrateの実行でエラーが起きたり、後々作業に手間と時間がかかり、休日に進めようと思っていた進行度に大打撃を受けました。(仕事が始まってから取り戻すのはキツそう)

初心者故に、自分の記録が曖昧になっていたのか?何か作業を忘れているのか?様々な疑問を抱えながら、時間と共に自分の自信も失っていきました。ですが、エラーの解決を経て、解決に至るまでの行動や考えは、今後の自分に活かしていきたいです。

『考えられるネガティブな出来事を予想して備える』事は、私生活でも仕事でも大切にしている事なので、『エラーの解決方法を知っているか』は僕にとって、プログラミングの最重要スキルだと考えています。

今の状況だと『数多のエラーを知っている』ってだけになりそうなので、合わせて解決方法を今後身につけたいです。

 

Rubyでデータの処理をする?

今回はあえて、タイトルに?を付けています。それだけでわかるでしょ?

Rubyプログラミング言語を操るのがどれだけ苦手かという事を。

本当ここ最近頭を悩ませているのが、Rubyのプログラムを組み立てる学習。だからこそできるようになりたい。そして、ブログにアウトプットしていきたい内容でもある。(頻度も上げたい)

テックキャンプの転職コースで学習をしていて、ガリキュラムの学習をする前に、Rubyで計算をするメソッドを作れやら、ifとelseを使ってどうのこうのやら。

著作権の都合上、どうやってアウトプットすればいいのかもわからないまま週末を迎え夜を迎え。週末が終わりそうです。

 

Rubyの学習をより理解するために何かいい方法はないだろうか。

繰り返し学習して覚えるしかないのかな。

Rubyの理解を深めるために良い方法があれば教えてください。

プログラミング初心者あるある〜注意するべきこと〜

プログラミングを初めて、3ヶ月ほど経ち自分の弱点を見つけたので今回は自己啓発も兼ねてプログラミング初心者あるあるという事でご紹介したいと思います。

プログラミング初心者あるある

読み間違え綴り間違え

先日も、読み間違えと綴り間違えを指定てrubyでエラーを出ました。

量の多いコードの中から間違えを見つけるのは、お母さんの手伝いで針に糸を通すようにもいかず、なかなか骨の折れる作業です。

どんな読み間違えと綴り間違えをしたかと言うと、本来

FactoryBot(ファクトリーボット)

と入力する所を

FactoryBoy(ファクトリーボーイ)

と入力していました。

これがまた自分のノートを見ている物だから、SyntaxErrorの原因が見つかりません。

僕は宇宙の彼方で目的の星を探しているのに、一生懸命衛星を追いかけていたわけです。ただ、コードの記述練習に、手打ちをしてみると意外な発見もあります。

『ここに半角スペースがないと動かないんだ』とか『意外と手打ちでも英語の綴りを覚えられるな』とか。

効率的に悪いと思われるでしょうが、失敗を知っているからこそ解決に導けるプロフェッショナルになれると僕は信じています。

 

※1以下より唐突なアウトプットになります。不慣れなアウトプットなので見苦しい点もありますが、今後の改善の為アドバイスなどいただけると幸いです。

※2gemの導入方法については省略しています。機能的な内容を記述しています。

FactoryBotについて

FactoryBotはGemの1つで、テストコードの入力を効率よくする為に使われます。

(FactoryBotは専用のフォルダとファイルを生成します)

例えば、ユーザー情報に対する、テストを行うとします。

FactoryBotを使用しないでテストコードを書くと使用した場合では、文字・行数にかなりの差があります。

FactoryBotを使用しない場合

Nicknameがからの状態でユーザー登録ができるかどうかテストするコードには、

省略

use = User.new(Nickname"" , Email"testtaro@com", Password"123456", Password_comfirmation"Password")

省略

 Emailがからの状態で登録できるかテストで

省略

use = User.new(Nickname"TestTaro" , Email"", Password"123456", Password_comfirmation"Password")

省略

のようにテスト毎に、ユーザー情報に関する記述が必要になります。

これをFactoryBotを導入して別フォルダ/ファイルにユーザー情報を記述しておく事で、短いコードかつ2行の記述で済みます。

FactoryBotのファイルを生成

 

FactoryBot.befine do

  FactoryBot :user do

     nickname                           {"TestTaro"}

     email                                   {"testtaro@com"}

     password                            {"123456"}

     password_comfirmation   {"Pasword"}

   end

end

例えば先ほどのNameがからの状態でユーザー登録ができるか確認するテストコードでは

省略

user = FactoryBot.build(:user)

Nickname = ""

省略

 でテストコードの入力が完了する。

 

更に、Fakar と before を併用する事で上質且つ高度なテストコードへと昇華させる事ができる。

 

Faker は各ユーザー情報にランダムの値をいれる事ができる。

同じNicknameやEmailが存在した場合のエラーについてもテストをしてれるので、テストコードには必ず導入するべきgemである。

先ほどのFactoryBotで記述したコードを書き直すだけ。

FactoryBot.befine do

  FactoryBot :user do

     nickname                           {Faker: :name.initialse(number: 2)}  #number:2は2文字で表すように

     email                                   {Faker: :Internet.free-email}

     password                            {Faker: :Internet.password(min_length: 6)}  #min_lengthで6文字以下にできない制限

     password_comfirmation   {"pasword"}

   end

end

 

 

before はテストコード実行前に@〇〇のようにインスタンス変数としてセットアップ(準備)する事で、短い記述でコードを呼び出す事ができる。

例)テストコード上部に

before do

@user = FactoryBot.build(:user)

end

をセットアップすると

Nicknameがからの状態で登録できるかテストする場合に

省略

@user.Nickname = ""

省略

のみになる。

テストコードは、初心者がまず受け持つ仕事に多いのできちんと理解しておきたい内容である。

 

 

プログラミングアウトプットブログ始動(ブログの指針)

みなさん、はじめまして!本ブログの管理人伊藤さとる』です。

このブログでは、プロラミングについての投稿をします。僕自身が初心者なので、自分の知識を確かめる場として活用していきます。

偉そうながら、初心者の方は、理解を深めるように(間違えた事書いてたらごめんなさい)そして、経験者の方は、後輩にアドバイスするつもりでご指摘をいただけると幸いです。

 

今回は初投稿という事で

自己紹介とブログの指針(方向性)について綴っておきます。

その辺きちんと決めておかないと、ブレちゃいそうなので(笑)

 

まずは僕の自己紹介と現状のプログラミングスキルについて

もうすぐ30歳になり、大阪で小学校の教師(講師)として7年ほど働いています

そして、現在テックキャンプのエンジニア転職コースで猛勉強中

 

転職の理由は、教員採用試験に受からないので、

小学校を作る方が手取り早いんじゃない?って思ってしまったのが原因です。

技術を身につけて、数少ない逸材になる事が僕の目標であり、学校を作る事が最終目標地点です。

身に付ける【技術】として、プログラミングを選んだ理由は、

プログラムを扱える = 自分でできる限界を超えられる と思ったからです。

便利なパソコンが世の中に溢れているのに、上手く使いこなせている人間はどれだけいるのだろうか。自分はプログラムに扱われる側の人間になってはいないだろうか。そんな事を思ったのがプログラミングを学習するきっかけになりました。

自分より有能なプログラムが効率よく何千〜何億倍も働けるように、ここでしっかりとアウトプットしていきたいです。という事で、自己紹介が長くなってしまいましたが、

現状のプログラミングスキルは、HTML・CSSRubyの基礎が終わったところで、コードの書き方・専門用語の理解はそこそこできるようになりました。

(実践的な力はこれからメキメキ身につけたいものです)

 

今は応用的な学習を取り組んでいますが、理解が難しくなって来ているのが正直な意見です。だからこそ、ブログでアウトプットをする事で自分の理解度を深めていこうと思った分です。

そこで、このブログの指針を決めておきます。(ここからが本題)

プログラミングって理解しやすい部分と、めちゃくちゃ難しい部分とあって内容も膨大です。その中でも理解が難しかった内容は自分の為にしっかりと理解をしておきたいものです。

僕にとって理解が難しいなって思う所は、きっと経験者であれば過去に悩んだ所だろうし、これから学ぶ方には同じく理解が難しい所だと思います。なので、このブログでは、

学習の中で、僕が悩んだ学習について考えた事、理解に至った轍を残していこうと思います。

なので、冒頭にも書いた通り、初心者の方には僕の解釈で知る・理解できる場、経験者にとっては自分の知識を確かめる場として活用してもらえれば嬉しいです。

 

わかりにくい表現や、間違えもたくさんあると思いますが、

本ブログを読んだ際には、ご指摘や感想などコメントをよろしくお願いいたします。