序文
皆さんこんにちは、 Tianluoです。
最近、読者から「天洛兄弟、私たちは日々の開発の中で、ビジネス上のニーズに取り組んでいます。どうすれば技術を向上させることができますか?」と質問されました。したがって、この記事では、Tianluo 兄弟がテクノロジーを改善するための 13 の提案を整理しました。友人の皆さん、一緒に働きましょう。
1. しっかりとした基礎を築き、言語の機能を深く学習する
たとえば、プログラマの場合、オブジェクト指向プログラミング、コレクション フレームワーク、例外処理、マルチスレッドなどを含む、言語の基本概念とコア機能をJava
理解する必要があります。公式ドキュメント、チュートリアル、参考書、またはオンライン リソースを読んで学習できます。Java
Java
最も基本的な基盤がしっかりしていなければ、技術の向上について語ることはできません。例えば:
HashMap和ConcurrentHashMap
違いが分かりますか?- いつ使用しますか
ConcurrentHashMap
? ファイル操作時 finally
リソースをブロックで解放する方法を知っていますか?- どのシナリオがジェネリックに適しているか知っていますか?
したがって、自分の技術を向上させるためには、まず基礎をしっかりと築く必要。「仕事中は基礎を学ぶ時間がない」という友人もいますが、そんなことはなく、基礎は毎日地下鉄で通勤して、仕事が終わってからチェックして、会社で見ています。週末は家にいます。通常は 1 ~ 2 か月かけてさらにコードを書きますが、基礎は非常に優れています。
友人の中には、Java の基礎を改善するにはどうすればよいか、と言う人もいました。できる:
- Java プログラミングのアイデア、Java コア テクノロジ、Java 仮想マシン、新人向けチュートリアルなど、Java 関連の書籍やチュートリアルを読んでください。
- Java ブログやコミュニティ参加ディスカッションを読む: Java 分野のブログ、フォーラム、コミュニティをフォローして、最新の技術トレンドやソリューションについて学び、他の開発者とコミュニケーションを図ります。
- もっと練習して、もっとコードを書いてください : ステーション B で Java の基本的なビデオを見つけて、見て、もっと練習して、もっとコードを書いてください
2. 一般的に使用される開発ツールに精通している
作業者が自分の仕事を上手くなりたい場合は、まず自分のツールを磨く必要があるため、優れたプログラマーはコーディング効率が高いことがよくあります。コーディング効率を向上させるには、一般に、ツールの精通と柔軟な適用が必要ですEclipse、IntelliJ IDEA、Maven、Navicat
。これらのツールに慣れると、開発効率が向上します。
たとえば、IntelliJ IDEA
ショートカット キーに慣れている場合は、setter和getter
2 ~ 3 回のクリックでエンティティ クラスのメソッドを生成できますが、プログラマーの中には依然として 1 行ずつゆっくり入力している人もいます。。
3. 日々の業務で踏んだ落とし穴をまとめる
優秀なプログラマが優れているのは、自分が踏んだ落とし穴を要約し、同じ間違いを繰り返さないようにするからです。したがって、Tianluo 兄弟は、日々の開発で落とし穴を踏んだ場合は、それを要約し、夕食後に復習する必要があると提案しています。
たとえば、次のようなことはご存知でしょう。
- Redis 分散ロックの使用にはどのような落とし穴がある可能性がありますか?
- スレッド プールの使用に関する落とし穴は何ですか?
- Java の日付処理の落とし穴は何ですか?
Arrays.asList
どのような落とし穴があるでしょうか?
しばらく忘れてしまった場合は、私の以前の記事を読んでください。
- 糸溜まりの穴を10個数えます
- Redis 分散ロックの 10 の落とし穴
- Java の日々の開発における 21 の落とし穴のうち、いくつ踏んだことがありますか?
- プログラマは次のことを行う必要があります: Java 日付処理の 10 個のピット
これらはすべて私の仕事から要約したものであり、日々の開発で遭遇する落とし穴をすべて要約していただければ幸いです。
4. 職場では、プロジェクトの優れたコードと設計ドキュメントを読んでください。
孔子は、「三人で歩けば必ず師がいる」と言いました。普段コードを見るときは、プロジェクトの悪いコードについて常に不平を言う必要はありません。実際、よく書かれたコードにもっと注意を払って、他の人がそれを書く理由を理解し、それをコピーして書くことができます。
当然,一些好的设计文档也是:人家为什么这么设计,好处在哪里,不足又在哪里,如果是你来设计,你如何思考等等。把好的设计,读懂后,记录下来,变成自己的知识.
5.日常工作中,总结一些通用的技术方案.
在日常工作中呢,注意整理一些通用的技术方案。
比如幂等设计、分布式锁如何设计、分布式事务设计、接口优化、限流设计、分库分表设计、深分页问题解决等等. 大家可以看下我之前的一些通用方案设计的文章哈:
当然,田螺哥也建议你,日常开发中,把自己遇到的一些通用设计方案总结下来,熟悉掌握这些通用技术方案。
6.参与技术讨论,积极技术分享
参与技术讨论和交流,可以有助于你与其他Java开发者分享经验、解决问题和学习新知识。进行技术分享,可以加深自己的理解、建立专业声誉、促进个人成长、为技术社区做贡献等等。
比如你做需求遇到的一些难题,都可以跟有经验的同事、或者技术leader讨论讨论。一些常见的难题,讨论完可以记录下来,然后做技术分享。
7. 主人翁意识,积极攻克项目的难题
作为一名开发工程师,具备主人翁意识并积极攻克项目的难题,是非常重要的。遇到项目中的比较棘手问题时,先不管是谁的问题,我们都要持有主人翁意识,积极主动地找到解决方案并采取行动。
而在技术找解决方案的过程,我们也就成长了。当攻克问题后,你也获得领导的认可,好绩效不远了,一举多得!
8. 思考项目中,哪些可以提升效率
日常开发中,几乎大多数程序员都是在进行增删改查。如何如何避免自己成为平凡的增删改查程序员呢。
我觉得可以这样做:平时工作中,思考项目中,有哪些可以提升的效率。包括熟悉开发工具、掌握适当的调试技巧、熟悉常用框架、持续学习和关注技术发展等等。
比如:
- 好的的debug调试技巧,可以让你快速找到问题
- 再比如一个插件
easyyapi
可以一键让你快速生成yapi
接口文档,而不用一个一个字段手工敲接口文档。
当然,日常开发中,还有很多可以提升效率的技巧/工具,等待我们去发现。
9. 熟悉你的业务,让自己不容易被替代
我们普通程序员,多数都是做业务的。一般工作个五年以上,水平差不了太多。如何避免自己被淘汰呢?我个人建议是,尽量做到熟悉你们做的业务,让你变得不容易被替代。
10. 多看看你的系统,可能存在哪些问题,如接口耗时、慢SQL等等
一般的系统,多多少少都有些问题。比如接口耗时过长、慢SQL、fullGC频繁等等。
首先需要掌握这些技能,比如如何优化接口,如何优化慢SQl、fullGC如何排查等等。大家可以看下这几篇文章哈:
11. 学以致用,将理论知识应用到实际项目中
很多小伙伴说,看过很多计算机相关的书,阅读过很多博客,背了很多八股文,依然做不好一个系统。
我觉得,大家可以多点思考,把平时积累的东西,应用到实际项目中。背八股文不是没用,你可以把它应用到实际开发中的。比如说,你看了田螺哥的文章,IO模型详解
这个表面看起来就是一个常见的八股文知识点,工作中似乎没用到。但是我在工作中,就用到这种类似的异步思想:
比如发起一笔批量转账,但是批量转账处理比较耗时,这时候后端可以先告知前端转账提交成功,等到结果处理完,再通知前端结果即可。
再比如,你看完田螺哥的:MySQL索引15连问,抗住!,你是不是可以回头看看,你的系统中,那些sql的索引加的是否合理呢?是不是可以思考一下如何优化,对吧。因此,就是要学以致用。
12. 阅读一些优秀框架的源码,如spring、rockectMq等等
如果你有空余的时间,就建议你看看一些优化框架的源码,比如spring、rockectMq
等等。
对于spring源码的话,可以按模块来呀,比如aop,控制反转,spring事务
等,你先写个demo
,然后debug
跟踪流程,通过调试器逐步跟踪源码执行过程,观察各个方法的调用关系和数据变化。最好是结合电子书一起,如(Spring源码深度解析
这本书一起)
优秀框架的源码,我们可以学习到很多编码思想的,加油。
13. 多编码,少偷懒,养成编程的好习惯
作为程序员,一定要多打代码,不要偷懒,代码敲多了,你就会了。还有就是,少点偷懒,坚持!努力!养成热爱编程的好习惯。
总之,提升技术需要不断学习、实践、总结和积累经验。