実務経験無しの既卒がSE・PGとして就職するには? [プログラミング全般]
専門性の高いSE(システムエンジニア)やPG(プログラマー)ですが、実務経験無しの既卒が就職するにはどうしたら良いでしょうか?
これから就活を始めるので、面接ではどのようなことを聞かれるのかや、人事の方と話してみて、どのようなことが必要になりそうか、逐一報告していこうとおもいます。
ストレスフリーでプログラミングを学習する方法 [プログラミング全般]
プログラミングと聞くと「難しそう」とアレルギー反応を起こしてしまう人が多いと思います。
さらに、実際にプログラミングの勉強を始めたはいいけど、難しくてつまずいてしまったという経験を持っている人も多いと思います。
どうせプログラミングを学ぶなら、それがまるで苦行であるのかのように耐えながら学ぶよりも、楽しく学びたいですよね。(実際、プログラミング、楽しいですし・・・)
私はプログラミングを勉強し初めて1ヶ月とちょっとというまだまだ初心者の段階ですが、プログラミングの勉強に対してストレスをあまり感じたことがありません。
それは、頭がいいとか、プログラミングのセンスがあるという理由では全くなくて、うまくストレスを避けながら勉強してきたからだと思います。
今日は、どのようにストレスを避けながらプログラミングを勉強していけば良いのかについて書いていきます。
基礎・基本を必要以上に難しく学ぼうとしている病
まず私が感じたのは、プログラミングの基礎・基本はそこまで難しくはないということです。
覚えるべき文法や決まりごとは、同じ言語という観点で考えれば英語なんかよりも少ないですし、単純です。
しかし、基礎・基本でつまづいてしまう人が多いのも事実です。
それはなぜでしょうか?
おそらく、難しい言葉で学ぼうとしすぎているからです。
「プログラミングの基礎を徹底的に抜け・モレなく学びたい」 と思って、ついつい難しい専門書や、初心者を対象としていないウェブサービスを使いがちです。
しかし、これははっきり言って効率が悪いです。
IT系の予備知識を持っているならまだしも、そうでない場合は、専門用語を調べながら学ぶ、といった思考のプロセスが余分に入ってくるのです。
たしかに専門用語を学ぶというのは必要なことですが、「〜しながら」といった勉強をしていると、難しく感じてしまい、挫折のきっかけになります。専門用語は、プログラミングの基礎を学び終え、本当に自分にとって必要だと感じた段階で学べば、ストレスなく学べると思います。
ですから、初学者はなるべく専門用語が少なく、図表やイラストが多く挿入されていて、平易な日本語で書かれたものを学習の基盤とするのが良いと思います。
基礎を学び終えたら何かを作るべきだという考え方
これに関しては完全に否定しません。ただし、強烈に、「何かを作りたい」という思いを持っていない限りは、この考え方も一つのストレスになりうるのだと思います。
実際、基礎を学び終えたあとに、試行錯誤しながら何かを作ろうと考えた場合、失敗することが多いです。(ここでいう基礎とは、Javaの入門書を一冊読み終えたレベル)
聞いたらすぐ疑問に答えてくれる人がいる場合は、成果物をいきなり作ろうとするという選択は良いと思いますが、そうでない場合は、基礎を学び終えたあと、さらに作ろうとしているものに要求される知識も事前に勉強しておくとストレスを減らせると思います。
同時進行でやっていくのも一つの手だと思います。
入門書を学び終えた後にオススメのウェブサイト
JavaDrive( http://www.javadrive.jp/ )
Javaでゲームを作りますが何か?( http://aidiary.hatenablog.com/entry/20040918/1251373370 )
上記二つのサイトは非常におすすめです。
「Javaでゲームを作りますが何か?」 には実際に何か成果物を作っていくときの過程が記されています。ただし、このサイトは入門書を一冊読み終えた程度では若干難しく感じます。
そこで、「JavaDrive」でわからないコードがでてきたときにその都度調べながら勉強するのがオススメです。
特に、入門書の内容は文法に特化しているため、コマンドラインでのプログラムにしかどうしても対応しきれません。
コマンドラインのプログラムから GUIアプリケーションに移行する上で、上記の2サイトは非常に有益であると感じました。
ちなみに、teratail( https://teratail.com/ )というサイトは質問掲示板サイトの中でも、優れた回答者が多く、利用者数も多いのでオススメです。
私も1度だけ利用しましたが、親切な方が多く、相互にやり取りができる仕組みが整っているので非常に利用しやすいです。さらにレベルが上がって、本格的に成果物を作る段階になったら使っていこうと思います。
プログラミングを難しくする要因 [プログラミング全般]
API(ライブラリ)が膨大であることである。
文法自体はさほど難しいと感じない。
言語という観点でいうと英語の方が難しいように感じる。
ただ、APIという関数が難しい。
エクセルでもsumやifなどの関数を使うが、プログラミングは関数のオンパレード。
膨大な数の関数を適切に使用し、数値の受け渡しをする。
まだ、末端にしか触れていないが、果てしないように思える。
プログラミングを本気でできるようになろうと思ったら、試行錯誤しながら自分のアイデアを形にしたり、とにかく成果物を作らなければならないと感じる。
さらに、自分ひとりでできるということよりも、チームで意思疎通しながら大規模なものを作り上げるとなると相当な労力であるだろう。
基礎の基礎は詰め込もうと思えば数週間で十分であると思う。センスのある人なら数日でできてしまうかもしれない。
そこから、さらにワンステップ上にいくために重要なのは、果てしない世界を歩き続ける根気強さであると思う。
そして、その根気強さは単なる根性ではなく、プログラミングを通して自分が叶えたい夢や目標に付随したものであるべきであると思う。
何のためにプログラミングを学ぶのか?
この問いはどんな時も忘れないようにしたい。
いろいろな演算子 [プログラミング全般]
コンピュータは理解力のない体力バカ? [プログラミング全般]
プログラミング言語?マシン語? [プログラミング全般]
プログラミングとは、プログラム言語の規則に基づいてコンピュータに実行させる作業の指示を順序だてて細かく記述することです。
つまり、コンピュータにもわかる言葉で指示を出すことです。
通常、コンピュータは「マシン語」という、0と1で構成された言葉しか理解できません。
マシン語でコンピュータに指示を出そうとすると、000110101000100111100101000・・・のように一見意味のない文字の羅列を用いる必要があります。
これを人間が完璧に理解するのは実質不可能です。
そこで、人間の言語に近い「プログラミング言語」を用いてコンピュータに指示を出すわけです。
プログラミング言語にはさまざまな種類があります。
Java,C言語,PHP・・・などあげればキリがありません。
例えば、
System.out.println("あいうえお");
これは、画面上に「あいうえお」 と表示させます。
英語に近くて、ある程度意味も推測できるかと思います。
このプログラミング言語をマシン語に変換する機能をコンパイラ、インタプリタ(JVM)といいます。
コンピュータは「マシン語」しか理解できません。
しかし、コンパイラとインタプリタの二つの機能を介在することで、「プログラミング言語」を「マシン語」に翻訳してくれます。
複雑で難しそうに見えるプログラミングも、やっていることは
日本語で書かれた指示書をプログラミング言語に翻訳する、というだけなのです。あとは機械が勝手にやってくれますので。
ということは人間がすべきは・・・
①日本語で指示内容を考える
②それをプログラミング言語に翻訳する
というたった2ステップで良いというわけです。
プログラミング言語を理解することも重要ですが、それ以上に重要なのは、
「日本語で(コンピュータへの)指示内容を考える」ということです。
これについては、また次回、詳しく書きたいと思います。
プログラミングは本当に難しいのか? [プログラミング全般]
「プログラミング」という言葉を聞いてどんなことを思い浮かべますか?
パソコンの前でずっとタイピングしてそうなイメージ、
難しそう、
などさまざま。
中には言葉を聞いただけでアレルギー反応を起こす人もいるかもしれません。以前の僕がそうでした。
プログラミングを勉強し初めて1週間経った今思うこと。
「なぜもっと早くやらなかったんだろう」ということ。
プログラミングの基本的な考え方さえ身につけてしまえば、そこまで難しくないのではないか?
それが一週間経った率直な感想です。
次回は、その「プログラミングの基本的な考え方」について書こうと思います。