需要ある?
あったら書いていく
言語の選定方法
>>2
まずはライブラリがあるかどうかでいいと思う。
例えば機械学習だったらscikit-learnがあるからPython
Webだったらrailsでruby、DjangoでPythonみたいに
あとは設計思想かな、マイクロサービスとかやるんならGoとかいいと思う。
言語には何かしら特化しているところがあるからそれを考えて選ぶべき
>>4
それやと「何をやるか」が決まってねぇとあかんくね?
現場行くまで何やるかなんて分からんやん?
つまり多数の現場で使われとる言語が正義ってなるんかな
>>6
あ、ごめん、勘違いしていたwwwなる前ねwww
なる前に勉強する言語だったらPythonでいいと思う。基本的なことは学べるしね
あとはJavaScriptかな、web系に行くならこれだと思う。
>>8
「なる方法」でなる前から語らんでどうするw
まあJAVAかなぁ
WEB無関係でもJAVA使う風潮あるし
>>12
あー、Javaは正直やめておいたほうがいいと思う…
Javaのしごととか減ってるしね…
Javaやるなら代わりにGoだね
>>15
減っとるんか
まあコボルやCが根強いね
技術抱えた年寄りがごっそり辞めてくからソースからドキュメント起こして別言語に移植とかあるし
>>23
新規開発はJavaはあまりないね…
ちょっと前だったらAndroid開発があったけど、最近Kotlinになったから…
まあkotlinはJava++みたいなものだからいいけど
面接で頑張ります言うだけちゃうんか?
>>3
実際、それだけだと落とされることもある。
未経験歓迎とかあるかもしれないけど、それは(業務経験)未経験歓迎で
コンピューターのこととかちょっとは知ってる前提だし、最悪の場合だと簡単なプログラムならかけなきゃいけないときもある
|
|
>>5
そりゃキーボード触ったことねーッスってやつは無理だろうけどw
>>7
結構そういう人いるんだよね…
>>11
スマホのアプリに興味を持って、って人なら有り得るのか
うーん難しい時代だ
新卒ならやる気だけでも採用されるくらい人が足りてないみたいよ
>>13
会社によるんじゃないかなぁ
>>17
場所にもよるか。
組み込み系ばかりの土地はC言語知らんといったら見向きもされんよ。
>>20
最近だとC++とかRustとかに移行しようとしてたりするけど、過去の遺産があるからね…
変種だとMicroPythonつかってPythonで開発とかもあるね、実行速度アレだけど
>>22
上位層はそんな流れだね。
下回りはCばかりだね。
下回りのエンジニアが枯渇してるからCエンジニアの要望は高いよ。
>>27
まあ、開発環境が対応してないとかあるしね…
>>32
未だにマイコンの制限はあるし、速度要求は厳しいしね。
製品に組み込むものなので一円でも安くしたい
ってのも現実だし。
高級言語への移行はまだ先かな。
>>37
まあ、H8とかPICとかが現役だった時代よりはマシになったけどね
C言語覚えてたらなれるやろ。
>>14
組み込み系なら大丈夫
それ以外ならきついかも
悪いことは言わないから中小ITだけはやめとけ
>>26
ほんそれ
>>26
業界上位以外は大でもやめた方がいい
あんなん人がやる職業ちゃうわ
技術職の割に使い捨てとかやってられん
じゃあ適当に書いてくね
プログラマになりたい人は、まずなんでもいいから作りたいものを見つけてみよう。
掲示板でもゲームでも、レベルも何も関係なくね。
おすすめはAIとかを使ってないwebサービスを作ること、作った実感が湧くしいいと思う。
ただAIを使ったサービスはおすすめしない。
これをやるには数学の知識が必要になるからね
国の職業訓練で
お給料もらいながら教えてもらう
が正解ちゃうんかなー
>>40
そうかも
ただの自動をAI言うのやめて欲しい
>>41
まじでそれ、if文で条件分岐はAIではない
もっというとAI is 何って話だし
作りたいものを見つけたら、プログラミングの勉強に入るんだけど
プログラミングではプログラムを作成するためのプログラミング言語というものがある
初心者はruby、Python、JavaScriptあたりから選ぶのがいいと思う
初心者にとっての最初の難関って
言語そのものよりも環境構築にあると思う
>>45
ほんそれ
まあ最近だとAnacondaとか楽なやつもあるし、マシになってきたと思う
>>45
なので
おぜん立てをしてくれる
職業訓練がいいと思うんよね
>>51
まあ、職業訓練だったら確かに…
僕のおすすめの言語はJavaScriptかな、なんでもできるから
で、言語を選んだら実際に作っていくんだけど、本は使わなくていいと思う。
じゃあどうするの?って話だけどググろう、仕事でもググること多いからね
ググってるとググり方みたいなのがわかってくるからね
プログラミングの勉強でわからないところとか出てくると思うけど、そのときは理解は一旦後回しにしてそういうことができるって言う感じでいいと思う。
正直最初からいろいろ理解するのは無理だから、とりあえず使い方を覚えて使ってみたほうがいい。無理に理解しようとすると挫折するしね。
で、作っていくと見た目が…とか遅い…とかいろいろ不満が出てきてやめたくなると思う、そういうときは初心者で上手に作るのは無理だから妥協しよう
最初の目標は汚くても遅くてもいいから作れるようになることだと思う。
仕事では…とか正直初心者だとどうでもいい、初心者でそこまでできたらプログラマ必要ないしね
あと作りたいものが見つからない人はプログラミングの問題を解くのがいいかも、paizaあたりの簡単な問題をどんどん解いていけばいいんじゃないかな?
簡単に作りたいものと言語、環境の対応表はこんな漢字
web -> JavaScript(node.js)、Python(Flask,Django)、ruby(rails)
ロボット -> C(Arduino)
AI -> Python(scikit-learn, TensorFlow, Keras)
って感じかな()の中が環境だね
じゃあ、各作りたいもので必要なものを細かく見ていこう
まずはweb
webではフロントとサーバーに分かれる
フロントがwebページの見た目や動き
サーバーがサービスの管理や機能
って感じかな
絵とか図とかなしで
構成の説明をするのは無理あるような・・・
>>53
そうだね…
図を書かなきゃいけないかなぁ…
フロントはHTML、CSSとJavaScriptで書かれる
HTMLやCSSで見た目を作って、JavaScriptで動きを作るって感じかな
またフロントはフレームワークって言う、簡単にプログラムを作るためのものを使うことが多い
例えばjQueryやReact、vueってやつだね。
フロントをしっかり作りたいならフレームワークも勉強したほうがいいかも
おすすめはReactかvueだね
MacがあるならiPhoneアプリプログラマがいいぞ
Macが無いなら買え
>>57
確かに結果がわかりやすくていいと思う。
昔Javaつかってちょっとゲーム作ってたんだけど、コード書くのは楽しかった
しかしある日pcのデータが飛んで環境構築のやり方全然覚えてなかった
ゲームのデータも飛んだけどまた作ればいいやと思った
イクリプスじゃない方つかってた名前忘れた
でもコーディングする環境どうやってつくるかまったくわかんなくて調べる気力も起きず終わってしまった
こんなんでむしろなんでできてたのか今でも不思議だ
>>58
あるある。
そんなあなたにDocker
>>61
なにそれw
むしろコード自体はC#とかでも少しはかけるのよ
変数や関数の概念、条件式や中身の意味ぐらいは簡単にはわかるからね
なんていうんだろう、ソフトを作る知識はあるのにゲーム機が用意できないもどかしさ
>>62
C#できるならUnityでゲームもアプリも作れるぞ
ちなみにJavaとC#かじってた自分にオススメある?
>>64
知ってるけど、あれはあれで起動するとなんかげんなりするわ
やりたいことあるけどオブジェクト大量に出すとすぐ重くなりやがる
>>66
Goかなぁ…最近実績も増えてきたし
それかHaskellみたいな新しい言語を勉強するのもいいかも
僕の個人的なおすすめだったらjulia
>>67
聞いたことない言語だー
ちなみに環境構築が非常に簡単で、かつゲームに向いてる言語だと?
>>68
どういうプラットフォームかによるかな…
ゲームを作るだけならJavaScript
ちゃんとしたゲームを作るならC#(+Unity)かなぁ…
>>70
やっぱあれ優秀なのか
大量のユニットが大量のオブジェクト発車して打ち合ってるだけでマジ重かったんだよなぁ
オブジェクトつかうのやめたほうがいいのかな
>>72
どうだろう…そこら辺は作りたいゲームによると思うけど…
rtsとかならそこまで重くならないと思うけどね
次にサーバー
サーバーはさっき書いたようにサービスの管理とか機能を扱う
サーバーをちゃんとやろうとすると、並列処理が…とかトランザクションが…とかいろいろ出てくるけど初心者だったらそこまで気にしなくてもいい
サーバーはフロントと違って様々な言語でかける
ただしサーバーでよく使われる言語って言うのがある。
例えばPython、ruby、Go、JavaScriptとかだね。初心者はこのような言語で作るのをおすすめする。
何故かと言うと検索したときの情報が多いからなんだよ
サーバーとフロントがかければ、簡単なサービスなら作れると思う。
ユーザー登録とかデータの管理がしたいならデータベースもいじってみよう。
SQLiteとかMySQLとかいろいろとあるけど、これらデータベースの多くはSQLという言語で操作するから覚えておくと便利
じゃあ次はロボットとかだね
ロボットはプログラミングだけじゃなくて物理的なところも勉強しなきゃいけない
プログラミング自体はとりあえずC言語って言う言語を勉強しておけばなんとかなると思う
ただ、ロボットとかをやるならコンピューターの仕組みも勉強しなきゃいけない
コンピューターは0と1で動いてるみたいな話は聞いたことあると思う。
それは2進数っていう方法で数を表せるからなんだけど、こういう方法を使うのはスイッチのオンとオフで表せるからなんだ
このスイッチのオンオフで様々な動きをさせるときに使うのがブール代数と論理回路だね
で、コンピューターは当然電気回路だから、論理回路を勉強するとき電気回路もやらなきゃいけない
電気回路では、いくつかの部品を組み合わせて回路を作っていく
抵抗、コンデンサ、コイル、トランジスタ、ダイオード、FET…
なんかだね。ココらへんの部品の特性も覚えておく必要がある
>>72
ゲーム作るならマシンスペック高い方がいいよ
特にメモリ一桁はきつい
あと動くものを作るならアクチュエーターという電気を力に変換するものも必要だね
モーターとかはアクチュエーターの代表例だね。
よく使われるものにサーボモータとかステッピングモータとかあるね。
これらも特性を覚えておかなきゃいけない
イッチの言うプログラマは「ちゃんとしたプログラマ」だな
なんちゃってプログラマなら誰でもすぐなれるぞw
あと他のプログラミングと違って、パソコンで動かしたりしないことが多い
じゃあ、どうやってプログラムを動かすかというとマイコンというのを使う
電気回路に四角形のいっぱい足が生えたのがあるよね、それがマイコンだね
ロボットなどではこのマイコンにプログラムを書き込んで動かしてるんだ
マイコンはいろいろな物がある。
有名なものだとH8、PIC,STM,ARMなんかだね。
初心者はとりあえずArduinoというマイコンを使おう、一番簡単で早く動かせる
なれてきたらRaspberry Piというものを使うのもいいと思う。
お金に余裕があるならJetsonを買え(脅迫)
Raspberry Pi3 Model B ボード&ケースセット 3ple Decker対応 (Clear)-Physical Computing Lab
NVIDIA® Jetson™ TX2 開発者キット
他にもロボットだと覚えることがいろいろ合ったりする(制御理論など)んだけど、とりあえず作ってみたほうがいいと思う
理論をやると時間がかかりすぎるからね。
次はAIだ
一番難易度が高いと思う、何故かと言うと理論を勉強しなきゃいけないからだね
AIではまず数学の知識が必要になる、それも高校数学以上の数学を
最低でも微分積分、線形代数、確率統計の知識が必要になるね
さらに高度なことをするためには微分幾何学、測度論、関数解析なんかが必要だけど、ここまで来ると初心者にはきついと思う
>>92
それむしろプログラマじゃなくて
数学者とかがプログラムを使うって感じだよねw
>>94
そんな感じだね、初心者には厳しいと思う
>>94
そのレベルではないけど、rtsの発射方法色々つくるのに三角関数とかつかったなぁ
>>97
プログラミングで数学って結構便利だからね
>>99
なんか適当な公式でっち上げて入れてみても、なんか面白い動きしたりするよね
>>101
イメージしづらいから面白い動き作れたら楽しいよね
>>104
もちろん自分で考えても頭いいわけじゃないから先人の考えた公式だとは思うんだけど、それでもなんか自分が見つけた感があってワクワクした
>>1さんは高専の人かしら
自分が入るきっかけになったのも高専の人に教えてもらった
>>93
高専ではない、一応工学部だったけど…
またAIは最先端を追い続けなきゃいけない。
なぜならもっといい方法が日進月歩で見つかってるからだね
あとAIは覚えることも多い
AIでは方法をいろいろ覚えなきゃいけない
最低限、決定木、ランダムフォレスト、ナイーブベイズ、ロジスティック回帰などかなぁ…
他にもどのようにAIを評価するかという知識も必要になる
AICやBICが適用できるのかとか、ROC曲線の見方とか
様々な知識を複合的に要求されるのがAIのプログラミングだね
言語に関してはPythonかRのどちらかでいいと思う。
これらはAIを作るために必要なものがすでに用意されてあって、それを使えば簡単に動かせるからね
ただ最近だとAIの分野ではjuliaって言語も盛り上がってるから、これも勉強してもいいかも
何言ってるのかチンプンカンプン
>>1はゲーム企業の開発部門の人?
>>105
数学とか使うプログラマとだけ
ここではPythonでAIのプログラミングを行うとしよう。
PythonでAIを作るときにはScikit-learnやtensorflowなどと言ったフレームワークがよく使われる。
みんなディープラーニングとか聞いたことあると思うけど
ディープラーニング以外だとScikit-learn、ディープラーニングだとtensorflowなどって感じかな
おそらくみんなが想像するAIって例えば猫を認識したり、文章を翻訳したり…だと思う
これらは最近だとディープラーニングって方法でやってることが多いね
ディープラーニングは初心者には難しいと思う、もしもやりたい場合はそれをまず他の人が作ってないか探してみよう
正直自分で作るの無理だと思うし
AIは数式を作るって能力が必要だから厳しいかも
だからプログラミングに慣れてからにしよう
あ、スマホアプリ忘れてた
スマホアプリはまずMacを買おう、iPhoneのアプリの開発はMacじゃないとできない
まずスマホってAndroidとiPhoneがあるけど、これらでどのような言語を使うべきかっていうのは異なる
Android -> Kotlin
iPhone -> Swift
って言語でアプリを作る
>>116
そして古い現場ではいまだにJavaとObjective-Cっていうねw
>>120
まあ、KotlinはJava++みたいなものだし…
Objective-C滅びろ
ただ両方一気に作れるものもある、クロスプラットフォーム開発ってやつだね
有名なものだとXamarin、ReactNative、ionicとかだね
XamarinはC#、ReactNativeだとJavaScriptで開発できるよ
ionicは知らん
あとアプリだと簡単に開発できるものも増えてきた
Origami studioって言うのを使うと簡単にアプリを作れたりするけど、初心者は一旦こういうのを使わないようにしよう
こういうのを使うとあまりプログラミングの勉強にならないからね
…ここまでで作りたいものに対してどのような知識などが必要か、とても適当に説明してきた
次は作れるようになったら…という話を使用と思う
端的に言うと、まずいくつか言語を勉強する、アルゴリズムを勉強するというのが次にやることだと思う。
いくつか言語を勉強することのメリットはまあいいとして、アルゴリズムって?って話をしようとおもう
アルゴリズムは簡単に言うと問題を解くための方法のことだね
みんなはサービスを使ってて、同じようなサービスでも遅かったり早かったりすることってない?
これらは言語の違いもあるけど、アルゴリズムの違いが合ったりもする
これらアルゴリズムを勉強すると同じ問題でも高速に動くプログラムを書けるようになる
アルゴリズムを勉強するときは実際に問題を解いてみるといいと思う。
Aizu online judgeやpaizaなど問題が乗っているサイトがあるから試しに解いてみるといいと思う
paizaはランクがあるんだけど、とりあえずはB以上を目指そう
ここまではパソコン使える人向けに書いてきたけど、次はパソコンが使えない人向けに書くよ
まずはパソコンを買おう
それがまず最初にやることだね
>>130
そうMacを買おう
>>132
ToughBookのほうが良い
パソコンを持ってるけど使えない…って人もいると思う。
大丈夫、ローマ字とクリック、ダブルクリック、ドラッグができればなんとかなる
できない人は…パソコンの使い方みたいな本を買えばいいんじゃないかな?
あと毎日パソコンを触るようにしよう。
パソコンを毎日いじっていけばなんとなく使い方がわかってくるから
一日1時間以上触ればなんとなくわかると思う
クラピカの鎖の話を思い出した
一日中鎖を舐めたりしろみたいな
プログラミングのスタートラインに立つために必要な知識はソフトをインストールできるだけのパソコンの知識だね。
最悪、プログラミング言語をインストールさえできれば、あとはなんとかなると思う
ソフトをインストールするためにインターネットの使いかたも覚えよう。
練習にブラウザ(インターネットを見るソフト)とかをインストールしたりするのがおすすめだぞ
ちなみに資格を取るのもおすすめ
正直資格あってもしょうがないけど、いい勉強になる。
有名な資格だと基本情報や応用情報っていうのがある。
最初はまずITパスポートあたりを目的に勉強してみよう
あとは気合と根気、がんばえー
ちなみに勉強会っていうのに行くのもおすすめだね
https://connpass.com/
とか見ると勉強会の情報が乗ってるから、いろんな勉強会に行ってみよう
あとある程度プログラムをかけるようになったら、きれいなプログラムを書くように心がけよう
きれいなコードを書くための参考書にリーダブルコードって本をおすすめしておくよ
ガチれば3ヶ月でプログラマになれると思う
やりたいジャンルのhellow worldを検索するってのが割と現実的かもね
>>144
あーたしかにそれは重要かも
あとなんか質問があったら適当に投げて
筋トレばっかしてる人→プログラムできない
プログラムばっかしてる人→体力ない
STRとINTどっちがより重要か?
>>147
プログラミングにおいてSTRはINTが高ければなんとかなったりするからINT
池上解説見てると、あからさまにポカン顔した坂下千里子やこじるりが
如何にも初心者でございという発言を繰り返すのに、毎回ちょっとイラついているのだが。
結局のところ、解説のプロが試行錯誤した結果辿り着いた一番わかりやすい形式が、アレなんだろうね。
そして1が頑張っているのはよく伝わるのだが、
このスレにはその、坂下やこじるり成分が圧倒的に足りない・・・w
>>149
すまぬ…すまぬ…
「まずは書いて見ましょう」とかから始めてもよかったかな
適当にメモ帳にHTML書かせて拡張子変えて開かせるだけで
「はい!これであなたもプログラマーになりました!」とかw
>>151
あー、たしかに
でも変な誤解生みそうだしなぁ…
>>152
人は皆知らないものを誤解する生き物だよ
誤解は解ける。だが知らないものを知ることは出来ない
>>153
まあ、次があったらもっと実践的にするか
>>154
ジャンルを絞り込んだ方がいいかもね
「webプログラマーになる方法」とか
組み込み系やるなら電気知識と製品知識があった方がよい。
製品知識となると工学系の知識もでてくる。
誰かと差をつけたいならそこら辺を押さえとくとよいよ。
日経BP社
売り上げランキング: 134
|
|
ここに書かれてる程度なら粗方触ってるな。
結局用途(案件)に応じて言語ってほぼ毎回変わるからなあ。
Web系とスマホアプリやると特に…。
jsも生で書く機会は減ってる
後はc#かscalaみたいな、型のある言語も一応やっといた方がいいと思うぞ
ただプログラム覚えたいだけやと、最初の産みの苦しみを乗り越えにくい
cobolみたいな老人言語は今JAVAに置き換えてんだぜ?
単純に日本の職業として考えるなら一番安定してる言語だわw
言語多すぎるだろ