プログラミングの勉強をするときにルーティン
皆さんこんにちは。
本日はどうやってエンジニアがプログラミング言語の学習をしているのかについてお話しします。
僕はこれまで幾つかのプログラミング言語とフレームワークを使ってきました。その時にどのようにしてキャッチアップをしているかについてお話しします。
前提条件
プログラミングの基礎を理解している
そもそも今回の記事は駆け出しエンジニアの人はあまり参考にならないかもしれないです。なぜなら、まだプログラミング歴3ヶ月などの人は基礎的なことを理解はしていない、もしくは理解はしているけれどその知識を使いこなせるほどの経験がない方だと思います。まだ、駆け出しのステージにいる人はジュニアステージに上がるために、とりあえず質ではなく量を意識した勉強をお勧めします。
広い視野で学習する
例えば、掲示板を作って言語の学習をするときにこのチュートリアルはこうしてるけど実際に開発する時はこうやったほうがいいよね。だってそうしないと別のところで後々修正が起きちゃうから。みたいな感じで色々な視点を持ちながら学習すると、その時学んだことが定着しやすいので意識しましょう
1 チュートリアルをやろう
これは言わずもがなだと思いますが、まずはどんなに簡単な言語・フレームワークでも必ずチュートリアルをやりましょう。なぜかというと、その言語特有の書き方を理解することができ、自分オリジナルのコードを書くことをg未然に防ぐことができるからです。時間がないときは実際に手を動かさなくても大丈夫です。目を通して頭の中で理解することができるくらいでも全然OKです!
これはジュニアのエンジニアに向けているかというよりは、ある程度経験のあるエンジニアにこそやって欲しいです。先ほども話した通り、ある程度の経験を持つとオリジナルのコードを書こうとする人がいるので、最近のコーディング方法を理解するという面でもぜひチュートリアルはやってもらいたいですね。
2 Githubを活用しよう
Githubに公開されているソースコードをもとに、簡単なアプリケーションを作成しましょう。そうすることで、自分で何か仕様を考えるよりも簡単にアプリケーションの開発をすることができます。また、ある程度有名な人のGithubを真似てコーディングすると意外に勉強しようとしていること以外のことも勉強になるので、お勧めです。
3 案件で取り入れてみよう
2で幾つかのアプリケーションの開発を経験したら最後は実践です。勉強である程度のことは経験することはできますが、結局は実践の中でしか学べないことの方が重要です。なので、多少単価が落ちても案件を獲得して経験を積みましょう。そのために、簡単なポートフォリを用意するか、ブログなどを通して社会的信用性を上げる案件を獲得しましょう
最後に
ITはどんどん新しい技術が登場してそのために技術のキャッチアップをしなくてはなりません。そのため、多くの人は昔ながらの技術を使いがちです。もちろん何でもかんでも新しければいいというわけではないですが、お客さんの要望を早く・安く実現できる技術なのであればその技術を使えるようになるべきです。
こんなことを書いてはいますが、かくいう僕もまだまだ未熟者なので引き続き技術のキャッチアップを行っていこうと思います。
最後まで読んでいただきありがとうございました。
効率的なリモートワーク
Youtubeなどで作業効率を上げる手段として、エンジニアであればガジェットがよく紹介されていると思います。
今回の記事では、少し視点をずらしてものではなくセルフマネジメント法についてご紹介します。ぜひ最後までご覧ください!
なぜ1日作業に集中できないのか?
まずはどうしてリモートワークをしていると集中が途中で途切れてしまうのか、考えたことはありませんか?それは、単純に緊張感がないからだと僕は考えています。
普段リモートワークをしている方は確かにと思うかもしれないですが、ふとした時に携帯を見たりすると作業が止まったりしませんか?かくいう僕も今回ご紹介する方法をするまではよく携帯を触ってしまったりしてました。
そもそも、人が1日中ぶっ通して集中を保つことはできないと思います。ただ、唯一集中を途切れさせることもなく作業をすることができる環境としては、少しでも手を止めたら期限に間に合わないという緊張感がある時だけです。
ですが、そのような環境は毎日あるかといえばそうではないと思います。
ではそうやって緊張感のある環境を作ることができるのでしょうか?
朝にやるべきこと
今回の記事で一番重要なのは朝と言っても過言ではないです。作業を始める2時間前くらいんは起床しましょう。朝ぐだぐだしてその日の作業がスタートすると、なぜかその後の作業もぐだぐだしてしまいます。そしてよくわからないけど、夜になるとやる気が出てくるというサイクルになります。これが自称夜型人間の誕生だと思います。夜型と言っている人は別に夜型なのではなく、単純に朝のスタートが悪かっただけなのです。もちろん朝は低血圧の人もいるので、そう言った人は夜型人間なのでしょう。ですが、大抵の人は単純に夜更かしをしているだけなので、一度早起きを週間付けてみるのはいかがでしょうか?
僕が朝にやっていることを紹介します。まずは、ラジオ体操をしています。ここは正直負荷のない動きができればなんでもいいです。ダンスが好きな人は、最近練習中のダンスをしてもいいです。とにかくすぐに始められるようなことをしましょう。
その後に軽い筋トレをしています。
これらをやることで、体を動かすことに対して負荷がなくなります。
時間を測って作業をする
朝に体を動かすことをするとだらだらすることがなくなり、気持ちとしては充実した状態になっていると思います。その状態に持っていくことができたら、あとはその状態を継続するだけになります。その方法として一番効率的なのはポモドーロタイマーになります。この方法は人間が一番集中することができる周期25分(作業)+5分(休憩)のことを言います。これを行うことで、長期的に集中力が持続するようになります。この方法は60分間テスト勉強したチームとポモドーロ形式で勉強した人とを比較したときに、ポモドーロ形式で勉強したチームの方が成果が出たという結果があります。なので、作業時間的には少なくなりますが、適度な休憩を行うことで最大限の成果を上げることができるようになります。注意点としては、後半になるにつれて集中することができる作業時間が少なくなります。なので、そういう時は作業時間を減らしてサイクルを増やすことを心がけましょう。
まとめ
リモートワークの効率を上げるために様々なガジェットやオブジェを購入することも重要ですが、結局は自分が作業をするのでセルフマネジメントをすることが一番の成果を出すことができるので、ぜひ皆さんも実践してみてください。
エンジニア1年目にすべきこと
エンジニアの1年目は非常に重要な期間と言っても過言ではないです。
僕もエンジニア歴2年でフリーランスへ転身しましたが、それができたのは1年目の勉強があってこそだと考えています。
今回の記事ではエンジニア1年目の人がこれからどのように勉強を進めていけばいいのかについて参考になればなと思います。また、新卒をこれから育成しようとしている企業様の参考になればいいなと思いますので、ぜひ最後まで読んでくださいl!
質は求めない 量だけを求める
これはエンジニアに限った話ではないのですが、人間何をするにしても一定のラインを超えるまでは質を求めるのではなくとりあえず量を求めるようにしないとなかなか成果は出ません。もちろん、ただ闇雲に勉強をすればいいということではないですが、あまりにも効率を求めすぎてなかなか行動に移せないのは勿体無いという話です。例えば、「今後のトレンドの技術について調査をしてその技術を勉強しないといけない」
と言った思考ですね。確かに、トレンドの技術を勉強することはとても重要ですが、まずは基礎的な思考法であったりだとか、設計など最新技術以前の問題が山ほどあります。なので、最近のトレンドを追うのではなく現在最も利用されている言語・学習コストが低い言語を見つけその言語を勉強した方がいいです。(トレンドの技術は1年後には変わっているので、基礎的な実力がついてから最新の技術を勉強する方が効果的)
1領域だけにとどめるな
大きなプロジェクトになると1つの領域を専門的に経験していくことになると思います。ですが、価値の高いエンジニアになりたいのであれば全ての領域に精通しておいた方がいいです。なぜなら、上流工程を担当する人材になりやすいからです。確かに1領域を専門とするエンジニアはPGとしてはとても頼もしいですが、僕個人としては技術力が高いエンジニアよりも、売り上げを上げてくれるエンジニアの方が価値が高いと考えるからです。広い視点を持ってお客様の問題を解決することができるエンジニアこそ価値が高いのではないでしょうか?また、広い視野を持っていると技術の学習をするときに、すっとその知識が入ってくるのでおすすめです。
専門性を作れ
先ほどのタイトルとは真逆のように聞こえますが、少し違います。専門性があるがその他は全くの専門外のエンジニアと幅広い経験をしてきたが、強いて言えばフロントエンドが得意です。というエンジニアであれば後者の方が価値があると考えるからです。どの分野も自信がないですというエンジニアだと営業力に欠けるのが一番の理由ですかねw。
まとめ
僕が1年目の時は平日も休日も暇さえあれば勉強してました。そんなに勉強してもまだ学習することは山のようにあります。なので、逆にいうと業務時間でしかプログラミングをしていないようなエンジニアはかなりの時間をかけて成長するしかなくなります。
そうなるとエンジニアの一番のメリットである若者でも給料が高いというメリットがなくなってしまうと僕は考えます。なので、新卒の皆さんは騙されたと思ってたくさん勉強してください!
応援しております
AWS APIGatewayでつまづいた
現在の案件でAWSの他のサービスにあるデータを使って処理を実装しているので、どうしてもAWS Lambdaを使う必要がありました。そのため、久しぶりにAPI Gatewayを使ったところ、レスポンス情報として403エラーが返ってきてしまうので、色々ためしました。その備忘録の記事です。
手当たり次第に解決策を模索
そもそもこのAPI Gatewayの構築は僕が実装したのではなく、他のメンバーが途中まで実装をしてくれているところに僕が手を加えたので、どこができていないのかの確認から始まりました。
403のエラーが出るということは、権限周りがうまくいっていないのは皆さんすぐにわかったと思います。僕もそうだと思い知っている限りの修正を加えました。
デプロイがされているか
そもそも、リソースの設定をやるだけやってデプロイをやっていないではないかと思い確認してみると、デプロイがされていませんでした。(まだ結合テストの段階だからそれはデプロイしてないか。。。)
なので、リソース部分でデプロイの作業を実施
→結果 特に変化なし
CORSの有効化
確か、デフォルトでは有効化になっているから問題ないでしょ?とは思いつつ一応確認はしてみました。
→結果 やっぱり有効化になってた
CloudWatchでログを確認
もうわかんなくなってきたので、CloudWatchのログを見ようと確認してみました。ですが、デフォではログの書き出しは行なっていないようでした。なので、新しくロールを作成してログを確認
→結果 なぜかログが出ない?
ステージの部分でログを有効化していなかったのが原因のようでした。なので、ログを有効化にしてからもう一度確認。
リソースポリシーの設定
次にポリシーの部分の設定ができていないんだと思い、確認してみるとポリシー部分は白紙状態でした。
これだ!っと思ったのでポリシーを修正
→結果 特に変化なし
まとめ
どうやらリソースポリシーの設定がうまくできていなかったようでした。
API Gatewayで困ったときはこの記事を参考に403エラーを解決してください