本日のおすすめフィード

  • 0件

「プログラマー」になる方法を教えるよ

1: 2018/10/30(火)08:34:57 ID:9Nh

需要ある?
あったら書いていく






2: 2018/10/30(火)08:35:58 ID:chv

言語の選定方法




4: 2018/10/30(火)08:38:25 ID:9Nh

>>2
まずはライブラリがあるかどうかでいいと思う。
例えば機械学習だったらscikit-learnがあるからPython
Webだったらrailsでruby、DjangoでPythonみたいに
あとは設計思想かな、マイクロサービスとかやるんならGoとかいいと思う。
言語には何かしら特化しているところがあるからそれを考えて選ぶべき




6: 2018/10/30(火)08:41:33 ID:chv

>>4
それやと「何をやるか」が決まってねぇとあかんくね?
現場行くまで何やるかなんて分からんやん?
つまり多数の現場で使われとる言語が正義ってなるんかな




8: 2018/10/30(火)08:43:21 ID:9Nh

>>6
あ、ごめん、勘違いしていたwwwなる前ねwww
なる前に勉強する言語だったらPythonでいいと思う。基本的なことは学べるしね
あとはJavaScriptかな、web系に行くならこれだと思う。




12: 2018/10/30(火)08:46:45 ID:chv

>>8
「なる方法」でなる前から語らんでどうするw
まあJAVAかなぁ
WEB無関係でもJAVA使う風潮あるし




15: 2018/10/30(火)08:47:41 ID:9Nh

>>12
あー、Javaは正直やめておいたほうがいいと思う…
Javaのしごととか減ってるしね…
Javaやるなら代わりにGoだね




23: 2018/10/30(火)08:51:40 ID:chv

>>15
減っとるんか
まあコボルやCが根強いね
技術抱えた年寄りがごっそり辞めてくからソースからドキュメント起こして別言語に移植とかあるし




30: 2018/10/30(火)08:53:36 ID:9Nh

>>23
新規開発はJavaはあまりないね…
ちょっと前だったらAndroid開発があったけど、最近Kotlinになったから…
まあkotlinはJava++みたいなものだからいいけど




3: 2018/10/30(火)08:38:11 ID:4yY

面接で頑張ります言うだけちゃうんか?




5: 2018/10/30(火)08:39:53 ID:9Nh

>>3
実際、それだけだと落とされることもある。
未経験歓迎とかあるかもしれないけど、それは(業務経験)未経験歓迎で
コンピューターのこととかちょっとは知ってる前提だし、最悪の場合だと簡単なプログラムならかけなきゃいけないときもある




7: 2018/10/30(火)08:42:36 ID:4yY

>>5
そりゃキーボード触ったことねーッスってやつは無理だろうけどw




11: 2018/10/30(火)08:45:05 ID:9Nh

>>7
結構そういう人いるんだよね…




19: 2018/10/30(火)08:49:15 ID:4yY

>>11
スマホのアプリに興味を持って、って人なら有り得るのか
うーん難しい時代だ




21: 2018/10/30(火)08:49:47 ID:9Nh

>>19
あとは楽そうだからとかいろいろあるね




13: 2018/10/30(火)08:47:38 ID:TmG

新卒ならやる気だけでも採用されるくらい人が足りてないみたいよ




17: 2018/10/30(火)08:48:15 ID:9Nh

>>13
会社によるんじゃないかなぁ




20: 2018/10/30(火)08:49:30 ID:nb2

>>17
場所にもよるか。
組み込み系ばかりの土地はC言語知らんといったら見向きもされんよ。




22: 2018/10/30(火)08:50:53 ID:9Nh

>>20
最近だとC++とかRustとかに移行しようとしてたりするけど、過去の遺産があるからね…
変種だとMicroPythonつかってPythonで開発とかもあるね、実行速度アレだけど




27: 2018/10/30(火)08:52:57 ID:nb2

>>22
上位層はそんな流れだね。
下回りはCばかりだね。

下回りのエンジニアが枯渇してるからCエンジニアの要望は高いよ。




32: 2018/10/30(火)08:54:16 ID:9Nh

>>27
まあ、開発環境が対応してないとかあるしね…




37: 2018/10/30(火)08:57:59 ID:nb2

>>32
未だにマイコンの制限はあるし、速度要求は厳しいしね。
製品に組み込むものなので一円でも安くしたい
ってのも現実だし。
高級言語への移行はまだ先かな。




39: 2018/10/30(火)08:58:53 ID:9Nh

>>37
まあ、H8とかPICとかが現役だった時代よりはマシになったけどね




14: 2018/10/30(火)08:47:39 ID:nb2

C言語覚えてたらなれるやろ。




16: 2018/10/30(火)08:48:03 ID:9Nh

>>14
組み込み系なら大丈夫
それ以外ならきついかも




18: 2018/10/30(火)08:49:08 ID:9Nh

じゃあ、適当に書いていくか




24: 2018/10/30(火)08:52:14 ID:95M

なんだ、入門用じゃなくて就活用か




25: 2018/10/30(火)08:52:37 ID:9Nh

>>24
あ、入門用で書いていきます




26: 2018/10/30(火)08:52:47 ID:3Ws

悪いことは言わないから中小ITだけはやめとけ




31: 2018/10/30(火)08:53:45 ID:9Nh

>>26
ほんそれ




33: 2018/10/30(火)08:56:17 ID:chv

>>26
業界上位以外は大でもやめた方がいい
あんなん人がやる職業ちゃうわ
技術職の割に使い捨てとかやってられん




34: 2018/10/30(火)08:57:13 ID:sbl

最近はコピペで大概何とかならない?
HPとかWIXで作ったけど本当に楽




36: 2018/10/30(火)08:57:50 ID:9Nh

>>34
プログラマじゃなかったらいいけど、そうじゃない場合もあるしね




35: 2018/10/30(火)08:57:21 ID:9Nh

じゃあ適当に書いてくね

プログラマになりたい人は、まずなんでもいいから作りたいものを見つけてみよう。
掲示板でもゲームでも、レベルも何も関係なくね。
おすすめはAIとかを使ってないwebサービスを作ること、作った実感が湧くしいいと思う。




38: 2018/10/30(火)08:58:23 ID:9Nh

ただAIを使ったサービスはおすすめしない。
これをやるには数学の知識が必要になるからね




41: 2018/10/30(火)09:00:30 ID:chv

ただの自動をAI言うのやめて欲しい




44: 2018/10/30(火)09:01:30 ID:9Nh

>>41
まじでそれ、if文で条件分岐はAIではない
もっというとAI is 何って話だし




42: 2018/10/30(火)09:00:37 ID:9Nh

作りたいものを見つけたら、プログラミングの勉強に入るんだけど
プログラミングではプログラムを作成するためのプログラミング言語というものがある
初心者はruby、Python、JavaScriptあたりから選ぶのがいいと思う




45: 2018/10/30(火)09:03:22 ID:Wc4

初心者にとっての最初の難関って
言語そのものよりも環境構築にあると思う




47: 2018/10/30(火)09:04:45 ID:9Nh

>>45
ほんそれ
まあ最近だとAnacondaとか楽なやつもあるし、マシになってきたと思う




46: 2018/10/30(火)09:04:06 ID:9Nh

僕のおすすめの言語はJavaScriptかな、なんでもできるから

で、言語を選んだら実際に作っていくんだけど、本は使わなくていいと思う。
じゃあどうするの?って話だけどググろう、仕事でもググること多いからね
ググってるとググり方みたいなのがわかってくるからね




48: 2018/10/30(火)09:08:08 ID:9Nh

プログラミングの勉強でわからないところとか出てくると思うけど、そのときは理解は一旦後回しにしてそういうことができるって言う感じでいいと思う。
正直最初からいろいろ理解するのは無理だから、とりあえず使い方を覚えて使ってみたほうがいい。無理に理解しようとすると挫折するしね。

で、作っていくと見た目が…とか遅い…とかいろいろ不満が出てきてやめたくなると思う、そういうときは初心者で上手に作るのは無理だから妥協しよう




49: 2018/10/30(火)09:10:35 ID:9Nh

最初の目標は汚くても遅くてもいいから作れるようになることだと思う。
仕事では…とか正直初心者だとどうでもいい、初心者でそこまでできたらプログラマ必要ないしね

あと作りたいものが見つからない人はプログラミングの問題を解くのがいいかも、paizaあたりの簡単な問題をどんどん解いていけばいいんじゃないかな?




50: 2018/10/30(火)09:13:59 ID:9Nh

簡単に作りたいものと言語、環境の対応表はこんな漢字

web -> JavaScript(node.js)、Python(Flask,Django)、ruby(rails)
ロボット -> C(Arduino)
AI -> Python(scikit-learn, TensorFlow, Keras)

って感じかな()の中が環境だね




52: 2018/10/30(火)09:15:33 ID:9Nh

じゃあ、各作りたいもので必要なものを細かく見ていこう
まずはweb
webではフロントとサーバーに分かれる
 フロントがwebページの見た目や動き
 サーバーがサービスの管理や機能
って感じかな

https://se-tennsyoku.com/job-of-web-engineer/no title

https://se-tennsyoku.com/job-of-web-engineer/no title




54: 2018/10/30(火)09:18:17 ID:9Nh

フロントはHTML、CSSとJavaScriptで書かれる
HTMLやCSSで見た目を作って、JavaScriptで動きを作るって感じかな

またフロントはフレームワークって言う、簡単にプログラムを作るためのものを使うことが多い
例えばjQueryやReact、vueってやつだね。
フロントをしっかり作りたいならフレームワークも勉強したほうがいいかも
おすすめはReactかvueだね




57: 2018/10/30(火)09:22:37 ID:Wc4

MacがあるならiPhoneアプリプログラマがいいぞ
Macが無いなら買え




60: 2018/10/30(火)09:23:29 ID:9Nh

>>57
確かに結果がわかりやすくていいと思う。




59: 2018/10/30(火)09:22:49 ID:9Nh

次にサーバー
サーバーはさっき書いたようにサービスの管理とか機能を扱う
サーバーをちゃんとやろうとすると、並列処理が…とかトランザクションが…とかいろいろ出てくるけど初心者だったらそこまで気にしなくてもいい
サーバーはフロントと違って様々な言語でかける
ただしサーバーでよく使われる言語って言うのがある。
例えばPython、ruby、Go、JavaScriptとかだね。初心者はこのような言語で作るのをおすすめする。
何故かと言うと検索したときの情報が多いからなんだよ




63: 2018/10/30(火)09:25:47 ID:9Nh

サーバーとフロントがかければ、簡単なサービスなら作れると思う。
ユーザー登録とかデータの管理がしたいならデータベースもいじってみよう。
SQLiteとかMySQLとかいろいろとあるけど、これらデータベースの多くはSQLという言語で操作するから覚えておくと便利




71: 2018/10/30(火)09:30:58 ID:9Nh

じゃあ次はロボットとかだね
ロボットはプログラミングだけじゃなくて物理的なところも勉強しなきゃいけない
プログラミング自体はとりあえずC言語って言う言語を勉強しておけばなんとかなると思う
ただ、ロボットとかをやるならコンピューターの仕組みも勉強しなきゃいけない




74: 2018/10/30(火)09:34:33 ID:9Nh

コンピューターは0と1で動いてるみたいな話は聞いたことあると思う。
それは2進数っていう方法で数を表せるからなんだけど、こういう方法を使うのはスイッチのオンとオフで表せるからなんだ
このスイッチのオンオフで様々な動きをさせるときに使うのがブール代数と論理回路だね




76: 2018/10/30(火)09:36:49 ID:9Nh

で、コンピューターは当然電気回路だから、論理回路を勉強するとき電気回路もやらなきゃいけない
電気回路では、いくつかの部品を組み合わせて回路を作っていく
抵抗、コンデンサ、コイル、トランジスタ、ダイオード、FET…
なんかだね。ココらへんの部品の特性も覚えておく必要がある




78: 2018/10/30(火)09:38:10 ID:9Nh

あと動くものを作るならアクチュエーターという電気を力に変換するものも必要だね
モーターとかはアクチュエーターの代表例だね。
よく使われるものにサーボモータとかステッピングモータとかあるね。
これらも特性を覚えておかなきゃいけない




83: 2018/10/30(火)09:40:52 ID:9Nh

あと他のプログラミングと違って、パソコンで動かしたりしないことが多い
じゃあ、どうやってプログラムを動かすかというとマイコンというのを使う
電気回路に四角形のいっぱい足が生えたのがあるよね、それがマイコンだね
ロボットなどではこのマイコンにプログラムを書き込んで動かしてるんだ




85: 2018/10/30(火)09:42:51 ID:9Nh

マイコンはいろいろな物がある。
有名なものだとH8、PIC,STM,ARMなんかだね。
初心者はとりあえずArduinoというマイコンを使おう、一番簡単で早く動かせる
なれてきたらRaspberry Piというものを使うのもいいと思う。
お金に余裕があるならJetsonを買え(脅迫)




87: 2018/10/30(火)09:44:24 ID:9Nh

他にもロボットだと覚えることがいろいろ合ったりする(制御理論など)んだけど、とりあえず作ってみたほうがいいと思う
理論をやると時間がかかりすぎるからね。




92: 2018/10/30(火)09:47:34 ID:9Nh

次はAIだ
一番難易度が高いと思う、何故かと言うと理論を勉強しなきゃいけないからだね
AIではまず数学の知識が必要になる、それも高校数学以上の数学を
最低でも微分積分、線形代数、確率統計の知識が必要になるね
さらに高度なことをするためには微分幾何学、測度論、関数解析なんかが必要だけど、ここまで来ると初心者にはきついと思う




93: 2018/10/30(火)09:48:37 ID:Hbn

>>1さんは高専の人かしら
自分が入るきっかけになったのも高専の人に教えてもらった




109: 2018/10/30(火)09:57:30 ID:9Nh

>>93
高専ではない、一応工学部だったけど…




95: 2018/10/30(火)09:49:59 ID:9Nh

またAIは最先端を追い続けなきゃいけない。
なぜならもっといい方法が日進月歩で見つかってるからだね

あとAIは覚えることも多い
AIでは方法をいろいろ覚えなきゃいけない
最低限、決定木、ランダムフォレスト、ナイーブベイズ、ロジスティック回帰などかなぁ…




98: 2018/10/30(火)09:52:00 ID:9Nh

他にもどのようにAIを評価するかという知識も必要になる
AICやBICが適用できるのかとか、ROC曲線の見方とか
様々な知識を複合的に要求されるのがAIのプログラミングだね




100: 2018/10/30(火)09:52:28 ID:Wc4

流行りのチャットボットとかならまだ敷居は低いが
あれはAIとは呼べないしなぁ




103: 2018/10/30(火)09:54:19 ID:9Nh

>>100
レベルにもよるんじゃないかなぁ…




102: 2018/10/30(火)09:53:56 ID:9Nh

言語に関してはPythonかRのどちらかでいいと思う。
これらはAIを作るために必要なものがすでに用意されてあって、それを使えば簡単に動かせるからね
ただ最近だとAIの分野ではjuliaって言語も盛り上がってるから、これも勉強してもいいかも




105: 2018/10/30(火)09:56:03 ID:yPa

何言ってるのかチンプンカンプン
>>1はゲーム企業の開発部門の人?




108: 2018/10/30(火)09:57:04 ID:9Nh

>>105
数学とか使うプログラマとだけ




107: 2018/10/30(火)09:56:39 ID:9Nh

ここではPythonでAIのプログラミングを行うとしよう。
PythonでAIを作るときにはScikit-learnやtensorflowなどと言ったフレームワークがよく使われる。
みんなディープラーニングとか聞いたことあると思うけど
ディープラーニング以外だとScikit-learn、ディープラーニングだとtensorflowなどって感じかな




111: 2018/10/30(火)10:00:16 ID:9Nh

おそらくみんなが想像するAIって例えば猫を認識したり、文章を翻訳したり…だと思う
これらは最近だとディープラーニングって方法でやってることが多いね
ディープラーニングは初心者には難しいと思う、もしもやりたい場合はそれをまず他の人が作ってないか探してみよう
正直自分で作るの無理だと思うし




114: 2018/10/30(火)10:01:38 ID:9Nh

AIは数式を作るって能力が必要だから厳しいかも
だからプログラミングに慣れてからにしよう




115: 2018/10/30(火)10:02:41 ID:9Nh

あ、スマホアプリ忘れてた
スマホアプリはまずMacを買おう、iPhoneのアプリの開発はMacじゃないとできない




116: 2018/10/30(火)10:03:56 ID:9Nh

まずスマホってAndroidとiPhoneがあるけど、これらでどのような言語を使うべきかっていうのは異なる
Android -> Kotlin
iPhone -> Swift
って言語でアプリを作る




120: 2018/10/30(火)10:05:34 ID:Wc4

>>116
そして古い現場ではいまだにJavaとObjective-Cっていうねw




123: 2018/10/30(火)10:07:55 ID:9Nh

>>120
まあ、KotlinはJava++みたいなものだし…
Objective-C滅びろ




117: 2018/10/30(火)10:04:48 ID:yPa

Macってオススメの種類とかある?




119: 2018/10/30(火)10:05:26 ID:9Nh

>>117
特にない、新しいの買えばいいと思う




118: 2018/10/30(火)10:05:14 ID:9Nh

ただ両方一気に作れるものもある、クロスプラットフォーム開発ってやつだね
有名なものだとXamarin、ReactNative、ionicとかだね
XamarinはC#、ReactNativeだとJavaScriptで開発できるよ
ionicは知らん




122: 2018/10/30(火)10:06:53 ID:9Nh

あとアプリだと簡単に開発できるものも増えてきた
Origami studioって言うのを使うと簡単にアプリを作れたりするけど、初心者は一旦こういうのを使わないようにしよう
こういうのを使うとあまりプログラミングの勉強にならないからね




124: 2018/10/30(火)10:10:13 ID:9Nh

…ここまでで作りたいものに対してどのような知識などが必要か、とても適当に説明してきた
次は作れるようになったら…という話を使用と思う

端的に言うと、まずいくつか言語を勉強する、アルゴリズムを勉強するというのが次にやることだと思う。




127: 2018/10/30(火)10:13:26 ID:9Nh

いくつか言語を勉強することのメリットはまあいいとして、アルゴリズムって?って話をしようとおもう
アルゴリズムは簡単に言うと問題を解くための方法のことだね
みんなはサービスを使ってて、同じようなサービスでも遅かったり早かったりすることってない?
これらは言語の違いもあるけど、アルゴリズムの違いが合ったりもする
これらアルゴリズムを勉強すると同じ問題でも高速に動くプログラムを書けるようになる




129: 2018/10/30(火)10:15:55 ID:9Nh

アルゴリズムを勉強するときは実際に問題を解いてみるといいと思う。
Aizu online judgeやpaizaなど問題が乗っているサイトがあるから試しに解いてみるといいと思う
paizaはランクがあるんだけど、とりあえずはB以上を目指そう




130: 2018/10/30(火)10:17:42 ID:9Nh

ここまではパソコン使える人向けに書いてきたけど、次はパソコンが使えない人向けに書くよ
まずはパソコンを買おう
それがまず最初にやることだね




131: 2018/10/30(火)10:18:09 ID:Hbn

そこからはつい笑ってしまったじゃないかw




133: 2018/10/30(火)10:19:03 ID:9Nh

パソコンを持ってるけど使えない…って人もいると思う。
大丈夫、ローマ字とクリック、ダブルクリック、ドラッグができればなんとかなる
できない人は…パソコンの使い方みたいな本を買えばいいんじゃないかな?




135: 2018/10/30(火)10:21:08 ID:9Nh

あと毎日パソコンを触るようにしよう。
パソコンを毎日いじっていけばなんとなく使い方がわかってくるから
一日1時間以上触ればなんとなくわかると思う




138: 2018/10/30(火)10:23:51 ID:9Nh

プログラミングのスタートラインに立つために必要な知識はソフトをインストールできるだけのパソコンの知識だね。
最悪、プログラミング言語をインストールさえできれば、あとはなんとかなると思う
ソフトをインストールするためにインターネットの使いかたも覚えよう。
練習にブラウザ(インターネットを見るソフト)とかをインストールしたりするのがおすすめだぞ




139: 2018/10/30(火)10:26:42 ID:9Nh

ちなみに資格を取るのもおすすめ
正直資格あってもしょうがないけど、いい勉強になる。
有名な資格だと基本情報や応用情報っていうのがある。
最初はまずITパスポートあたりを目的に勉強してみよう




140: 2018/10/30(火)10:27:15 ID:9Nh

あとは気合と根気、がんばえー




142: 2018/10/30(火)10:29:32 ID:9Nh

ちなみに勉強会っていうのに行くのもおすすめだね
https://connpass.com/
とか見ると勉強会の情報が乗ってるから、いろんな勉強会に行ってみよう

あとある程度プログラムをかけるようになったら、きれいなプログラムを書くように心がけよう
きれいなコードを書くための参考書にリーダブルコードって本をおすすめしておくよ




143: 2018/10/30(火)10:30:46 ID:9Nh

ガチれば3ヶ月でプログラマになれると思う




144: 2018/10/30(火)10:30:52 ID:Wc4

やりたいジャンルのhellow worldを検索するってのが割と現実的かもね




145: 2018/10/30(火)10:31:10 ID:9Nh

>>144
あーたしかにそれは重要かも




157: 2018/10/30(火)14:33:30 ID:nb2

組み込み系やるなら電気知識と製品知識があった方がよい。
製品知識となると工学系の知識もでてくる。
誰かと差をつけたいならそこら辺を押さえとくとよいよ。




81: 2018/10/30(火)09:39:17 ID:Wc4

イッチの言うプログラマは「ちゃんとしたプログラマ」だな
なんちゃってプログラマなら誰でもすぐなれるぞw






広告

本日のおすすめフィード

この記事へのコメント

  • 言うてもJavaの現場はまだまだ多いからなー
    2018年11月01日 19:03