「Unix系OS」を含む日記 RSS

はてなキーワード: Unix系OSとは

2019-04-04

こうすればプログラミング覚えられるよ【随時追記

プログラマじゃないけどプログラミング完全に理解した()おばさんが理解してる基礎知識書くよ。

追記 この文章プログラミング勉強をしたいけどその周辺にある基礎知識になかなか触れる機会がない人向けに書きました。これらの基礎知識があると、困ったときに調べ方すら分からないという状況は回避やすくなるはず)

まずLinuxUnix系OSの使い方。

ターミナル、いわゆる黒い窓からCUIコマンドユーザーインターフェース)でコンピュータを使う方法を覚えよう。これは大学コンピュータリテラシーで習った。MacOSXで復習すると捗った。(追記 すごく間が抜けてたけどMacOSXUnix系OSです)

まずはファイル操作Macターミナルを使って、cd Desktopって打ってからecho ohayou > aisatsu.txtって打ってみて、cat aisatsu.txtってやる。そうすると何が表示されるのか?とりあえずやってみよう。ここで>は増田の都合上大文字全角にしてるけど、ちゃんと半角にしてね。なんで増田の都合上半角がダメなのか、そのうち想像できるようになろう。(追記 ブコメ指摘感謝

そして、実際にデスクトップを見に行ってみると、aisatsu.txtってファイルがあるはずなんで、開いてみよう。これで何が起こったのか7割くらいはわかるはず。

こういうファイル操作の基本をまず覚えよう。これこそ空気みたいなものから

追記 ここも間が抜けてたけど確かにhogeって何かわからいね。直しました)

次に文字コードバックスラッシュの話。

最近は何も考えなければ文字コードはとりあえずUTF-8でなんとでもなるようになってるけど、バックスラッシュとかは環境設定で出てくるように設定しないと出てこないし、その意味合い、つまりエスケープとしての使い方を頭に入れておくと後々困らないと思う。あとEOF(エンドオブファイル)とか改行コードとかもそういうものがあるよ程度には覚えておこう。これ頭の片隅にはいってないと分からん殺し的な罠にはまることがある。

次にプログラミング環境の構築の仕方。

これは使いたいプログラミング言語公式サイトに行くと大抵書いてある。

でもMacだとだいぶ楽。とりあえずターミナルからgccって打ってみるとなんかCUIツールとか書いてあるものインストールしろって言われるのでインストールする。これだけでCとかC++とかRubyとかPythonとか一通り使えるようになる。もしかしたら最近はこのインストールすらいらないかもしれないけど。

あと、シェルコマンドとかプログラミング言語を実際に使うときはいろんなライブラリインストールする必要があるけど、そのライブラリ管理がすごく面倒なので管理をまとめてくれるコマンドがあったりする。aptとかhomebrewとかがそういうのだから、そんなものの使い方も覚えておこう。

追記 言語文法を追うだけなら環境構築なんてしなくてCloud9とか使ってもいいかもだけど、プロダクトを作ろうとした時にはまだまだ手元で環境作って必要ライブラリを入れてとやった方が後々応用がきくと思うのですよ。それにそうしていくとDockerの有り難みなんかも理解できるようになっていくのではと思います

最初勉強するプログラミング言語は、Javaだけはやめておけ。

なんでかっていうと、Javaオブジェクト指向言語ってやつなんだけどオブジェクト指向的にしか書けないから。古い人間だと言われそうだけど、最初手続き型言語から始めるべきだと思ってる。少なくとも、手続き型的に書ける言語から始めるべき。

なぜそう思うのかも含めて、とりあえずおばさんが理解しているプログラミング言語の発展の経緯を軽く解説する。

最初の頃のプログラミング言語は、手続き型と呼ばれるものが多かった。

この〇〇型ってのはプログラミングをするときの考え方によって名前がついているんだけど、手続き型はまず0を作って、0に1を100回足して、最後にその結果を表示してください、みたいな、上から書いた順番通りに動くのが基本のルールである考え方。プログラムは基本的にはこうやってデータアルゴリズムを使って変化させていって望む結果を得ている。でもこのやり方は問題も多かった。プログラム全体がひとかたまりになってしまっているので、数千行とかになるともう普通の人では手がつけられないし、人間ミスデータを間違って扱ってしまうことがバグの温床になった。

なので、この手続き型の考えに構造化という考えが加わって、関数というものが生まれた。関数っていうのは料理レシピに例えるとわかりやすいかも。

関数が無い状態だと、

1:玉ねぎをくし状に切ります

2:キャベツをざく切りにします。

3:豚こまに塩胡椒で味付けをします。

4:フライパンを火にかけ、油を入れて熱します。

5:豚こまを入れて色が変わるまで炒めます

6:玉ねぎを入れます

7:キャベツを入れます

8:野菜がしんなりするまで炒めます

9:火を消して8をお皿に盛り、野菜炒めの出来上がりです。

と書いていたものが、関数がある状態だと、

A:野菜を切ります

Aのやり方1:玉ねぎをくし状に切ります

Aのやり方2:キャベツをざく切りにします。

B:肉に味付けをします。

Bのやり方1:豚こまに塩胡椒を振ります

1:フライパンを火にかけ、油を入れて熱します。

2:Bを入れて色が変わるまで炒めます

3:Aを入れてしんなりするまで炒めます

4:火を消して3をお皿に盛り、野菜炒めの出来上がりです。

って書ける。ここではAとBが関数

この程度だとあまり意味を感じないかもしれないけど、これがもっと複雑なもの想像してみると、なんとなくありがたみが分かって来ないだろうか?こうすると、多人数でプログラミングをするときに、Aを書く人、Bを書く人、1〜4にまとめる人って感じで作業分担ができる。それに、バグが起きた時もAの領域バグったのか、Bの領域バグったのかとか、全体にまとめると上手くいかないのかとか、原因の切り分けがやすい。

でも、プログラムがとっても複雑化すると、これでも手に負えなくなる。料理の例えを拡大すると、料理店を運営することを考えるといいかも。

料理店でたくさんの料理をさばくときに、レシピを完全に1から作ることってないと思う。Aさんが野菜の仕込み担当、Bさんがスープの仕込み担当、というように各人に仕事が割り振られているはず。AさんもBさんもそれぞれの仕込みのレシピを持っていて、最終的に出てくる仕込みがちゃんとしてればAさんBさんの仕事の詳細までいちいちシェフが細かくチェックしない体制になっていると思う。大雑把にいうとそういう考え方をプログラムで再現したのがオブジェクト指向言語

なので、本気で料理初心者がいきなり厨房の仕切りを任されて上手くいくのは難しいように、構造プログラミングのありがたみすらわからない段階でオブジェクト指向プログラミングに手をつけても意味わからんだろうと思うのがおばさんの立場です。

追記 おばさんはRubyを勧めておきますオブジェクト指向言語ですが、手続き型的に書き下すことも出来るからです。一つの言語手続き構造オブジェクト指向、全部勉強できますメソッドも便利なのが一通りあるし、日本語を扱うのにも問題が少ないです)

次に問題を分解できるようになろう。

例えば、クイズゲームを作りたいと考えたときクイズゲームを作りたいです、って問題は大きすぎる。

クイズゲーム必要な要素は、問題文を表示する、回答を入力してもらう、正誤判定をする、正誤判定の結果を表示する、ということだなぐらいにまず分解する。

これを実際にプログラミングしようとすると、もっと分解できてさら問題が見えてくると思う。

コンピュータってのは創造的なことはできない代わりに、とても簡単なことをとても階層的に重ね合わせて大きな問題を解けるように作られてる。それを心するといいと思う。

からないことは調べられるようになろう。最後はこれ。

これ超大事プログラミングって本当に自分で1からものを考えなきゃいけないことってあまりない。大きな問題あなただけの問題かもしれないけれど、それを構成する小さな問題は大抵他の誰かが解いている問題なので、調べてみれば答えが見つかると思う。

エラーメッセージが出てきたらまずググってみる。翻訳しても初心者には意味がわからないし、ググったら誰かが解説付きで紹介してくれているのでその解説を読んだりしながらエラーメッセージとの付き合い方を覚えていけばいい。

メソッドの使い方がわからなかったら言語公式サイトに行ってみる。メソッドの使い方で大事なのは呼び出し方、返ってくる値の型とかそういうのだから、こういうところはググるよりも公式サイトに書いてあることをしっかり読んで理解する。

あと、アルゴリズム勉強もしてみるといいと思う。アルゴリズムデータ構造計算量の勉強大学学部レベル教科書ちゃんと読んでみると、例えばデータベースを操作するSQLというものを書くことになった時とかに効いてくる。あとは作ったプログラムが遅すぎてどうしようとかいうのを解決する時とか。

なんか深夜までいろいろ書いてしまったけど、あくまでもプログラマじゃないおばさんが書いたものなので、みんなでツッコミとか入れてくれると大変助かります

増田怖いよツッコミ怖いよ、もちろんおまんじゅうも怖い。

2018-06-14

anond:20180614105054

Web系ならまあUnix系OSのが便利かなあ、LinuxというかMacだろうけど

ただ子ども趣味プログラミングで何するかって大体ゲーム作るだろうからそれなら.NETありきでWindowsのほうが良い気もする

2017-12-07

Webサービス企業求人条件を具体的に書け

はてな場合Webアプリケーションエンジニア

求められる知識経験

Incrementsの場合アプリケーションエンジニア

必須スキル

メルカリ場合ソフトウェアエンジニア(Server Side))

必須条件

ドワンゴ場合(【ニコニコ事業Webアプリケーションエンジニア正社員))

必須条件

こんなのそこらへんの学生でも持ってるスキルだろ。こういう甘い条件で人を集めてバサバサ不採用にして何がしたいのかわからん。たまにいいのが来ればいいや?みたいな感じ?どうせ内部では経歴や年齢や学歴差別してるんだろ(と疑われても仕方がない)。

Webサービス企業求人条件を具体的に書け。

2017-09-16

株式会社はてな株主構成から見るはてな実態

今戯れに時価総額と持ち株比率から換算した資産表作った

近藤 淳也 66.33% 4482581400円 ○

(株)はてな 6.59% 445352200円

毛利 裕二 5.98% 404128400円

梅田 望夫 4.30% 290594000円

栗栖 義臣(社長) 2.61% 176383800円 ○

大西 康裕 1.97% 133132600円 ○

伊藤 直也 1.79% 120968200円 ○

田中 慎樹 1.41% 95287800円

田中 慎司 1.30% 87854000円 ○

小林 直樹 1.15% 77717000円

お金の額面はともかくの話なんだけど、

○をつけたのは、はてなコードを書いたことがあると"思われる人"。「名前 プログラミング」で検索して有意な結果が出た人に○つけた。各株主の詳細知りたい人は適当にググって

で、さら


はてな年収は524万円が平均年収です。(有価証券報告書調べ)

http://heikinnenshu.jp/joho/hatena.html

あると好ましい知識経験

スクリプト言語(主に Perl/PHP/Python/Ruby/JavaScript)によるアプリケーションライブラリ開発の経験

ScalaGoにおけるアプリケーションライブラリ開発の経験

iPhoneアプリ、もしくはAndroidアプリの開発経験

UNIX系OSRDBMS特に LinuxMySQL)についての基礎知識

オブジェクト指向プログラミングの基礎知識

コンピュータサイエンスアルゴリズムデータ構造分散技術自然言語処理技術機械学習データマイニング型理論)に関する基礎知識

ネットワーク技術HTTPDNSTCP/IPなど)についての基礎知識

大学卒/275,000円〜

http://hatenacorp.jp/recruit/fresh/application-engineer-entry

って、エンジニア待遇悪すぎじゃない?

この毛利 裕二という人の持ち株の資産新卒給料(計算だるかったか計算からボーナス抜いたけど、手取り分で考えたらボーナス分くらいは消えるだろう)で稼ぐとしたら122年かかるし、梅田 望夫という人は88年かかる。本当にこの人たちにはそれほどの価値(上にあげた新卒に求めるやたらと高いスペック)分の価値があるのか?いや、価値があると思ったから株をあてがったんだろうけど...

まぁなんていうか...、はてなのエンジニアのみなさんお疲れ様です...業務がんばってください

完全に外様の俺から言えるのは"エンジニアに"もっと給料たくさん払った方がいいんじゃないかということだけです

2015-04-10

最近システムソフトウェア開発のトレンドが分からない

10年位前、上位のサイトから電文を受け取り下位のサイトに再配信するプログラムを、Linux上にC言語実装する仕事を引き受け、死ぬ思いで片付けた。

その時にお世話になったのが「UNIXネットワークプログラミング」という本。

この本、POSIX準拠OS(要するにLinuxなどのUNIX系OS)におけるシステムプログラミングのノウハウに関しては名著、いやバイブルと言っていい。


しかし、である

この本は今や絶版なのだ

名著が絶版になる理由は色々あるだろうが、この本に限って言えばもはやそういう時代じゃない、そういう低レベル実装トレンドじゃないということなのだろう。


でも、そしたら「決して遅延が許されない再配信プログラム」は、一体何をどう使って作るんだ?

JavaPerl?全くイメージが湧かない。

プロセス間通信やスレッド制御、更にはシグナルも使い、それらが高速で動作しないといけない(いやスレッドは難しすぎて結局使わなかったけど)システムで、そんなオーバーヘッドが高い言語は使えないと思うのだが。

それらを解決できる気の利いたライブラリフレームワークもなさそうだし。

なので、同じ理由PythonRubyダメだろう。

そうなると、メジャーどころの言語は軒並み使えないじゃん。

或いは回線スイッチを高性能にして、サーバリソースも上げられるだけ上げるというように、インフラ側の強化で解決しちゃうとか?

それとも、そもそもそんな仕事がもはや存在しないってこと?

2014-05-04

http://anond.hatelabo.jp/20140504202952

意味が分からない

LinuxUnixに似せて作られたから同じようなもんだ、ってことなら単に「Unix」とか「Unix系OS」って呼べばいいじゃん

「*nix」には何の意味も無くなる

2013-08-02

http://anond.hatelabo.jp/20130802002544

単純な質問だけど

  • Macの過剰な演出がどうもキライ。
  • 日本語周りがとにかくイナタい。
  • そして融通が効かない。

これはどの辺で感じたの?

Windowsと比べて、ということ?

それともUnix系OS?

2012-09-10

http://anond.hatelabo.jp/20120910114648

いや、office普通にmacofficeを入れればいいと思うけど、開発環境は基本的にオープンソース自分で入れる必要があるということ。

python入れたいとかruby入れたいとかC++boost入れたいとかそういうの。

windowsだとそもそも謎の依存関係で開発環境自体が上手く入らなかったりするし、

パッケージ管理システムも無いかバージョンアップとかの管理が超めんどくさい。

mac(というかunix系OS)はその辺がかなり綺麗に構造化されてるので便利。

個人的には、PC使うときにコンソールを立ち上げない人はmac使う意味ないと思う。

2010-07-21

やったー俺にぴったりの求人があったよ

募集要項

仕事内容:オンラインゲーム開発

ゲームプログラム全般

ネットワークデータベースシステム設計、開発

認証課金システムの開発

・運営ツールの開発

サーバ環境の構築、運用

求める経験

【必須経験

C/C++perlRubyPythonPHPなどを用いたプログラム開発経験

【歓迎経験

C/C++を用いたゲーム開発経験

Unix系OS管理運用経験

C/C++, Perl, Ruby, Python, PHP全部使ったことあるよ!

PythonPHP仕事では使ったことないから微妙だけど。あとC++言語仕様完璧には把握できてないけど。

でもC/C++は商用のコンパイラを作るプロジェクトに参加してたこともあるしバッチリだよ。

Rubyは1.6の頃にインタプリタソース全部読んだりしたけど最近進化にはついていけてないかも。

ゲーム開発経験Unix系OS管理運用経験もあるよ!

【歓迎スキル

MySQLPostgreSQL等のRDBMSに関する知識

3Dプログラミングに関する知識

このへんも全部あるよバッチリ

そんなものは求められてないだろうけど、

RDBMS3Dも仮に一から自分で全部作れと言われても簡単なものなら作れるレベルだよ。

特に3DLSIを作るプロジェクトに参加してたこともある。

しかし…

年収給与: 300万円以上350万円以下

まあ、そうだよね最近プログラマ給与なんてこんなもんだよね…

2008-06-27

http://anond.hatelabo.jp/20080627002436

おおどうもありがとうございます。

社会人暦は数年あるんですが、この業界に入ったのは今年の3月頃です。全く別職種から。

元々理系なんでCとかFORTRANスパゲティコードくらいは書いたことがあったという感じでした。

(もちろん今現在スパゲティですが)

自作PCは昔々に1台作りました。SATAの読み方は最近知りましたw

ジャンルweb系ではないです。業務系でも組み込み系でもないですが。

ネットワークDBはさっぱりです。あとGUIもわかりません。これはまずいと思っています…。

あと地味にUNIX系OSもよくわかってないです。

この前valgrindをインストールしようとしてよくわかんなくて諦めましたorz

今日makefileが上手く動かなくて発狂しそうになったりもしました。

emacsキーバインドにも慣れないし、cygwin日本語化も結局未だに上手く行かず…。

周りが優秀なので焦るばかりです。これは感謝すべきことですが。

プログラム一本で食べていけるとは思えないし、自分のやりたいこととも少し違うので、

プログラミングに関しては中の上から上の下くらいのレベルを目指そうと思っています。

あと1回は転職すると思いますし、今26なので、30までにはどこにでもいけるようになりたいと思っています。

それにしても憶えること多すぎですね…。全体がわかるようになるのはいつになるのか…orz

 
アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん