プログラミングを行う上で頭に入れておくべきこと 3つ
こんにちは。
テックキャンプではオリジナルアプリ制作に取り掛かり、毎日qiitaやgoogleで調べながらちょこちょこ進めております。しかし、プログラムが複雑になると、基本的な考え方が頭から外れ、一つの問題を無限ループで考え、眉間にシワが寄る事が多々あります。
今回は、プログラミングを行う上での基本的な考え方を、自分のおさらいも含めて記載していきます。人ではない、機械が行うプログラミングにおいて、簡単に考えておくべき点3点です。
・プログラミングは、変数と呼ばれる箱に色々代入する事ができる
・プログラミングは、if分岐(2択)で答えを出すことができる
・プログラミングは、繰り返し作業が得意である
上記、何を今更、と思う方も多いかと思います。しかしながら、この考えは複雑なプログラムを行う前に一度振り返ると、頭の中を整理ことができます。
・プログラミングは、変数と呼ばれる箱に色々代入する事ができる
例えば、「データベースから全ての情報を引っ張ってくる」という行いを、「A」という変数に代入すると、Aをして、3列目のレコードを引っ張る。Aをして、idが2のレコードを書き換える等、記述も簡単、わかりやすくなります。複雑になってくると、変数が暗号のように見えて、脳の機能が停止することもあります。。しかしながら、変数が何を指しているか、しっかり元を辿れば、必ず行うことの答えは出てきます。
・プログラミングは、if分岐(2択)で答えを出すことができる
機械が行わせているは、基本的には2択の問題。「パスワードが合っているか否か」「ユーザーがログインしているかどうか」「品物が購入されたか否か」など。基本はこの2択、○✗(true、false)を行っているだけ。そう考えると、スッキリして見えてくるものがあります。
・プログラミングは、繰り返し作業が得意である
機械は繰り返し作業を、人間よりも得意です。人が指示した事を忠実に再現してくれます。例えば、「保存された写真を1つずつ取り出す」「全てのお客様のデータに100ポイントプレゼントする」「購入した品物を1つずつ一覧表示で確認する」など。rubyでは、timesやeachメソッドがありますが、何を繰り返し表示させたいのか、根本を考えて見ると理解しやすくなります。
以上のようにプログラミングを学びはじめの私が思った、頭に入れておくべきこと3つでした。今後、もっと難しい色々な学びがあるかと思いますが、都度、記載していければと思っております。それでは。
htmlの基礎 input要素での「name属性」と「value属性」について
こんにちは。
RUBYやrailsを中心に勉強していると、htmlの部分が疎かになってしまっておりました。今回は、基礎中の基礎である「name属性」と「value属性」について簡素に記載していきます。
rails をやっていると、何か投稿したり、検索したりする場合に、ヘルパーメソッドであるform_withを多用するので、htmlのform要素やinput要素を頭の外に。急に出てきた時になんだっけと思ってしまいました。
name属性
フォームに入力して送信するデータの名前を設定することができる属性。プログラムとの紐付けには必須。
送信する値等を設定できる属性。
>|html|
||<
注目すべきは下から2行目。input要素。
name属性が"meeting[user_ids]"
value属性が<%=current_user.id%>
よって、"meeting[user_ids]"
の中に<%=current_user.id%>
を入れて送りますよ、という事。
簡単なようで、私には難しかったです。。勉強になりました。
htmlの基礎 「class属性」と「id属性」について
こんにちは。
今日は、htmlの基礎である、「class属性」と「id属性」について記載していきます。
TECHCAMPでもhtmlを勉強しますが、カリキュラム自体は、学習が始まってから2.3日で終えていた為、(復習ドリルは定期的にありましたが)、また、深く物事を覚えるというよりは、自分でhtmlを使えるようになるか、に焦点をあてられていた為、ちょっと曖昧に覚えていた所もありました。
それが今回の第にもある通り、2つの属性。
class、id、なんとなく適当に覚えていたためここで整理します。
命名規則
・同じ名前のclass属性はhtml内にいくつ存在しても良い。
・同じ名前のid属性はhtml内で1つしか存在してはいけない。
ここすら知りませんでした。
学校に例えて、classは学校における「クラス」。idは学生一人ひとりの番号(id)。
A(id)くんは1人だけど、クラス(class)には何十人かいますよね。
ただし、AクラスのAくんということは可能のようです。(class名が、contents。id名がcontensでも一応問題ないようです。)
使い分けは?
基本的にhtmlとcssのみであれば、class属性だけで事足ります。しかし、javascriptを使うことが多いとidが使われることが多いようです。javascriptでイベント発火させる時、基本的には、一つの項目に焦点があてられていることが多いですよね。
※トップページのあのボタンをクリックすると、ポップアップ画面が出るなど。
なので、基本的にはjavascriptを使う時はidを使う事を意識していこうと思います。
以上、TECHCAMP残り23日、オリジナルアプリ作成に向けて、基礎知識を再確認しながら進んでまいります。
サーバーが起動しない!「A server is already running」で私が対処した事
こんにちは。
プログラミングにはエラーはつきもの。そして、初心者であればあるほどパニックになって先に進まない事が多くあると思います。私が正しくそうです..。
今日は、ターミナルで起こったエラーを解決した方法について記載していきます。
【発生原因】
ターミナルでローカルサーバー起動。rails s でページの遷移を確認中、サーバーが処理していた時に(ぐるぐるマークが表示されていた時に)誤ってターミナルを閉じてしまいました...。再度ターミナルを立ち上げてサーバーを起動しようとしましたが、エラーが発生し、起動することができなくなりました。
エラー文は、タイトルの通り、A server is already runningという記載が。
ターミナルはサーバーを閉じている認識だが、ローカルサーバーは起動したままという状態に。
※エアコンをリモコンで「消す」ボタンを押して止めたはずが、リモコンの表示のみ消えていて、エアコンはついたまま、みたいな感じでしょうか...?
【対処法①】※結果、解決せず...ここで解決する方も!
ターミナルを再起動。
とりあえず、何でも再起動したら治るじゃないですか。(安直)
しかし、上記の通り治らず。これで治る方もいるようですので、試して見る価値はあるかと思います。
【対処法②】※結果、解決せず...ここで解決する方も!
Railsフォルダtmp\pids\server.pid
上記内にあるファイルの削除。
調べたところ、サーバー起動中のみこのファイルが存在するようですが、私が誤った閉じ方をしたため、このファイルが残ったままでした。このファイルを手動で削除し再度確認しましたが、解決せず...しかし、エラー文に変化あり。
Address already in use - bind(2) ----
上記のようになりました。
要は、既にこのポートはまだ使っているとの事。
【対処法③】※ココで解決!
lsof -i :3000
上記をターミナルで実行。3000番のポートに接続している一覧を確認。
→kill -QUIT <表示されたPID番号>
上記を実行して、再度サーバーを立ち上げたところ、無事に繋がることができました!
無事で良かったです。PCの不具合やエラーはほぼ全て自分の責任。
以後も壁にぶちあたりながらPCと仲良くやっていきます。
TECH CAMPを受講して1ヶ月で体感した、このスクールでのメリット
こんにちは。2回目の投稿となります。1回目の投稿から日にちも空いておりますが、現在もTECH CMAP(エンジニア転職)を受講しており、本意気のプログラミング学習が今日で1ヶ月半が経とうとしております。
今回は、「プログラミングをスクールで学ぼうと思っているけど、まだ悩んでいる」という方に向けて、記事を書こうと思います。
今の情報社会で、販売元が出しているHPや広告の内容を、全て鵜呑みにする人は少ないのではないでしょうか。インターネット上には様々な情報が溢れているので、その情報を精査し、自分の中で吟味して、選択をしているはずです。
彼氏彼女と食事をする店を調べる時に、公式HPではなく、評価サイトで口コミの内容や点数をみたり、知り合いがおすすめするお店にいってみたり。
「販売元が出す利害関係がある情報」よりも「実際そのサービスを体験した利害関係のない人の情報」のほうが、信用できる感じがありますよね。もちろん、赤の他人の言うことなんて信用できないですが、一第三者意見として、聞いていただければと思います。
早速本題に戻り、私が現在勉強をしている、TECH CAMPについて、
自ら受講して体感した「行ってよかったメリット」をお話していきます。
◆私が感じたTECH CAMPのメリット◆
- 勉強できる環境(教室・カリキュラム)がある
- 何度でも質問できる
- 同じ志を持つ仲間がいる
上記を一つずつ解説していきます。
【勉強できる環境がある】
プログラマーを目指す上では、当たり前のことですが、勉強をしなければいけません。
その勉強を行う上で、独学ですと何から手を付ければいいかわからなくなります。
ネット上の情報で「あのサイトがいいらしい」「あの本で勉強したほうが良い」等、無限にあふれている中で、どれを選択していいかわからなくなります。
TECHCAMPでは決められたカリキュラム、それも質問が多い箇所はアップデートされていくオンライン教材を元に、時間を区切りながら勉強を勧めていくことができます。
授業ではないので、基本1人でカリキュラムを進めていくのですが、時間が区切られている事で、短期的な目標を設定しやすく学習が捗ります。
また、時間割の中には、定期的にアウトプットタイムというものが存在し、同じチームのメンバーと自分が勉強したことを言語化する時間があります。このアウトプットタイムは、独学ではできません。同じ局面にいるメンバーと情報を伝え、聞く事によって、知識の定着に繋がっていると感じております。学校の授業も同じですが、聞く、見るだけなら誰でもできます。学んだ事を人に伝えることで、初めて形となります。その形が間違っていれば訂正し、さらに前進ことができます。
そして、教室がある事も一つの良さかと思います。今はコロナ禍で、登校できる日が限られておりますが、自宅以外の場所で気分を変えて学習に集中することができます。それもカフェのような目的がバラバラの環境ではなく、皆「プログラミングを勉強する為」に学校に来ているので、自然と身も引き締まります。
【何度でも質問できる】
独学でプログラミングを勉強すると、何度も心が折れてやめてしまう人が多いようです。何故か?
それはプログラミング自体、人との会話とは異なり、誤りのない伝え方が必要であることが大きいです。例えば人との会話で、噛んでしまったり、良い間違えをしたとしても、受け取り側が指摘してくれたり、なんか良いように解釈してくれたりしますよね。機械の指示は基本正確なので、ちょっとのミス(スペースや句読点)があるだけで、うまく作動しません。それが、人とのコミュニケーションと違うところ。心が折れる原因の一つです。
私自身、基本ノリで生きてきたので、ちょっとした言い間違いやミスも周りが笑って許してくれる環境におりました。それが、プログラミングとなると別です。句読点一つ間違えても、自己解釈して理解してくれたり、笑ってくれません。(それを修正するようなライブラリは置いといたとして)
間違いはある事を指摘してくれるのですが、その文章も最初は難解でわかりづらく何が間違っているかわかりません。
そこで、メンターと呼ばれるオンラインの先生方に聞くことができるのがスクールの良さです。先生方は、「機械は何の誤りを指摘しているのか」「どういう考え方が大事なのか」「再度同じことが起こった時にどう対処すればいいか」丁寧に教えてくれます。
それも、教え方も上手で、こちら側のモチベーションがあがるような雰囲気と言い回しで伝えてくれるので、学習へのやる気が増します。わからない問題にぶち当たりながら、プログラム経験者とお話することで、自然とミスへの対応力が付いていっていると感じております。
それも制限なく、何度でも。
【同じ志を持つ仲間がいる】
プログラミング学習は基本1人です。
基本的には自分との戦いになりますが、やはり同じ志を持つ仲間(TECH CAMPでいうところの"同期")がいると継続して頑張れる要因になります。
それぞれの最終目標は、人によって違いますが、共通して言えることは、皆がプログラミング初心者で、プログラミングを学びたい、と思っていることです。
ただ、気晴らしに集まる友達ではなく、同じ目標があるからこそ、互いにアウトプットしあうことができ、助言できます。我々のグループでは、一度も面と向かって顔を合わせたことがない方もいます。しかし、zoomを繋いで、日々アウトプットや一日の目標を言い合う事で、自然と仲間意識ができて、他の人も同じ境遇でがんばっているなら自分も頑張ろう、と思えると思います。
ちなみに我々のグループでは、時間割のない土日にもzoomを繋いで、お互いに意識しし合いながらプログラミング学習をしたりしています。
私としては、土日はやはり休みたい、ダラッとしたい、という気持ちが少なからず出てきてしまいます。その気持ちをリセットさせてくれる仲間がいることが、独学ではできない、スクールを申し込む良さだと思います。
終わりに
以上、学習をはじめて1ヶ月半で感じたTECH CAMP(プログラミングスクール)の良さでした。他のスクールについては行ったことがないのでわかりません。そちらはそちらの良さがあると思いますので、是非調べてみてください。心が折れない人、めちゃくちゃ強い信念がある人、以外は独学を選ぶよりスクールで学ぶ事をおすすめします。
ただ、そうはいっても、どれくらいまでの実力が付くのか、気になりますよね。私自身も気になります。こちらについては、私個人としても記録として、またブログで書きたいと思います。それでは。
33歳。ウェディング業界を離れ、プログラミングを勉強、そして起業を目指すお話
こんにちは。
初投稿させていただきます。
現在、TECH CAMPというプログラミング学習スクールで勉強をしている
33歳のものです。
初という事で、簡単に自己紹介と意気込みを書いていきたいと思います。
そもそも私は、ウェディング業界で働いておりました。働いていた会社は、ウェディングの中でも割と大手で、社風も良く、風通しが良い。スタッフ同士で飲みに行くことも多かったです。(私は飲み会の雰囲気が好きなので嫌々ではなく普通に楽しく飲んでました。)
仕事についても、やりたい事をやらせてくれる環境で、プランナー、広告宣伝、映像撮影、ドローン撮影、営業、新規オフィスの立ち上げなど、多岐に渡る経験をさせてもらいました。役職もいただくようになり、普通に生活する分には問題ないお給料もいただいておりました。
そんな私が、何故業界を離れ、プログラミングの世界に飛び込んだのか。
それは、常々思っていた、
「自分の行動によって、多くの人の行動や気持ちをプラスに変えたい。」
そしてその人達がまた他の人に元気を与えて、世界が元気と活気に溢れ、挑戦することにポジティブな人が溢れる事。そんなことを実現できる力が今はないけれど、折角生まれたからにはそんな事したいと心から思っています。
もちろん、お金を稼ぎたい、いろんな人に認められたい、という気持ちも全然あります。でもそれは過程であって、最終の目的は、自分ではなくどれだけ相手を変えれるか、に今はあります。結果を出さないと、耳を貸しませんよね。
その為にはまず、
・ただの会社員ではなく、自立して稼げるようになる事
・一般的な年収を越える事
・世の中が求めている事をする事
・普通に暮らしているだけでは身につかないスキルを身につける事
・クールな仕事である事(主観的)
・自分が尊敬して、心が動かされた方と同じ業界に行く事
上記が、人の心を動かす上でやる事だと思い、
プログラミングを学ぶことにしました。
上記の理由や文章はざっくりしており大分端折っておりますが、
おいおい記載していければと思っております。
33歳から初める事、結構遅いと思われるかもしれません。
ただ、この歳からやることで、同い年くらいの方にも元気を与えることができればと思っております。
このブログでは、
・プログラミングで学んだ事
・テックキャンプでの学習について
をメインに記載していきます。
更新頻度は特に決めておりません。
元々、ノリと勢いで、行きあたりばったりで生きてきた人間ですので、、
拙い文章から始まり。
1人でも、人生を考えるきっかけを与える事ができますように。