最速怪談選手権

プログラミング言語について


はじめまして。20代後半です。
仕事を変えようと思ってまして。主にWEB系の言語と、サイト関係の知識や、色々勉強しにいって最終的にはフリーランスになれるくらいのレベルを目指しています。

6月に職業訓練で、C言語を半年学ぶコースがあるのですが色々相談を受けるとフリーランスになるのにC言語の必要性を問われます。如何せん未経験で知識がないのでどうしよう、、というところです。

描いてる構図としては職業訓練で学んでからは業界のことを知らないので一度就職しつつ、上記の自分の身につけたい事を空いてる時間でスキルを学び徐々にフリーランスでも仕事を請け負っていけるようなイメージをもっています。

もちろん職業訓練にいってる間も、勉強は平行して進めていくつもりです。

わからないことだらけなので現役の方や、詳しい方おりましたか実際のところを教えてほしいです。


そんな簡単じゃない、とか
平行しては無理だとか生半可な気持ちでは絶対にうまく行かない事は理解してるのでそういうコメントは控えていただけると嬉しいです。

何事も本気で取り掛からければどれも中途半端に終わってしまうのはこれまでの経験で体感してますorz

長くなりましたが、よろしくお願い致します。

A 回答 (2件)

システム開発の仕事を30年ほどしていました。

後半10年はネットワーク関係の仕事が主でしたのでWebサイトの開発と構築なども幾つか手掛けました。

まず、「入力データを処理して求められる出力データを得るプログラムを書く言語」と、「Webの画面デザインを書く言語」は全く別物だということをご理解ください。
前者はいわゆるプログラミング言語でWeb画面で入力されたデータをサーバー側で処理プログラムを書く言語です。古くはC言語がありますし、昨今はJavaやPerlやRubyなどいろいろな言語が開発する機能やメンテナンス性や開発人材など様々な条件を考慮して選ばれます。
後者は文字や画像の配置などを指定するマークアップ言語でWeb画面を作るHTML(CSSも含む)などです。

で、Web画面で入力されたデータをサーバー側で処理プログラムを含め、プログラムという物を作るうえで最も大切なのは「入力データをどのような手順で処理したら求められる出力データが得られるか」を考えることが出来ること。一言で言うと「処理アルゴリズムを作れること」です。
それが出来れば実際に何というプログラミング言語を使って実現するかは大きな問題ではありません。
もちろん現実的には使用する言語仕様を意識して設計する部分というのは発生します。
ということで何か一つ基本をしっかり習得したプログラミング言語があれば、他の言語の基本仕様は数日とか1週間程度で勉強出来、解説書や使用する統合開発環境のヘルプ機能などを使いながら作業をすることが出来ます。ただ、一人の場合はすぐに聞ける人が近くにいないので効率が悪い場合もあるでしょう。

あと、Webアプリケーションの場合のプログラムの重要な出力は呼び出したブラウザへ返す画面(HTML)ですが、それとは別にサーバー側に保管するデータもあります。予約サイト等での予約データやショッピングサイトなどでの購入データですね。この保管にはファイルではなくデータベースを用いるのが普通です。ですからプログラムを実際に書く者としてはデータベースの使い方(SQLなど)を知っている必要があります。保管するデータ(データベースのテーブルですね)の設計も依頼された場合はデータベースの設計手法の知識も必要です。小さな会社はお店のWebサイトの構築からまかされた場合や、設計・製造・試験を持ち帰りで行うような場合はWebサーバーやデータベースサーバーの構築も自分で出来ないと困るでしょう。「そこは知識と経験が無く・・・」ということですと、そういうことを全部1人で出来る人はgy9王会には普通にいますので仕事が回ってこない事になりますから。(^^;

加えてWebの画面を実現するための技術やツールは日進月歩で、今では普通になっているGoogleなどの検索キーワード入力欄に文字を1文字ずつ打ち込んで行くとそれに則した候補が幾つか表示されたり、Googleマップを上下左右斜めに動かすと画面外にあった部分の地図がスムーズに表示されたりといった動きがあります。
これは利用者に都度通信が行われているとは気づかせないもの、「実行」とか「送信」ボタンを押さずに裏で必要な通信を行う機能ですが、こういった次々と出て来る新しいツール機能に対応するため情報収集を常に行い随時習得して行かねばならなりません。

もう一つ大切な事を忘れていました。
プロとしてプログラム作りを行うわけですからソフトウェアの設計技法や試験技法についても学んでおかねばなりません。でないときちんとしたプログラム構造の設計並びにその文書化、品質を確保するための試験項目や試験データの設計とその実施ならびにその文書化ができないためです。

更に加えて。。。(^^;
プログラミング言語にはJavaを代表格とするオブジェクト指向言語がありますが、それをちゃんと使いこなすにはオブジェクト指向とは何かをしっかり理解しておかないとひどいものが出来上がります。(^^; かつオブジェクト指向はプログラムの設計にも影響します。

参考まで。
    • good
    • 4

C/C++って数あるプログラミング言語の中でも高級言語としては一番コンピュータに近いところにあるので、コンピュータの動きを知ってから勉強しないとめんどくさいっていうか、何でそうするのかが理解できないシーンに割と早い段階で出くわします。

また安全性を度外視して自由度を追求した設計だから、危ないことが簡単にできる言語でもあります。そう言う危ないところをわかった人が危ないところもうまく利用するような言語、つまりいちばん入門者には向かない言語の一つだと個人的には思います。

ただそれだけに、C/C++が理解できれば他の言語の理解はすぐです。もっとも、理解する前に挫折してしまったのでは意味がないわけですが…コンピュータの動きまで含めて教えてもらえるんだったらいいけど、どうなんでしょうね。

またプログラミングってかなり適性による向き不向きがあって、向いてる人はあっという間に伸びるけど、そうじゃない人は…
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!