久々更新ですが、今回は駆け出しエンジニア向けに記事を書いてみます。
先日Twitterで下記のようなツイートをした所、リプライ(返信)の数が300を超える反応を頂きました。
【ゆるぼ】このツイートに「駆け出しエンジニアが学習で躓かないために知っておくべき情報」をリプライでお願いします。
— 井上慎也@駆け足エンジニア (@ino_dev) 2019年2月13日
1番有益な内容だった人が優勝。
※優勝賞品:Amazonギフト券500円分🤣
※タイムリミット時にいいねの数を参考に独断で選びます😊
「駆け出しエンジニアが学習で躓かないために知っておくべき情報」で募集して、
こんなにリプライつけてくれるなんて、ITエンジニアの方は地味に面倒見よい方多いですよね…!
んーと、
— T.Adachi (@adachi_0523) 2019年2月13日
「駆け出しエンジニアが学習で躓かないために知っておくべき情報」
→とりあえずここのリプライ一通り全部って答えたいです。(笑
いやぁ、今回 どれも本当に良いことばかりだった ので本当は全部見てほしいのですが、多すぎるので観点をまとめて抜粋して紹介して行こうかと思います。
日々学習している未来のITエンジニアの方の一助になる情報もあるはずなので、これを活かして学習を進めて頂けたら幸いです。
- 学習中の心持ちに関すること
- 学習計画・習慣付けに関すること
- 学習の進め方に関すること
- 学習出来る環境作りに関すること
- エラーや分からないことに対する心構えに関すること
- 情報の取捨選択に関すること
- 技術・開発環境の選択に関すること
- オススメの学習教材とサービス・選び方に関すること
- 今回の優勝ツイート
学習中の心持ちに関すること
他人を意識しすぎたり他人と比較して焦らないこと
なにがやりたいかを忘れないこと また失くさないこと
— ケルビン@斜壊人 (@legendkelbin) 2019年2月13日
他人と比較しないこと できないことを悔やまないこと
とかになるんですかねー。情報というより教訓ですけども。
ツイッターとかSNSの有名、優秀な人を下手に目指さないこと。
— MR.Goat@個人事業主 (@Morigori_Kazu) 2019年2月13日
かな。
ツイッターは、怪物クラスがたくさんいるので、レベルの違いを感じて挫折しないこと。(自分にも言える)
— よし (@PrhAaujDqUZJDLl) 2019年2月13日
現実世界では、勉強会に行かないとなかなかエンカウントしない。僕のSESでの観測範囲内では。
自分に、負けない!
— エンジニア婦人 (@naho_osada) 2019年2月13日
スキルは中々進歩が見える化出来ず、ついつい他人を見て焦ってしまいがちですよね…。
ただ、本来意識すべきは昨日の自分だけなので、良い意味でマイペースに成長していきましょう。
自分の価値観や目的に従うこと
教えようとしてくれる方、自分よりできる方に耳を傾けることは大事なことですが、
— sachiko (@854729) 2019年2月13日
自分の勉強方法などを否定されても気にしないで、まず自分を信じてあげてください。
『こうしろ』っということが、あっていることもあれば、その人だけがいいと思っていることあると思います。
馬鹿にする人と付き合わない
— 富樫 進太郎@エンジニア (@TogAShi0823) 2019年2月13日
インターネットで上から目線でアドバイスしてる気になってる人の意見は完全無視しておk
— れとるときゃりー💛webサービス開発で生きていきたい (@retoruto_carry) 2019年2月13日
「どれだけ手を動かすか」が一番大事
「フレームワークは甘え」とか、今どき「〇〇は時代遅れ」とか言ってくるやつを気にする必要はない。マウント取ってくる奴は大抵老害でしかない。
特にネットでは心無い言葉を平気で言ってくる人もいます。
自身の価値観に合わない人も勿論いるので、正しい情報を得ながら、自分で自分の船をこぎましょう。
好きになる・楽しむこと
好きになることが一番大事かなと🤔
— そっすぃ🏀大学生えんじにあ🐣の卵 (@345__Sossui) 2019年2月13日
ときめかない勉強は飛ばしてときめくとこから勉強する
— 中村 優輝 (@yuki_027) 2019年2月13日
経験だけに頼らず、自分で興味を持って動かしてみること。
— riko (@riko46108259) 2019年2月13日
人から聞いたことは自分でも実証して確認すること。
受けた仕事は何が何でも完成させること。
楽しいと思う気持ちを忘れない。
・楽しいところだけつまみ食いしよう。
— Masaki@Web技術者 (@plus_one_masaki) 2019年2月13日
・誰かに課題を出してもらおう。
・動いたら人に見せよう。
楽しんでこそ人は成長できるんで、自分から楽しめる環境を作ってくのがいいと思います😇
ITの世界はとても興味深く、特に知的好奇心や創作意欲などが刺激される分野だと思います。
自分のワクワクする状態を健全に保って進めていきたいですね。
プロ意識を持つこと
駆け出しエンジニアを名乗らずにプロの自覚を持って走り出せば躓くことも無いと思います。
— KANE@Podcast生やすおにいさん&占いエンジニア&おしごとam (@higuyume) 2019年2月13日
なので、駆け出しエンジニアを名乗るのをやめましょう!!!
実務しながらの学習は100%躓きません。
— きっかわ@パパエンジニア (@masakikikkawa) 2019年2月14日
必要は発明の母!
まずは学習が絶対に必要な環境に身を投じてしまいましょう!
勉強するくらいなら仕事にしてしまう(やらざるを得ない環境をつくる)
— しょうたろう🐘抜け駆けしたいエンジニア (@_syotarow) 2019年2月13日
やはり実践の場に身を置くのが、スキル習得も早く良い意味でのプレッシャーや良質なインプットが得られます。
特に技術力の高い方の書いたソースコードなどを見ると考え方などがとても良い勉強になります。
立場や価値観による所もあるかと思いますが、基礎の実力をつけられているのであれば、プロ意識を持って取り組める場を探してみるというのも良い選択肢かもしれません。
学習計画・習慣付けに関すること
学習を継続すること
S字学習曲線を意識する。
— kei nakoshi (@shima_ahg) 2019年2月13日
少しずつうまくはならない、ある日急にうまくなる。自分の成長が感じられない事に焦りすぎない。
一部の人を除いて、プログラミングに才能があるかないかなんて関係ない。
— Gunji Kamiya@Developer (@GunjiKamiya) 2019年2月13日
必要なのはプログラミング学習を続ける努力ができるかどうか。
5年や10年、ずっと「駆け出しエンジニア」でもいいから、諦めずに続けることが大切!勉強すればできることは必ず増えていく!途中でやらない時期があってもいいし、また駆け出しエンジニア名乗って勉強再開したらいい!続けていればいつか「駆け出し」が取れるはず!
— いのいち (@inoichan) 2019年2月13日
・「初心者」を騙る技術書は初心者用ではない場合が圧倒的に多い
— 白烏 (@White_Raven777) 2019年2月13日
・「産むが易し」。手を動かした方が早い
・やってみて、「自分の脳に馴染まない」と思った言語より、「これは馴染むぞ」と思った言語を習得しよう
・躓くこと自体は悪ではない。それを恥じて逃げ、立ち上がることをやめるのが悪
続けたやつが1番
— Akuma@エンジニア転職活動中 (@all_akumasan) 2019年2月13日
「全部理解してやろう」という意気込みでむかいつつも「わからなければスルー」する図太さ。
— チャクラ先輩@遅咲きプログラマ (@paisen77) 2019年2月13日
つまり、「根気よくやる気構え」。
サボってもいいし、のんびりやってもいい。
ただし、合言葉は「絶対にやめない」
挑戦前
— 堀川登喜矢🐣生意気Chick (@HorikawaTokiya) 2019年2月13日
・為せば成る
・案ずるより生むが易し
・虎穴に入らずんば虎子を得ず
挑戦中
・楽あれば苦あり
・ローマは1日にしてならず
・遅牛も淀早牛も淀
n回目
・過ちて改めざる是を過ちと謂う
・聞くは一時の恥聞かぬは一生の恥
日常
・光陰矢の如し
・玉磨かざれば光なし
最も多かった内容の1つが「継続は力なりの精神でやっていく」というものでした。
当たり前ですが、数ヶ月でバリバリ出来るようになるものではないです。
中長期的にコツコツ、無理せず続けられるように考えることが重要ですね。
出来るだけ毎日やること
5分間でいい。
— +翠凛堂+suirindo (@coffee_to_hon) 2019年2月13日
どんなに疲れた日でも、コードを眺めること。
目を慣れさせること。
10分でもいいから毎日やれ
— しろがみ/1Q GPA3.3 (@SirogamiE) 2019年2月13日
ログ嫁。ソース嫁。ドキュメント嫁。
— Toki@IDE Contributer (@tokidrill) 2019年2月13日
疲れたら休め。
毎日続けろ。
忘却曲線などの話もありますが、それよりも習慣として続けるということこそが重要だと考えます。
最悪毎日でなくても、この曜日はやるというように「基本的にはキャンセルできない予定」として埋めておくのが良いでしょう。
他人に説明できるレベルの理解か意識すること
他の人と被りますが...
— omi (@pin_last_stand) 2019年2月13日
・その学習したい内容を得意としてる有識者に、どういう学習をしたか、良いWebサイトや書籍などを聞いた上で学習を始めること。
・内容がわからなかった場合の調べ方(ググり方やマニュアルの見方)を知ること。
・学習内容が他人に質問されても説明できるようすること。
基本的だと思う内容でも、改めて「他人に聞かれたらなんて説明するだろう?」と想像して、言葉にしてみるという理解度の確認方法があります。
人に教えるには普通に使う3倍は理解していないといけないなんて言われます。
これにより復習するべきかのセルフチェックが可能にもなるので、学習項目の区切りで自問してみるというのも良いでしょう。
現実的なスケジュール・目標を持つこと
半年勉強して一年働いたとしても大したものが作れるようになるとおもうな
— あしたば (@Me109E3_jp) 2019年2月13日
実際の期間はともかく、期待値の誤差が一番厄介
仕事で取り組めない人は普段の生活から優先順位が低いことを引き算して、取り組む時間の確保、パソコンに向かう習慣づけを全力でやった方が。
— mishima@プログラミングが好きな人 (@miii20170809) 2019年2月13日
量をこなせば最初読むだけでなげだしたい難しすぎると思うことも、そのうち当たり前の知識になって全体的なハードルがどんどん下がる。
(特に変な広告に煽られて)期待値が高すぎる方はかなり挫折しやすいです。
当たり前ですが…思ったよりも成果が出ないのでモチベーションが下がっていきますからね…。
これは「アフィ○ス」とか「闇プログラミングスクール」がのさばっている影響が大きいです。
出来ればまともな有識者や、同様の学習をしているちょっと先に始めた人から情報を得ながら、現実的に中長期的な学習計画を立てると良いでしょう。
中長期的な学習計画自体もレビューしてもらえるとベターです。
また、完璧なものを目指すと挫折率は上がります。
学習中は、ミニマムにまずははじめての自分のアプリを一旦公開してみるというのもフィードバックを得られておすすめなので、それを前提に計画してみて下さい。
学習の進め方に関すること
はじめから完全に理解しなくてもよいこと
「基礎を疎かにするな」って確かにその通りだと思うのですが、
— Shiki (@shiki_hr13) 2019年2月13日
基礎だからこそ難しいみたいな事が多々あるので、
慣れるまでは「とりあえず動いた」くらいのふわっとした理解で進むのがいいと思います。
最初から全てを理解しようとすると間違いなく詰みます。
詳細知識は後から勝手に付いてくるので。
大枠を捉えて細かい所の理解は後に回したほうがいい。
— まさお🕳マンホール出身エンジニア (@masaoch1) 2019年2月13日
参考書に書いてある事100%理解できてなくても別に問題ないこと
— こがわ@プログラミング教える人 (@kogawa_shunichi) 2019年2月13日
わからない自分を認める(今更ながら参戦)
— nakochi/エンジニア兼モデル (@nakochi_t) 2019年2月13日
分かることからやれ
— learning_kbyzn (@LKbyzn) 2019年2月13日
「諦めるポイントを作る」かなと。
— サトルン@超急ぎ求職中 (@satorun_x) 2019年2月13日
自分一人で学習して、プロダクト作って、、っていうのも大事ですが、他の人に聞くなり、他の方法を試すなり、別のアプローチをするためのポイントを作るのが大事かなって思います。
学習というより、新人が業務を進める上でのポイントかもしれませんが。
躓いたら一旦諦めること。躓いたところは、今の君では理解不能だ。
— ぴくるす@2/16カフェ会開くお姉ちゃん(♂) (@Pickles_gt) 2019年2月13日
それよりも、進められるところをどんどん進めよう。進められるところに学びがあるから。
分からないところにこだわりすぎると、ずっと学習が進まなかったりしてモチベーションが下がってしまう方も多いです。
分からないことを分からないままにしておくことがダメなのであって、その場で理解しなければいけないものではない場合も多いです。(というか前提知識が無いと知識は繋げられない)
今調べようとしている内容が、今学習している技術の幹なのか枝葉なのか、意識して優先度を判定することも意識できると良いでしょう。
また、分からないことはWunderListなどのTODOアプリを用いて「調べることリスト」を作り、通勤時間などで検索して徐々に理解するような運用にするのも有用だと考えています。
暗記しないこと
技術書や学習サイトの内容丸暗記する必要はないのよ。
— きあ(Chia) (@chia_ckra) 2019年2月13日
ベテランさんもわからなかったり忘れちゃったら調べてるものです。
ってあたりですかね。
自分を追い詰めちゃうと学習続かなくなっちゃうので楽しみましょう🙌
細かいことを覚えるよりも、ザックリと仕組みを理解する方が大事。
— takaiwa (@takaiwa0302) 2019年2月13日
細かい所はみんなググってる。(よね??)
(特にProgateや入門書など)何周も何周もしている方がいますが、あまり効率的とは言えないでしょう。
ググれば数十秒で出てくる内容を頑張って暗記してもあまり嬉しいことはないです。
勿論覚えられればより良いのですが、そこにコストを払うのであれば、仕組みを理解して実際にコードを書いたり構築しながら、出来ることを増やすことを優先するほうが効果的です。
利用頻度の高いものは自然に覚えていきます。
また、覚えるのではなく自分が調べやすいように、Evernoteやその他スニペットアプリ等に、コマンド一覧のような自分用チートシート(カンニングペーパー)を作って置くのも便利です。
自分で考えて応用すること
覚えたプログラムの知識は自分で改造したり、応用したりを繰り返し、自力で知識を積み上げる努力をすること。
— らいパン粉 (@elipmoc101) 2019年2月13日
入門書通りにするだけだと、つまらないし、上達しないし挫折する。急がば回れ。
読むだけじゃ覚えない。実践しろ
— ななしあ No.774 (@774a_) 2019年2月13日
勉強の焦点
— 🐚🌹@オタクなプログラマー (@kaitaku0319) 2019年2月13日
❌プログラミングの言語やコードの意味
⭕️どういうときにこのコードを使うのか、どのコードと組み合わせるのとどういうことができるのか
大切なのは基礎を覚えることではなくて、基礎の柔軟な使用法を見出だすこと
一番は取り敢えず、何かしら作ってみること
— ダーパ局長 (@darpakyokutyou) 2019年2月13日
勉強するにしても目標が無いと達成までの道順が無い
これを作ってみよう!って所から、
じゃあこれを作るにはこの言語なのか
この言語を勉強してみよう。ってなる
作る物を見いだせないと
どんな言語を勉強しても、使い道や使い方が分からなくなる
「迷ったらアウトプット」が正解!
— ひさしApp@コイン系SNS じぶんコイン開発者 (@Hisashi_vc) 2019年2月14日
「現実」という何より正しい答えが、たくさん手に入ります。
結局求められるのはアウトプット(動くアプリを構成するコードやインフラ環境等そのもの)です。
特に仕事では「こんなものが欲しい」というアウトプットが先にあって、それを作るためにインプットをします。
今までインプットしてからちょっとアウトプットしていただけでは応用がききません。
つまり、ずっとインプットに注力していたところでアウトプットはうまくなりません。
学ぶ時にも、「これはこんな風に出来ないかな?」と、常に自分なりのオリジナル要素を考えて改造するなど、右から左に流さないでアウトプットを意識すると楽しく且つ効率的になるでしょう。
特に作りたいものがある方は、基礎を学びつつ、どうやって作るのかも考えてみましょう。
学習出来る環境作りに関すること
自分で学習環境や習慣をハックすること
躓かない為にの情報じゃないですが...!
— hagi🍁(Webエンジニア) (@improve_in_Ruby) 2019年2月13日
直ぐに勉強できる環境を整える事!✨✨家に帰ったり、通勤途中でも、5分以内に勉強に入れる環境をまず作る!私はそれで3日坊主を克服しました😊
①Twitterで、エンジニアさんを沢山フォローする!
— Yuppy (@Yuppyhappytoyou) 2019年2月13日
②Progateやりながら少しフォロワーさん増えるの待つ。
③困ったらスクショ付きで出来るだけ分かりやすくTwitterで質問する!!
(すると、強強さんが教えてくれる!)
④「分からないからつまらない」が減るから楽しくなり、勉強が続けられる!
・新しい技術を使った案件は相対的に少ない
— RYUJI🤹サービス開発中 (@Liparas1729) 2019年2月13日
・パソコンの環境構築ではなく、現実世界の環境構築に力をいれるべき
・単にお金が欲しいならエンジニアリングよりもマーケティングを学ぶべき
・仮想コンテナ化技術によって環境構築にn時間かける時代は終わった
・動画のほうが学習効率が良い
私がいつも考えているのはChrome拡張などで時間管理をすべきだということですかね
— いむ@4さい (@mayouna984) 2019年2月13日
私もTwitterのしすぎで全く学習が進まないことが多かったので...こういうやつ↓https://t.co/A55mJ2Ul0Z
同じレベルの一緒にもくもく出来るような駆け出し仲間を作ることですね。一番躓くところはモチベーションが切れるところだと思ってます。
— ひさじゅ@すたてく社長(PG) (@hisaju01) 2019年2月13日
自分のことを一番わかっているのは自分です。
自分のライフスタイルや性格に合うように、無理なく学習できるように「自分をプログラムする」作業から入ると良いでしょう。
メンターを見つけること
「親身に教えてくれる人を見つける。そして言語もツールも環境も全部真似する。」
— 炭山水(ツマさんです)@システムエンジニア (@tan3_sugarless) 2019年2月13日
将来有望な分野とかはある程度慣れてから第二外国語としてやるで充分習得できます。
気軽に聞ける人を作る
— coma\( ・ᴗ・ )/タイチョウフリョウ (@scss_coma) 2019年2月13日
偉そうに言ってくる人もみんな初期は四苦八苦してたから安心しろ
嫌いになる前に休もう
20分悩んだら聞こ!!
自分が着手しようとしてる分野のスペシャリストと繋がりをもつ(SNSで良いので)
— たちゅみ! (@annmannnonn) 2019年2月13日
何かあったときに、聞ける人がいるのは、とてもやりやすい環境になると思うからです。
もくもく会等に参加して現役エンジニアの方の話をきいてみるのは大事かなと思います。
— 山本山 (@iyaya13term) 2019年2月13日
方向性に悩んだらリアルの情報を仕入れるのが良いかなーと。
twitterに居る気さくなプログラマを見つけたら相談してみる
— IZUN∀♡VR頑張るPG (@mizuki_izuna) 2019年2月13日
結構親身に相談に乗ってくれたりする
気になった勉強会にはとりあえず行ってみようで行ってみると教えてくれる人が一人くらいはいる
サンプルを魔改造して公開するのはアリ(φωφ)
MENTA or タイムチケットでメンターをつける
— いしはら | スポーツの仕事プラットフォームMERCIの中の人 (@slack_funk) 2019年2月13日
レビューを参考にして初心者にも一から優しく教えてくれそうなメンターを見つける
(相性が合わなければ他の人に乗り換えてもいい)
経済的に余裕のある方はスクールに通ってみるのも1つの選択肢でしょう。
また、最近ではメンターを見つけるサービスなどもいくつかあるので活用するとコスパが良いです。
勉強会やSNS等でも見つけられます。
結局は自分の性格や状況次第なので色々見ながら検討してみましょう。
スクールに興味がある方は下記もお読みいただけるとお役立ち出来るかもしれません。
エラーや分からないことに対する心構えに関すること
検索して情報を得ること
有識者でも分からないことはあるし、適宜ググっているという現実。
— ヤマダ🐺Web制作フリーランス🐺 (@Y_Macccky) 2019年2月13日
分からないこと、疑問に思ったことはまずググること
— きゅ〜ぶ@エンジニア3年目 (@fisherman3110se) 2019年2月13日
高校生までは暗記が得意な人が優等生だった。
— しおね@月150万稼ぐフリーランス嬢王 (@freelance_girls) 2019年2月14日
でもエンジニアはちがう。
カンニングが上手な人が優等生です。
「持ち込み可」のテストに敏感な人ほどエンジニアの素質あり。
Google検索は神
— キロカロリー 🧸🍜 (@kicalp) 2019年2月13日
ITエンジニアに求められる重要なスキルの1つは 問題解決能力 です。
その上で最も重要と言えるのが「検索力」でしょう。
分からないことは出てくるので、現役エンジニアの方も日々検索しながら仕事を進めています。
現役の人が検索しながら問題解決しているのに、初心者の人が検索しないで解決できるわけがないです。
検索も練習であり、解決した問題の数だけ成長できるので、検索しながら様々な問題に向き合っていきましょう。
英語から逃げないこと
どの言語から始めても、一番最初に力がつく言語は英語(しかもリーディングのみ)だと知ること。
— ララベルたん@肉屋のCTO (@niku_it_cto) 2019年2月13日
プログラミング関連の単語だけなので実はそんなに大変じゃない。
エラーメッセージとStack Overflowの英文に対するアレルギーをなくすのが「躓きすぎない」近道だと思いまーす\(^o^)/
「ググって英語のページが出ても諦めんな。」も付け加えておこう。
— える@個人えんじにゃーฅ( ˙꒳˙ ฅ) (@ellnorePZDR297) 2019年2月13日
(最近の機械翻訳は優秀だぞ)
トラブル発生時に日本語サイトで解決策が見つからなくてもStack Overflowに行けば大体答えがあるので、諦めずにGoogle翻訳使って頑張りましょう
— crypto cat (@cryptocat_miner) 2019年2月13日
そして検索キーワードは英単語で入れる方が情報量が多い
日本語に頼るな!
英語をちゃんと読む気があるかどうかで大きな差がつくので
— インスマウス (@Innsmouth_h) 2019年2月13日
苦手意識があったら克服する
エラーメッセージや最新のドキュメントなどは基本的に全て英語です。
最近はGoogle翻訳等の精度もかなり上がっていますし、まずは「英語から逃げない」という心構えを強く持って立ち向かいましょう。
エラーメッセージ・ログを読むこと
エラーが出てもパニックにならず、落ち着いてエラーメッセージを読む。英語が読めなければコピペしてググる。
— Masashi Yamada (@miyap_ee) 2019年2月13日
あとメソッド等はほとんど暗記する必要ないから覚えられなくても気にするな。
特に駆け出しの方で問題解決の為にオススメしたいのが、探偵気分でエラーメッセージやログを正しく理解することです。
プログラムや各種ライブラリ等からでるメッセージは言ってしまえばダイイング・メッセージのようなものです。
こんな重要なヒントを無視するなんて笑止千万です。
赤いメッセージでも怖がらずにちゃんと読みましょう。
重要なヒントを元に事件を解決する必要があるのです。(ちなみに検索は聞き込みみたいなものですね)
何がどういう情報を持つのか、知識を深めてあなたも名探偵を目指しましょう!
デバッグツールをきちんと使えるようになること
エラーが出るのは当たり前
— ハリネズミ@laravel+vue勉強中 (@shunsuke_hys) 2019年2月13日
転んだ後のデバックで起き上がる方法を学べ
デバッグツールは探偵が使えるひみつ道具のようなものです。
要は指紋を検出したり、ヒントを得ることが出来るツールですね。
一流の探偵(問題解決をするITエンジニア)は様々な道具を駆使して、論理的に考えて証拠を抑えることが出来ます。
なお、基礎として、下記のようなデバッグツールの専用の学習もしておくとベターです。
https://dotinstall.com/lessons/basic_chrome_dev_v2
情報の取捨選択に関すること
Twitterの情報を鵜呑みにしないこと
ツイッターでフォロワーの多いエンジニアが必ずしもエンジニアとして優秀なわけではないという前提でツイッターを見ること
— レイ (@rei_aizawa1) 2019年2月13日
Twitterにいるエンジニアの話は真に受けないこと。
— 元ニートのSE (@neet_se) 2019年2月13日
Twitterで最も評価が高い・いいね数の多いプログラミングスクール、教材、言語選び等が最良とは限らず、しっかりと情報収集し自分に合うものを「自分の頭で考えて」選択する必要があること。
— にのみや@未経験からエンジニアへ (@ninomiya_hy) 2019年2月13日
Twitterは2ちゃんねるみたいなもののように扱うスタンスがちょうどよいでしょう。
勿論使いようによっては有用ではあるものの、その情報の信頼性などはかなり疑わしいものもあります。
一歩引いて自分の頭で考えることを心がけましょう。
他人の成功体験等の情報を鵜呑みにしないこと
再現性100%の勉強法なんかないってこと
— ピスタチオ (@Shot072) 2019年2月13日
自分に合わないと思ったらやり方を変えた方がいい
プログラミングスクール おすすめで検索してはいけない。
— コリさん@保活広場開発者 (@1042limit) 2019年2月13日
特に会社の中などの閉鎖的な空間で起こりやすいですが、成功した人が正しいのだという生存性バイアスというものがあるので、これを意識して物事を見ましょう。
また、マーケティングとして自分をよく見せたがるポジショントークも横行しているので気にしすぎる必要はありません。
特に、事業として商材を扱っている会社が絡んでいる成功体験系のインターネットの情報は盛っていることが多く、皆がそうなれるような錯覚をあえておこさせるような書き方もされています。
数値や理論に基づく判断をして、咀嚼して自分ごとに消化する工程を踏むことを心がけるようにしましょう。
情報サイトやブログの内容を鵜呑みにしないこと
1年以上経っている記事は信用し過ぎない。
— Shunsuke Takahashi (@shun0157) 2019年2月13日
qiitaを鵜呑みにしない
— boner in Knights of the Eastern Calculus (@VueElixir) 2019年2月13日
Qiitaは半分疑え
— たべたつ (@ttabtt3) 2019年2月13日
侍エンジニア塾を疑え
— よしyoshi(なでnade) (@yoshi_nade) 2019年2月13日
特に個人ブログやメディアは、集客のために質の低い適当なことや湾曲した解釈の記事を量産して、Google検索を埋め尽くして集客を図るという商売の方法をしている場合があり情報弱者が餌食になっています。
また、個人が書いているものは特に確認せずに思い込みで出していることも多いので、複数の情報を参照して客観的に見ることは意識したほうが良いでしょう。
取り敢えず困ったら、理解が出来るのであれば初めに公式ドキュメントを見れば間違いはないです。
書籍の情報も鵜呑みにしないこと
ネットはもちろんのこと、書籍の情報でも間違っていることがあるということを知っておくことですかね。私自身の経験として、書籍の情報は絶対正しいという思い込みで、書籍通りにしているのに動かなくてはまったことがありました。間違いではなくても情報が古くなってて動かないこともあります。
— 米村歩@日本一残業の少ないIT企業社長 (@yonemura2006) 2019年2月13日
プログラミングの書籍を購入したら、まずサイトに正誤表を探しに行く。かなり訂正だらけの時がある。
— mishima@プログラミングが好きな人 (@miii20170809) 2019年2月13日
自分も誤字やコードの間違いのある技術書で時間を無駄にした思い出があります…。
Amazonのレビュー等を参考にしつつ、先輩が良いと薦めるものを使い、初めに正誤表を確認する習慣を持つと良いでしょう。
技術・開発環境の選択に関すること
学習対象にあった開発環境を作ること
どうがんばっても躓くので、
— ???@かにとも (@Tothenewfuture) 2019年2月13日
躓いた分だけ成長できると
思って躓きをたくさん経験してほしい。
とりあえず環境構築で躓きたくないなら、MacかLinux環境を用意するのがおすすめです。
XAMPPは入れるな。
— みやびさん🍌50% (@miyabi_sun) 2019年2月13日
WindowsならWSLを、
MacならVagrantを使え
最初からは難しいと思いますが、なるべく早いうちにメモ帳とかじゃなくてちゃんとしたエディタを使い始めるとか、デバッガやgitの勉強もしておくと余計な躓きが減るのかなと思います
— Kekeho (@k3k3h0) 2019年2月13日
このあたりは好みにも寄るところはあるのでなかなか難しい問題ですが…。
基本的には自分が尊敬する方や、色々教えてくれやすい方の環境に揃えるのが良いかと思います。
メンターとなりうる人たちやネットで情報発信している人たちのレベル感なども様々なので、都度色々試しながら環境はアップデートしていきましょう。
開発環境構築等がうまくいかない場合は、TimeTicketやもくもく会などの勉強会でエンジニアを捕まえて、(失礼に当たらないように)最悪出来る人に手伝ってもらうと良いでしょう。
学習対象を集中して身につけること
とりあえず一つの言語に絞って学習する!
— こよみひーろー@WEBサービスつくってます (@koyomivr) 2019年2月13日
学習中の言語が大した根拠もなくオワコンとか言われたくらいで選択言語変更しないこと
— てつ (@tobinekodori) 2019年2月13日
3つ!
— かきぴーえいちぴー🌔もうすぐエンジニア (@kakipy722) 2019年2月13日
1 仲間や先輩を見つけよう!なるだけリアルで!僕は大学の友人、Twitter経由で会った友人、セブで会った友人に助けられました!
2 自分のPCで動かそう!プロゲートの内容も自分のPCでやると発見たくさん!
3 一つの言語しっかりやろう!本当に応用効くよ!言語は違ってもやることは似てる!
教養として様々な言語などを触ってみるというのはオススメですが、基本的に柱となるスキルは選んで集中して学習しましょう。
どれも中途半端にしか出来ないと役割がもちづらく、技術者として何かを作る・仕事にするという面でも貢献度が低い場合が多いです。
また、1つを深く理解することで、他の技術を学習することになった場合にもその考え方を活かせるようになりやすいです。
オススメの学習教材とサービス・選び方に関すること
オススメ学習方法
webアプリを作る際は、フロントエンド、バックエンド、インフラ、DBなど幅広い技術が必要です。
— なおと (@naoto_7713) 2019年2月13日
まずはwebアプリはどんな構成になってるかを把握して、今自分はどこを作っているかを意識してみて下さい。
複雑に見えるような事も、1つ1つ紐解くとシンプルです。
ネット、書籍を何度も読み返すのです。
木を見て森を見ずな学習をしている方が実はかなり多いです。
全てを詳しく理解するのは無理ですが、俯瞰するようにシステム全体について解説しているような書籍や記事を探してみるというのは、特に初期段階でとてもオススメです。
抽象化と具体化を往復することで理解度は格段に上がります。
オススメ学習教材
必要なのは指針を示す適正価格の良著かな
— Yuichi Onodera (@mokemoke6502) 2019年2月13日
独学で身につけるためのプログラミング学習術https://t.co/z9JxwfPJhE
これ1冊で(´・ω・)https://t.co/ZLlbZea14M
— お料理エンジニアわかめ (@namawakame) 2019年2月13日
初心者は用語でつまずく事が多いです。知らない用語がどんどん出て来て、調べたらまた知らない用語が出て来て…
— rr_robert (@rrrobert10) 2019年2月14日
広く浅く用語の意味とイメージをつかむことが大切だと思います。
イラスト図解式 この一冊で全部わかるWeb技術の基本 https://t.co/YZR8NaQd0M @SBCrBooksから
https://t.co/F6mhZQrJG8
— コジマ🦍機械学習にハマる (@kojimanotech) 2019年2月13日
用語はこれで調べる
自分が何したいかを決めてからprogateで、勉強をする。
— いぬ@エンジニア (@azulmod5) 2019年2月13日
progateは、0円で勉強できる
次にudemyに登録して、好きな分野をもっと尖らせる
日本語で学ばない。バージョン違いで詰まるので、必ず公式ドキュメントで学ぶ。フロントは特に
— YOSUKENAKAO.me (@YOSUKENAKAO) 2019年2月13日
(自分も初心者なのでなんともなんですけど)
— いか🌔[🌱,🍓,🌸, 🍬🎶].forEach(listen); (@im_cuttlefish) 2019年2月13日
躓いたら公式ドキュメントを見れば7割方解法があります
どれもとても良さそうなので自分も見てみるつもりです…!
個人的には(ソフトウェアエンジニアを目指している方はある程度アプリが作れるようになってからで良いですが)このあたりもおすすめです。
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
- 作者: 山本陽平
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 143人 クリック: 4,320回
- この商品を含むブログ (183件) を見る
苦手意識があるものは、わかばちゃんのような内容からでも良いと思っています。
わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉
- 作者: 湊川あい,DQNEO
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2017/04/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
学習教材の選び方
各種アプリケーションツールをインストールする手順がちゃんとかかれている技術書を選ぶこと。インストールでつまずくと何も出来ない
— くわっちょ@社畜犬 (@kuwaccho0711) 2019年2月13日
本とかで挫折するのは当たり前。
— Kentaro@個人開発挑戦中 (@geeksgrowth) 2019年2月13日
本よりも動画で勉強すると、実際の画面を見ながらできるので、本よりは挫折しにくいかと思います( ^∀^)
最初にPHPの本買って半分くらいで躓いて開くなったのは、良い?思い出です笑
動画とかの後は、自分のメンター的な人を見つけれると理想かと思います😀
本から入らないでudemyで動画から始めたのは正解だと思ってます。
— Pythonの蒲焼き (@Grilled_Python) 2019年2月13日
まずは恥じずに色々な学習サイトを使い倒すこと。
— なり垢(たく:バクフーン)@プログラマー (@taku_narikiri_b) 2019年2月13日
どうせ勉強するなら楽しくできた方がいいに決まっている。
おすすめは、学習スタンスによるがprogate、schoo、paiza、dotinstall、codeprep、ramming等。
ある程度勉強したらpaizaスキルチェックやゲームしながら学べるサイトもいいかも。
具体的な話になるので一般的な有用性は薄いですが......
— Javakky (@foxgirl_nico) 2019年2月13日
Javaを始める入門者はScannerを使っている入門書を読んだ方がいいです
BufferdReaderだとそれだけで挫折するので......
あとは、オブジェクト指向の入門にはいいと思いますが、基本文法とかはCとかPythonの方が入門向きかと.......
コレは自論ですが、主教材と副教材があった方が良いかと思います。
主教材は分かりやすいのは勿論ですが、複数の選択肢があるのであれば、出来るだけサンプルが「自分が作ってみたいもの」に近いものが良いです。
ドットインストールやProgateなどは副教材として、理解の補強、つまり観点を補ったり復習したりする時に使うのに良いと思っています。
先程も言いましたが何度もやるものではないです。
ちゃんと手を動かしてアウトプットできる形で学ぶようにしましょう。
今回の優勝ツイート
完璧は目指さない。完成を目指せ
— 佐藤裕@OSSなWebデータベース公開中 (@hirossyi73) 2019年2月13日
実際に開発してみると、色んな壁にぶち当たるはず
ソース汚いとか、何度も同じ処理書いてるとか、バグばかりとか
それで挫折しそうにもなるはず
どれだけみっともなくとも、内部ぐちゃぐちゃでも、まずは完成を目指す
洗練はその後からで大丈夫。まずはゴールしよう
「駆け出しエンジニアが学習で躓かないために知っておくべき情報」としていいねがぼちぼち付いている中で良い情報なのかなと思ったのが上記でした!
過去の自分も拘りすぎてなかなか先に進めない人だったというのもありますので…。
自分もプログラミングのメンター等していますが、シンプルに、取り敢えず(初めて作ったものは)公開してみると言うのを目指して、最悪一部妥協しながらでもやり切るのが重要だということを知っておいてほしいなと思っています。
1つでも「これを自分は活かしていこう!」というものが見つかれば幸いです。