「C#」を含む日記 RSS

はてなキーワード: C#とは

2020-06-05

anond:20200605175948

C#ではintはInt32のエイリアスだよ。

いま生き残ってる中で処理系によって長さが変わるintなんて採用してる言語C/C++くらいでしょ。

2020-05-27

オブジェクト指向が分からないあなたへ

どうも、都内の某企業に勤めるフルスタックエンジニアです。この記事では、ITの非専門家に向けて、オブジェクト指向解説をしたいと思います

小学生プログラミング教育が開始されたり、AIIoTなどの技術が身近になった今日オブジェクト指向理解しておくことは極めて重要です。なぜならば、オブジェクト指向ITエンジニアとっての「共通言語」であって、今やあらゆるソフトウェア技術オブジェクト指向の上に成り立っているからです。したがって、オブジェクト指向理解すれば、ITのすべての分野の基礎が身についたことになります。難しい概念がいくつか出てきますが、分かりやす解説するので頑張ってついてきて下さい!

オブジェクト指向とは

まず、オブジェクト指向とは何かを解説します。オブジェクト(object)とは、「モノ」のことです。言い換えれば「モノ指向」です。つまりコンピュータのようなバーチャル対象ではなく、現実のモノをモデルプログラミングしようというのが、オブジェクト指向定義です。この考えは、今流行りのIoT(Internet of Things = モノのインターネット)にも取り入れられ、爆発的に影響力を増しています

モノという考え方は、18世紀哲学者カントに遡りますカント純粋理性批判において、理性と経験によって認識できる以前の「物自体」という概念提唱し、大陸合理主義イギリス経験主義を統一しました。オブジェクト指向におけるモノとは、カントのいう物自体です。したがって、オブジェクト指向世界の真理を記述できます。そのため、コンピュータというバーチャル世界を超えて、IoTを作ることが可能になります

現代プログラミング言語オブジェクト指向サポートする最も代表的言語Javaです。これに対して、CやC++といった旧来の言語関数型言語といい、現在では顧みられることはありません。また、JavaMicrosoftであるC#や、Javaに組み込んで使うマクロ言語であるJavaScriptなどもオブジェクト指向言語であり、プロエンジニアは好んでよく使います。一方、学生向けの教育用言であるPythonRubyなども、一応オブジェクト指向サポートしています。これらはプログラミング入門には適していますが、実務で使われることはありません。

オブジェクト指向の三要素

オブジェクト指向で最も重要な要素は

の3つです。これらを駆使することで、食卓から宇宙までを豊かにするIoTを作ることが可能になるのです。一つ一つ解説していきます

カプセル化

カプセル化とは、実装利用者から見えなくすることです。

たとえば、ソフトウェア脆弱性があったとしても、カプセル化をしていれば、利用者からはその脆弱性は無いように見えます。したがって、オブジェクト指向で作られたソフトウェアには、セキュリティ上の問題存在しません。

また、IoTを用いていない従来の家電製品などは、ボタンがたくさんあったりして操作がとても複雑です。カプセル化を応用すると、この操作を全く包み隠してしまっても、機械が使えるようになりますiPhoneスマートスピーカータッチパネルや声認識などで操作できるのは、カプセル化のおかげです。逆に、ガラケーボタンがたくさんある家電製品などは、オブジェクト指向(=IoT)で作られていません。

継承

継承とは、あるオブジェクト性質を別のオブジェクトが引き継ぐことです。

たとえば、人間は「歩く」「喋る」などの動作を行え、鳥は「飛ぶ」「鳴く」などの動作が行えますオブジェクト指向世界では、鳥を継承することで、人間が飛んだり、鳴いたりすることができるようになります。これを応用したのが、VRVirtual Reality=仮想現実)です。

また、iPhone携帯電話であるにも関わらず、ツイッターをみたり、アマゾンで買い物ができたりするのもオブジェクト指向のおかげです。つまりiPhoneツイッターアマゾン継承しているのです。それだけではなく、iPhone時計や財布、メモ帳など、現実世界の多くのもの継承しています

ちょっと抽象的になりますが、この考えを突き詰めると、次のような応用が生まれます。将来必要となるすべての機能実装したオブジェクトを一度作っておけば、後続の開発者はそれを継承するだけで、新規の開発なしに新機能を追加することができます。このような性質を「再利用性」といい、ソフトウェア開発では極めて重要な考え方となります継承はこの再利用性をもたらすために、ソフトウェア開発のスピードを爆発的に加速させ、現代ITの発展の原動力となりました。

ポリモーフィズム

ポリモーフィズムは、日本語では「多態性」と言います多態性とは、読んで字のごとく、多くの状態を持つということです。

オブジェクト指向では、多くの状態を持つことができます。一方、C言語などの関数型言語状態を持つことができません。関数型言語では、プログラムを関数(つまり入力と出力をもつブラックボックス)の合成として記述します。関数は、中学校数学で学んだように、入力に対して出力が一意に定まるので、状態を持つことができないのです。この制約を「参照透過性」と言います

オブジェクト指向では、参照透過性の制約がないため、プログラマは自由コードを書くことができ、関数型言語と比べて遥かに生産的です。また、上に述べたように状態を持てるということは、プログラムの入力に対する出力を無数に持てるということです。この応用がAI(Artificial Intelligence=人工知能)です。AIが、まるで人間が考えたかのように答えを出すことができるのは、ポリモーフィズムにより無数の出力を得ることができるからなのです。

おわりに

全体的に難解な記事となってしまいましたが

部分的にでも理解すればIT世界を見る目が変わるはずです。

うさんくさい情報に惑わされずに、このような本物の知識を身につけ

そして、皆さんにはIT未来を見通せる人材になっていただければと思います

やっとソースの解読が終わった…

たった、3ファイルだったのに、理解するのに数日かかってしまった。

windowsアプリC#も初めてだったとはいえ結構かかったな…。

デバイスとやりとりするために必要知識を読むのは結構大変。

慣れない事はあまりしたくないものだな…。

解読したコードコメントだらけだし、解読しながらまとめたメモもびしりだ…

2020-05-24

anond:20200524145515

C#TypeScriptの完全ラッパーになりつつWebAssemblyも出来ちゃうかもしれない未来について

2020-05-23

オサレ言語

増田の中ではプログラマーっては、PHPPython使えるやつのことなのかよ。

Z80asm→Cobol88→C→C++VB6C#VB.netJava

まで、たどり着いたんだが未だにPHPPython出会えてないぞ。

anond:20200521175300

10年超のプログラマやってるものだけど自分の成長過程を書いてみよう

  • この後にもいろいろあったが面倒になってきたから省略。しょぼいゲーム会社就職する。
    • JavaScript でなんか色々作る
    • Python でなんか色々作る
    • C# でなんか色々作る
    • はてなを始めたり

2020-05-22

anond:20200521225730

プログラミング言語を印象批評している記事に触発されて、自分も印象批評してみようと思う。

JavaScript以外にもブラウザ上でぐりぐりするのにはJava AppletとかFlashとかSilverlightかいろいろあったけれど、結局標準化を成し遂げたHTML5に淘汰されちゃった感じがする。LiveScriptからJavaScript改名されたり、規格を話すときECMA Scriptだったりといろんな別名を持つ。一応、プロトタイプベースオブジェクト指向言語なんだけれど、それを意識してコードを書く人がどれくらいいるかは謎。

Pythonは小さいコードを書くのには楽だけど、これで大きなコードを書くと思わぬ変更で思わぬことが起きるのでつらい。しばらく使うとPythonイヤイヤ病にり患し、goを使うようになるらしいとか、ならないとか。pythonで大規模なコードを万一書こうと思うなら、カバレッジが高いテストを書いてくれと思う。

Javaは初期のころオートボクシング / アンボクシングもなく、ストイックオブジェクト指向言語だった記憶がある。ただ、staticを多用してオブジェクト指向とは程遠いコード簡単に書けるので、Javaで書いているからと言ってオブジェクト指向だと思うのは禁物である

PHPWebネイティブ言語で、初期のころHTTP POST/GETなどで渡された変数がそのままプログラム中に出てくる機能初期化していない変数最初に使うと空文字列あるいは0で初期化するという機能があった。また、文字列数字臨機応変に切り替える機能もあり(今もそうかは知らん)、数字文字比較比較演算子(==)でシームレスにできる。パスワードチェックみたいなコードで===ではなく、==を使っているとPHPを知らないバカ扱いされる。

C#Hello Worldくらいしかいたことないから知らん。monoのような互換環境があるのは知っているけれど、わざわざPC Unix上でmonoを使う気分にはなれなかった。

C++黎明期に使った感じと、C++11以降に使った感じが驚くほど違う言語。今はかゆいところには大抵STLで手が届くし、autoを使えばイテレーション腱鞘炎になることもない。PC Unixにも最初から環境インストールされているか簡単インストールできるので毛嫌いせず使うとよいと思う。

Rubyはぎょっとする変更をよくやるというイメージ。これで書かれたプログラムを長年愛用してきたが、ぎょっとした変更を入れられて動かなくなったのでgoで書き直した。その点ではpythonも3でおいていかれたので嫌い。

CSS...はプログラミング言語なのか?そうか。

TypeScriptは書いたことないから知らない。JavaScriptだと大規模コードを書くとつらいのでTypeScriptを使おうという人がいるのは知っている。大規模なコードを書くとしたら、インタフェースに合った呼び出しかコンパイル時にチェックしてくれるような強く片付けされた言語のほうがよくなってくるというのはわかる。

Cは片付けし、構造化したプログラムを書きやすくしたアセンブラ...というイメージだったんだけど、C99くらいから便利機能がいろいろ入ってそうでもない感じになった印象。昔はCのコードを見たら最適化した後のx86アセンブリが見えていたんだけれど、最近は見えなくなってしまった。子供のころ、本屋で秘伝C言語問答 ポインタ編に出会ったのがこの業界に入るきっかけだったのかもしれない。ほかの言語でいろいろ楽に書けるからカーネルをいじるか、システムコールをたたくかするときくらいしか自分の中では出番がなくなってしまった。

これ以下のランキングのもその気になったら書こうかな。

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) の現代版かつより初心者向けなものを書いてみたいと思ってこの記事を書きなぐった次第である。あまり真に受けないよーに。

そういえば5年前プログラミングスクールに行ってた

ツイッター、なんだか一部でプログラミングスクールについて盛り上がってるみたいですね

プログラミング...スクール...?あっ5年前通ってたんだ...」みたいな感じで忘れてた記憶が蘇ったので振り返ってみます

当時高卒上京してきた直後で、「とりあえずなんかプログラム書いてお金もらう感じになりたい」程度のテンションでした

それまでプログラミングしたことないし、いわゆるIT知識も持ってるようでいて持ってないというバックグランドです

そんな中でプログラミングスクール存在を知りました

正直「ここに通えばなんとかなるんじゃないか」くらいの気持ちだったと思います

しか期間は1か月で、割引制度を使って料金は10万円だったかな...(ヒーヒーいいながらなんとか支払った)

5年前の話なのできっと今ではそのスクールシステムもいろいろ変わっていることでしょう

内容は、用意されたHTMLCSSRuby教材の課題をこなしていって、最後Ruby on Railsで簡単Webサービスをつくり、時間が余ったら自分の好きなWebサービスをつくるといったものでした

作業別に家でやってもよいし、スクール物理教室にいけばメンターがいて質問もできます

いよいよスクールが始まりましたが教材の課題をこなすのが難しかった...

きっと一般的にみて特別難しい内容ではないのでしょう、メンターというサポート体制もあります

が、ダメだった...

しかRuby四則演算から先の課題がこなせなかったような...

ほんとに教材に書いてあることが理解できなかった

メンター質問しようにも「分からないことが分からない」みたいな状態で、なかなか前に進みません

最終的に教材の修了度は60%くらいだったかな...

なんとなくHTMLタグの種類が分かったくらいで、プログラミングする上でのメンタルモデル形成されるわけでもなく「あぁ僕にはプログラミングは向いてないんだなあ」という感想を得て1か月が終わりました

一応継続してスクールに通えるプランはあったようでしたが、金銭的に余裕がなく1か月で綺麗そのスクールから離脱しています

スクールに行った前後特に状況変わってないぞどうしよう...という状況で、コンビニバイトしつつ知人にベンチャー企業を紹介してもらって「何かつくったらまたおいで」と言われてさよならされる日々を送っていました(そりゃそうなる...)

数か月後、Unityというゲームエンジン初心者向けハンズオンが開催されることを知ります

もともとVRには興味があり、Unityを使うとVRアプリがつくれる程度の知識はあったので軽い気持ちで参加しました

そのハンズオンが楽しかったので以降Unityにハマっていきます

後日Webの教材で改めて一番基本的操作を覚え、「まだ手を出したことのない機能ひとつ盛り込む」というテーマを持って週にひとつゲームをつくって投稿サイトに上げていました

そんなことをしているうちに、縁があって会社に入ったりニートしたりアプリリリースしたり転職したりしました

結局いまプログラミングスクールでやっていたことがそれほど関係しないポジションでふんわりC#を書いてご飯を食べていて、「プログラミングスクールのおかげでどうのこうの!」というパターンにはならなかった人です

いまも「あぁ僕にはプログラミングは向いてないんだなあ」という気持ちだし、Rubyはなんとなくトラウマで...

職場自分以外のプログラマーがみんな修士卒以上で超こわい、行ったことないから分かりませんがプログラミングスクールよりちゃん大学行ったほうがいいんじゃないのみたいな気持ちです

せっかくお金出して行ったのにまともに血肉にできず、自分のだめさを思い知っただけという意味で人に話してこなかった黒歴史なんですが、いろいろ書き連ねてみました

2020-05-09

anond:20200509091007

C#仕事用のWindowsアプリ作るぐらいにはコード書けるけど、未経験アラフィフ仕事なんかないぞ。

結局実務経験が求められるんだから絵空事他人を惑わすなよ。

2020-05-07

anond:20200507113907

AndroidC#は動かない(とは言い切れないがJavaやろ)

anond:20200507113423

かにIoTってJavaが言いそうなことだね。現状C#兄弟しかないような気が。。。

2020-05-06

anond:20200505233945

VBAExcelとか触ってるならPythonSelenium使ってWebシステム自動化や、PyAutoGUIで普通アプリ自動化とかやってみて欲しい

Pythonは少し癖があるけど難しい言語ではないし(VBAとはかなり毛色が違うとは思う)、ちょっと手間かかるけどPyCharmとかVSCodeとかの環境整えて補完やテストデバッグバージョン管理のやり方覚えると、VBAよりもイライラが驚くほど減ると思う

あるいは、プログラミング自動化好きな人と道具的なツールアプリを作るのが好きな人自己表現好きな人がいるように思えて(あとゲーム作り好き)、自動化好きな人ツールアプリを作るのが好きな人結構好みが似ていると思うからPCソフトを作るならC#+VisualStudioiOS/AndroidソフトならSwift/KotlinWebアプリならJavaScript(と今ならVueとか?よく知らない)とかを覚えると面白いかもしれない

自動化転職するのは難しい気がするけれど(事務系の資格持ちとかならスキルとして強いと思う)、アプリ開発ならかなり求人多いし、零細が多いか年収気にしなければ高卒でも就職は出来ると思う

2020-04-19

[] [増補改訂関数プログラミング実践入門

コロナ自粛勉強中。以前買ったHaskell本を読み直している。落ち着いて読めば結構理解できる。

https://gihyo.jp/book/2016/978-4-7741-8390-9

この本の概要

現場の方々に向け,関数プログラミングエッセンスを厳選解説した入門書

関数型言語Haskellを用い,基本からJava 8/C/C++/Python/JavaScript/Rubyをはじめ各種命令言語との比較オススメの開発/設計テクニック等を平易に解説

改訂版ではGlasgow Haskell Compiler 8ならびに新機構のStackage/stackへの全面対応関数型言語由来の他言語機能解説章(第8章)の新設(Swift/Go/Rust/C#等の例も紹介)をはじめ実践開発に役立つ解説を増強し,関数型言語でも命令言語でも活かせる「使える基本」を凝縮しました。

こんな方におすすめ

anond:20200419160315

それはある

Unityで使われるC#Javaのパクりだし

Unreal Engineで使われるC++Javaのパクりだし

TypeScriptEcmaScriptJavaのパクりだから

とりあえずJavaやっとけばいいよ

2020-04-17

コロナ時代中小SI

中堅SIerでいわゆるSEをやっている。中小企業や、大企業があっても部門システム程度のシステム導入や保守サポート自分仕事だ。オーダーメイドであればJavaC#OracleMSSQLで開発するし、業務パッケージの導入支援なんかもする。規模が小さいか多重下請けみたいなのはほぼないが、PMだけとか仕様決めだけで、作成外注頼みにして数回そうって、社内の技術空洞化心配される普通SI業だ。

IT業界の端くれらしく在宅リモートワークになった。お客さんは休業するところもあるにはあるが、多くはそのままだったり、営業時間を縮小したり、総務経理なんかをリモートにしたり、工夫しながら営業を続けている。チャットメール電話はそれなりに入ってくる。

例えば給与管理なら4月で雇用保険徴収対象外になる人が出るけどどうすればいいの?みたいな季節モノから、自宅PCから会社PCにつないで/会社ノートを自宅において、あのシステム使える?とか、IT補助金出るみたいだけどPC10台調達できるか営業に伝えて、みたいなこの状況ならではの対応とか。出荷システムピッキングがうまく行かないとか、普通保守対応もたくさんある。

開発案件ストップや延期もちょいちょいあるけど、自宅から質問に答えたりリモートトラブルシュートしたり営業インフラ担当の手配をしたりなんのかんの忙しい。自分もお客さんも自社の営業インフラSEもみんな在宅だったりするし普段とは違って変な感じだ。

いろんな企業のいろんな部署のいろんな人が働いていてITソフトウェアに頼っているんだなとあらためて感じた。

Amazon楽天ヤフオクメルカリなんでもそうだが、今はみんながプラットフォーマーになりたがる。

商流を握れば手数料で儲けがスケールする。ITをコアにスケールする企業が生き残る。

でも、そこで流れる商品を作っているのはメーカーだし、調達して販売してるのは卸だし、在庫が置かれてるのは倉庫業だし、ものを運ぶのは運送会社だ。その他たくさんの業種。マケプレで僕らが買えるのはそうした企業があるからだ。

いろんな会社が、この状況下でも営業をしなけりゃ生活必需品が行き渡らない。

その大部分は中小企業で、ITコアコンピタンスじゃない。高年収フルスタックITエンジニアを何人も抱えて内製化できない。情シスが何人かしかいなかったり、総務のお兄さん一人なんてところもある。そんな企業日本だけで何十万とある

そういうところに頼られて、なんか問題解決して、支えていけるなら、喜ばれるんなら、SIerもそんなに悪くはないなと思ったりした。

会社の大先輩のおじいちゃんは、SAPが出てきたころにパッケージオーダーメイドなんてなくなると言われたけど、パッケージ導入や足りない部分の開発で結局食えたと言っていた。ならクラウド時代でもSaaSが主流になっても多分仕事は尽きないんだろうな。最悪自分がどっかの会社情シスに潜り込んで内製に回れるような技術は身につけておきたいけども。

ちょっと前はきらきらしたWeb業界に憧れてたんだけど、コロナちょっとだけ考えが変わったな。

2020-04-01

仕事くれー

アルバイト君達の給料払えなくなるかもわからんから仕事くれー。

PHPとかtypescript とかc#とか出来るでー、仕事くれー

2020-03-26

anond:20200326021232

昔の座学だから適当記憶だけれど、

ラテン語系とゲルマン語系の2流派あって、

それぞれが独自に発展した。

んで、ラテン語系はラテン語系で似ているし、ゲルマン語系はゲルマン特有法則がある。

例えば、ゲルマン語は造語が得意だし、

ラテン語系やるとラテン語言語だいたい解ったりする。関西人適当共通語喋るくらいの感覚で、未修学言語でも聞き取れる事もある。

恐らく増田ラテン語言語やってたんじゃないの?

興味もなくドイツ語やると、凄くひっかかる。

きちんと文法やれば、そういうもんだと理解できるよ。

PythonPerlラテン語系、C#Javaゲルマン語系みたいなもんかも。

どっちが正しいとかではなく、お互いそういうもの

あくまで道具であって、何を作るか何を伝えるかが重要だよね。

2020-03-24

大量のデータグラフを描きたいのだが、どのプログラミング言語がいいのか

Pythonだとmatplotlib、Rだとggplotがグラフを描くとき定番となる。

C++C#はこれといったグラフライブラリを聞かない。


irisのデータセットくらいならいいのだが、凡例が万を超えるようなデータでも、とりあえずグラフにしたい。

matplotlibがデフォとなっているが、実データで始めると遅い。カスタマイズもハマる。

Numpyで処理するところまでは、非力なPCでもなんとかやっていけるのだが、グラフを描いて保存する段階で遅すぎて困ってしまう。

リアルタイムに処理しくてもいいが、ファイルが1万をややこえるくらいであり、それをグラフに変換するわけだが辛い。


ggplot2はいいが、Rがそもそも遅い。


JuliaはJupyterで1回目探索で描くときはよかったが、バッチで実行しようとすると起動が遅すぎて辛い。

anond:20200324161456

結局今の金になる(しメジャーになる)プログラム言語って

Typescript/PHP/Python/C# のどれかに収れんするんだが、どの言語もそれぞれ微妙に使い勝手が悪いってな。

なんで統一化できないのかさっぱりわからん

TS+C#の最強言語が一つありゃ何でもできるのに。

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