14歳の自分に衝撃の事実を告げてください

文系のSE志望です。プログラミングを今から習得したいのですが、初めて学ぶのにオススメの言語があれば教えてください。自社開発、アプリ開発などに興味があるので、やはりSwiftやフラッターなどでしょうか?それとも、比較的簡単と言われているPythonなどから始めるべきでしょうか?(そもそもPythonが比較的簡単というのは本当ですか?)

A 回答 (11件中1~10件)

今から即戦力になれるわけはないのですから、広く浅くいろいろ触れることをおすすめします。


たとえば適当なPCを調達してLAMP環境を構築し、Web上で公開されているサンプルを開発してみるとか。
そうすると、OSやRDBMSやWebサーバーなどのミドルウェアに触れることができますし、PHPでUIに近い部分の仕組みも理解できるようになると思います。
さらに時間が許せば自宅のDMZにサーバーを公開する事で、サイバーセキュリティー対策も経験することができます。
何にせよ、まずは何かやってみることです。
    • good
    • 4
この回答へのお礼

皆さん回答ありがとうございました。
勢いでPythonの本を購入し、とりあえずプログラミングの原理みたいなものは分かってきたので、ここからは浅く広く学ぼうと思います。

お礼日時:2024/07/21 22:53

アプリ開発(スマホアプリ開発)はモダンな技術であり、現在黎明期ですので、過去の経験よりは最新の開発手法が大事になってきて、クラス指向(オブジェクト指向)とモダンなアーキテクチャは必須です(アーキテクチャは関心の分離や、フォルダ構成など、ソース管理の部分です)。


これらの技術は個人で学ぶのも本で学ぶのも難易度が高くドキュメントを読めないと困難に思います。

また、シンプルにこれらを初めて学ぶのはハードルが高いです。

私はC言語から学んだので構造化プログラミングや命令型プログラミングの基礎をしっかりやりました。
(これは直接的にクラス指向の考え方に生きないかもしれませんがプログラミングの基礎だと思っているのでC言語を初心者におすすめしています)

また、ドキュメントを読む力をつけるという意味で言えば、PHPやJavaScriptのドキュメントはしっかりしており、目的も決まった言語なので力が養われると思います。

JavaはやったことがないですがJavaDocの考え方は関数の作り方、考え方の役に立ちます。

Pythonから始めるべきですか?という質問ですが、Pythonは外部ライブラリを使用するのが基本的な考え方になるので、プログラミングをよくわかってない人向けの言語です。

私の場合SQLのような言語は何故か元々得意でしたが、これも非常に重要な言語です。
    • good
    • 1

みんな厳しいなぁ~


はじめて学ぶ超初学者向けなら
①基本的な論理の構築の確認に適していること
②1行単位で実行できてすぐに結果が確認できる、所謂 REPL が用意されているもの。
③前提知識がなくても取り合えず動かせること。
④OOPとか高度なプログラミングの素養が無くても使えること。
⑤簡単なロジックを動かすにあたって、準備作業が少ないこと

で、1行打ち込んで動かしてみては「なるほど~」
数行のループを打ち込んでみては「なるほどー」
「こんとき変数の中身はこうなるのか~」

と少しづつ進めて行ける言語が良いと思う。

昔なら BASIC 一択だったけど、最近は Pythonが手軽だと思う。
pythonは入門するのは簡単だけど、奥は深いです。
プロの書いた pythonコードには、初学者には呪文にしか見えないものも
あります。
それはどの言語でも同じですが、pythonは割とそれが激しいです。

残念だが、今時ハードウェアや低レベルAPIに詳しい エンジニアは
ほぼ皆無だし、それが求められる機会は少ない。会計や販売や
物流などの知識の方が必須。

Cやアセンブラを最初に学ばせても現場で役に立つことは
少ないと思う。もちろん組み込み系やドライバを扱うエンジニアを
目指すなら話は別だけど。まあ。物事の本質を学んで欲しいから
いつかは学んでほしいけど、無理強いはできないと思う。

取り合えず、カレンダ系ライブラリを使わず、自分の誕生日を
打ち込むと曜日が出てくるロジックを組めるくらいまで習熟したら、
次の段階を考えればよいと思う。
    • good
    • 1

まずちょっとした苦言から。


実はこのテの質問は多いんだ。
よって「質問する前」に「検索をする」事が大事なんだよ。
プログラミングが出来る人は「検索」が得意だ。逆に言うと「検索が下手な人」はプログラミングに向かない。
教えて!goo内で検索するだけ、でも何十、何百と「似たような」質問が見つかるだろう(つい最近もあった)。
まずは「質問する前」に検索しよう。それが結構重要な作法ではある。

> 比較的簡単と言われているPythonなどから始めるべきでしょうか?

残念ながらPythonはすでに「簡単な言語」ではなくなっている。「Pythonが比較的簡単だ」と言う人は、彼らがかつて学んだPython1.xとかPython2.xの時の「印象」で語っている。
しかし現行のPython3.xはかつてのPythonより「難しく」なってんだわ。あらゆるトコにイテレータ(反復子、とも言う)があって、ある程度のコンピュータサイエンス的な知識が無いと「使いこなせない」状態になってると思う。
もちろん、「真っ向勝負したい」と言うのを止める気はないんだけど、あいにく、巷に溢れてる「プログラミング未経験者向けの」Python入門書の類にはロクな本がない。
そして「ネットでサッとタダで学んで」系は止めておけ、とも言っておく。あまりPythonを知らない人が書いてるサイト・本が溢れてるのが現実なんだ。
よって「言語そのものはさておき」、Pythonの学習環境を整えるのが至極難しいんだよな。書籍は多い、けどほとんどがクズだ、ってのが実態だ。トイレでケツを拭く紙程度の価値しかない。
そしてプログラミング初心者は「何が良い本なのか」見極める前提知識がない(あればそれは「初心者じゃない」って事だ)。
よって手を出さん方が無難だ。
そしてPaizaとか何やらの「オンラインプログラミング教室」なんかもクソだ、って事を言っておく。

仮にどうしてもPython、ってぇのなら次の本を推挙しておく。

世界標準MIT教科書 Python言語によるプログラミングイントロダクション 第3版:
https://www.kindaikagaku.co.jp/book_list/detail/ …

これは「Pythonを教える本」じゃなくって「Pythonを使ってプログラミングを教える本」で、広範囲に渡ってのトピックを取り扱ってる。
「Pythonを教える本」と「プログラミングを教える本」は全然違うんで、気をつける事。

> やはりSwiftやフラッターなどでしょうか?

ごめん、両者とも良く知らんけど、少なくとも後者はフレームワークであってプログラミング言語じゃない。
Swiftも良く知らんけど、敢えて言うと「最初は止めとけ」と言っておく。
と言うのも長年の勘だ。そもそもAppleが開発・推奨するプログラミング言語は「負け続け」だ。
Object Pascal、HyperCard、Dylan、と大体Appleが開発ないしは推奨する言語って「負け続け」で「消えちまう」んだよ。Objective Cでさえかつて程の熱狂はない(依然Macなんかの開発言語だけど)。
Apple関連の言語は「賭けの対象にする」には分が悪過ぎる。だったらVisual Basicの方がまだマシだろ、ってくらいだ。
いずれにせよ、特定のプラットフォーム、この場合はスマホか、に過度に依存するプログラミング言語を選ぶのは「スジが悪い」。
どっちにせよ複数の言語を扱わないとならないのは間違いない。よって、やるんなら後回しにしとけ、って事だな。最初は避ける事。

んでだな。前どっかにも書いたけど、重要なのは「プログラミング言語が易しいかどうか」より「初心者向けに良い本があるか否か」なんだ。もちろんプログラミング言語自体も重要だけどね。例えばJavaScriptなんかはHTMLやCSSの知識が要求される本とかサイトばっかなんで、HTMLやCSSの知識が既にあるってのならいざ知らず「まっさら」で学ぶには適さない言語だ。
ただ、やっぱ「本」なんだよ。上手く書かれた本があればどの言語でもいい。一方、C言語なんかは「言語標準仕様に従って記述されてる本が存在しない」んで、こんなのを最初に学んじゃダメだ、って事は言える。あるのは30年も前の記述法を伝える本ばっかだ。「現行仕様を理解してない人」が書いてる本しかない。だからその辺は「後で学ぶにせよ」最初にやるのはダメだ。

ネットでザーッとプログラミングの概念を学びたいならRubyがとりあえずいいと思う。それも初心者向けの分かりやすいサイトがあるから、だ。

オブジェクト指向スクリプト言語Ruby:
https://www.ruby-lang.org/ja/

プログラミング入門 - Rubyを使って -:
https://ie.u-ryukyu.ac.jp/~kono/software/s04/tut …

これも毎回書いてるが、「マジメにやってけば」二週間もかからず終われるだろうから、だ。とりあえず「プログラミングと言う作業」の概要だけはサッと掴めるだろう。

あとは、言語としてはF#/OCamlがオススメ。これも言語そのもの、と言うより日本で書かれた本としては最高の「プログラミング入門」の教科書があるから、だ。実際にお茶の水女子大学で使われている。

プログラミングの基礎:
https://www.saiensu.co.jp/search/?isbn=978-4-781 …

「プログラミングの基礎」を使った授業紹介:
http://pllab.is.ocha.ac.jp/~asai/book-mov/

F#と言うのはフランスで作られたOCamlと言う言語の方言で、Microsoftが作ってる。

F#:
https://learn.microsoft.com/ja-jp/dotnet/fsharp/

非常に強力な言語で、他のモダンな言語が持ってるアイディア/機能をたくさん搭載している。こういう「高機能な言語」を最初に学んだ方が、他の言語に移る際に利点が多い。「概念」を新しく学び直す手間が減る、からね。

こんなトコかな。
    • good
    • 2

良いSEに必要な能力はまず、


・論理的な日本語文章の読解能力(海外で働くなら他国語でも良いですが)
・論理的な日本語文章を書いて赤の他人に自分の考えを伝える能力
・論理的思考力
・抽象的思考力
・注意力(このあたりはツールで補うのも可能)
・記憶力(このあたりはツールで補うのも可能)
などですが、もともとこのあたりには自信があるのか、プログラミングの勉強を通じて身につける必要があるのかによっても勉強方法は違ってくるでしょうね。

上記に自信があれば、言語は何でも良いかと思います。スマホアプリを作りたいのか、Webシステムのサーバー側プログラムを作りたいのか、企業の基幹業務システムを作りたいのか、AIとかやってみたいかなどで、よく使われる言語は変わってきます。

プログラミングの勉強を通じて身につけるなら、「プログラミングそのものへの入門」として、シンプルでストレートな言語が良いかと。Python Ruby JavaScriptなど。あるいは、良い教師が身近にいるなら、その人にお任せで言語を選んでもらうのも良いです。

あと、単なるプログラマーと良いSEのどちらになるかは、コンピューターやOSの動作原理を知っているかどうかで、このあたりを知るか知らないかで、全体システム設計や、性能向上対策や、障害発生時の原因究明・対策などで大きな差が出るでしょうね。まあ、そんなことに興味なければ、プログラミングだけやってプログラマーになれば良いと思いますが。
    • good
    • 0

Pythonは比較的簡単です。


でも1番楽しくてモチベ上がるのはPHPなどのWeb開発言語です。
ブラウザが使える端末で利用出来るアプリやサービスが作れるので、OSや端末の違いで使えない事が少ないです。
    • good
    • 0

その3つを正しい方法で毎日勉強していけばすごいソフトウェアになると思いますが、正しくない方法だとどれやっても大変でしょう。



筋トレとかスポーツを上達することを想像したらわかりやすいかもしれません。

C言語でもPHPでも仕事はありますが正解を選べるかよりできるようになるかの方が5倍ぐらい大事と思います。
    • good
    • 0

コンピュータの動作を学ぶにはアセンブラから入るべきなのですが、さすがにハードルが高いでしょうから汎用性の高さから言うとC言語ですね。


コンパクトなコンパイラで複雑なアルゴリズムを書けますので、最も多く使われています。
スーパーコンピュータを相手にするのでしたら、内部記憶装置等に余裕がありますので、最適化しやすいC++が最も多く使われています。
    • good
    • 1

コンピュータのこと、そしてプログラムを本当に理解しようと思うなら、C言語とアセンブラを学ぶべきだと思います。


インタプリター系言語やJavaはやめたほうがいいでしょう。
プログラミングができないSEは不要です。
    • good
    • 0

要求仕様がきちんと文書化できるように、


業務内容と、それ以前に日本語を正しく学びましょう。
あとは、ちゃんとしたプログラマを雇うことです。
システムエンジニアがすべき仕事は、
プログラミングではありません。
    • good
    • 2

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A