SSブログ
プログラミング全般 ブログトップ

実務経験無しの既卒がSE・PGとして就職するには? [プログラミング全般]

専門性の高いSE(システムエンジニア)やPG(プログラマー)ですが、実務経験無しの既卒が就職するにはどうしたら良いでしょうか?

これから就活を始めるので、面接ではどのようなことを聞かれるのかや、人事の方と話してみて、どのようなことが必要になりそうか、逐一報告していこうとおもいます。 


ストレスフリーでプログラミングを学習する方法 [プログラミング全般]

プログラミングと聞くと「難しそう」とアレルギー反応を起こしてしまう人が多いと思います。

さらに、実際にプログラミングの勉強を始めたはいいけど、難しくてつまずいてしまったという経験を持っている人も多いと思います。

どうせプログラミングを学ぶなら、それがまるで苦行であるのかのように耐えながら学ぶよりも、楽しく学びたいですよね。(実際、プログラミング、楽しいですし・・・) 

私はプログラミングを勉強し初めて1ヶ月とちょっとというまだまだ初心者の段階ですが、プログラミングの勉強に対してストレスをあまり感じたことがありません。

それは、頭がいいとか、プログラミングのセンスがあるという理由では全くなくて、うまくストレスを避けながら勉強してきたからだと思います。

今日は、どのようにストレスを避けながらプログラミングを勉強していけば良いのかについて書いていきます。

 

 

基礎・基本を必要以上に難しく学ぼうとしている病

まず私が感じたのは、プログラミングの基礎・基本はそこまで難しくはないということです。

覚えるべき文法や決まりごとは、同じ言語という観点で考えれば英語なんかよりも少ないですし、単純です。

しかし、基礎・基本でつまづいてしまう人が多いのも事実です。

 

それはなぜでしょうか?

 

おそらく、難しい言葉で学ぼうとしすぎているからです。

「プログラミングの基礎を徹底的に抜け・モレなく学びたい」 と思って、ついつい難しい専門書や、初心者を対象としていないウェブサービスを使いがちです。

しかし、これははっきり言って効率が悪いです。

IT系の予備知識を持っているならまだしも、そうでない場合は、専門用語を調べながら学ぶ、といった思考のプロセスが余分に入ってくるのです。

たしかに専門用語を学ぶというのは必要なことですが、「〜しながら」といった勉強をしていると、難しく感じてしまい、挫折のきっかけになります。専門用語は、プログラミングの基礎を学び終え、本当に自分にとって必要だと感じた段階で学べば、ストレスなく学べると思います。

 

ですから、初学者はなるべく専門用語が少なく、図表やイラストが多く挿入されていて、平易な日本語で書かれたものを学習の基盤とするのが良いと思います。

 

 

基礎を学び終えたら何かを作るべきだという考え方

これに関しては完全に否定しません。ただし、強烈に、「何かを作りたい」という思いを持っていない限りは、この考え方も一つのストレスになりうるのだと思います。

実際、基礎を学び終えたあとに、試行錯誤しながら何かを作ろうと考えた場合、失敗することが多いです。(ここでいう基礎とは、Javaの入門書を一冊読み終えたレベル)

聞いたらすぐ疑問に答えてくれる人がいる場合は、成果物をいきなり作ろうとするという選択は良いと思いますが、そうでない場合は、基礎を学び終えたあと、さらに作ろうとしているものに要求される知識も事前に勉強しておくとストレスを減らせると思います。

同時進行でやっていくのも一つの手だと思います。

 

 

入門書を学び終えた後にオススメのウェブサイト

JavaDrivehttp://www.javadrive.jp/

Javaでゲームを作りますが何か?http://aidiary.hatenablog.com/entry/20040918/1251373370 )

上記二つのサイトは非常におすすめです。

「Javaでゲームを作りますが何か?」 には実際に何か成果物を作っていくときの過程が記されています。ただし、このサイトは入門書を一冊読み終えた程度では若干難しく感じます。

そこで、「JavaDrive」でわからないコードがでてきたときにその都度調べながら勉強するのがオススメです。

特に、入門書の内容は文法に特化しているため、コマンドラインでのプログラムにしかどうしても対応しきれません。

コマンドラインのプログラムから GUIアプリケーションに移行する上で、上記の2サイトは非常に有益であると感じました。

 

ちなみに、teratailhttps://teratail.com/ )というサイトは質問掲示板サイトの中でも、優れた回答者が多く、利用者数も多いのでオススメです。

私も1度だけ利用しましたが、親切な方が多く、相互にやり取りができる仕組みが整っているので非常に利用しやすいです。さらにレベルが上がって、本格的に成果物を作る段階になったら使っていこうと思います。  


プログラミングを難しくする要因 [プログラミング全般]

API(ライブラリ)が膨大であることである。

文法自体はさほど難しいと感じない。

言語という観点でいうと英語の方が難しいように感じる。

 

ただ、APIという関数が難しい。

エクセルでもsumやifなどの関数を使うが、プログラミングは関数のオンパレード。

膨大な数の関数を適切に使用し、数値の受け渡しをする。

 

まだ、末端にしか触れていないが、果てしないように思える。

 

プログラミングを本気でできるようになろうと思ったら、試行錯誤しながら自分のアイデアを形にしたり、とにかく成果物を作らなければならないと感じる。

さらに、自分ひとりでできるということよりも、チームで意思疎通しながら大規模なものを作り上げるとなると相当な労力であるだろう。

基礎の基礎は詰め込もうと思えば数週間で十分であると思う。センスのある人なら数日でできてしまうかもしれない。

そこから、さらにワンステップ上にいくために重要なのは、果てしない世界を歩き続ける根気強さであると思う。

そして、その根気強さは単なる根性ではなく、プログラミングを通して自分が叶えたい夢や目標に付随したものであるべきであると思う。

 

 

何のためにプログラミングを学ぶのか? 

 

 

この問いはどんな時も忘れないようにしたい。 


いろいろな演算子 [プログラミング全般]

演算子とは簡単に言うと四則計算でした。数学の計算ですね。
前記事→( http://weekly-programmer.blog.so-net.ne.jp/2015-07-05 )
ただし、プログラミングにおいては、見慣れない演算子の用法もあります。
前記事で説明した演算子は算術演算子と呼ばれています。

今回は①代入演算子と、②インクリメント・デクリメント演算子について説明します。


①代入演算子
代入演算子の代表格は「=」です。
数学だと、左辺=右辺ということで、等しいということを表しますが、
プログラミングにおいては少しだけニュアンスが異なります。
プログラミングにおいては、右辺を左辺に代入するという意味です。

例えば、
a=3
数学的にはaと3は等しいという意味になりますが、プログラミングでは3をaに代入するということになります。
この例だけだと、「あれ、右辺を左辺に代入するってことは、両辺が等しくなるんだから、結局同じじゃん!」とつっこまれてしまいそうですね。

ということでもう一つ例をあげます。

a=a+3

え?っとなった方はきっと数学的な視点でこの式を見ているのだと思います。
もう一度言います。
プログラミングにおいては、「右辺を左辺に代入する」という意味です。
aと3を足したものをaに代入します。
結局、aはa+3になります。
仮にaが5だった場合、5+3をaに代入するので、aは8になります。

少し違和感があるかもしれませんが、そういうものだと割り切るしかありません。

他には
+=といった書き方もあります。
a+=3
これは、
a=a+3と同じ意味です。
-など他の演算子に対しても同じような使い方ができます。



②インクリメント・デクリメント演算子
インクリメント演算子・・・a++
デクリメント演算子・・・a--
これは、1だけ増減したい時に使えます。
a=a+1や、a+=1のような場合に楽することができます。

public class Main{
 public static void main(String[] args){
  int a=3;
  a++;
  System.out.println(a);
 }
}


実行結果

4


演算子については、このようにプログラミング特有のものがあるので、慣れていきましょう。

次はプログラムの流れについて説明していきます。

コンピュータは理解力のない体力バカ? [プログラミング全般]

前回、プログラミングの仕組みについて簡単に説明しました。

その中で、プログラミングをするための2ステップとして、
①日本語で指示内容を考える
②それをプログラミング言語に翻訳する
をあげました。
今回はこの①日本語で指示内容を考えるということについて掘り下げて説明していきたいと思います。

指示をする場合、支持される側の理解力と実行力を吟味する必要があります。



(以下、しばらくは具体例です。読み飛ばしても構いません)
理解力の例
「この部屋暑いね」
と言った時、大人ならクーラーを効かせ、冷たいお茶を持ってきてくれるかもしれません。
しかし、同じことを幼稚園児に言ったとします。よほどできた幼稚園児でない限りは「あつい〜」などと言うだけでクーラーを効かせる、お茶を持ってくるというところまで気が回らないでしょう。

実行力の例
「毎朝10キロ走ってください」
というようにマラソンランナーと高齢者に指示します。
マラソンランナーにとっては毎朝10キロのランニングは苦になりません。
しかし、高齢者にとっては毎朝10キロのランニングはかなり厳しいと思います。
ーーーーーーーー

①の例からも分かるように、同じ言葉を同じ状況で発しても、受け取る相手によって対応が異なります。
1を聞き10を知るのか、
1を聞き1を知るのか。
コンピュータは後者です。
言われたことしかできないのです。
だから、コンピュータに指示を出す時には指示内容をなるべく細分化しなければなりません。
このぐらいでわかるだろう、あとは察してくれ、というのはコンピュータには通用しないのです。
コンピュータは言われたことしかわからないのです。

一方で、コンピュータは言われたことなら着実に遂行することができます。
こんなにいっぺんに指示を出したらかえって頭がこんがらがるだろうなとか、余計な心配をする必要はありません。
むしろおせっかいだと思われるほどに詳しく説明してあげることがコンピュータにとっては親切なのです。


次回はいよいよ簡単なプログラミングをやっていきます。


プログラミング言語?マシン語? [プログラミング全般]

プログラミングとは、プログラム言語の規則に基づいてコンピュータに実行させる作業の指示を順序だてて細かく記述することです。

つまり、コンピュータにもわかる言葉で指示を出すことです。

通常、コンピュータは「マシン語」という、0と1で構成された言葉しか理解できません。

 マシン語でコンピュータに指示を出そうとすると、000110101000100111100101000・・・のように一見意味のない文字の羅列を用いる必要があります。

 これを人間が完璧に理解するのは実質不可能です。

 

そこで、人間の言語に近い「プログラミング言語」を用いてコンピュータに指示を出すわけです。

プログラミング言語にはさまざまな種類があります。

 Java,C言語,PHP・・・などあげればキリがありません。

 

例えば、

System.out.println("あいうえお");

これは、画面上に「あいうえお」 と表示させます。

英語に近くて、ある程度意味も推測できるかと思います。

 このプログラミング言語をマシン語に変換する機能をコンパイラ、インタプリタ(JVM)といいます。 

コンピュータは「マシン語」しか理解できません。

しかし、コンパイラとインタプリタの二つの機能を介在することで、「プログラミング言語」を「マシン語」に翻訳してくれます。 

 

複雑で難しそうに見えるプログラミングも、やっていることは

日本語で書かれた指示書をプログラミング言語に翻訳する、というだけなのです。あとは機械が勝手にやってくれますので。

 

ということは人間がすべきは・・・

①日本語で指示内容を考える

②それをプログラミング言語に翻訳する

というたった2ステップで良いというわけです。

 

プログラミング言語を理解することも重要ですが、それ以上に重要なのは、

「日本語で(コンピュータへの)指示内容を考える」ということです。

これについては、また次回、詳しく書きたいと思います。

 

 

 


プログラミングは本当に難しいのか? [プログラミング全般]

「プログラミング」という言葉を聞いてどんなことを思い浮かべますか?

 パソコンの前でずっとタイピングしてそうなイメージ、

 難しそう、

 などさまざま。

 中には言葉を聞いただけでアレルギー反応を起こす人もいるかもしれません。以前の僕がそうでした。

 プログラミングを勉強し初めて1週間経った今思うこと。

 「なぜもっと早くやらなかったんだろう」ということ。

 プログラミングの基本的な考え方さえ身につけてしまえば、そこまで難しくないのではないか?

それが一週間経った率直な感想です。

 

次回は、その「プログラミングの基本的な考え方」について書こうと思います。 


プログラミング全般 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。