IT 系じゃない人がプログラミングを始めるには? 107
ストーリー by reo
焦点がぼやけすぎていて何が何やら… 部門より
焦点がぼやけすぎていて何が何やら… 部門より
ある Anonymous Coward 曰く、
本家 /. 記事「How Should a Non-Techie Learn Programming?」より。
マーケティング部門の人や小企業のオーナーなど、IT 系じゃない人々も「IT 知識を深めるべき」と考えるようになってきている。これは正しい方向であると思われ、例えば小さなサイトを立ち上げたり、大量の演算を行ったりできるようになれば、そのスキルは家族を養う手助けになるであろう。「IT 系じゃない」人々がプログラミングを始めるにはどうすれば良いか、DBMS2 にてスレッドを立てたところ下記のような答えが返ってきた。
- HTML と CSS を早い段階で学ぶ
- SQL も軽く学ぶべきだが、SQL に焦点をあてて学ぶ必要はない
- SQL を学ぶには MySQL がオススメ
- 初めに学ぶ言語は PHP や Python など、今使われている言語にするべき
- サンプルコードに手を入れて作ることができる WordPress ブログなどを使い、実際に完成までもっていきたいと思えるプロジェクトから始めるのは良い
- Microsoft のスタック技術は他の技術と考え方が異なり、興味深く学べるだろう
他にも多くの本やウェブサイトなどが参考に挙げられたが、中でも注目すべきだったのは MIT メディアラボの開発している子供向け教育用プログラミング言語環境「Scratch」だろうか。実際 HTML や CSS、MySQL などを始めるのにあたりどんなウェブサイトや本がオススメか、「IT 系じゃない人」が基本的なスキルを身につけるにはどうすればよいか、率直なご意見を聞かせて欲しい。
こんなものみつけた (スコア:2)
「DQ9で学ぶARMアセンブル [2ch.net]」
もちろん、モノがモノだけにおおっぴらにおすすめできませんが、非常に強い動機づけにはなるかも。ディスアセンブルで解析する人って、こうやって調べていっているんだ、という「解析をはじめる」の勉強になりました。
やべぇ、「IT系じゃない人」っていうの見落としていた。
-- gonta --
"May Macintosh be with you"
プログラムは不要 (スコア:2)
なら
>小さなサイトを立ち上げたり
テンプレートを使う。どうせ大して売れない。
もし間違って売れたら、人を雇うとか、楽天に店を開けばいい。
>大量の演算を行う
EXCELが最強。
小企業なら大量の演算はあり得ない。
MySQL? (スコア:2)
MySQLやPostgreSQLだと、インストールした後、デーモンを起動するとか、ユーザーを登録してパスワードを決めるとか、SQLと直接関係ないことを学習しないといけない。
データの読み書きさえ出来ればいいのなら、sqliteのほうがいいんじゃないかなぁ。
必要は学習の母 (スコア:2, すばらしい洞察)
まず、そのスキルで何をしたいのか、というスキルと直接関係する目標を立てる事でしょう。
スキル習得を目標にしてしまうと、目標を達成した時に「で?」で止まってしまい、その瞬間に燃え尽きてしまいます。
で、できればその目標は「自分が楽したい」系がよろしい。
『Excelで同じ操作を繰り返したくない』
とかその程度であれば具体性があるので、習得したものをすぐ応用でき、「楽」という成果を収穫し易い。
すると「もっと楽したい」というずぼら心が芽生え、さらに学習を進める気になる。
fjの教祖様
まず「何ができるか」を概観するべき (スコア:1)
ワープロは漢字タイプライタ代わり、表計算ソフトは表作成ソフト
というレベルの人が多いですね。
IT管理担当部門が基幹業務システムからはき出した業務データを数
万件手計算で集計してExcelに入力していたなんて人もいました。
で、その人の後任から方法がないか相談されたので、Accessのクエ
リーで集計して見せたら、とても感動されたりしてます。
で、こういう事例を見るたびに思うのが、パソコンでどんなことを
できるのかわからないと効果的な利用はできないということですね。
なので、非IT系業務の人がプログラミングを覚えるなら、まず、ITで
どんなことができるのかを概観するところからはじめた方が良いと思
います。
そして、自分の業務にITを適用することで、どんな効果が見込めるのか
そのためには、どんなスキルを身につけたらいいのかの目処を立てる
と、効果的に学べると思います。
あと、ワープロや表計算などのアプリケーションの本来の使用目的や
使い方を覚える必要もありますね。
具体的なプログラミングですが、事務系の場合、AccessとAccess VBAが
効果的です。ビジネスの場合、大量のデータを取り扱う必要があるので、
データベースを使えれば、かなり効率が上がりますし、VBAは比較的、覚え
安いです。難点はMSのヘルプが専門用語バリバリで初心者にはわかりにくい
点ですが・・・。
でも、そのあたりAccessみたいなメジャーなソフトは、入門者向けのテキス
トで良書がたくさんあるので乗り越えやすいと思います。
私自身は歴史専攻で文系ですが、メカトロに興味があったので、学生時代
にZ80のマイコンボードの仕組みを独習して、その後MSのQuick Basic/Cで
プログラムを覚えました。
SQLは情報処理技術者試験の問題で初めて遭遇しましたけど、SQLなら他の
言語やDBMSの知識が有れば、すぐ理解できますね。
言葉を操れる能力 (スコア:2)
どんなプログラミング言語が最適か以前に、 自然言語を含む「言葉」一般に対して、
などの、「言語によるロジックを操れる能力」がどれだけあるかが 重要なのではないかと常日頃から感じています。
日頃の努力によってそのような能力を培ってきた人は、もともとプログラミングの世界に関わりがなかったとしても、進むべき方向を適切に示してあげれば自力でスキルを身に着けることができるでしょう(要所要所での方向修正は必要かもしれませんが)。
逆にそういう基礎ができてない人には、どんなに恵まれた環境を与え、手取り足取り教えてあげても、その手を離したとたんに壁にぶつかってしまい。その壁を自力で乗り越えることができず、いたずらに時間だけを浪費することになってしまいます。
以上が、私の今までの経験から感じたことです。
まぁ、それはそれとして、実際「IT系じゃない人々がプログラミングを始めるには」ということで考えると、awkなんか結構いいかも、と思います。
こんなところが、awkを推す理由です。
HTMLやCSSってダメじゃ・・・・ (スコア:1)
いまだにHTMLがプログラミング言語だとは思えないのでID
Re:HTMLやCSSってダメじゃ・・・・ (スコア:1)
HTMLやCSSは表現方法や配置を定義しているだけですよね?
プログラミング言語とは言わないと思います。(Postscriptをプログラミング言語とは言わないですよね?)
文書とか定義体に近い扱いだと思います。
ただし、プログラミングと密接に結びつく場合が多いのも事実だと思うので、プログラミングの中でHTMLやCSSを書くのはおかしいことではないでしょう。
プログラムを勉強するなら、単一言語環境だけである程度の動作が出来る方がオススメだと思うので、Webアプリケーションで勉強するのはオススメ出来ないに1票。
ただし、Perlやphp等cliでも動作し、ある程度学んだあとにWebアプリケーションを作って勉強するなら良いと思う。
Re:HTMLやCSSってダメじゃ・・・・ (スコア:1)
お二人から突っ込み入ってしまった・・・
そうだったんですね。
昔仕事で汎用機からUNIXへのシステム移行を行った際、数千ページ分の帳票を印刷できないからって、postscriptプリンタのspoolデータを手作業で改ざんして、複数ファイルに分割したことがあったのですが。
ただの定義体にしか見えなかったので前のようなコメントをした次第です。
(自分が見たのはpostscriptではなかったのかな?)
Re:HTMLやCSSってダメじゃ・・・・ (スコア:2, 参考になる)
そんなあなたにMandelbrot集合を描画するPostScriptファイル [povusers.org]。
Re:HTMLやCSSってダメじゃ・・・・ (スコア:1)
GUI部品としてはいいかもしれません。
また、バグってても(文法ミスとか)とりあえず表示されるのはだいぶ敷居を下げますね。
# コンパイルエラーでリタイアした人って多いんじゃないかな
その関連でいくと、逆になりますがとりあえずうごくっぽいけど混沌としそうなPHPよりは文法でコンパイルエラーを減らせるPythonのほうがいいかな > 実際の言語
HTML+CSSでUIつくってJavaScriptであれこれ、本格的なのはPythonくらいで
そのあとはPythonベースのCMSみたいなので改造とかやるとかなり上級かな
M-FalconSky (暑いか寒い)
Re:HTMLやCSSってダメじゃ・・・・ (スコア:1)
>それと、HTMLはプログラミング言語じゃないよ
いわゆるIT系じゃない「一般人」の方にとっては、
自然言語(日本語)じゃないものでこちゃこちゃと書かれているものはみんな「ぷろぐらむ」
なんですよ。
だから「ホームページビルダー」とか売れるわけでして。
一般人にはPHPどころかHTMLすら敷居が高いのですよ。
#ちなみに私が新人にVBAとかPHP教えたときはとにかく何がしたいかをはっきりさせてやらせてましたね。
#そうでないとモチベーションが維持できずに挫折してしまう…。
Re:HTMLやCSSってダメじゃ・・・・ (スコア:1)
>敷居が高いのですよ。
「ハードルが高い」の方が適切かと。
「敷居が高い」は、「不義理などをしているため訪問しにくい」といった意味ですから。
それはともかく、他の人も指摘しているように、HTML はプログラミング言語じゃないですね。
私の考えは、チューリング完全なものであればプログラミング言語として扱ってよく、
そうじゃなければ扱うべきでない、というものなので、「どれくらい簡単か」というような
程度問題ではなく、キッパリと HTML はプログラミング言語ではなく、XSLT はプログラミング言語です。
いや。それは、まってほしい・・・ (スコア:1)
>SQL を学ぶには MySQL がオススメ
ちょっとまった!
INSERT INTO table SET ~ が使えて当たり前。みたいな人は、チト困るのですが。
じゃあ何でやらせるか? って言われたら。 入れるのも楽だからMySQLでやらせるだろうけどさ。
wikibooksに、SQLチラっと書いてみたのですが
手元に用意してあるのがSQL99の本とはいえ「SELECTは、各DBの方言も言及するべきだろうか」というのがチラっと頭をよぎった瞬間に、そこのノートに書き出したSQL99の残項目数やらと計算して、放り投げました。……いつかやる。 maybe. i hope so...
# CREATE ASSERTION とか CREATE TRANSLATION なんて、見たことないよっ!! 何処が使ってるのよっ!!
私個人MySQLでやらせるメリットって「導入が楽だから」という点しか見出せないのですが
それ以外のメリットも伺いたいところです。
==========================================
投稿処理前プレビュー確認後書込処理検証処理前反映可否確認処理後……
Re:いや。それは、まってほしい・・・ (スコア:1)
・検索して出てくる情報が圧倒的に多い(玉石混交とはいえ、ね。。。)
・各言語、開発環境でのツールやモジュールが多い
・無料、かつ速い
・Oracleが飼い殺して先がなくなるだろうと思ったが、意外とちゃんとケアしてた
事実上の標準DBと化していると言ってもいいんじゃないかな?
(個人的にPostgreのが好きだけど、やっぱ情報量が違うわ)
---------------------------- うちの猫は、ながぬこ
Re:いや。それは、まってほしい・・・ (スコア:1)
頭がおかしいとは思わないけどね。
それで目的が果たせるなら型なんてどうでもいいです。
bool型にしたところで、値を保持する為に必要な情報量(1byte)は変わらないと思うから。
でも、MySQLは多言語対応がイマイチかなとは思う。(いまはそれほどトラブらないけど、やっぱりmy.cnfに何行か追加しないといけないし)
かといってOracleもかなりハードルが高いと感じる。
環境作るのが簡単で多言語対応もいい感じなのはPostgreSQLだと思うけど、世界規模でいえば情報量が圧倒的に少ない。
(日本限定ならMySQLとどっこいどっこい?)
以前は「速度なら単純な検索はMySQL、複雑な検索はPostgreSQL」が定説だったと思うのですが、2~3年前にどこかのコミュニティでベンチマークとったらMySQLでもサブクエリを使った問い合わせが高速だったとか、PostgreSQLの検索速度がMySQLと大差ないとかいう結果が出てた気がします。
個人的には、トランザクションが多い場合MySQLは遅い(5.0で評価)ので、高負荷になってから手がつけられないMySQLの選択はないです。
といっても、レコード件数1千万くらいの環境へのinsertでPostgreSQL8.0と比較したときの話ですが。
似非技術者に毒されない (スコア:1)
特に間違った専門用語を連呼する人物には近づかないこと。
オラクルを投入する(大々的に導入することではなく、ただ立ち上げる意味)
シスジス(シフトJISのつもり)
パテンション(パーティションのつもり)
ブルートゥルース(ブルートゥースのこと。青の真実?)
Re:似非技術者に毒されない (スコア:1)
ブルートゥルース(ブルートゥースのこと。青の真実?)
とても、、、香ばしいです。
別にIT系だろうがそうでなかろうが関係ないだろう (スコア:1)
別にIT系じゃなくたって、どうプログラミングを学ぶかは関係ないと思う。何をしたいかを決めて、それをするのに順当と思われる言語を選び、チュートリアルなり本なりを読む、もしくは習いにいく、というだけでしょう。
Re:別にIT系だろうがそうでなかろうが関係ないだろう (スコア:2, 興味深い)
一番詳しいつもりです。
で、一昨年くらいに主にテキスト処理やMP3タグのHTML化などがやりたくてVB.NETを
始めました。後押ししてくれたのは無料のVB2008 Expressです。チュートリアルを
少しやったら簡単なソフトがすぐ作れてしまって驚いたのを覚えています。
派生してExcel VBAやAutoCAD VBAなど仕事にも生かせてきました。
「何がしたいか」が既存のフリーソフトなどで対応できなくなったら自分で開発する
という選択肢はアリだと思います。あとはほんのちょっとのやる気ですかね。
家庭の医学…… (スコア:1)
中途半端にプログラミングを覚えても、家庭の医学病やグーグル病に陥るだけじゃないかな……
やるなら本格的にJAVAだのなんだのを使うべきだし
触りたいだけなら、皆が言う通り、Excel VBAの方が、よっぽど実用的
Re:家庭の医学…… (スコア:1)
Java が本格的……ですかね?
「真のプログラマは(機械語と)FORTRANしか使わない」そうですが。
純文系 (スコア:1)
私はおそらくIT 系じゃない人だけど、つまり養う家族がいなければプログラミングなんて無視してていいってことだよね。
それにひきかえ法律は独り身でも役に立ちそうだしみなさんもどうかな。
ストーリーのリストを法律に置き換えてみようと思ったけど、半分くらいどういう意味かよくわかんねーや。
特に一番下のスタック技術云々ってのはIT 系じゃない人のはじめの一歩に本当に相応しいのか?
Re:純文系 (スコア:1)
そう? 泣き寝入りせずに済んだなんて例はたくさん目にするけど。
LIVE-GON(リベゴン)
空気を読まずに書くけど (スコア:1, すばらしい洞察)
何のためのプログラミング体験 (スコア:1)
・・・ということがないように、マーケティング部門の人や小企業のオーナーに[プログラミングの常識」を持ってもらうには、どういう面のプログラミングを「ちょっと体験して」もらえばよいか、という観点で考えてみるとおもしろいと思いますよ。
Re:何のためのプログラミング体験 (スコア:2)
全くその通りだと思う。
彼らへのカリキュラムには
1、10万行以上あるコードへの機能追加
2、10万行以上あるスパゲッティプログラムの読解、機能追加、デバッグ
3、(マルチスレッドの)非決定的動作を含むアルゴリズムの設計、実装、テスト、デバッグ
4、曖昧な仕様書を元にした開発
5、頻繁な仕様変更への対応
6、夢を語るだけの顧客への対応
などを入れると良いのではないだろうか。
#参考書は「Cプログラミング診断室」 [pro.or.jp]も入れておくべし
世の中全部 (スコア:1)
決まった手続きの通りにしないと働かないものばかりなんだから、録画設定でも何でも勉強すればいいじゃん。
the.ACount
理系の人が経済政策を始める方法を (スコア:1)
おれってIT系かな?でも地球系にあることはわかってるんだ。 (スコア:1)
まず「IT系じゃない人」の意味がわからない。
その次に続く「プログラミングを始めるには」は解決できそう。
IT系じゃない質問者 A : IT系じゃないんだけど。
IT系かどうか不明な回答者 B : そうですか。
A : プログラミング始めたいんだが。
B : どうぞ始めてください。
おわり
salesforceかexcelでいいと思うよ。 (スコア:0)
Re:salesforceかexcelでいいと思うよ。 (スコア:1, すばらしい洞察)
大人になってから始めるもんじゃない (スコア:0)
忙しい大人がやるもんじゃないと思います。
趣味でやりたいってのなら止めませんが、
仕事で使える水準に達するには子供のころから
コンピュータに親しんでないと無理でしょう。
Re:大人になってから始めるもんじゃない (スコア:1)
最近は小学校の時からパソコン使ってましたという人も珍しくなくなりましたが、プログラマとして特に優秀だという気はしませんが。10年も集中して勉強すれば大人になってから始めても達人になれます。
余談ながら、フィギュアスケートとかバイオリンとかは幼児時代から始めとかないと世界レベルにはなれないと聞きますね。ピアノだって、音楽学校のピアノ専攻の学生なんて「○○県小学生ピアノ大会優勝」とかいう経歴のやつばっか。
Re:大人になってから始めるもんじゃない (スコア:1)
だいたいプログラマなんて、子供の時から準備に着手して目指すような大げさな職業じゃないと思うけどなぁ。
大学や専門学校の数年だ+就職してさらに数年で早い人は達人レベルになると。あくまでも早い人は、ね。
別の仕事をしながらのサンデープログラマ(フリーソフト、シェアソフトを書いてる人には居ますよね)で達人レベルになるのに・・・何年かかるだろ。
Re:大人になってから始めるもんじゃない (スコア:1)
というか、あらゆる勉強のテンプレとして使えそうだ。
Re:大人になってから始めるもんじゃない (スコア:1)
ご高説ありがとうございます。
実は英語だけじゃなくて算数も国語も苦手です。かといって理科や社会が得意だったわけでもありません。
学校は毎日行っていましたし、授業も出席していましたので、本人の怠慢ということはなかったと思います。授業中はノートに落書きばかりしていましたが、それは先生の話がちっとも理解できなくて退屈だったからで、教え方が悪かったのだと思います。また、そんな私に対して先生や親は誉めたり叱ったり塾へ通わせたり補習をしたりしただけでした。親も先生ももっと私の教育に対して熱心であるべきだったと思いますが、過ぎてしまったことは取り返しがつきません。もしかしたら私の能力が足りないせいだとおっしゃるかもしれませんが、それは遺伝の問題で、私のせいではありません。
そんなことより問題は今です。大人になってから社会人を始めたのですが、二十数年経った今も社会人として認められていないような気がします。
いったいどうしたらいいでしょうか?
Re:大人になってから始めるもんじゃない (スコア:1, すばらしい洞察)
「書いたとおりにしか動かない」
「やるべきでない指示をしてもその通り実行してしまう」
ということを理解いただければ十分です。
Re:「どうしたら楽できるか」を考えて実行すればいいよ (スコア:4, すばらしい洞察)
そして、
「楽する為ならどんな苦労も厭わない」
と思えるようになれば、あなたは既にハッカーです。
Re:「どうしたら楽できるか」を考えて実行すればいいよ (スコア:1)
そして
「楽する為なら人を使えばよい」
と思えるようになれば、あなたには経営者の資格があります
Re:「どうしたら楽できるか」を考えて実行すればいいよ (スコア:1)
いえ。今となっては、人間などと言うコストのかかる代物を使おうと言う段階で、経営者失格ですよ。
fjの教祖様
Re:「どうしたら楽できるか」を考えて実行すればいいよ (スコア:2, おもしろおかしい)
経営者と言うのは常にコストと成果を比較するものです。
自律プログラミング能力のあるコンピューターが無くても、サボるわ給料高いわ労働時間が短いわな人間を使うよりも 自分でプログラミングをした方がまだましだ と経営者が思い出した、と言う事です。
.
こういう世界であってもなお、人間に働かせる…つまり「経営者を雇って、そいつに金を稼がせる」のは 投資家 と言います。
fjの教祖様
Re:「どうしたら楽できるか」を考えて実行すればいいよ (スコア:1)
24時間365日働かせられる人を雇える 社長 なんているんですか?
機械ならその程度じゃ全然文句を言いませんよ? 壊れたら捨てて新しいの買えばいいだけだし。
.
ところが、です。
24時間365日働き続ける社長を雇える「株主」は結構いそうですよね。駄目だったらポイッって捨てればいいだけだし。
さ、そうしたら。社長には人を雇わせないで、プログラミングさせてみたらどうだろう?! と考えた人がいるんですよ、きっと。で、そういう「株主」に雇ってもらいたい社長がたくさんいるのさ。それで表題の通りの状態がスタートした、と…
fjの教祖様
Re:「どうしたら楽できるか」を考えて実行すればいいよ (スコア:1)
え?
人類はジョブズ様とGoogle様が与えてくださる製品だけを使えばよいのでは?
ジョブズ様とGoogle様に従わない技術者が滅びるのはしかたないよね……
Re:プログラミング知識よりも (スコア:3, おもしろおかしい)
・・・見える・・・見えるぞ!
非IT系が戯れで作ったVBアプリが、いつのまにかクリティカルな業務アプリと化してて
OSまたぎどころかSPまたぎも出来ずにセキュリティダダ漏れ、いつまでもXP SP2しか
採用できない中小企業の姿が・・・
でもやっぱりVisual Studioのデバッガ機能が初心者にはいいよなー
Re:プログラミング知識よりも (スコア:1)
> まずPMBOKを抑えてもらいたいところですが
PMBOK?冗談じゃない。
料理を作ったことも食べたこともない奴が、
「絵に描いた餅は食べられるんだよ」と教え込まれると、
悲惨な結果しか生まれない。
#まずは自分のドッグフードを食え。話はそれからだ。
Re:プログラミングはいいから、せめて「論理的思考」を (スコア:1, すばらしい洞察)
論理的思考を学ぶための題材として、プログラミングは極めて適切な選択だと思います。
Re:プログラミングはいいから、せめて「論理的思考」を (スコア:1)
う~ん、そうでしょうか。
論理的思考を学ぶための題材として適切ではないとは思いませんが、パズルや数学(特に幾何学)の方がより適切だと思います。
"Script"や"Program"という演劇由来の語が示すとおり、用意された記述言語の枠組みの中で何らかの筋書きや工程を「記述する」というのが作業の本質ではないかと。
デバッグまで含めると仰るとおりになりますが、表現力・語彙力が十分にあり、一定のコーディング規約に則っていればtypo探しぐらいで何とかなるのでは?
#趣味グラマの自分を例にとると、えいやっと書いてしまったものをひたすらデバッグしているので論理的思考を駆使していることにはなり、typo探しで済んだことはありませんが。
Youthの半分はバファリンでできています。
Re:プログラミングはいいから、せめて「論理的思考」を (スコア:1, 興味深い)
>100%の力が120%の力を出せば勝てる!とかも。
計測したわけでもないのに、これで100%だと言い切る人も不向きそうです。
Re:プログラミングはいいから、せめて「論理的思考」を (スコア:1)
X=Fx(I)
Next I
とかやって、なぜかXの値が計算通りにならないことで悩んだことがある。
よくよく見たらなぜかIがintegerじゃなかったのでI=10のつもりがI=約10になっていたのが原因だった。
それ以来1+1は2にはならない事もあるということを学習しました。
所詮サンデープログラマ(というか数年に一本書くかどうか)ですからこんなもんです。
素人にプログラムなんかさせちゃいかんということです。