最近C言語を勉強しているのですが、とても辛いのですがどうすればいいでしょうか?

私の経験をお話しさせてください...

私はコンピューター サイエンスを専攻していません。2011 年に電気工学を卒業しました。

当時、この専攻はお金がなくて自分には向いていないと感じ、転職するつもりでした。

当時、私もとても不安で混乱し、数年を無駄に過ごし、ついには最初からやり直すことになったのですが、なんという罪でしょう…。

若い頃、私は人生の浮き沈みを嘆き始めました。

私は一ヶ月以上不安と混乱を抱えていましたが、生活が悪化したこと以外は何も変わりませんでした。

私もこのままではダメだ、と内心不安でした。

私は比較的内向的な性格なので、プログラマーの方が向いているかもしれません。

また、子供の頃から家にコンピューターがあり、中学生の頃からCS、BNB、レジェンドなどの様々なゲームをプレイするのが得意でした。

メリットや恩恵はいくつかありますが、正直に言うと、私が最も評価しているのは、プログラマーの給料が本当に良いということです。

私は学校を出たばかりで、考え方も今ほど成熟しておらず、勉強も盲目的で、長年働いてきたので、立場のニーズに応じて学習計画を立てる必要があることだけを知っています

私が初めて Java を学習したとき、まず Java SE の基本的な文法を独学で学び、次に Oracle を学びました。

学習した後も、まだ何も理解できません。ビデオ チュートリアルに従って戦車戦闘ゲームを作成し、友達に見せびらかしました。実際、レベルは非常に低いです。

チュートリアルを抜けると全てゼロに戻ったような気がしますが…どれくらい時間が経ったのかは分かりませんが、少なくとも月単位で計算されています。

またあの混乱期に陥り始めたんですが、このレベルで仕事を見つけられるでしょうか?

その後、キャリアの方向性について詳しく調べたところ、Java SE を学んだ後はそれが単なる始まりであり、基礎にすぎないことがわかりました。

雇用レベルを達成したい場合は、Java me と Java ee の 2 つの方向から選択する必要があるかもしれません。

1 つはモバイル アプリケーション用、もう 1 つは Web およびエンタープライズ アプリケーション用ですが、後ほど学習しないため、具体的かどうかはわかりません。

ニマを学んでいると、学業を終えたら退職することになると感じていますが、高い給料はそう簡単には得られないようです。

再び混乱期に陥った私は、生計を立てるためにネジを締める最先端の工場に行って、実務経験を積もうか迷った。

もしあなたが今この段階に直面しているなら、私からの提案は、やめるべきです。

一度入ってしまうと基本的にダメな人なので、一度安定してしまうと振り回されにくくなります。

本当に食べるお金がないなら、まずは楽な仕事を見つけたほうがいいですし、工場でネジとして働くよりは警備員でもいいです。

工場に入るとロボットと何ら変わりなく、工場長に容赦なく締めつけられ、止めることはできません。

その後、ひょんなことからシングルチップマイコンに出会うことになりましたが、これはC言語を覚えるだけで済む簡単なプログラミング言語です。

重要な点は、学習結果についてのフィードバックがすぐに得られるということで、数時間で目に見えて具体的な流水ランプになることができ、これは純粋にコードを書くよりもはるかに興味深いものです。

それ以来C言語に触れ続けていますが、就職するまでは私のC言語は荒波を釣るレベルでした。

あれから11年が経ち、私のレベルもかなり上がり、アーキテクチャを書いたり、キューやリンクリストなどのデータ構造を実装したりしました。

私自身の条件としては、MCU開発をやっているので、MCU製品をベースにしたプログラムを独自に作ることができれば十分です。

それが終わった今、私は自分を偉い人たちと比較したくありません、ただ横になって普通であることが良いことを認めます

自分の成長過程を振り返ると本が1冊書けそうなくらい、アウトプットした原体験は10万文字を超えました。

次に、今日のテーマのまとめをさせていただきます。

C 言語プログラミングのレベルを向上させるには、いくつかの段階を経る必要があります。

1. 初心者期間

つまり、C 言語は初めてで、基本的な文法は学習しましたが、どのプロジェクトも実行できないことがわかります。

ソートアルゴリズムや各種printf、ワンチップマイコンの各種周辺機器など、簡単なものだけかもしれません。

しかし、プロジェクトの機能ロジックを実現するためにコードを統合するのは複雑です。

この時点で、初心者のボトルネック期間に入ります。

この時期、あなたは特に敏感になり、どこがうまく学んでいないのか、基礎が弱すぎるのではないかと疑問を持つようになります。

C 言語をもう一度勉強して、ガールフレンドの古い履歴を調べるように、市販の C 言語チュートリアルを参照することもできます。

また、自分にはプログラミングの学習は向いていないと感じてしまい、諦めてしまう可能性もあります。

私が初めてJavaを学んだ時は後者のタイプでしたが、学んでも何もできずに諦めてしまいましたが、実は基礎とは何の関係もありません。C言語の構文を改めて学ぶ必要はありません。学習後、それが今も同じであることがわかります

実際、今あなたに最も欠けているのは、プログラミング的思考プログラミング レベルの2 つです。

プログラミング的思考は機能を実現するアイデアがあるかどうかを決定し、プログラミングレベルはそのアイデアを実現するコードを使用できるかどうかを決定します

この2つは、プロジェクトを通じて継続的に培っていくしかありません。文章を習ったばかりで、すぐにエッセイを書くことは不可能ですよね。

私たちの Boundless MCU プログラミング トレーニング キャンプを理解できない人は、明らかに MCU 開発ボードをわずか 100 元で購入しますが、私たちは 1,000 元以上の請求をします。

それは、開発ボードではC言語やシングルチップマイコンなどのツールを学ばせるだけで、プログラミング的思考やレベルが養われるわけではなく、実際のプロジェクトによって動かされるため、位置づけの価値も異なります。

2. 解繭期

それを理解すれば、この段階までスムーズに到達できます。

この段階での最善の方法は、それを実行するためのさまざまなプロジェクトを見つけることです。プロジェクトがなければ、プログラミング レベルは決して向上しません

機能を実現できさえすれば、プロジェクトのコードをどれだけうまく書けるかということはこれまで追求していませんでした。

シングルチップマイコンの開発を例に挙げると、この段階では開発ボードを購入する必要はありません、購入したい場合はプロジェクトを購入することができます。練習用に購入できるDIY用のものが多数あります。 。

開発ボードとプロジェクトはどちらも回路基板ですが、違いは開発ボードがシングルチップマイコンのすべての周辺機器につながっていることです。

プロジェクトには特定の製品機能があり、学習はより目的を持ったものになります。

この段階では、あまり多くを求めず、主に機能を実現するためのコードが適切に記述されているかどうかを気にする必要はありません

3. 繭を破るボトルネック期間

プロジェクトの 60% を独立して作成できるようになると、再びボトルネック期間に入ります。

この段階を経て、2~3年ほど働いたのですが、その頃は少し浮いていて、どんなプロジェクトでもコードを怖がらないようになったと感じていました。

しかし、問題があります。それは、自分のコードが乱雑で十分にプロフェッショナルではないといつも感じていることです。

当時は良いコードとはどのようなものなのか分かりませんでしたが、結局触ることはありませんでした。

私の現在の理解によれば、コードが適切に記述されているかどうかは、主にアーキテクチャアルゴリズムという 2 つの側面に反映されます。

アーキテクチャはプログラムの「基盤」に相当し、アーキテクチャが良くないと、コードの安定性、機能の拡張性、異なるプラットフォーム (チップ) でのコードの互換性に影響を与えます

アルゴリズムは、特定の機能を実現するための方法です。多くのアルゴリズムは、最初に数式で計算され、その後コードで実装されます。アルゴリズムが優れているほど、実行効率が高くなります

誰も教えてくれなかったら、この段階ではこの2点は全く理解できないでしょう。

当時、このボトルネックに遭遇しましたが、それを改善する方法がわかりませんでした。

コードをよりプロフェッショナルに見せるために、いくつかの付加機能を使用するだけです。たとえば、ポインターはポインターなしでも使用できると述べていますが、ポインターがより複雑に見えるため、私はポインターを使用しています。

4. スピードプロモーション期間

優秀なエンジニアに中規模から大規模のプロジェクトを任せられれば、すぐに突破口を開くことができます。

しかし、誰もがこのような機会を持っているわけではありません。たとえば、私にはそれがありませんでした。そのため、私は数年間この段階に留まりました

小規模なプロジェクトを行うだけでは意味がありません。中規模および大規模なプロジェクトに触れる必要があります。

中大規模のプロジェクトを経験してこそ、プログラムのアーキテクチャの重要性が深く理解できたり、ポインタの謎が理解できたり、学べることが多すぎます。

Boundless MCU プログラミング コースの第 3 フェーズは、学生がこのボトルネック期間を打破できるようにするために設けられています。

このプロジェクトには、独自に記述された小さなシステム、ワイヤレスセンサーネットワーク機能、メニュー機能、APPを介したホストステータスの制御、盗難防止アラーム機能などがあります。

機能実現のアイデアを養うことに重点を置き、プログラミング レベルを練習し、C 言語の高度な文法を使用して実際の製品開発の問題点を解決します。

5. 建築家

この段階では、あなたのレベルはすでに非常に優れており、プログラミングのレベルに加えて、思考力の向上も重要です

たとえば、モジュール思考、オブジェクト指向プログラミング思考などです。

プログラム アーキテクチャの一部を自分で書くことはできますが、最初から最後まで書く必要はありませんが、それでも難しいでしょう。

一般的に、彼らはまず他人の構造を模倣し、次にそれを超えるのですが、一流の人でもこのようにここに来ます。

同様のプログラム アーキテクチャは多数あり、MCU 開発では、RTOS、Bluetooth プロトコル スタック、STM32 ファームウェア ライブラリなどがすべて可能です。

2019 年には、システムのプログラム アーキテクチャに関する一連のビデオ チュートリアルも録画しました。シングルチップ マイクロコンピュータをベースにしており、これは私の長年の経験の要約とみなすことができます。自分のプロジェクトに直接移植することができ、そして最も重要なことは、完全にオープンソースであるということです。完全にオープンソースです!完全にオープンソースです!

ここにリンクを置くのは不便なので、ネットワーク全体で同じ名前を持つ Wiji MCU に直接アクセスしてください。

 

知らず知らずのうちに2,600字を超えてしまいました、記事ではありますが、私の備忘録のようなものです。

 

お役に立てたら、お金持ちになって、スリーリンクをお願いします!

おすすめ

転載: blog.csdn.net/weixin_43982452/article/details/123291153