
プログラミングの仕事をしていると、よく人から「プログラミング教えてよ」とか「自分もITに強くなりたいんだよね」という風に言われることがあります。
異業種交流会や、セミナーに参加して名刺交換した時などに、よくこうした話になりますが、実際にプログラミングを教えているユゲタとしては、どうすればプログラミングが上達するか?という質問もよく受けます。
これからプログラミングを始めようと思っている人や、今現在プログラミングを学習していて、もっと上達したいと考えている人などからよくされる質問10個を紹介してみたいと思います。
ちなみに、ユゲタがその質問を受けた時に、どのように返答しているかも書いておくので、参考にしてもらえると幸いです。
1. どのプログラミング言語を学ぶべきか?
基本的に最初はどのプログラム言語を学習してもいいですが、ジャンルを選ぶことによって、学習する言語が決めやすくなります。
web系
HTML, CSS, Javascript, PHP(またはRuby)
AI学習系
Python
ビジネス用システム
Java、C#, VB
サーバー、ネットワークエンジニア
Shell, AWK
古典的なプログラミングに興味がある場合
COBOL, Fortran
とにかく基本が学びたい場合
C言語
ゲーム好きのプログラミング得意な中年おじさんの学んだ初期学習をやりたい場合
BASIC
2. プログラミングは難しいですか?
どのプログラム言語でも、簡単なプログラムから、難しいプログラムまで、学習をしていくと奥が深いことが分かります。
難しいかどうかよりも、楽しいかどうかを聞いたほうが恐らくポジティブに受け取ることができると思いますよ。
ちなみに、どんなに簡単なプログラムでも、初心者からすると、到底自分では解けない難解なパズルを解いている気持ちになると思います。
それが難しく感じなくなったら次の難しいプログラムに挑戦するという進歩ができる人が、どんなプログラミングを見ても簡単に思える人と言ってもいいかもしれません。
3. どうやって始めればいいですか?
まずは、自分のパソコンを持っていなければ買いましょう。
パソコンを持っていれば、プログラミングを始める環境を作りましょう。
環境ができたら、プログラミングを打ち込み始めましょう(学習を始めましょう)
学習していく課程で、覚えたことをどんどんアウトプットしていきましょう。
そして、同じ様に学習をしている友達を見つけて情報交換をしましょう。
4. エラーメッセージの意味がわかりません。どうすればいいですか?
エラーメッセージをそのままGoogle検索するだけで答えが見つかることも多いです。
エラーメッセージが英語だということで、苦手意識を感じているのであれば、それは全くのお門違いの恐怖心です。
エラーメッセージは、バグのある箇所を明確に教えてくれる新設な人と言うふうに考えたほうがいいですよ。
まずは、エラーメッセージを細かく読んでみましょう。
5. プログラムをどうしてデバッグすればいいですか?
デバッグは一言では言い切れないぐらい奥の深い領域です。
単純なバグを見つける、簡易でバッグから、
そんな操作するヤツおらんやろ!でも、その操作されたらプログラム壊れてしまう・・・
という様な想定外バグを見つける達人検証マンがいるくらいですから。
まずは、正常動作でエラーが出る箇所を見つける程度のデバッグから始めるのがいいでしょう。
6. コーディングスキルを向上させるためのヒントはありますか?
コーディングスキルは、ハッキリ言って、その人の書き込んだプログラムの、文字数、行数、プログラム本数、これらに比例して上達していきます。
また、それに加えて他の人が書いたプログラムを読んだり、レビューしたり、修正したり、プルリクしたりしても上達します。
さらに、オープンソースなど、上級者の書いたプログラミングを読んで理解するということもさらなる上達が見込めます。
7. オープンソースプロジェクトに参加する方法は?
自分が参加したいオープンソースプロジェクトがあるとすれば、多くの場合はGithubなどで、バグを見つけて修正版をpullしてみたり、ドキュメントを書き足してみたり、フォークして新機能を追加してみたりすることができます。
参加募集などが去れているOSSの場合だと申し込みをするという手順もありますが、多くの場合は、GitにCONTRIBUTEしてもらえれば、意外と簡単に参加したことになります。
重要なのは参加したあとのそのOSSに対する貢献だと思うので、単純な参加ではなく、まずはコードを熟知したり、仕様を誰よりも把握してみることから始めるのがいいと思います。
8. プログラムのパフォーマンスを向上させるための方法は?
プログラムのパフォーマンスというのは、性能値をアップさせたいという事だと思いますが、いくつかの方法があるので紹介します。
ハードウェアのスペックアップを行って向上
オンプレ(実際のリアルサーバー)の場合は、CPUやメモリ、ストレージをHDDからSSDなどに切り替えると、WEB系システムの場合は単純に向上させることができます。
プログラミング言語を切り替えて向上
PHPや、Pythonなどのインタプリタ言語を使うよりも、C言語で同じ処理が書けるのであれば、コンパイル言語の方が格段にスピードが早くなります。
処理アルゴリズムを見直して向上
プログラムの処理速度の向上は、単純に考えると、複数の処理を一度に行って、より少ない行数(処理数)にすることで、CPU負荷を下げて結果的にスピードアップさせることができます。
その他
Databaseへの問い合わせ処理や、メモリ管理の仕方、無駄処理の削除、モジュールのバージョンアップ、これらをやることでの処理の向上もできるので、単純な方法に頼らず、できる限り広い視野で処理工場を行うことがいいでしょう。
9. 休日も勉強しないといけない?
休日に勉強したくなければ、する必要はありません。
この質問は、勉強はやり続けないと、プログラマーとして陳腐化してしまうのか?という質問と合わせて言われる場合が多いのですが、プログラム言語は、日進月歩でどんどんバージョンアップしていきます。
WindowsもiOSもAndroidも、アップデートを行うように、それに伴って使われているプログラムも向上するのと同じです。
新しい技術が出てきたら新しいプログラム言語や、周辺の知識が必要になることが多いでしょう。
休日にする必要はありませんが、これらの情報を収集するという勉強や、より自分を磨く勉強を怠ると正直、将来有望とは言えないことが多いでしょう。
そもそも、仕事でプログラミングをやっている人は、勉強するのが楽しい人が多いようです。(遊び感覚も含めて)
10. 基本はわかるけど、実際にどうやればいいのかわからない、どうすればいい?
コレ、非常によくわかります。
基礎学習を追えて、実際に自分がそのプログラムを修得できた実感がわかないのは良く分かります。
これからたくさんのプログラムを書いて、実行して失敗してそれを直してより良い方法を見つけていくという繰り返しを行う事で、実感が湧いてくるものです。
車の運転免許を取ってすぐに車の運転が上手い人がいないのと同じですね。
0 件のコメント:
コメントを投稿