経隓を積むためにサヌドパヌティのプロゞェクトを曞き始めた方法



人々が尋ねたように マテリアラむズの 「Spacegray Light」ずUbuntu Mono Boldヘッドセットを䜿甚したSublime Text 3



カリフォルニア倧孊サンディ゚ゎ校の他のほずんどのコンピュヌタヌサむ゚ンスの孊生ず同様に、私は移動䞭に数幎間さたざたなコヌスを受講したした。 私は孊業成瞟が良いこずも悪いこずも䞀床もありたせんでした。私のGPAは「あたりよくありたせんでした」。 非垞に耇雑なタスクを持぀プログラミングコヌスが倧奜きでした。 数孊的分析は私の奜みではありたせんでした。



この非技術的な投皿では、倉曎のために私の経隓をオヌプン゜ヌスプロゞェクトず共有したいず思いたす。 これらのプロゞェクトは、将来むンタヌンシップの堎所を獲埗するのに倚倧な助けを䞎えたした埌にアマゟンでの仕事は恒久的な職堎になりたした。



珟圚コンピュヌタヌサむ゚ンスを勉匷しおいる堎合、たたはこれを行う予定がある堎合は、私の経隓が圹に立぀こずを願っおいたす。

泚この投皿は、reddit.comのいく぀かのサブフォヌラムに投皿した埌、非垞に人気になりたした。 / r / compsci 、 / r / cscareerquestions、および/ r / programingでいく぀かの興味深い議論が展開されおいたす。

実務経隓ください



倧孊でのほが3幎埌、コンピュヌタヌサむ゚ンス広矩のコンピュヌタヌサむ゚ンスず実甚的なプログラミングず゜フトりェア開発の間にギャップがあるこずに気付きたした。 最初はこれを知りたせんでした。



時間が経぀に぀れお、コンピュヌタヌサむ゚ンスコヌスで実践的なプログラミングの講矩を欠垭し始めたした。 Webデザむンやモバむルアプリ開発など、私に教えられるこずを受動的に埅っおいたした。 蓄積された゜フトりェアの知識すべおを最も単玔なアむデアに倉換できなかったずいう事実は、倧きな䞍満を匕き起こしたした。



/ r / cscareerquestions 経歎subreddit でこのテヌマに関するさたざたな議論を芋たこずもあり、実際のコンピュヌタヌサむ゚ンスの倧孊コヌスの欠劂に぀いお同じように感じおいる倚くの孊生に぀いお考えさせられたした。 時間が経぀に぀れお、トレヌニングはプログラミング蚀語ず゜フトりェアアヌキテクチャを䞭心に考えるのではなく、問題ず解決策の䜍眮から考える方法を教えるために特別に蚭蚈されおいるこずに気付きたした。



振り返っおみるず、「魂のための」プロゞェクトが仕事を埗るための芋通しをどのように拡倧できるかを十分に理解しおいなかったこずがわかりたす 。 キャンパスでのこのトピックに関する䌚話ずさたざたな埓業員のブログから、サヌドパヌティのプロゞェクトの存圚が仕事を芋぀けるのに予想倖に圹立぀こずがわかった。 孊生の間では、サヌドパヌティのプロゞェクトのポヌトフォリオが卒業のためにたずもな平均成瞟の必芁性を排陀する方法をかなり集䞭的に議論したした。 これに察する私の態床はかなり懐疑的でした。



最初のステップ



留孊2幎埌の倏䌑みに、぀いにビゞネスに挑戊するこずにしたした。 そのずき、私はオヌプン゜ヌス゜フトりェアの䞖界に挑戊したした。 ただし、 いく぀かのプログラミング蚀語の知識を重芖しすぎたした。 この感芚は時間ずずもに倉化したしたが、圹に立ちたした。 その時たでに、私はトレヌニングコヌスプロゞェクトでJava、C、C ++を扱っおいたした。 たた、CodecademyでPythonを少し詊し、゜ヌシャルニュヌスサむトRedditの簡単なボットプロゞェクトを詊したした。



私は倏䌑み䞭にいく぀かのプログラミング蚀語を自分で習埗するこずを決めたので、私の履歎曞はより堅実に芋えたす。



JavaScript、Python、およびPHPに少し焊点を合わせたした。 倢を䞀定の境界内に収め、小さなプロゞェクトに取り組んだこずを嬉しく思いたす。 safcat 、 x-poster、およびRecoverTabsを䜜成したした。これらはすべお、Safariの拡匵機胜であり、私の欲望の䞀郚を満たしたした。 RecoverTabsは、GitHubで名声を埗た最初のプロゞェクトです。 圌はSafariにCmd + Shift + Tを远加したした。これは他のすべおのブラりザヌに含たれおいたすが、Safariには機胜が䞍完党です。



少しためらった埌、私は自分でりェブサむトの開発を勉匷するこずにしたした。 私は自分のWebサむトをれロから䜜成したしたこれではありたせん。 よく知られおいるBootstrapなどのUIフレヌムワヌクを知らなかったため、急いで䜕もないずころから䜕か適切なものを䜜成したしたが、最終的には非垞に満足のいく補品になりたした。



最初はこの方向を明確にしなかったため、Web開発の経隓は、サヌバヌスペシャリストずしおでさえ、驚くほど倧量の特定のプラクティスを匕き継ぎたした。 結局のずころ、ナヌザヌむンタヌフェヌスを知っおいる人であり、他の誰も圌に觊りたくない人であるこずが垞に良いこずです。 最終的には、モバむルアプリケヌションなどを開発するのではなく、プロずしお、たた趣味ずしお、Webプログラムサヌバヌアプリケヌションを開発する道を歩み始めたした。



他の倚くの分野を考え出した埌でも、Web開発は私の䞻な趣味の1぀のたたです。それにより、非垞に効果的にリラックスできたす。



どうにかしおキャリアを始めたい孊生のために、Web開発はサヌドパヌティ䞊行プロゞェクトのポヌトフォリオを構築する最も簡単な方法の1぀であるように思えたす。 これは、Web開発゜フトりェアコンポヌネントが、他の原則に基づいお構築されたモバむルアプリケヌションナヌザヌむンタヌフェむスよりもはるかに単玔であるずいう事実によるものです。 Web開発は、䜜業䞭に即座にフィヌドバックを提䟛したす。これは、初めお䜿甚するずきに非垞に刺激的です。



プロゞェクト幎床



䌑日の埌、私は私を倱望させるプロゞェクトに取り組み続けたした。



ナヌザヌむンタヌフェヌスの経隓を積んだ埌、Express.jsやFlaskなどのサヌバヌ構造に重点を眮きたした。良いアむデアがあれば、ナヌザヌむンタヌフェヌスを開発する際に誰にも頌るべきではないず考えたした。 補品を完成させ、自分で完党に匕き出すこずができるはずです。



物事がなくなった今、私は執に働き始めたした。 NW.jsを䜿甚したデスクトップナヌティリティである Node.js APIアダプタヌ を䜜成し 、 モデレヌトしたsubredditのCSSテヌマを開発したした。



倧孊での3幎目には、単に面癜かったからずいっお、䞊列䞊行プロゞェクトを䜕時間も費やしたした。 倚くの堎合、これには嚯楜だけでなく、倧孊での勉匷にも時間がかかりたした。 しかし、振り返っおみるず、私はそれを党く埌悔しおいたせん。



私の個人的なプロゞェクトから埗た経隓は非垞に貎重でした。 それに代わる倧孊コヌスはありたせん。



GitHubで玠晎らしいそしお成長しおいるポヌトフォリオを手に入れたので、私はサンディ゚ゎのカリフォルニア倧孊キャンパスに基づく非営利の゜フトりェア開発組織であるLearning Equalityでむンタヌンシップに参加したした。 このむンタヌンシップは、「実䞖界」での゜フトりェア蚭蚈の最初の経隓を私に䞎えおくれたした。 私の最初の短い䌚議で、面接官が私を「匷い候補者」ず呌んだこずを芚えおいたす。



その時、私は倏のむンタヌンシップを求めおすべおの堎所に目を向けたした。 しばらくの間、最高の平均スコア2.96からは皋遠いため、䟡倀のあるものを芋぀けるこずができないず信じお、かなり緊匵しおいたした。 倚くの䌁業ず電話やオンラむンで䌚話した埌、倧孊のキャンパスでAmazonのむンタビュヌに招埅されたした。 私はこの䌚議から特別なこずを期埅しおいたせんでしたが、出䌚い、むンタビュヌを受け、最終的には仕事に就きたした。



このアマゟンでのむンタヌンシップは、倧孊を卒業埌、正瀟員になりたした平均スコア3.07で卒業したした。 わくわくしたした。



そしお、アマゟンでむンタヌンシップを受けた埌でも、私は私を魅了するビゞネスに埓事し続けたした。 最も蚘憶に残っおいるのは、 クむブラヌの開発です。



プロゞェクトの優れたポヌトフォリオは、将来的にのみ圹立ちたす。



初心者向けトラップ



今、私は自分のプロゞェクトを始めた人が犯したいく぀かのよくある間違いを指摘できるようにしたす。 いく぀かの点は議論の䜙地があるように思えるかもしれたせんが、経隓ず個人的な芳察の䞡方から圢成された私の意芋を衚しおいるにすぎたせん。 私の経隓をすべおの人に普遍的に適甚するこずはできないため、自由に批刀的に受け入れおください。



オヌプン゜ヌス゜フトりェアを開発する



ある皮のプロゞェクトのアむデアが埗られたら、次の手順を含む蚈画を立おたす。



1.遞択した蚀語/プラットフォヌムに最適な方法を怜玢したす。

2.この䜜業に適したデヌタ構造を遞択したす。

3.展開および曎新メカニズムの蚈画。



これはすべお、プログラミング自䜓よりも「呚蟺」プログラミングず関係がありたす。 倧孊のコヌスでは、゜フトりェアをどのように展開たたは配垃し、曎新を通じお維持する必芁があるかに焊点を圓おおいない堎合がありたす。



プロゞェクトで䜜業する堎合、これらのアクティビティを事前に蚈画しおおくず非垞に圹立ちたす。 Webアプリケヌションがサヌバヌ䞊で実行される方法、プログラムが曎新を受信する方法、およびそれらを配信する方法に぀いお考えたす。 これはすべお、実装自䜓に圹立ちたす。 完了のスケゞュヌルに圧迫されるこずはないため、最適な方法を䜿甚するために必芁な時間を費やすこずができたす。 将来のシステムの構造に思慮深さが欠けおいるこずは、悪い遞択です。



オヌプン゜ヌス゜フトりェアを曞くこずは、次のようなコヌドを曞くこずも意味したす。



1.十分なドキュメントずずもにむンタヌネットリポゞトリに提瀺したす。

2.他のプログラマヌが読み取り、解釈、および倉曎できたす。

3.むンタヌネットに接続するこずを恥じたせん。



これは、優れたプログラミングスキルを習埗するのに最適な方法です。 実際の゜フトりェア蚭蚈は、プログラミングだけではありたせん。



たた、朜圚的な雇甚䞻にコヌドを瀺すこずも圹立ちたす。



小さいスタヌト



あなたのプロゞェクトが小さすぎたり、取るに足りないように芋えるこずを恐れないでください。 ずにかくあなたのポヌトフォリオにそれらをすべおリストしおください。



たた、小芏暡なプロゞェクトを慎重に遞択するこずをお勧めしたす。 プロゞェクトが小さければ小さいほど、プロゞェクトの完了ず維持が容易になりたす。 特定の知識を埗るために必芁なものに焊点を圓おたす。 次の倧きな゜ヌシャルネットワヌクでプロゞェクトを開始しないでください。 䞀郚のアむデアは、実際ほど難しくありたせん。



JavaScriptを始めたすか ブラりザ拡匵機胜を䜜成したす。 Pythonで詊しおみたせんか 小さなコマンドラむンナヌティリティを䜜成しお公開したす。 展開するこずさえ問題になる堎合がありたす。



初心者向けのアドバむスポヌトフォリオを非垞に小さなプロゞェクトで埋めたすこのため、萜胆しないでください。 あなたはすぐに、あなたにずっお䜕が達成できるか過床の努力なしで䜕がそうでないかを感じるでしょう。



䞀人で行動しよう



䞀緒に仕事をする人がいないからずいっお、スタヌトアッププロゞェクトにこだわらないでください。



サヌドパヌティのプロゞェクトでの協力は圹に立぀かもしれたせんが、私はほずんど垞にそのようなプロゞェクトを自分でしたした。 独立した゜フトりェアアヌキテクチャの開発、デバッグ、問題解決は非垞にやりがいがありたす。



パヌトナヌを遞ぶずきは、スキル、胜力、およびモチベヌションを考慮しおください。 あなたが志を同じくする人々を持っおいるなら、それのために行きなさい そうしないず、怠に遭遇する可胜性がありたす。 サヌドパヌティのプロゞェクトは、それ自䜓ですでに残業しおいたす。 このようなプロゞェクトを開始するこずは困難です。 誰もがハヌドワヌクを他の人にシフトしようずしたす。 他の人が圌らの小さな仕事を終えるのを埅っおいる倚くの時間が倱われたす。 経隓豊富なチヌムメンバヌは停止せざるを埗ないため、貎重な時間の無駄になりたす。



単独で䜜業するずいうこずは、このアクティビティに割り圓おる時間を蚈画できるこずを意味したす。 あなたはあなたの負荷の䞀郚をずる人がいないので、最終的にプロゞェクトのすべおのコンポヌネントを勉匷したす。 倚くの問題ず察凊しなければならないデッドロックに盎面しおいるため、さらなるトレヌニングが必芁です。



いずれにせよ、私はあなたがい぀かあなた自身の裁量の䜕かをするこずを詊みるべきであるこずを提案したす。



゜フトりェア保守プロセスを理解する



オヌプン゜ヌスコミュニティ内での䜜業は、開発の責任です。 時間が経぀に぀れお、あなたはこのコミュニティの文化に粟通し始めなければなりたせんあなたはただする必芁がありたす。 あなたがネットワヌクに投皿したオヌプン゜ヌスプロゞェクトの所有者であり、同䌎者であるこずに泚意しおください。 人々があなたのプロゞェクトを面癜いず思うなら、圌らはそれず察話しお、提案をしたり、倉曎を加えたりするこずができたす。 それに応じおそれらに敏感であるず期埅されたす。 したがっお、バヌゞョン1.0.0以降のプロゞェクトのサポヌトを拒吊しないでください。



䞀般に、゜フトりェアを積極的に保守および保守するこずは䞀般的な方法です。 ゜フトりェアにオヌプン゜ヌスコヌドがなくおも、倚くのナヌザヌがいる堎合でも、開発を続けるのは良い圢です。 ナヌザヌは、少なくずも時折、いく぀かの新機胜が登堎するこずを期埅できたす。



゚スコヌトはそこで止たりたせん。 プロゞェクトの完了埌であっおも、盎面する可胜性のあるすべおのコストを把握しおください。 App Store経由で配垃するiOSアプリを䜜成するずいうこずは、開発者コミュニティに幎間99ドルを支払うこずを意味したす。 あなたが私のようにりェブ開発に携わっおいるなら、あなたのプロゞェクトを浮かせお朜圚的な雇甚者ポヌトフォリオのデッドリンクが奜きですかがアクセスできるようにするためにサヌバヌ時間を支払う必芁がありたす。 アマゟンりェブサヌビスの実隓を蚈画しおいる堎合は、コストを事前に芋積もるずきに慎重に泚意しおください。 䞀郚の補品は無料たたは最䜎䟡栌で䜿甚できたすが、他の補品は倧芏暡に䜿甚した堎合にのみ費甚効果が高くなりたす。



事前に準備された教科曞プロゞェクトに反察



これは、倧郚分は個人的な奜みの問題ですが、私は教科曞プログラミングを勉匷するのは奜きではありたせん。 私は教科曞の挔習ずしお蚭蚈されたものをプログラムするこずを断固ずしお拒吊したす。 䞀郚の人々は、教科曞ずオンラむンチュヌトリアルが蚀語ず構造を孊ぶための良い出発点であるず考えおいたすが私自身は過去に䜕床もCodecademyオンラむンプラットフォヌムを䜿甚したした、そこに単玔に欠けおいるものがいく぀かありたす



1.教科曞には、蚘茉されおいる技術の実際の発展がほずんど瀺されおいたせん。

2.教科曞は、実際に頻繁に遭遇する問題に察凊しおいたせん。



私は、本圓の有甚なこずをすれば、トレヌニングがより良くなるこずがわかりたした。 独創的なアむデアを出すのは非垞に難しいので、あなただけが䞀人だずは思わないでください。 それにもかかわらず、私はこれがプロゞェクトぞの関心を維持し続ける最良の方法だず思いたす。



䞀般的に、私は自分の前でやったこずのない䜕かを䜜成しおいたす。 そしお私にずっおは、状況は「新しいアむデアや倱敗」のように芋えたす。



動揺しないでください



プロゞェクトに取り組んでいるずき、「レンガの壁」に出くわし、途方に暮れるのは非垞に簡単です。 倧孊、短倧、たたは孊校では、コヌスプロゞェクトでこの「壁」を手䌝っおくれるメンタヌたたは教垫を芋぀けるこずができたす。 しかし、あなた自身のプロゞェクトにはそのような人はいたせん。



レンガの壁を克服するこずができたす。 むンタヌネットで助けを求める時間ず機䌚があれば良いです。 お気軜にお問い合わせください。



問題が発生するたびに、貎重な経隓を積むこずができたす。 䟝存関係に関連する問題が発生する堎合がありたすが、その解決策は完党に手の届かないずころにあり、プロゞェクトはどんどん停止したす。 しかし、これはすべお非垞に貎重な経隓になりたす。



芚えおおいおください珟実の䞖界で䜜業を開始するずきに、コヌドを手䌝っおくれるメンタヌはいたせん。



倱敗した開発プロゞェクトはすべお、倧きな倱望に関連しお粟神的スタミナを匷化するのに圹立぀かもしれたせん。



プロゞェクトの完了



最埌に、各プロゞェクトの少なくずも1぀の安定したバヌゞョンを完成させお展瀺するよう努力する必芁がありたす。 GitHubポヌトフォリオが、たずえば20のドラフトや、どこにも行き着いたこずのないアむデアのシヌドだけで構成されるこずは受け入れられたせん。 これは悪い印象を䞎えたす。 雇甚䞻は、あなたが有胜でかなり自信のあるスペシャリストであり、本圓に䟡倀あるものを提䟛できるこずを瀺すポヌトフォリオを芋たいず思っおいたす。 アプリケヌション、Webアプリケヌション、およびサヌビスの適切なパッケヌゞ化、配垃、保守、曎新は容易ではなく、特別なスキルが必芁です。



ボヌナスプロゞェクトを奜意的に玹介する

あなたの蚘事には倚くの正しい点がありたす。 カリフォルニア倧孊サンディ゚ゎ校の別の孊生がコンピュヌタサむ゚ンスのメタディスカッションに参加しおいるのを芋るのはい぀でも玠晎らしいこずです



特に、個人的なプロゞェクトに぀いおはあなたに同意したす。 履歎曞に぀いお孊生にアドバむスした䞻なこずは次のずおりです。

  • 履歎曞でプロゞェクトを䞊に移動するか、
  • 専門的な経隓がない堎合は、より個人的なプロゞェクトを行いたす


゜フトりェアの優れたスペシャリストになりたいのであれば、これには実践が必芁であり、個人プロゞェクトを開発する際に倚くの間違いを犯すこずが最良の孊習方法であるずいう事実は蚀うたでもありたせん



「経隓を積むためにサヌドパヌティのプロゞェクトを曞き始めた方法」-私の経隓ず、コンピュヌタヌサむ゚ンスを勉匷しおいる新入生および/たたは䞊玚生向けの掚奚事項。


Reddit / u / k3q3コミュニティのナヌザヌは、元の投皿に察する非垞に良いポゞションを指摘したした。 特に仕事の経隓がない堎合は、履歎曞の冒頭でプロゞェクトを適切に玹介する必芁がありたす。 プロゞェクトでは、履歎曞に蚘茉できる他のほずんどすべおコヌス、孊䜍、GPAもちろん、 関連する職務経隓を陀くよりも、雇甚䞻に応募する際に働く機䌚が倚くなりたす。



アむデアはどこから来たのですか



以前、私はパヌトナヌず仕事をしおおらず、教科曞から事前に準備されたタスクのためのプログラムを曞いおおらず、新しいオリゞナルの゜フトりェアのみを䜜成しおいるず曞きたした。 このアむデアはどこから来たのですか



私のプロゞェクトを芋るず、そのほずんどが革呜的ずはほど遠いこずがわかりたす。 そしお、それがすべおの塩です。 プロゞェクトで䞖界を倉える必芁はありたせん。 そしお、新しいアむデアを䞖界にもたらすのは簡単な仕事ではないので、他の人がやっおいるこずからむンスピレヌションを埗るこずができたす。



あなたが孊校や倧孊で経隓の浅いプログラマヌである堎合、あなたの想像力を刺激するいく぀かのアむデアがありたす私のすべおの基準を満たしたす





最初に行うべき重芁なこずは、プロセスを開始するこずです。 ゜フトりェアプロゞェクトで䜜業する堎合、GitHubで興味をそそられる䞍思議なこずに必ず遭遇したす。 同僚が䜕をしおいるかを綿密に監芖し、自分のプロゞェクトにベストプラクティスを取り入れおください。 Web開発に倢䞭になっおいる私は、垞に階局型ナビゲヌション、単䞀ペヌゞWebアプリケヌション、およびナヌザヌむンタラクションの他の芁玠に察する興味深いアプロヌチに埓いたす。 モバむルアプリケヌションの開発に情熱がある堎合は、奜きなアプリケヌションストアを巡っおむンスピレヌションを芋぀けおください。 GitHubで奜みの蚀語ずテクノロゞヌを芋぀けお、他の人ができるこずずできるこずを理解しおください。



たた、途䞭で芋぀けた他の開発者ず必ずやり取りしおください。 他の人が䜜成したものを補完するプログラムを䜜成したす。



頑匵っお



All Articles