突然だが、あなたはタイトルに対してどのような感想を抱いてこの記事をクリックしてくれたのだろうか?
私が想定しているものは、
・「いやいや、FEくらい簡単だろ」
・「んー、まぁまぁ難しいよね」
・「あれは難関国家試験だよ」
この3パターンだ。
もし、他の感想があってクリックしてくれたのであればぜひコメントを残してくれると、龍角散のど飴を噛み締めながら喜ぶのでぜひお願いしたい。
ちなみに、対象者は
・FE対策を教えている方
・FEを受けようとしている方
・「ふーん、初心者ちゃんの記事ね。」って感じで見てくれてるプロの方です。
三番目の方はどうぞ蒸気でホットアイマスクをしながら見てください。
環境について
Qiitaに在住しているガチエンジニアの方々なら秒殺だろうが、私の個人情報を流出させないために少しでも伏せながら僕の環境について語らせていただく。
我が高校のような専門学校のような高専のような所では、情報系の生徒は全員FEに挑戦し、大体30から60%が合格している。
私は中学でVBというゴミを触っていた程度で入学したのだが、運良くそこそこできる方(イキり)だったため、FEは難なく合格させてもらった。
もちろん入学生には、「げーむたのちい」から「CとC++とJavaとPythonはやってました。一番長いコードが2万くらいです。」ってヤツまでいる。
余裕で受かるヤツから絶対受からないだろうなってヤツまでいるのだ。
FEの王道?
私は「用語を覚え、理解すればFEは受かる」と思っている。
私も実際そうやって受かった。
たまに、丸暗記と確率論を極めて何も考えず(いや、もしかしたら人智を超えるレベルの思考で)FEに合格する猛者という例外は除く。
FEは、
午前試験は知識ゲー
午後試験は論理的思考力ゲー
と言えるだろう。
そのため、「知識には暗記。理解には論理的思考力」という戦法を教えてきた。
疑問
ある日、FEになかなか合格できない人が漏らす不満が少し気になった。
「こんなのわかんねぇよ、解けるわけがない」
ほう、果たしてそうなのだろうか。
彼が悩んでいたのは午後問題のCだ。
彼はおそらく、というか100%、午前試験を丸暗記で乗り越えて、なにも理解せずに午後試験を解いているのだろう。
私はそう思った。
しかし、FEになかなか受からない子たちを教えているうちに
「プログラミングには才能が必要なのだろうか」と疑問を持つようになった。
読者の方々はどう思うだろうか、ぜひ聞かせてほしい。
持論
私としてはこのような結論を出している。
・プログラミングには才能は関係ない。
・しかし、プログラミングには論理的思考力が必要である。
・よって、FEには「知識と論理的思考力」が必要。
対策
私の結論が正しいと仮定すると、「知識」と「論理的思考力」があればFEには受かる。
知識の対策
重要項目は3つ
まずはしっかり単語を覚える。
参考書や単語カード
用語と用語説明がとてもわかりやすく乗っており、イラストが豊富なので挫折しにくく勉強ができる本だと思う。
分からない物、気になった物はしっかり調べる。
ネットで単語解説記事やブログが多くある。
調べ学習は知識に定着しやすい。
「なんで?」という疑問が論理的思考にもつながる→午後対策
ひたすらに過去問道場
王道です。
論理的思考力の対策
「午前試験は受かったけど、午後試験は無理だった」病の発症原因の256%は論理的思考力だろうと思う。
しかし、これがマジで難しい!!!!!!!!!
できる人はできるが、できない人をできるようにするのが本当に難しい!!!!!!!
ぜひ、先輩方のご意見が聞きたいのだが、ひとまずは私の短い人生の中で学んだことを書いておこうと思う。
プログラミングをする。
いやぁ、これが一番なのでは?
基本的には自分がすでに学習している言語をおすすめする。
何もないのであれば、
「とにかく早く受かりたい!」
長い日本語が読める人は表計算
メリットは覚えることが少ない、デメリットは文が長い
これからハード系をやる人、プログラミングをやらない人はアセンブラ(CASLⅡ)
メリットは覚えることが少ない、デメリットは実用性が低い
「実用性高めで!」
ガチガチにプログラミングをやっていきたい人はC
メリットは他のプログラミング言語を楽に学び進めていける(最近のほぼすべての言語の親だから)デメリットは独学だとキツイ(堅苦しくて初心者には難しい)
実務に直結させたい人はJava
メリットは主流言語なので使用する場面が多い、デメリットは特にないのでは?
スッキリわかるJavaはうちで一番プログラミングができる後輩が教えてくれた本だ。
とてもわかりやすく感動したため、Javaの入門者には強くおすすめする。
簡単に実用的なものをやりたい、趣味でいろいろしたい人はPython
メリットは簡単で実用的、デメリットはPythonに慣れすぎるとCやJavaを書きたくなくなる(めんどくさくて難しい)
「PythonかCか」というテーマで記事を書こうと思っているのだが、Pythonは難しい部分を隠しているだけなのだ
「使えればなんでもいい」なら大丈夫だが、「真の情報技術者」になりたいのであればPythonから入るのはおすすめできない。
もちろん、CやJavaを極めた上で、「楽にちょちょいと作りたいなー」という時にPythonを使うのは当たり前だ。だって楽だから。
しかし、Pythonだけしか扱わずに「俺めっちゃプログラミングできる!」と思うのは危険なのだ。
(決してPythonを中傷している訳ではない。私自身もAIであればPythonを多用する。あくまでも、初心者がPythonを間違った方法で学んでしまうことで「なんちゃってエンジニア」になってほしくないという思いで書いている)
紙の上ではプログラミングできない。
キーボードを打ちながら、エラーに頭を抱えながら、台パンしながら、紙にメモを取りながら、参考書に頷きながらプログラミングしていくのだ。
銃の構造を必死に覚えるよりも、実践でぶっ放したほうが扱い方がわかるはずだ。
論理的思考力を高めるトレーニング
数学が得意な人はプログラミングも得意だという迷信がある、数学や物理などの勉強が活きるのでは?
テキシコーは見ていて楽しいなと思った、論理的思考力が身についたかどうかはわからない。
日常から学ぶ
「何事にも疑問を持つ」ということはとても大切だと思う。
決して疑心暗鬼になれと言っているのではなく、
「プラスチックのゴミが道路に散らばっている」という光景から
「うぇー、きたねー」で終わる人と「きれいにしよう」と思う人。
そして、「どうすればきれいな街を保てるだろう」と考える人がいるのだ。
この「考え」が論理的思考であり、「改善」を行うことが、「ビジネス」「貢献」に繋がる。
「同じ物を見て、考えない人と考える人」
これは論理的思考力において重要なキーワードなのではないかと思う。
後悔
FEに落ちた人たちに次世代に活かすことを条件に、かなり厳しめの質問をさせてもらった、
FEを教える人、FEを受ける人のモチベや心得にしてほしいと思う。
質問内容
「あなたはなぜFEに落ちたのか?」
「あなたはどうしたらFEに受かっただろうか?」
「あなたはFEに受かるレベルの勉強をしたのか?」
「あなたはなぜFEに落ちたのか?」の回答については
40%が午前試験
60%が午後試験
「あなたはどうしたらFEに受かっただろうか?」の回答については
50%が「もっと勉強すれば受かる」
30%が「わからない」
20%が「どうやっても受からない」
「あなたは何も考えずに毎日を生きていないか?」の回答については
50%が「そこそこ考えている」
30%が「そんなに考えてない」
20%が「は?」
ちなみに、私は個人的に何も考えてない奴ほどFEに落ちているなと思う。
「あなたはFEに受かるレベルの勉強をしたのか?」の回答については
100%が「していなかった」
受験も資格も同じだが、
「たまたま受かる人はいても、たまたま落ちる人はいない」
私も3年間をすべて懸けて戦った大会で負けたことがあるため、努力がすべてを解決するわけではないというのは十分思い知っている。
しかし、**FEは絶対に受からない試験ではない。**これは断言できるのだ。
本気で受かりたいのであれば、まずは努力だろう。
それでも受からないのであれば、やり方がまずい。
参考書を変える、学習方法を変える、指導者を変えるなどをすべきなのだ。
諦めるには早すぎる人をたくさん見てきた。
どうか後悔だけはしてほしくないと思い、この記事を書いた。
頑張れという言葉は好きではないので、**「一緒に前に進もう」**と、かっこつけておく。
お願い
ずらずらと持論を並べながら、「FEに受かる方法」について書かせてもらった。
最後まで読んでくれた心に屋久島があるあなたに
・感想
・批評
・アドバイス
・あなたの考え(FE合格論について、論理的思考について など)
・あなたの知識(この本がおすすめ、こういう人もいる など)
などの情報共有をお願いしたい。
一人でも多くのFEに受かりたい人がFEに受かりますように。
一人でも多くの人の情報技術力が上がりますように。
最後までありがとう。