欢迎光临散文网 会员登陆 & 注册

华为云社区:程序员从幼稚到成熟的过程是什么?他们这样回答

2020-11-29 16:26 作者:C语言编程__Plus  | 我要投稿

华为云社区:

想要成为一名堪称优秀的程序员需要花时间了,而且过程不可谓不艰难——你会不止一次地想要放弃。虽然很难,但这条路上依旧是热闹非凡。众所周知,程序员的资历深浅是跟很多方面都有关联的:知识、阅历、情商等等。但一个程序员要想成长为一个成熟优秀的程序员,这些能力或许能帮助到你。



作者:华为云开发者社区

链接:https://www.zhihu.com/question/411824337/answer/1527294428

1、掌握一门编程语言

作为合格的程序员,精通一门语言是必须的。这种精通,不是说看了一本《24小时精通XXX》,抄了几个程序就能说精通的,要靠长时间的积累和动手敲代码。

而且,为啥强调一门语言,主要是怕一些程序员“贪心”,吃多嚼不烂。编程语言虽然有相似的语法,但毕竟是不同的编程语言,之间还是有很多差异的地方。对于初级程序员来说,切勿贪多,先把一门编程语言吃透再说,等你有了融会贯通的本领,再去学新的编程语言也不迟。

现在大部分的程序员都是 Java 语言相关, Java 基础则是走向 Java 高级的必经之路。所以,这里给大家列举一些实际工作中高频次的东西。

(1)基本容器,如:HashMap、ArrayList、HashSet、LinkedList 等,要会用还得了解其中的原理,这样才能在不同的场景选择最优的设计。

(2)IO、NIO。日常开发中大部分是在和磁盘、网络(写日志、数据库、Redis)打交道,这些都是 IO 的过程。

(3)常见的设计模式如:代理、工厂、回调、构建者模式,这对开发灵活、扩展性强的应用有很大帮助。

(4)Java 多线程是非常重要的特性,日常开发很多。能理解线程模型、多线程优缺点、以及如何避免。

(5)良好的单测习惯,很多人觉得写单测浪费时间没有意义。但正是有了单测可以提前暴露出许多问题,减少测试返工几率,提高代码质量。

(6)良好的编程规范

那么,在学习JAVA语言的初期,程序员就可根据JAVA学习路线规划,可以进行由浅到深的学习、实训,熟练使用Java进行面向对象设计,最终熟悉的掌握JAVA语言。Java语言是这样,其他的语言也是一样,工作中高频出现的,在学习的时候一定要掌握好!


2、编码的能力

当你学会一门编程语言之后,接下来要考虑的事情就是让你编写的代码变得更整洁,更易于理解,更富有艺术。

遵守编码规范,是一个程序员最基本的要求,但很多程序员根本没有意识到这个问题的严重性。随意堆砌网上搜来的代码,根本不管可读性和可维护性,只要能实现功能就行了。

代码注释,要注意不是为了注释而注释。例如:对类,以说明职责为主;对方法,以说明意图为主;对方法体,以说明实现思路为主。

思维的条理性,写代码之前,先简单计划一下,用自然语言把流程写下来,用于整理实现思路。花点时间思考,敲代码只是最后一个很简单的工作,不要把自己变成一个代码打字员,编写边想,写了删,删了写。

养成这些好的习惯,可以极大地提升自己的编程实力,更快速、更可靠地交付更高质量的软件,从而成为真正的高效程序员。在华为云的云享读书会中,华为云资深架构师董老师领读了《程序员修炼之道:通向务实的最高境界(第2版)》这本书。读完这本书,你或能编写出更好的软件,或能探究出编程的本质,而所有收获均不依赖于特定语言、框架和方法。


3、掌握日常接触的技术架构

数据库知识的了解。如果你想要在软件开发这条道路上走得更高更远,懂一些基本的数据库知识是必须的,比如说:如何将业务中的对象属性转化为数据库字段;如何从数据库中检索数据,并将数据集拼接在一起;如何往数据库中插入、修改、删除数据;索引的数据结构及原理;SQL 语句的优化;等等。

如果再懂一些数据库分库分表的中间价,那你可能就会成为团队的宝贝了,毕竟所有的应用程序都要与数据库交互,另外,数据库是系统最先出现性能瓶颈的地方——总有你大展身手的时候。

数据结构和算法的学习。基础知识就像是一座大楼的地基,它决定了我们的技术高度。数据结构和算法就是最重要的基础知识,学习它们的过程就像是在打地基。很多不懂算法和数据结构的程序员,就经常遇到一些实际的问题,由于无法充分利用数据结构将数据之间的关系通过合适的算法策略进行有效地存储转换,就导致程序的性能很低。

技术框架的学习。技术框架是一组通用类库的集合,它帮助我们让编程任务变得更简单,毕竟轮子替我们造好了。假如说没有技术框架的话,我们就好像坐着马车前行,而不是飞机、高铁和汽车,开发效率就要大大降低了。 例如,如果你是Java 后端开发人员的话,Spring 的系列框架(Spring MVC、Spring Boot、Spring Cloud)就不得不学了;如果你是一个 C# 开发人员,.NET Framework 就不得不学了。

当你开始接触不用方向的技术和架构的时候,在你持之以恒的学习吸收各种技术知识的过程中,也正在你从初级程序员再向更高的阶段进阶。


4、实践新技术

我们在开发时,会接触各种各样的新技术。有时因为项目时间原因,很多技术只能是走马观花的用,解决问题为目的,项目结束了可能就扔一边儿去了。但要想让自己有更大的成长,那我们就应该学多一点,用一分学两分,广里一分,深里一分,不能不求甚解一带而过。对于用过的技术,最好在当时,项目的间隙或者项目结束时,抽时间了解它的背景、长处、机理,让自己对用到的技术都有相当程度的了解。惟其如此,我们的知识面和技术深度,才会随着开发经验而不断递进。

选择或者学习一门新的技术,必须要实践。可以把它应用到工作中的项目,如果工作条件限制,那也要自己定义一个自己喜欢的项目,坚持使用你的新技术做下来。唯有实践,你的新技术才能理解得更为深刻。知道有那么一门技术,与实际使用过,其间的差异可不止一点。


5、掌握点架构知识

相信大家都有一个架构师的梦想。架构师给人的感觉就是画画图纸,搭好架子,下面的人员来添砖加瓦最终产出。但其实需要的内功也要非常深厚,就上面列举的样样需要掌握,底层到操作系统、算法;上层到应用、框架都需要非常精通。

其实,很多架构师都是从开发人员逐步过渡来的,程序员想要成为架构师,应当具备全面的知识体系,需要进行系统的学习和实践。平时就应该身负“架构师”职责,用架构师的视角来对待工作。

喷泉之所以漂亮是因为她有了压力;水之所以能穿石是因为永远在坚持。有些东西你只要用心学习去做,其实并不像你想象那么难。要敢于去尝试,给自己一点点压力,取得的效果是你自己难以想象的。

如果你依然在编程的世界里迷茫,不知道自己的未来规划,亦或你想更好的提升你的编程能力,好好学习C/C++编程知识的话!那么你很幸运~

另外,UP在主页上传了一些学习C/C++编程的视频教程,有兴趣或者正在学习的小伙伴一定要去看一看哦!会对你有帮助的~

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

编程学习书籍:

编程学习视频:


华为云社区:程序员从幼稚到成熟的过程是什么?他们这样回答的评论 (共 条)

分享到微博请遵守国家法律