【問題解決力】開発レベルを向上させるために必要な3つのこと
初学者は一刻も早く開発できる人になりたいと思っていますね。どうしたらレベルアップできますか?秘訣は「問題解決力」を身につけることです。
エラーになったらまず現状を知る
私自身、昨今になってわかったことですが、「エラー出た。どうしよう...」とバタバタするのではなく、まずどうなったのか、どうしてエラーになったのか理解する必要があるということです。
エラー文がわからないまま、ネット上で検索し始めてはなりません。もちろんエラー文が何かを理解するために翻訳するのはokです!
まとめてみると以下の順番でエラーが出たら対処すべきですね。
エンジニアとしてレベルアップするために「エラーになったら」...
- 何がどうなっているのか情報を集める
- 情報を元に理解する
- エラー原因と対処法を推測する
- 対処法を試す
「ググれ」とよく言われますが、闇雲に調べ始めてはいけません。
エラー文をすぐにググらない
いきなりググる人が多いですが、まず冷静に今の状況を理解することが大切ですね。私も最近までやっていました。
英語である故に、どうしても焦ってしまいますよね(私だけかもしれませんが)。
思考を止めていきなり調べ出すのは、時間と体力の無駄です...
何をしていてエラーになったのか、どのようなエラー文が出ているのか、どうして動かないのかを「まず知る」ようにしましょう。そうすれば最短で答えを見つけられます。
開発する環境や実装したい機能に応じて対処
「ある機能の実装をしたい」としましょう。方法を調べながらトライしたところ、エラーになりました...。どうしましょう?
まず「英文のエラーメッセージを読む」ことから始めます。何がどうなったのか理解するようりしましょう。「どうしてこのメッセージが出たのか」をググります。いろいろと調べる中で「原因を推測」します。
いろいろと模索していくうちに、「あ、こういうことか」と気付けるでしょう。原因対処方法の案がいくつかでたら、一つずつ試していけば、エラーをなくすことができますね。
とりあえず検索したくなる衝動
「まずエラー文の分析」と言われても、英文なので辛いですよね。どうしましょう...
あなたが初学者、駆け出しエンジニアであれば「チュートリアルの通りにトライしているのになぜエラーが出るの?」と思いますよね。一つ一つタイピングミスをしていないか探す作業が始まります。
覚えておきたいこととして、焦って「すぐにググってもぴったりの答えは得られない」という点です。
色々な人がQiitaや最近ではZennで素晴らしい記事を投稿してくださっています。しかし」全てが自分と全く同じ環境であったり、同じことをしたいと思っていたりしていない」という現実を忘れてはいけません。
自分が知りたいこと、見つけたいことを端的に理解して「開発環境や作りたいものに合わせて対処」すべきです。
主張の繰り返し「まとめ エラーの意味と現状を知る」
エンジニアとしてレベルアップするために必要な「エラーになったらするべきこと」についてまとめてみました。
- 何がどうなっているのか情報を集める
- 情報を元に理解する
- エラー原因と対処法を推測する
- 対処法を試す
ぜひこの習慣を身につけて、一歩先のエンジニアになりましょう!一つ一つトライしてもダメな場合、誰かに尋ねることも忘れずに。
「どんな環境で何をしようとしたのか。何をしたのか。そうしたらどのようなエラーが出たか。エラー対処のためにこれまでどのような予測をして何をしてきたか」を質問すれば適切な答えを得られること間違いなし!
僕も早くこの考え方を知りたかったなあ...
PHPで三択クイズ!【良い勉強になった理由】
ネット上には多くのエンジニアさんが、ご自分の成果物を公開していて感謝ですね。僕はPHPを学んでいる身として、多くの方の記事を参考にさせていただいています。今日は「三択クイズ」を完成させたので、紹介しますね。
楽しくプログラミング学習をするためにぴったりだった
【学習41日目】
— うったむ / UTTAM / PHP (@PWuttam) 2020年5月11日
PHPにて「三択クイズ」を作ってみました。参考となるサイトを見ながら、自分なりに調整しつつ、ひとまず完成。少しずつ、変更を加えていきたいな。#PHP #今日の積み上げ #プログラミング pic.twitter.com/A7jlRWt0Et
完成したものを、RESUMEで公開しています。
ざっくりと、adobe XDでイメージを作り、それを「HTML、CSS、PHP」で作りました。お世話になったサイトがあったこともあり、一つ一つ確認しながら、ひとまず完成まで進めましたね。
何よりも「作る・考える・解決する」を体験でき、何よりも「楽しかった」!
デザインを整えることも学べた
「さすがに丸写しは面白くないし、独自性がないな」と思ったので、基本の設計はそのままで、中身を少しだけいじりました。
- 写真
- 問題
- ボタンの位置や形
といった感じです。
パーツが色々と異なるので、サイズや色などを自分なりに調整しました。PHPを学ぶよりも、CSSでデザインを学ぶ時間の方が長かったかも...
【もう一歩...】一般に公開するにはどうしたらいい?
とりあえず、完成まで持っていけたのは良かったですが、実際に「世の中へ公開」するにはどうしたら良いか、昨晩は考えていました。
- サーバーを借りる
- herokuを使う
といった選択肢が出ましたが、まだ決めていません。まずは無料で「heroku」を調べてトライしようと思います。
プログラミング楽しい!
個人的に作ったロードマップに沿って毎日コツコツ進んでいるのですが、「楽しい」の一言だけですね。でも「学習者」を超えて、「稼ぐエンジニア」になりたいものです。いきなりフリーランスになるのもいいけど、できたら会社に所属したい気もする。
勉強でとどめず、自分の売り込みも行っていかないと。
ではまた。あなたもエンジニアを目指しておられるなら、一緒に頑張ろう!
PHPを使って日付や時刻を表示する方法
今日は「日付や時刻の表示」方法を理解しました。方法をご紹介しますね。
こんにちは、ウッタムです。
日々、PHPに慣れるため色々なものを作っています。とりわけ、この記事にあるロードマップを指標に作業中です。
今は日付や時刻の出力方法を学んでいます。
タイムゾーンを使った表示
よく使うであろうdataという関数の使い方を学んでいます。
〜 <h1>今何時?</h1> <p>今 <?php // タイムゾーンの設定 date_default_timezone_set('Asia/Tokyo'); // dateは日付や時刻を文字列として返す関数 echo date("Y年m月d日H時i分") ?> です</p> <p>今日は <?php $week[0] = "Sunday"; $week[1] = "Monday"; $week[2] = "Tuesday"; $week[3] = "Wednesday"; $week[4] = "Thursday"; $week[5] = "Friday"; $week[6] = "Saturday"; echo $week[date("w")]; ?> です</p> 〜
更新するごとに、現在時刻と日付を出してくれます。記録として保存できますし、何かと応用できそう。
すぐに思い浮かべるのは「カレンダー」ですかね。
いい感じに使っていきましょう。
PHP使いへのロードマップ【基礎をある程度理解した人へ】
プログラミングは基本をさらっと学んだら、すぐに実践するのがオススメですね。自分なりにPHPを習得するためのロードマップを作ってみました。これを2020年5月に取り組んでみます。
PHP使いになるためのロードマップ
これまでドットインストールやProgate、書籍といった形で学んできた方は、「その次何をすればいいの?」と躓きますよね。そこから一歩先に進むために、いろいろなサイトから良いとこ取りをしてみました。
これらの課題をコツコツクリアできれば、かなりのエンジニアになるはず...(期待してる)。では、以下から達成すべきことを並べてみました。参考にしてみてくださいね。
上から順番に取り組んでみましょう!
- 三重大学で公開されているものを作る
- FizzBuzz
- 九九表
- 三択クイズアプリ
- 足し算しかできない計算機 <現在>
- お問い合わせフォーム
- 計算機(参考)
- アクセスカウンター
- 一行チャット(参考)
- カレンダー(参考)
- 住所録
- おみくじ
- ツリー型掲示板
- 予約システム
- 検索機能
- ログイン機能
- クイズ
- ジャンケンゲーム
- ビンゴシート
- クーポン機能の作成
- SNS
- SQLを学ぶ(MySQL)、Progateも
- 掲示板(フルスクラッチで)(参考)
- 掲示板(フレームワークで)
- フレームワーク・テンプレートを使う
- ECサイトの作成
- CMS作成
- API連携
どうでしょう。かなりボリュームがありますね。これらを駆使すれば、何でも作れそう!ぜひあなたも頑張ってみてください。
【成功の秘訣】たまには手を止めて作戦を立てるべし!
淡々と作業をこなすのも良いですが、人間として「考える」能力を最大限使いたいですね。プログラミング学習をしながら、たまには「手を止めて考える」ことをおすすめします。
頭の中を整理する
どうも、ウッタムです。今日はプログラミング学習にせよ、どんなことにも当てはまる「成功の秘訣」をまとめてみました。
ロボットのように頭を使わないで生きていると、あっという間に時間が過ぎていきますね。無駄に使える時間はないので、いかに最大限活用するかが大事になってきます。
それで時々手を止めて、目標を確認したり、軌道修正したりすると、一層効率よく、良い仕事ができるようになりますよ。
今日は「5月に達成すること」をまとめてみた。
— ウッタム / UTTAM / PHP (@PWuttam) 2020年5月1日
目標は今月にはオリジナルのサービスを公開。とりあえず走りきってみる!あと、お金も無視して実務経験を積みたいなあ。
目標を立てると「やるぞ!」という気持ちになっていい。
ただ毎日を過ごすよりも「〜をする」と決めると、道に逸れないで済む。
その価値を感じたのが、2020年の4月でした。「絶対エンジニアになる!」と3月に決めて、ドットインストールを主に使った学習予定を立てました。
結果、1日もかかさず、今日まで続いています。「達成したいこと」「その日その日にやるべきタスク」がはっきりしていると、無駄がないですね。
とはいえ、たまには客観的に自分の状況を分析すべきです。
私は4月末に自己修正をしました。「闇雲に模写するのでは上達しない。プログラミングで何かを作れるようになるには、作るものを決めて、それに必要なことを学ぶ」というのが一番効率の良いことがわかりました。
この大きな発見をするには、ゆっくりとした時間が必要でした。軌道修正できてよかったと思っています。
目標達成のためあらゆる手段を模索
私は「Webエンジニアになる」という大きな目標を持ち、必要なら時には手段や方法を修正するのは良いですね。
「これが良いだろう」と思っていたことが実際には異なる結果になる場合があります。
ゴールを一心に見つめ、進みながら考えるのが何事にも大切なので、文字としてまとめてみました。
サッカー選手の本田圭佑さんもおっしゃっていましたね。
ゴールをはっきり設定して、いつまでに達成したいのか、逆算して毎日や毎月の小さな目標を立てる。
— ウッタム / UTTAM / PHP (@PWuttam) 2020年5月1日
「W杯優勝」は全然諦めてない。チャレンジャー本田圭佑をつくった「たった一つのスキル」 https://t.co/k5NS5yo5WX @YouTubeより
プログラミング学習を成功させたい人の役に立つと良いですね。ぜひ駆け出しエンジニアの方、実践してみてください!
では。
駆け出しエンジニア!一ヶ月1日も休まずにプログラミングしたらどうなった?
4月中、毎日プログラミング学習をした結果と感想をまとめてみました。主にドットインストールのプレミアム会員にて取り組んでみたよ。一ヶ月で自分はどうなったか…
①プログラミングは楽しいことが体験できた
こんにちは、ウッタムです。この記事では、プログラミングを休まず、毎日取り組んだところ、どんな収穫ができたかを公開しますね。
結論から言うと
作る楽しみを味わえた
です。
引き続き何かを作っていこうという気持ちになりました。とりわけ、家族に「こんなものを作ってみたよ。触ってみて!」と紹介したところ、とても褒められました。
とりわけドットインストールを使い、「HTML、CSS、JavaScript、jQuery」とサイトにあるものを一つ一つクリアしてきました。大変な環境構築もなく、スムーズに取り組めました。
色々と作りながら、PHPを使ったバックエンドの仕事にも興味が出てきたので、Dockerを使う方法やPHPの基本を4月の末までこなしてきました。
「プログラミングは楽しいな。何でも作れる!」と子どものようにはしゃぎながら、ウイルスゆえに外出ができない時期を快適に過ごせました。
②一人で何かを作るレベルにはなれなかった
結論の2つ目として、自力で調べながら作業する力はつかなかったと、マイナス点があります。ドットインストールは素晴らしいサービスで、大好きなのですが、「自分一人で何かを作れる」ようにはなりませんでした。
ドットインストールを利用したゆえに、躓かずに前へ進み、何かの作品を作れた経験は貴重です。1人で本を見ながらの作業だと、途中で挫折していたでしょう。
でも「何かを作ってください」といった課題をこなす力がついていなかったのは残念です。
課題をこなすには、頭の中やノートでデザインや構成を考え、どの方法を使って作るのかといったことを練る必要があります。
その点でドットインストールは自転車に例えると「補助輪」がついた状況だったので、課題作成に最初からつまずきました…
【教訓】基礎を学習サイトで学んだらすぐに何かを作ろう
もし2020年4月の中旬ぐらいに戻れるのであれば、ドットインストールでの学習を止めて、簡単なサービスから取り込んでいけばよかったです。少し後悔しています。
明日から2020年の5月が始まるので、PHPを使った「課題作成」に取り組みます。もう一度PHP JunKie一つ一つクリアしながらレベルアップしようかな。
調べならが、何かを作れる経験を付けつつ、一般公開することにも励みます。ポートフォリオになりますし。
また転職サービスを利用したり、友人に自分を売り込んだりすることにも力を使う予定です。誰か実務経験を積ませていただけませんか…。エンジニアとして使えるなと思ったのは、以下のサービス。
登録するだけならタダですね。
ぜひプログラミング初学者の皆さん、ドットインストールやProgateの基礎だけをざっくりと理解したら、すぐに何かのサービスを作ることをお勧めします。これがWebエンジニア最短の方法ですよ。
引き続き自分の状況をTwitterやブログを通して公開するので、フォローをよろしくお願いします!
JavaScriptとマークアップ言語の大きな違い
プログラミング言語とマークアップ言語と呼ばれる「HTML」「CSS」の大きな違いを本日の学習で感じました。そのことを簡単に話したいと思います。
頭を使わないと
大抵のプログラミング学習のために「HTML」と「CSS」を初級だけでも学ぶことが多いですね。それから何か一つのプログラミング言語を選び、学習していきます。
2日かけて「HTML」と「CSS」の復習をして今日4/3にドットインストールにて簡単なゲームを作ったのですが、「うわー、今後ついていけるかな」と感じたほどチンプンカンプンでした。
基本を理解し、何度もサービスを作っていかないと身につかないと感じました。
知能の低い僕でも大丈夫か
大学に行っておらず、30半ばの私がついていけるのかな?と不安になってきます。35歳限界説が唱えられているぐらいなので、考えれば考えるほど、手が止まってきます。
数学が苦手なわけではないけど、頭の良い人でないといけないの?
でも大丈夫そう!なぜなら…
学校の勉強やテストと異なる
「完璧」を求めてはいけないとのことをエンジニアの方に聞いたことがあります。「スクールに行く必要ない。すべてネット上にある」という強者も。
確かにGoogle先生を利用させていただき、Webサイトから写真やイラスト、文字を通して数え切れないほど学習の助けが得られます。
動画教材としてYouTubeは最高で無料で学べます。英語の動画なら質が高いものも多いので便利です。
日本の教育環境で育ってきた人にはビックリですが、何かを作るにも「探しながら」できます。記憶する必要がないのですね。
だからざっくりと、あるプログラミング言語でできることを学んだら、すぐに何かを作ってみることをおすすめする理由がわかります。
見本を見ながら作り、後でいろいろカスタマイズすれば良いのです。このように考えるとハードルが下がりませんか?
焦らず前進していく!
本日よりJavaScriptにより色々なゲームを作り始めているウッタムです。
難しいと感じるより「驚き」の方が多い1日でした。間違ったり、躓いても焦らず、一つ一つクリアしていきます。
今は便利な世の中で、いろいろな場所からメンターの助けが得られます。ドットインストールの有料会員なら2020年4月初旬現在、月に5回相談ができるので、もしもの時には活用したいですね。
私の住んでいる町はロックダウンしていて外出できませんが、この状況がさらに僕の学習の速度を上げる助けになっています。機会を失う前に、エンジニアへ転職します!
ではまた明日(毎朝5時起き!)