はてなキーワード: c言語とは
プログラミングや、スポーツや、絵、音楽、とかやりたい人は多いが長続きが難しい系のことで、
これらの何かをはじめることを話すと、まあ過去にちょっとだけやったことがある人っていうのは出てくるんだけど
その中で一人か二人、諦めたけれど先輩風を吹かす人が出てくる。
例えばプログラミングでは、「俺も少し大学時代にやってたよー。ポインタ難しいよね。でもね難しいと思うけど諦めたら色々できると思うから。俺は諦めたけど…でも俺がやってた勉強法は~~~~」みたいな
特徴は
といったところだな
本当に序盤で躓いている。
(現在C言語から始める人も少ないと思うが、わかりやすいからC言語をたとえに出すが)
ポインタなんて難しいって言われているけど、序盤の序盤のボスみたいなもんじゃん。ドラクエ3でいうところのカンダタ
そこができてからようやくスタートラインというか、チュートリアルがおわったというか…
そのボスを倒してから、配列がつかえるようになったり、ヒープを理解できるようになったりして、ようやく実用的なものをつくれるようになるわけで
まあそこらへんで躓いている人がおおい。
プログラミングはやりたいと思う人が多いけど、その難しさに最初で辞めちゃう人もかなり多く、プログラミングに触ったことある人の比率はちょっとだけかじった人のほうが、普通にできる人より多いと思うわけだ。
何かネットの記事で見たけど、ギター買った人のうち1年以上続けている人は1割にも満たないそうだね。
それはそれでいいけど、その中の一部に謎の先輩がいるんだよなあ
若手から中堅、シニアに至るまでみんな「プログラマーになりたい」と言っているのだが
現実問題としてそんなに簡単になれるものではない、というのを知っておいて欲しい
算数や国語は長い歴史の中で様々な試行錯誤が行われ、どのように教えれば大半の人が知識獲得できるかという方法論が確立されてきている
もちろんまだまだ改善の余地はあるが「こういう教え方が良い」というのがちゃんとある
ところがプログラミングに関してはまだまだ歴史が浅く、どのように教育すればプログラマーになれるかが分かっていない
幼少期からC言語を教えるのか、Scratchでいいのか、Pythonがいいのか、何も分かっていない
今のプログラマー達は生存者バイアスでしかないので体験談は全然アテにならない
何かしらそれっぽい理論が発表されてたりもするがエビデンスに欠けるモノが多くてまだまだ研究中という感じだ
そんな感じなので「実際に書いてみるのがいい」「業務で使いながら覚える」「写経するのが良い」などなどいろんな方法論が乱立している
あなたがプログラミングを勉強し始めると「教え方が良くない」「本が役に立たない」となることを覚悟してほしいし
勉強法をトライアンドエラーで繰り返していくことになるので技能獲得には相当な時間がかかる
PythonでもJavaScriptでもメモリのアロケーションのような計算機的知識が必要とされる
みたいに言われることも多いが実際にはそんなことはなく、ちょっとしたバグを引いたときにでもその手の知識が必要になる
もちろん昔に比べれば非常に楽になったが全くゼロでいい訳では無い
同様にクラウドリソースを使うときにTCP/IPを全く知らなくて良いか、と言われるとそうでもない
GraphQL使うときにHTTPの知識が全くいらないわけではないように
プログラミングでは下手するとWiFiやLTE/5Gの知識まで必要とされる
これは例えば建築関係においても同様で、家を建てる人にはコンクリートの基礎知識が必要だったり木材に関する基礎知識が必要だったりするのだが
歴史が古い分野では教育法が確立されているので建築学科なりに行けばキッチリ教えてくれる
同様に情報系の学部に行けば教えてくれるが、大学による差がかなり大きいし、体系化されているわけではない
Word, Excelの使い方を中心に教えるような大学もあれば情報理論から教えるような大学もあるし
それのどちらが良いかは誰も分かっていない
オンラインビデオで有名大学の授業を見ることもできるが、質問はできないので分からないところがあれば終わりだ
なので大学に行ったとしてもいろんな授業を受けてトライアンドエラーで長い時間をかけて技能獲得する必要がある
「Python検定1級」みたいなのが乱立しているがはっきり言って役に立たない
しかも「Python検定1級取得のための集中研修」みたいなのもあって地獄みがある
問題を解くための知識だけを得たところで前述した前提知識がないと実務で役に立たない
プログラマーを雇う側はその手のことをよく知っているので、こういった資格は全く考慮に入れていない
TOEICや英検のように「実務ではあんまり役に立たないんだけどな」と思われてる資格であっても社会的にコンセンサスが取れていればそれなりに役に立つが
プログラミングに関してはそういった資格がない状態である(IPAはそれなりに信頼されているが、取って無いから落とすようなことはない)
この英語における「TOEICがない」状態で困るのは効果測定である
プログラミングを勉強しても自分が成長しているのかどうかを客観的に知る方法が無いので独学で学んでも役に立つかどうか分からない
オープンソースに携わったり業務経験などを経て長い時間をかけて「プログラミングができるようになってきた」となるので1,2年でさっさとプログラマーになることはできない
一番の近道は旧帝大の院に入学して2年間キッチリ勉強すればそれなりのプログラマーになれる
もちろんスタートラインなのでそこから業務経験を身につける必要がある
なので旧帝大の院に入れないような人はプログラマーとしての前提知識を得るための前提知識がそもそも足りていない
独学でやるなら近道は一切無いので5年ぐらいは覚悟した方が良いと思う
嫁のはてブが閉鎖して1週間が経った。変わらず手癖でGoogleに「嫁のはてブ」と入れてサイトに飛んでしまうのが悲しい。
[補足] 嫁のはてブ関連のブコメで「嫁のはてブって何だ?」というコメントを見かけたので、もし嫁のはてブを知らない人は以下ページを見てもらうといいと思う。 ■「はてブ」をリニューアル前風デザインで 個人が一晩で開発 - ITmedia NEWS https://www.itmedia.co.jp/news/spv/1301/09/news089.html
嫁のはてブの閉鎖が決まってからはてなブックマーク公式サイトを使おうとしてみたが、正直キツい。
アプリの方はまだ見た目には良さそうだったのだが、自分は気になった記事ページとブクマページを一旦タブで全部開いて、開ききってから読んでくというスタイルなのでアプリは合ってなかった。
Hatebu::Classic を試してみたがこちらもあまりしっくり来ず。
結局求めているものは嫁のはてブだったので、見た目ほぼそのままの なれのはてブ を作った。
(ちなみに作ったあとに はてなフィルター の存在を知った。もし作る前に知ってたら、なれのはてブは作らなかったかもしれない。)
500を超えるブックマークと、多くの人に利用していただけて大変感謝です。
また嫁のはてブと作者の後藤基史氏には感謝してもしきれない。約10年間本当にありがとうございました。
なれのはてブを作ってる時にふと思い出したのが、昔地元にあった十一屋という本屋のことだった。
近所にあった本屋で、物心ついた4歳頃には絵本を立ち読みしていた記憶がある。
小学校低学年の頃はマリオの攻略本や文房具を買い、高学年の頃はファミ通を立ち読みしたり大技林を買ったりしていた。
エヴァブーム後はアニメージュの綾波レイ、ホシノ・ルリ、リナ・インバースの熾烈なランキング合戦を毎号チェックし、電撃王のふりをして電撃姫を買うなど、まさに自身の成長とともにあった本屋だった。
小6か中1の時に閉店となり、文字通り泣くほど悲しかった。自分の中で最初の大きな喪失だった。
当時、再び同じ場所に十一屋という店名で本屋を開くことが少年の夢だった。
(残念ながら本屋は開けてはいない。またその場所に同じく思い出の地であった総合スーパーの清水屋の狭小店舗が移転してきたのもあり、現状同じ場所は難しそうである)
嫁のはてブができた頃、自分は新卒で入った会社を辞め、社員2人の会社で1人プログラマーをしていた。
Webサービスを作っていたのだが、当時の自分は学生時代にC言語とJavaを書いたことがある、新卒で入った会社ではABAPという謎言語を少し書きあとは専ら神エクセル作りとパワポに画面キャプチャを貼る仕事だったのでWeb開発経験はゼロ。
そんな自分を救ってくれたのはインプレスの基礎 Ruby on Railsと、そして嫁のはてブだった。
はてブでRSpecを書くことを覚え、いいgemを知り、Font Awesomeを知り、いい感じのjQueryを見つけ、Reactを知り、AWSの使い方を覚え etc…
この約10年間のプログラマーとしての成長はまさに嫁のはてブとともにあった。
いまもまだ閉店した本屋は復活させられないが、閉鎖したWebサービスは復活させたよと当時の自分に言ってあげたい。
今後も見た目のシンプルさはそのままにちょこちょこと機能追加していけたらと思っている。
もしよかったら使ってみてもらえると嬉しい。
初心者はPythonから始めましょう。やりたいことはPythonでだいたいできます。世界で一番人気の言語で資産も豊富にあります。低学歴の素人がなんと言おうとPythonです。Pythonを覚えるのです。簡単なので1日あれば覚えられるでしょう。
次にSQLを勉強しましょう。SQLは3日くらいあれば中級者になれるでしょう。現代のデータベースはだいたいSQLかそれのパチモンが備わっています。SQLができると仕事の幅が広がるでしょう。
そしてJavaScriptは勉強しておきましょう。Webブラウザは全部JavaScriptが動きます。JavaScriptを勉強することでWebページで遊ぶことができるようになります。スクレイピングなどの理解も深まります。JavaScriptは便利です。
さて、ここまで来たら仕事に必要なプログラミングは身についているので次に進む必要は無いです。コンピュータの気持ちを理解するためにはC言語をかじってみるのもいいでしょう。大企業で働きたいならJavaは必須です。型に興味を持ったらOCamlやHaskellに手を出してみても良いでしょう。システムプログラミングをしたいならGoやRustも良いです。Goはバカみたいに簡単ですがRustは初心者向きではないです。
自分はITの解像度が低いから、はてなのお兄さんたちが話していることはすべて「なんか難しいITのこと」と雑に認識しているけれど、
会社はDX人材がどうたらとか言っているから、自分も多少は理解しなくてはいけないのか…?とは思っているが重い腰が上がらないよね。
とりあえずデータ分析しやすいエクセルデータの作り方(分析するとは言っていない)のお勉強をした。
セル結合しないとか、一セル一データとか、単位は書かないとかそういう基本的なことだけれど。
今度研修としてpythonを少しかじるらしい。大学時代の教養の授業でC言語を3コマくらい触って、for文程度の基礎の基礎はかじったことはあるのだが、基本の考え方は一緒だろうか。
そんなに難しくないといいな。
はてなのお兄さんたちの難しいITの用語を聞いているとこんなことも知らない自分が悲しくなるけれど、きっとはてなのお兄さんたちは私の専門分野のことは何一つ知らないだろうから、お兄さんたちが私の専門分野の話を聞いたときはきっとちんぷんかんぷんになるだろうと想像することで溜飲を下げている。
でも私の専門も40年後生きているか分からんしなぁ。知的労働部分はすべてAIにとって代わられているかもなぁ。コミュニケーション部分と手を動かす部分しか必要なくなるかもなぁ。