「組み込み」を含む日記 RSS

はてなキーワード: 組み込みとは

2020-07-10

32だけど組み込み技術者になりたい

高専出でもないし全く経験ないしそもそも無職やしもう無理か。

2020-07-08

anond:20200708215134

組み込み特化ではない。BASICで組んでたりするしゲームを作るカリキュラムもある。ただループBASIC命令するよりマシン語命令した方が速いよね、でもクラッシュしたりするよ、みたいなところまで教えてる。

anond:20200708212756

組み込み特化なの?

自前のLisp処理系作りますなんてやり始めたりして。

2020-06-24

なんで1国1アプリなの

コロナウィルス感染アプリ最近炎上してるなーと思って、まとめを眺めてたら1国1アプリって話がでてた

なんでそんな決まりにしたんだろう


OS作ってるGoogleAppleMSなどがOS組み込み機能ひとつとしてリリースして、ON/OFF切り替えれるようにして、それを全世界共通のものにすればいいのに

なんで国ごとに作らせるんだろう

そんなことするから技術力ない日本とかでこういう問題起きるんじゃないの

2020-06-23

anond:20200623211251

ごめん適当なことを書いたけれど、組み込みをやりたい気持ちがあるならそれが一番の素質だと思うよ。本当に。

経験歓迎の就職先に教育スキルがあるかは千差万別なので、なんだろう…フィーリングしか言いようが無いが、がんばって。好きならうまくいくよ。だめなら次の未経験者歓迎のとこに行こう。ちゃんとできる人は引くて数多だけれど外に行かないと引いてももらえないしね。

組み込みエンジニアって

院卒がずらり揃ってるから経験者の入る余地はないって聞いたんだけどほんと。

2020-06-14

「こいつプログラミングセンス無いな」と思う奴の特徴

頼むからセンスのない奴はプログラマにならないでくれ。迷惑から

不要機能を作りたがる

これが最もプログラマになってはいけないタイプ犯罪行為などの言うまでもないことを除けば)。

たとえば

等。

組織で開発する上で、こういう人がいるメリットは無い。

不要機能を作ることで、プログラムは複雑になり、メンテナンスの手間は増え、バグは発生しやすくなる。

一定レベル以上のプログラマが最も自然だと同意するような実装(「実装しない」という選択肢もふくめて)をパッと思い付けない奴は、センスが足りていない。

将棋で言えば、駒がぶつかったら先ず取る手を考えるといった基本的な手筋が思い浮かばないようなもので、現実的に使い物にならない。

基本的コードなんて書かないに越したことはない。

これは、「Code Complete」「The Pragmatic Programmer」等の著名なプログラミングの本に共通する結論である

DRY原則を守らない

すべての知識は、システム内において単一の、曖昧さのない、そして信頼できる表現を有していなければならない。

これが「The Pragmatic Programmer」にあるDRY原則である

要するに、すべての情報単一ソースから決定されるべきということだ。情報が二重化すると、それらの間で不整合が生じバグの原因になる。また、二重化した情報は、修正の手間が二倍になる。

たとえば、ユーザープロフィール管理するレコードクラスに「生年月日」と「年齢」を同時に保持する必要はない。年齢は生年月日から計算できるからだ。

世の中には、「xxxFlag」みたいな不要変数を作ったり、共通ロジック抽出せずにコピペコード濫造するダメプログラマーが多すぎる。

もちろん、合理的理由があって、この原則適用されない場合もある。

たとえば、多くの言語組み込み配列文字列は、その要素と長さを二重に管理している。配列の長さは要素を数え上げることで求まるが、それには要素数に比例した計算時間がかかるためだ。

ただし、こういう場合でも、公開されたメソッドによる操作では、必ず内部の変数は同期されるように作ることが可能である。それをしないのは、怠慢でしかない。

変数命名が雑

文字変数とか連番とかは論外だが、「ary」とか「setData()」みたいな何の情報も伝えないような変数名・関数名を付けるやつ。

正直、コードの読みやすさなんて6〜7割くらいは変数名の付け方で決まると思っている。

名著「The Art of Readable Code」も、半分以上が変数名の付け方に関連する内容だ。

なぜ変数名が曖昧になるのかと言えば、怠慢を除けば理由は2つある。

1つは、コードを書いた奴自身が、そのコード機能を明確に言語化できないということ。

もう1つは、1つの関数で多くのことをやりすぎたりしていて、その変数役割曖昧になっているということ。

スコープを広げたがる

変数関数を参照できる範囲のことをスコープという。

たとえば、関数の内部で宣言した変数は、多くの言語では関数の外からは参照できない。

スコープは狭い方が良い。これはほとんど全ての状況に適用できるプログラミング大原則だ。

スコープが広いということは、ソースコードの多くの場所からその情報を参照・変更できることを意味する。

たとえば、クラスのメンバ変数は各々のインスタンス内でしか参照できないが、静的な変数はすべてのインスタンス共通に持つ。このため、静的な変数を変更すると、すべてのインスタンスに影響を及ぼし、影響範囲の把握やテストが困難になる。

スコープを広げるか狭めるか、2つの選択肢があったとして、広げる方に心が傾く奴は、プログラマをやめた方がいい。

結果的メンテナンス困難なコードを生むというのも勿論だが、単に書くだけでも、スコープが広い方が書きづらいのだ。つまり必要もないのにわざわざ変数スコープを広げようとする奴は頭のおかしい奴しかいないということになる。

コードが長い

複雑なメトリクスなどを持ち出すまでもなく、たとえば1メソッドの行数が何百行もあるとか、1クラスのメンバ変数が何十個もあるとか言うの。

これは論外であるプログラマとしての能力云々以前に、明らかな怠慢であり、社会人としての常識が疑われる。

定期的にメンテナンスされ続けているOSSソースコードなどを見ると、関数メソッド)の行数は平均して5〜10行。20行を超えるものは稀である

長いものであっても、外部で定義した関数を順番に呼び出しているだけであったり、リクエストハンドリングして各々の処理に振り分けているだけのようなものほとんどである

それを超えているコードは、合理的理由があってそうなっていることよりは、単に悪い設計であることの方が多い。

結論

これらは実はプログラミング云々というより、内容の理解力国語力の問題なのである

ある情報を得るために必要十分な情報は何かが分かってないから、余計な変数を作ったり、無駄変数スコープを広げたりする。

そして、自分が作るものを正確に理解していないから、適切な名前がつけられないし、適切なモジュール分割ができない。

それがすべての原因。

こういう人がまず身につけるべきは、プログラミングテクニックではなく、日本語を正しく読む力。

低学歴が「プログラミングなら自分でもできるかも」なんて思っちゃいけないってこと。もちろん、下請けSIerとかで使い捨てコード書きとして働くことはできるが、上に書いたような最低限の力がないなら、それ以上を望んではいけない。

ちなみに、上に書いていることと反対のことを思っている人も世の中にはいる。

特に、昔からプログラミングをしてきた自称ベテランに多い。その人は、能力があるというよりも、単に現代の開発に際して必要知識がないだけなので、真に受けないように。

また、大学コンピュータサイエンスの基礎を学びたての学生なども、知識をひけらかしたくて上と反対のことを言う傾向がある。その程度のことは、良識のあるプログラマはみんな分かっているのだが。

2020-06-03

ITエンジニアってOSSだけで天下捕れるって思ってるあの思い上がりはどこから来るんだろうか

Webなら公開情報学習してオープンソースを使うだけで製品が作れて営業独立もしやすい。コンシューマーゲームプログラマーとか組み込み系とかメインフレーム系はそうはいかず、生業とするには既に参入している企業就職するしかない。法人しか相手にしてもらえないし独立は難しく転職も同業種に限られる」

なんて、顎が外れそうになるほど唖然とするようなこと平然と言う増田とかITブログ多いじゃん、ITならなんかどうにかなりそうって思うんだろうけど、ほかのものに置き換えて考えてごらんよ

ネット図書館で昔のスパイ技術軍事技術公開情報があるからオープンソースを使って自らに軍事訓練を施し、PMCフリーランススパイとして営業独立もしやすい、士官諜報機関管理官とかはそうはいかず、生業とするには既に参入している軍隊就職するしかない。法人(国)しか相手にしてもらえないし独立は難しく転職も同業種に限られる」って、ITの部分を似たようなほかのもんに置き換えてみ、絶対無理、なろう小説の読みすぎってわかるだろ。

言ってること、スマホさえあれば異世界無双できてハーレムチートマンセー得られるとか言ってるのと変わんねえんだよな、なのにこの辺のこと突っ込んだ識者とか殺害〇告されるくらい、増田みたいな意識高い系ITエンジニア粘着されて叩かれてんじゃん、あれほんとなんでなんだろうな

2020-05-26

[]

フロントエンド開発ってたーのしーねー

ググればいっぱい情報でてくるし!

組み込み系の開発はぐぐってもほとんどでてこねーもんなー!

ハードにしばられずにできるのもいいしびるど せずにすぐうごきみれるのもいい!

これはあれだな、はじめてCstringの便利さにふれたときカルチャーショックですわ

anond:20200526081701

何言ってるんだよ。今でも組み込み系なら当たり前の知識じゃん。それ以外でも、ビットストリームとかの話なら当然だし、FFTはじめとする信号処理プログラミング世界でも必須の基礎だし、そんな分野いくらでもあるだろ。

anond:20200526002227

そうでもない。

Web系だとビット演算論理回路の基礎を知らなかったり、組み込み系だとセキュリティデータベースの動向を知らなかったり、技術者でも専門外は素人レベルってのはよくある。開発一辺倒だと瑕疵請負について知らなかったり。

そういった基礎知識をとりあえず最低限知っているというのは、IT仕事にするつもりなら意味はあると思うよ。

しろ知識が偏ったベテランほどときどきやった方がいいぐらい。

モノづくりのためにってことなら確かに意味ないけどさ。

2020-05-25

[]2020年5月24日日曜日増田

時間記事文字数文字数平均文字数中央値
0010111216111.048
0172576280.033.5
02405226130.754.5
03427126169.760.5
04436640154.448
05213905186.039
06444476101.744
078111051136.444
087913037165.058
0910814230131.851
1011616393141.348
11127972276.644
1217422981132.142
131691349479.836
141721224771.242
151491067571.633
161451344992.843
171171032488.240
1815218150119.441.5
191891348471.339
2016917331102.634
211471119476.132
2217017101100.633
2310316703162.245
1日2730285917104.740.5

本日の急増単語 ()内の数字単語が含まれ記事

木村花(18), テラハ(18), テラスハウス(42), Dart(4), 女子プロレスラー(8), 奇祭(4), あいのり(3), 5月22日(3), リアリティー(13), 素描(3), 賭博罪(3), 誹謗中傷(93), 中傷(50), プロレス(12), マイナンバー(14), ネットリンチ(12), 罵詈雑言(9), Python(8), ざま(9), リアリティ(12), 視聴者(16), 番組(43), 自殺(81), 花(15), 解除(21), 支持率(10), いみ(9), 視聴(13), 安倍政権(19), SNS(49), 死者(15), 人格(21), スター(15), 罵倒(17), 芸能人(18), アンチ(14)

頻出トラックバック先 ()内の数字は被トラックバック件数

■お前らって安倍自殺したらどうすんの? /20200403084145(31), ■【追記ブクマメタ簡単すぎるのでブクマカ辞めます /20200524030341(16), ■人間、皆自分が一番いいやつだと思ってる /20200523192332(15), ■コミュ強の妻とコミュ障の私 /20200524070038(15), ■「テラスハウス」で花を追い込んだのはコスチューム洗濯事件じゃない /20200524122707(14), ■ちょっとだけバラエティADやってたけど /20200523213620(14), ■クソ曲ってある? /20200524154140(12), ■男が男の家に招かれたらセックスOKサイン /20200524113536(10), ■ツイッターのせいでゾーニングがぶっ壊れた /20200524163529(10), ■因果関係があるかはわからんが /20200524120223(9), ■おままごとって何が面白いの? /20200524161807(9), ■人形性愛者による幼児ラブドール反対運動への抵抗 /20200523115226(9), ■ /20200522151346(7), ■物語が楽しめなくなった /20200524161312(7), ■まだsnsが原因とは明らかになってないよね? /20200524093938(6), ■9月入学に賛成してるやつってバカしかいないの? /20200523040158(6), ■ /20200524195703(6), ■精子って道に迷ったりしないの? /20200524164144(6), ■統治形態を変えるしか方法はない /20200524100535(6), ■最近「してたじゃん」を「してたんじゃん」と書く人を見かける /20200524033820(5), ■今の右翼保守マジョリティって /20200524082218(5), ■安倍総理が自殺したらパヨク共は責任とれるの? /20200524112511(5), ■インターネット中心部って /20200524124630(5), ■組み込みプログラマってどういうお仕事するの? /20200524131043(5), ■はてな界隈ではマイナンバー反対が多数派だと思ってた /20200524152120(5), ■お前らのせいで三種のチーズ牛丼頼めないんだけど /20200524153051(5), ■すまん地球人だけど質問ある? /20200524162815(5), ■anond20200523115226 /20200524014957(5)

2020-05-24

anond:20200524131218

組み込み系だと、実行するループの回数とか使うメモリ領域を極限まで減らすことに業務系よりも全然シビアな印象があるので、やってる人すごい

組み込みプログラマってどういうお仕事するの?

組み込みプログラマになりたいなと思ったんだけど

毎日業務実態とかよくわからない。

何が大変なのかもよくわからない。

全くイメージできないので、仕事愚痴でもなんでもいいので、教えてください。

2020-05-22

anond:20200522171301

組み込みだったりそういうのは作ってて楽しいわけもないし、C++みたいなわけがわからないよ言語使って作るとかやってられない

PHP とか Python とかでさらっと書いて動くのがいい

あと作るサービス性質的にも、その他よりも興味持てる物が多い

このエントリ以外にも組み込み楽しくない的なの見えたけど、それは一つの側面でしか無いぞ。

組み込み何年もやって、今は違う業界にいるけど、組み込みもそれはそれで楽しい面がある。

自分の作ったソフトウェア現実世界に影響を与えるのは、何回やっても楽しい

勝手につまらないと想像したり、そもそも組み込みを知らずにWeb/ML/ゲーム辺りを見ている人はぜひ経験してみてくれ。

今の時代スマホちょっと操作するだけでランプが付いたりモーターが動いたり。

果ては車と繋いで液晶メーターを自作することさえも、Pythonでもあっさり出来てしまうぞ。

https://qiita.com/suzutsuki0220/items/8642b1c3ea51859a95ad

(車と繋ぐのは簡単とは言わないが)

https://anond.hatelabo.jp/20200522005004

エンジニアの中でも機械設計電気回路、素材、建築など様々な分野があるんだ。

プログラミングがしたかったら、組み込みエンジニアという職種もある。

わけがわからないよ。これらの業種、1990年代バブル期絶頂迎えたあと、バブル崩壊とともにとっくに凋落しまくった後の業種じゃない。

Web業界よりも夢が無くて仕事がきつくて待遇環境も悪いところを、なんでわざわざ選ばなければならないんだい?これらの業種が万年人手不足高齢化迎えてるのはそういう背景があるんだよ。これらの業界行ったことないから今でもWeb業界はるかにマシということに気が付いていないんだね。

経験でもなれるという条件で、消去法で選んだら今でも一番マシな業界Web業界なんだとおもうよ?

あと、SE選択肢にいれていいと思う。

そんな運だけで将来が決まる顧客ガチャみたいな業界も嫌ぁぁ。

anond:20200522173117

まじか。ちゃん説明してやらんといかんのか。Webなら公開情報学習してオープンソースを使うだけで製品が作れて営業独立もしやすい。コンシューマーゲームプログラマーとか組み込み系とかメインフレーム系はそうはいかず、生業とするには既に参入している企業就職するしかない。法人しか相手にしてもらえないし独立は難しく転職も同業種に限られるだろう。スマホアプリも完全オフラインで使うものなんてほとんどなく、鯖立ててAPI作ってとかの仕事内容はWebエンジニアと変わらん。Webはとにかくみんな使うものなので市場がでけえよ。趣味なら何でもいいけど、生業にするにはWeb系以外ないじゃん。

anond:20200522005004

ラクだし作ってて楽しいし新しいからだと思ってる


組み込みだったりそういうのは作ってて楽しいわけもないし、C++みたいなわけがわからないよ言語使って作るとかやってられない

PHP とか Python とかでさらっと書いて動くのがいい

あと作るサービス性質的にも、その他よりも興味持てる物が多い


ゲーム関係楽しいは当てはまるんだけど、技術的に高難易度過ぎてつらい

(ここで言うゲームPS4とかそういうのであって、ソシャゲゲーム扱いしない)


その他のIT系って基本古い昭和体質な企業が多い

最近企業でゆるく働ける今風なのってほとんどウェブ


デメリット勉強しないといけないところくらいだと思う

業界的に移り変わり激しいし、暇さえあればプログラミングしてるような人が多いか向上心ないし仕事として仕方なくやってるくらいの気持ちならついていけない

でもウェブ系行きたい行きたい言ってる人は進んでやる人多いしあまりデメリットでもなさそう

anond:20200522123715

俺は組み込み系なので、最初の頃は intel 8048 とか 8051 とか HD64180 とかのコードを書いてたんだが、関心あるかい? そんなもん見てもしょうがないように思うんだが...

棚の中を探せばどっかのMOあたりに入ってるのが見つかるかも知れないが、仕事で書いて納入したコード晒すのはマズイようにも思うんだが、そのへんはどうよ?

どうして未経験者はそんなにWebエンジニアにこだわるんだい?◕‿‿◕

わけがわからないよ

ここ数年で全く関係ない業種からWebエンジニアになりたい人がかなり増えてるけど、わけがわからないよ

どうして、君たちはWebエンジニアにそんなに魅力を感じるんだい?ぼくはWebエンジニアをしてるけど、そこまでこだわる理由がわからないよ。

自由な働き方ができて、給料も高く、ストレスフリーで働けるって思いこんでるみたいだけど、そんなのは怪しいインフルエンサープログラミングスクール宣伝文句に過ぎないさ。

解説するよ。よく読んで!

そんな…あんまりだよ、夜間メンテナンスや緊急対応があるって、こんなのってないよ!

君たちはソシャゲメンテナンスになったときに、文句を言ってるけど、

君たちがなりたいWebエンジニアが、メンテナンス中に何をしているか想像したことがあるかい

メンテナンス中、彼らはプレッシャーに耐えながら必死で働いているんだ。ユーザーのために、早くサービスを再開しようとして。

システム問題が発生したら、深夜や休日でも関係ないよ。技術者として自分が作ったシステムに対して責任があるんだ。

それでも君は、自由で好きな時間だけ働けると思うのかい

なんで、Webエンジニアになったら高給になれると思ったんだい?

わけがわからないよ。君は国内インターネット産業の動向や経済ニュースをチェックしてるのかい

経験からWebエンジニアになってキャリアを積み上げて、今は高給を得ている人も確かにいるけど、それは時代が良かった部分もあると思うんだ。今まで国内Web業界は爆発的な成長を遂げていたからね。インターネット人口がどんどん増えていたから、何もしなくても成長できたのさ。

でも、これからはどうだろう?ほとんどの人がスマートフォンを持って、インターネット人口カンストしている日本で、これからWeb業界の成長が維持できると思うのかい

給料っていうのは、ポジションによって決まるんだよ。業界が成長している間は、給料が良くておいしいポジションが増えるけど、成長しなかったら良いポジションは増えないさ。そうなったら良いポジションを得るには席を他の人から奪うしかなくなるね。君は良いポジションのために、ベテランWebエンジニアと戦う覚悟があるのかい

そもそも、今のインターネット産業は完全にバブルになっているんだ。これがどういうことだかわかるかい

数年前からWebエンジニア給料が高騰してるけど、これは金融市場大企業から多額の出資をうけたベンチャー企業が、相場よりも高い金額Webエンジニアを雇っていることが一因になっているんだ。不安定知名度のない会社がいい人を雇うには金を積むしかいからね。

でも、今の世界経済の混乱の中で、ベンチャー企業出資したいと思う人がどれだけいるかな。出資する人がいなくなったらバブル崩壊するね。そうなったら、数多くのWebエンジニアが職を失うことになるんだ。

そうなったら、僕もWeb業界から淘汰される可能性もある。替わりはいくらでもいるからね!

あるよ。エンジニアにも、たくさん種類が、あるんだよ。

なんで君はエンジニアを志しているんだい?ものづくりをしたいから?手に職をつけたいから?プログラミングがしたいから?

じゃあ、Web以外の分野でもいいんじゃないかな?

エンジニアの中でも機械設計電気回路、素材、建築など様々な分野があるんだ。

まり知られてないけど、それらの分野も未経験からエンジニアになる方法はあるんだ。例を挙げると、未経験OKCADオペレーター派遣とかがあるね。最初ほとんど派遣からスタートにはなるし、キャリアアップには若さ重要になるけど。

プログラミングがしたかったら、組み込みエンジニアという職種もある。あと、SE選択肢にいれていいと思う。どうして君はSIerが全部クソと決めつけるんだい?そんなの会社部署によるさ。それはWeb業界も同じだね。

今までのキャリアを粗末にするんじゃねえ、〇すぞ。

そもそもどうして今の仕事を辞めてまで、Webエンジニアになろうとするんだい?

なぜ今の仕事に、真剣に向き合わないんだい?

隣の芝が青く見えているだけではないかい?

Web業界なら、青い鳥がいると勘違いしてはいいかい?

経験の分野に行くよりも、今まで経験があるところで勝負したほうが有利なのは自明だよね。

僕と契約して

そんなこと長々と言われても、これからどうすればいいかからないって? 

そんなの簡単さ。

僕と契約して今すぐQBプログラミングスクールQBサロンに入るんだ!!

2020-05-21

初心者向け】プログラミング言語人気TOP20簡易解説

概要

プログラミング経験からプログラミング勉強してみたい、でもどのプログラミング言語をやればいいのかわからない」というような悩みを聞くことがあるので、https://redmonk.com/sogrady/2020/02/28/language-rankings-1-20/ に載っている人気の言語TOP 20について、未経験者が最初に学ぶのはどの言語が良いかという観点簡単解説してみます

対象読者はプログラミング経験者なので、なるべく難しい言葉を使わないようにしたつもりです。また、正確性よりもわかりやすさを重視しているので何かしら間違っているかもしれません。ご留意ください。


ランキング

1位 JavaScript

Webブラウザの上で動くプログラミング言語。元々ただの文書しかなかったインターネット世界に、グリグリ動くページを作りたいという欲求により生まれた。JavaScriptのおかげで今のWebページグリグリ動きまくりである

元々HTMLちょちょっといじる為だけのものだったが、どんどん進化を続けて今は一つの超人プログラミング言語である。今ではブラウザ上でなくても普通に動かせる(Node.jsという)ので様々な用途で使われている。

ブラウザ上で動くプログラミング言語基本的JavaScriptしかないので、JavaScriptはすべてのWebプログラマが学ぶ必要があると言っても過言ではない。

ちょっとしたプログラムを書いてすぐブラウザ上で動かせるので楽しい。そういう点ではプログラミング入門に適していると言えるかもしれない。


2位タイ Python

機械学習を始めとしたデータサイエンスの分野で激烈に人気のある言語理由としてはNumPyとかTensorFlowのようなライブラリが充実しているというのが大きく、資産がたくさんあるのでこれからも使われ続けるであろう。

Webも作れるが、日本ではWeb系の求人は少ない気がする。

言語としては、誰が書いても簡潔で読みやすコードになる傾向にあり、小さいプログラムを書くにはいい感じである米国ではプログラミング教育Pythonがよく使われているという話も聞くし、初心者プログラミングを始めるのにはいいのかもしれない。

将来AIデータサイエンスをやってみたいと思うのであればPythonから始めましょう。


2位タイ Java

ランキングでは常に一位に近い順位をつける言語Javaができた当時は色々と革新的だったらしく、組み込み業界からWebまで流行りまくっていた。今でもその名残か使っているところは多い。過去資産プログラマの数が多いのが一番の理由だと思う。AndroidアプリJavaで書く(もしくはKotlin)。

実行速度が速く、また下位互換性がしっかりしているので過去に書かれたコードが新しいマシン上でも動きやすいのが長所短所としては、歴史ある言語下位互換性を保っているため文法が古い感じがする。タイプ量も多くなるし、学習コストJavaScriptPHP, Ruby, Pythonあたりに比べると高い。

正しく使えば強力な言語だが、日本のクソSEもどきは全員(自称JavaエンジニアであることがJavaが毛嫌いされる理由の一つになっている[要出典]。いわゆるGAFAJavaをかなりヘビーに使っているので要は玉石混交ということである

Androidアプリ作ってみたいというならJavaからはじめるのはアリ。


4位 PHP

Webページを作るためだけに生み出された言語プログラマの数が非常に多い。日本求人が一番多いのはJavaPHPであろう。

初心者でもとっつきやすく、すぐに動くプログラムを作れるので入門に使われることも多い。学習コストの低さはトップレベルであるしか基本的には古くてダメ言語とみなされており、PHPで作られたWebサービス脆弱性が多いという都市伝説もある。真実は闇の中である

近年のバージョンアップ比較的良い方向に向かっている(と個人的には思う)ので、選択肢としては意外と悪くないかもしれない。


5位 C#

Microsoftが生み出した言語で、.NETというプラットフォームを使ってWebサービスを、Unityというゲームエンジンを使ってゲームを作ることができる。

最近有名なのはUnityで、今やほとんどの3Dソーシャルゲーム(の一部分)はUnityで作られている。そう考えるとC#プログラマ結構いそうだし将来もある程度安泰かもしれない。もちろん.NETも広く使われている。

ただし.NETUnityも触らない人にとっては基本的に縁のない言語である

なんかゲーム作ってみたいかもなーと思う人はC#から始めてもいいんじゃないでしょうか。


6位 C++

C言語に色々な機能を足しまくってできた巨大な迷宮のような言語言語仕様は複雑怪奇だが実行速度は全プログラミング言語中でも最速レベルなので、パフォーマンス重要な開発において使われる。アプリサービスというよりは、それらを作るためのライブラリプラットフォームなどを作るときに使われることが多い。Web系の会社でいうとGoogleなどは主にC++を使っている。

基本的には初心者が触る必要はない。競技プログラミングを極めたいとかならC++からはじめてもいいかもしれない。


7位タイ Ruby

このランキングの中で唯一、日本人によって作られた言語。作者のまつもとさんは世界有名人である。ちなみに島根県出身、在住。

プログラミングを楽しくすることがモットーらしく、確かに書き味は良い。また作者が日本人なこともあってか日本情報が多く、情報収集という点ではとてもやりやすい。

Ruby on RailsというWebサービスを作るためのフレームワーク世界的に大ヒットしたため、必然的Ruby知名度も上昇した。少し前まで日本Webスタートアップは猫も杓子もRuby on Railsといった様相であった。今は少し落ち着いたようだが今も人気は根強く、Webプログラミングスクール等ではだいたいRuby on Railsを教えているとかいないとか。

Webに興味があるのならRubyから始めるのが一番無難選択肢と言える…のか?まあ悪くはないと思う。今でも需要は多い。スクールに行きたいのであれば黙ってスクールカリキュラムに従いRailsをやりましょう。


7位タイ CSS

これは他の言語とは毛色の違う言語である。というかCSSプログラミング言語と呼んでいいのだろうか?

CSSHTMLを装飾するためのものである。字に色をつけたり、背景を変えたり、レイアウトサイズを変えたりするのは基本的CSS役割である

すごく大雑把にいうと、HTMLで表示する内容(文章画像)を定義し、CSSでその見た目を整え、JavaScriptで動きをつける。というのがWebサービスの”見た目”を作るやり方である

なので、Webに興味があるのであればある程度はCSS知識必要である。が、これ単独で学ぶようなものではない。Webサービスを作る時についでに調べて少しずつ覚えていけば良い。


9位タイ TypeScript

TypeScript比較的新しい言語で、JavaScriptさら拡張したものであるMicrosoftによって開発されている。

プログラムにはデータの型(Type)というものがある。例えば「1」や「2」は数値型、「あいうえお」は文字列型といった具合である。大まかに言うと、この「型」に対して厳しい言語は型チェックによりバグの混入を防ぎやすいがプログラムを書くのが大変、というかコード量が多くなる。型が緩い言語サクサクかけるし短く書けるがバグを生みやすプログラマの力量が問われる。ランキングの中だとJavaScript, Python, PHP, Ruby, Perlあたりは緩く、Java, C++, C, Swift, Go, Kotlinあたりは厳しい。

そんな中、世で広く使われているJavaScriptの型チェックが緩すぎるのでもっとちゃんと型をつけたい、そんな要望を叶えるのがTypeScriptである基本的JavaScript理解している人間が使うべき上級者向け言語というのが現状なので、初心者が始めるには適していない。

ただしこの先主流になっていく可能性は大いにあるので、どこかのタイミングで勉強してみても損はしないと思う。


9位タイ C

C言語基本的OSを作るための言語であるOSというのはWindowsとかmacOSとかLinuxといったもので、マシンを動かすための基盤となるソフトウェアであるAndroidスマホにはAndroid(という名のOS), iPhoneにはiOSが載っている。コンピュータ基本的OSがあって初めて動かすことができ、OS提供する機能を使ってブラウザスマホアプリなどを動かせるのである

というわけで、初心者が学んで実用的なものではない。ただしC言語というのは世の中の様々なものの基盤になっており、他言語文法C言語から拝借しているものが多い。例えばC言語をある程度勉強していればJavaPHPなどはなんとなく雰囲気で書けてしまったりする。

そういうわけで、コンピュータサイエンスをこれからちゃんと学んでいきたいという人(大学生とか)はC言語から始めるのもいいと思う。ちなみに筆者は初めて書いた言語はCであるが、意味理解できるまでに2年かかった。才能がないとこうなるので注意。


11Swift

SwiftAppleによって作られたAppleのための言語であるiOSアプリiPhoneアプリと言い換えても良い)を作るためだけに存在している。

言語自体は他と比べて新しいため文法機能イケてる雰囲気があるので基本的はいいのだが、iOSアプリ以外で使っている人は多分世界で5人くらいしかいないと思う。なのでiOSアプリに興味がない人はやめておきましょう。iOSアプリを作りたいあなたは他に選択肢はない。Swiftをやりなさい。


12Objective-C

Swiftが生まれる前はiOSアプリを書くためにObjective-C必要だったため、多くの人がこの言語を使っていた。が、今はSwiftがあるので、古くからあるObjective-Cアプリメンテナンスする時以外に使う機会はない。名前すら覚える必要がないので存在を忘れてしまって構わないが、これだけ順位が高いということは多くの企業がいまだにObjective-Cで開発し続けているということであり、ニッチ需要はこれからも残るのかもしれない。


13位タイ Scala

Scala関数型言語と呼ばれる言語の一つ。Javaの親戚みたいなものなのでJavaとの連携が容易であり、上手く使えば性能も出るしコード量も少ないしバグも少なくて最高、な感じらしい。が、その分難易度が非常に高いので初心者が手を出すものでは絶対にない。どんなに早くても他に二つは言語を覚えてから勉強しましょう。Javaを覚えてからやるのがベター


13位タイ R

R言語データ解析用のプログラミング言語である

正直ほとんど書いたことがないのでよくわからないが、ビッグデータというワード流行りだした頃はデータ解析用途でかなり流行っていた。その後機械学習AIブームが来て、今でも現役で使われてはいるがPythonがどんどん勢力を拡大しているので少し目立たなくなってきた、というのが個人的な印象である。まあプログラミング初心者最初にやるようなものではないことだけは確かである


15位タイ Go

Go言語比較的新しいGoogle製のプログラミング言語で、Googleのように巨大なシステムでの使用目的に作られたものであるしかし実際には様々な企業が利用しており今一番勢いのある言語と言ってもかもしれない。

他のプログラミング言語の良い点や悪い点を参考に設計されており、実行速度の速さと生産性プログラムの書きやすさ、読みやすさ)を両立できるような言語になっている。ただし、機能を増やすのではなく本当に重要機能だけに絞るという思想があるようで、他の言語に慣れていると機能の少なさに不便を感じるかもしれない。

学習コストが低いという点では最初に学ぶ言語として適しているかもしれないが、GoだけでWebサービス等をサクッと作れるのかというと微妙なので、アウトプットを出しにくいというのはあるかもしれない。

二番目や三番目に学ぶ言語としてはオススメ


15位タイ Shell

シェルというのはテレビなんかでハッカー的な人間PCを開いて謎の黒い画面に白い文字を打ち込んだりするアレである説明としては正確ではないがまあ大体そんなもんである。何が言いたいかというと初心者最初に学ぶとかそういうものではない。しかし実際に開発の仕事をやるとシェル知識はあったほうがいいし、シェルに多少詳しくなるとPC上でテキスト操作をしたりファイルをいじったりというのが便利にできるようになる。ただし(通常は)極める必要はない。

Shellと言っても実際にはbash, csh, tcsh, zshなど色々あるのだがそれらをひとまとめにしてShellとなっているようだ。


17PowerShell

PowerShellは上のShellの親戚みたいなもので、ShellがMacLinuxで動くのに対しPowerShellWindowsで動く。そんだけである。あと正直あまり知らない。


18位 Perl

ランキングの中ではかなり昔からある言語で、サーバーと呼ばれるマシンには大体Perlが入っている。そのくらい市民権を得た超有名言語で、C言語C++で書くほどでもない小さなプログラムはとりあえずPerlで書く、というくらいには広く使われていた。インターネット初期はほとんどのWebサイトはPerlで書かれていたとかいないとか。PHPなどの登場はその後である

今でも広く使われてはいるが、RubyPythonPerlの後継的な位置付けであるため、初心者が新しくPerlを学ぶメリットというのはあまり思い浮かばない。何か特定目的があるのであればいいと思う。


19位 Kotlin

Kotlin簡単に言えばBetter JavaであるJavaをもうちょっといい感じに書きたいという気持ちで作られた言語で、Scalaと同じくJavaの親戚のようなものである

ランキングの中ではSwiftと並んでかなり新しい部類。AndroidアプリKotlinで書けるようになったことがきっかけで人気が爆発的に上昇、今ではWebの開発にも使われていたりする。

とは言えまだまだ新参者といった感じで、ドキュメントなどの情報も他の言語に比べると物足りないので初心者には厳しいかもしれない。

言語自体はとてもいい感じなので、もう少しコミュニティ成熟してくれば最初に学ぶ言語選択肢として有力になるかもしれない。


20Haskell

HaskellScalaと同じく関数型言語であるScalaJava的な書き方でも動くの対し、Haskellは「純粋関数型言語」と呼ばれ、ランキング中の他の言語とは一線を画した書き方になる。どう考えても初心者にはオススメしない。少なくとも他に二つは言語マスターしてからやりましょう。


総評

なんとなくWebに興味がありそうならJavaScriptRubyもしくはPHPAndroidアプリに興味があればJavaiPhoneアプリに興味があればSwiftAIデータ分析に興味があればPython3Dゲーム開発に興味があればC#。この辺りをやりましょう。

特に目的がないのであればフィーリングで選んで大丈夫ですが、やめておくべき言語というのはあるのでその辺だけ参考にしてもらえれば。

なお筆者はただのヘボプログラマであり、大好きな記事http://www.mwsoft.jp/column/program_top10.html) の現代版かつより初心者向けなものを書いてみたいと思ってこの記事を書きなぐった次第である。あまり真に受けないよーに。

anond:20200521122034

そうだよ、昨今はメモリも潤沢になったか要件は違うけどね

組み込み系なら若干残ってるかなぁ?

ログイン ユーザー登録
ようこそ ゲスト さん