3年間のブラインドプログラミング。パート1

全てにおいて良い日!「EnterIT」のカテゴリーでの私の経験を共有したいと思います。さらに、それは完全に非視覚的なモードで行われました。私たちの社会の盲人についてはほとんど知られておらず、盲目のプログラマーについてはさらに知られていません。そして、この記事は、私の例を使用したとしても、それらがどのように、どこから来たのかを追跡することを提供します。



この記事は実用的ではありません。誰かが彼女の助けを借りて少し動機付けの責任を負い、先延ばしにすることができない限り。



開始



私は9年生のコンピューターサイエンスのレッスンでプログラミングに精通しました。その時までに、先天性疾患のために、私の視力はほとんど尽きていました、そして、私は数年の間、ホームスクールに通っていました。自由な時間はたくさんありましたが、興味深い活動はほとんどありませんでした。そのため、私は大きな願望を持って新しいテーマを取り上げました。プログラムを書くことは、数学的な問題を解決するようなものでした。しかし、ここで問題は独立して提起される可能性があり、最後にあなたなしでそれを解決できるコードがありました。確かに、最初は、コンピューターを耳で操作することを学ぶまで、それは頭の中にしか残っていませんでした。



学校は終わった。私もコンピューターサイエンスの試験を受けたので、このテーマに夢中になりました。さらに、最近まで、どの大学に入学するかは明確ではありませんでした。私も両親も高等教育の必要性に疑いを持っていませんでした。しかし、どちらの方向を選択するかは明確ではありませんでした。



一方で、私は常に数学と科学への渇望を持っていました。しかし、視力のない人はどうやってそこに自分自身を示すことができますか? ITに向けた開発を継続することは依然として可能でした。しかし、その結果、より妥協した普遍的な管理が選択されました。さらに、この専門分野の大学の1つでは、遠隔学習がありました。これにより、今すぐ大都市に移動する必要がなくなりました。だから結局それは起こった。しかし、1年間の研究の後、将来の雇用の問題がより明確に浮かび上がりました。



自分がマネージャーだとは想像もできませんでした。何をしたらいいでしょう?私は自分自身を実現することができますか?一般的に、目の見えない人にとって、職業を選ぶことは重要な活動です。多くはマッサージ療法士と関連する薬に行きます。誰かがテキストを使って翻訳やその他の作業を行うことができます。一般的に、自分で試すことができる場所はたくさんあります。しかし、重要なものの入手可能性が低いことに直面するという大きなリスクが常にあります。



私の意見では、コンピューターを使って作業することは、目の見えない人が自分自身をうまく見せることができる方向です。まず、彼らはすでに彼をかなりよく知っている必要があります。スクリーンリーダーを使用するには、通常のユーザーが必要とするよりも、オペレーティングシステム、キーボード、ホットキー、およびプログラムに関する深い知識が必要です。専門コースでの同じタッチタイピングがすぐに研究されます。そして、他にどのように、あなたはまだ覗くことができないでしょう。



第二に、ほとんどのプログラムとインターネットのほぼ全体は、マウスを操作するのとほぼ同じように、キーボードからアクセスできます。これは、視覚障害者が日常のタスクを実行するときにそれほど遅れることがないことを意味します。そしてどこかで、主題のより深い知識のために、そして残りを上回ります。



まあ、そして第三に、私はそれが好きでした。それで、2年目までにプログラミングに戻りましたが、それを自分の職業にするという確固たる目標を持っていました。



トレーニング



初心者の主な問題は、現代のプログラミングが実際に何であるかを彼が知らないということであると私は深く確信しています。私の貯金箱の銀行には、学校のコースPascalABC.netがあり、教科書から数百の問題が解決されました。しかし、実際のプログラムは他の何かで書かれていますよね?そして何に?以前に聞いたものが思い浮かびました:C ++、java、C#。それらがどのように異なり、何に使用されるのかは明確ではありませんでした。私はC ++から始めました。私はどこかから教科書を掘り起こしました。そこでは、半ば冗談のオタクトーンの紹介として、著者は、Java仮想マシンの現象、ガベージコレクションと安全でないC#モード、IDE、コンパイラ、および作業する必要のあるライブラリの長所と短所について説明します。



最初の数章を実行した後、このチュートリアルは私のために書かれていないことが明らかになり、今では理解できません。メンターが必要でした。そして彼は発見されました。



視覚障害者向けのメーリングリストの一部の愛好家は、そのような聴衆のために特別にプログラミングコースを開くことを発表し、使用したいテクノロジーを選択することを提案しました。私は間違いなくC ++に投票しました。 phpとWeb開発とは何であるかは不明であり、ゲーム作成は軽薄な職業のように見えました。しかし、結局、phpが勝ちました。おそらく、自作のインターネット投票システムは、繰り返しの通過から決して保護されていなかったからでしょう。



それで、私の開発のベクトルは思わずウェブにシフトしました。コース自体は1ヶ月強続きました。いくつかの散発的なセッションの過程で、htmlの基本を少しだけ知る時間がありました。最後のものはphpで数行も書いています。しかし、主催者である慈善家の熱意は急速に衰え、授業はますます少なくなりました。そして結局、彼らは完全に停止しました。しかし、方向性は決まっていて、それから私は自分でそれに従うことができました。しかし、問題は未解決のままでした。プログラマーは正確に何を知っておくべきですか?



インターネットでは、簡単な問題の解決策を見つけることができます。しかし、多くの狭い記事を読んだことによる全体像は、合計されませんでした。そして、途中でビデオコースがありました。

私はそれらについてたくさんの意見を読みました。多くの場合、否定的なものに出くわしました。これは時間とお金の無駄です。彼らが素晴らしい約束で彼ら自身に誘惑することは、実際、彼が現在開発の第一人者であるという卒業生の自信以外には何も与えません。コースは確かに異なります。しかし、その特定の瞬間に、私は非常に優れた資料に出くわしました。その助けを借りて、基本的なphp構造、フォーム処理、承認、セッション、Cookie、db、oop、およびmvcの操作を2か月で理解しました。そして最も重要なことに、彼はそれを包括的に行った。各要素は、サーバー開発の全体像を補完しました。この段階の終わりに、私はすでに非標準のロジックで自分のサイトを作成することができ、本当のスペシャリストのように感じました。初心者ですが、次にどこに移動するかをしっかりと理解しています。



最初のタスク



しかし、最初に、既存の知識を実際に適用しようとする必要がありました。自己改善と開発は無限大です。しかし、プロフェッショナリズムには、実際の知識の応用が含まれます。さらに、今すぐ結果を得ることが、努力を続けるための大きなインセンティブになります。まあ、そして私は確かに私が本当にできることを自分自身に証明する必要性を感じました。



これを行う最良の方法は、フリーランスでした。私はいくつかの取引所に登録し、注文の追跡を開始しました。そして、興味深いことが開かれました。それらのほとんどすべてがフロントエンドまたはphpに関するものでした。それまでは、こっそりこの方向に進んだことを後悔していました。私はスクリプト言語が本当に好きではありませんでした。それはパスカルの厳密さを持っていなかった、それはコンパイルされなかった、そしてあなたはそれにPCアプリケーションを書くことができない。そして、これはまさに、当時の私の意見では、開発がどうあるべきかということです。しかし、フリーランスで遠隔地の雇用市場は私の立場を微調整しました。そしてすぐに私は実際に私の最初の注文を受け取りました。



crmで特別なカスタムページを作成する必要がありました。アプリケーションと動作に関するデータを特別な形式で表示する必要があり、ユーザーはそれらにフラグを付けることができなければなりませんでした。Crm自体には、そのような特定のタスクを解決するための組み込み関数はありませんでしたが、Crm自体が記述された言語であるphpを使用して機能を拡張することができました。



私は2週間で1日か2日仕事をしたと言えば十分です。主に習慣からcrmがどのように機能するかを正確に理解することは非常に困難であったという事実のために。そして、あなたが彼女のデータベースのスキーマを見ることができるところ。しかし、最終的にはすべての要件が満たされ、顧客は非常に満足していました。なぜなら、後で理解したように、他の開発者はそのようなcrmをまったく引き受けたくなかったからです。



フレームワーク



しかし、「フリーランスの王」は、旅の初めに私にインスピレーションを与えたタイトルではありません。より強力なアーキテクチャが必要であり、その助けを借りて、真面目な企業が複雑で技術的に高度なユーザーサービス(フレームワーク)を作成しました。ビデオコースでこの言葉を聞いたが、両方の教師がこれが彼らの仕事の主要なツールであると言った。その方向に進む必要があることは明らかでした。



まず、コードイグナイターが研究されました。これは、コースで独自に作成したmvcフレームワークの変更されたコピーでした。コルクのようにシンプルでしたが、すでに実際のサイトを作ることができました。しかし、私はいくつかのサービスの改訂のために最初の注文でそれらの品質に精通しました。これらの700行のコントローラーアクションコードを忘れることはほとんどありません。もちろん、あなたは何にでも悪いコードを書くことができます、しかしCIはそれを誘発するだけのようでした。彼がほとんど過去のものであることは不思議ではありません。



さらに、私の前では、すべてのまともな旅行者の前と同じように、yii、laravel、symfonyの3つの道が開かれました。少し評価した後、後者を選びました。もちろん、純粋に主観的な理由で:

  1. 私はそのフォルダ構造と注釈による構成が本当に気に入りました。
  2. インターネット上のレビューでは、彼についての敬意が読まれました。強力で非常に複雑な楽器のように思えました。時にはその力が過剰です。しかし、それをマスターすれば、phpの世界のサンドボックスにあるゲームを見下ろすことができます。


勉強を始めました。そして、新しいプラットフォームをマスターするための最良の方法は、それに何か面白いことをすることです。学校に戻って、弟がカウントを勉強するためのプログラムを書きました。ランダム数ジェネレーターと4つの基本的な算術演算。子供は与えられた数の例を解き、最後にエラーの数が数えられ、等級が与えられます。トレーニングの特定の段階で非常に役立つもの。そして今、それは新しい技術レベルで実装される可能性があります。



かなり時間がかかりました。改造してやりました。そして並行して、シンフォニーは私の脳を作り直していました、なぜなら私は本質的にコンテナを押し込むという考えをあきらめたくなかったからです。私はそのコンポーネントの多くを理解しました。バージョン3からバージョン4にアップグレードし、gitを学習しました。約6か月後、スーパーアプリケーションを起動するというピンクの夢の現実を確認しました。私はゼロの結果から少し悲しみ、次のレベルに移動する時が来たことに気づきました-本当の仕事の検索。



つづく。



All Articles