快捷搜索:  汽车  科技

一个程序员必须掌握的基础知识(程序员能力不足)

一个程序员必须掌握的基础知识(程序员能力不足)4、关注数据结构使用中容易出错的地方,比如说线程是否安全等。3、关注常用数据结构的外围算法,比如说如何对 List 和 Map 进行查找。大部分的数据结构课程,关注的重点都在如何从数学上实现一个数据结构,但在实际开发中,大部分主流语言都已经内置了常见的数据结构,比如说 Java。也就是说,对于大部分程序员来说,实际开发中,很难有需求要从零开始实现一个数据结构。因此我们只需要做到下面几点。1、熟悉常见数据结构的概念,比如说数组、堆栈、链表、哈希表等。2、了解常用数据结构之间的差异,比如说 ArrayList 和 LinkedList ,我在之前的文章中有详细说明过,可以点击链接去查看下。

最近我在狂补计算机基础知识,感觉有点上瘾!以前觉得很枯燥的知识,现在竟然有点香!不知道为什么。

我算是科班出身,大学的专业就是计算机网络,不过老实说,在实际的开发中,大学的很多课程,要么“用处”不大,要么可以换个方式,更高效的学习。

其中的原因,一方面是实际开发更关注知识的“实用”,另外一方面,大学的教学确实和产业有些脱钩。所以我就从实际应用的角度出发,重新来梳理一下计算机基础方面的知识。

一个程序员必须掌握的基础知识(程序员能力不足)(1)

01、数据结构

毫无疑问,数据结构对一名程序员来说非常重要,还是那句话 程序=数据结构 算法 ,这种说法无论放在什么时候都是成立的。

大部分的数据结构课程,关注的重点都在如何从数学上实现一个数据结构,但在实际开发中,大部分主流语言都已经内置了常见的数据结构,比如说 Java。也就是说,对于大部分程序员来说,实际开发中,很难有需求要从零开始实现一个数据结构。因此我们只需要做到下面几点。

1、熟悉常见数据结构的概念,比如说数组、堆栈、链表、哈希表等。

2、了解常用数据结构之间的差异,比如说 ArrayList 和 LinkedList ,我在之前的文章中有详细说明过,可以点击链接去查看下。

3、关注常用数据结构的外围算法,比如说如何对 List 和 Map 进行查找。

4、关注数据结构使用中容易出错的地方,比如说线程是否安全等。

...

一个程序员必须掌握的基础知识(程序员能力不足)(2)

02、算法

以我接触的领域来说,大部分普通的业务系统都不会涉及到太复杂的算法,因此我没有在算法上投入过多时间。

但如果你在一些特殊的领域,如果算法跟不上,可以说是“寸步难行”,比如说图形处理领域,无论是图像的变化还是增强,无一例外都要用到矩阵变换,因此就必然涉及到线性代数的内容,再往深处学的话,必然会牵扯出更多的知识。

所以学习算法要视情况而定,如果想走算法岗,那么《算法第4版》、《算法导论》、《数学之美》、《编程珠玑》、《剑指offer》这些书都要耐着性子啃一啃。

一个程序员必须掌握的基础知识(程序员能力不足)(3)

03、设计模式

我认为设计模式是初中级程序员迈向高级程序员的必经之路。有不少程序员,前期冲劲十足,但后继乏力,都是吃了设计模式的亏。

在工作的前几年,大部分程序员都处于熟悉编程语言的阶段,也就是处于“技”的阶段,随后就要进入“术”的阶段了。在编程领域,“术”的典型代表就是“设计模式”。

我自己推荐的一本书是《设计模式之禅》,代码是用 Java 实现的,读起来比较轻松,也更符合国内程序员的阅读习惯。

一个程序员必须掌握的基础知识(程序员能力不足)(4)

04、软件工程

实现一个软件系统的过程,不仅只有编码,还涉及到项目安排,团队协调等一系列非技术因素,如果想从一名程序员走向管理岗,成为 team leader 或者开发经理,软件工程方面的知识就必须得跟得上。

这里我推荐几本不错的经典书,其中有一本邹欣老师的书,他刚出任 CSDN 副总裁,希望 CSDN 能在他的入驻后变得更好一些。他这本书的书名叫做《构建之法》,我看过,还是很不错的。

一个程序员必须掌握的基础知识(程序员能力不足)(5)

另外还有两本必读,就是《人月神话》和《人件》,虽然有了岁月的痕迹,但依然值得深读。当然,关于软件工程,最好的学习方法是观察,观察你所在的团队是如何处理工程问题的,然后思考,最终形成自己的方法观。

05、架构 & 设计

要想写出一个好而美的程序,需要经过三个阶段。

第一阶段,有扎实的基本功,简单点说,就是要做到语法熟练、框架熟练,成为一名能够完成开发任务的“码农”。

第二阶段,从“码农”到“工程师”,在局部上,不仅要能够实现功能,还能关注功能之外的维度,比如健壮性、低耦合、可扩展等指标。

第三阶段,从“工程师”到“架构师”,不仅在局部上追求一个模块的好坏,而且还要从整个系统层面去掌控,合理安排资源的优先级,保证整个系统不会出现腐败等等。

一个程序员必须掌握的基础知识(程序员能力不足)(6)

要想成为一名优秀的架构师,除了自身的努力,也需要一点点运气,但靠读书可能不够,但这些经典书籍还是要阅读的,能给日常的工作带来巨大的帮助。

《代码大全》

《重构:改善既有代码的设计》

《设计原本》

《大型网站技术架构核心原理与案例分析》

最后

技术这条道路并不好走,不仅要学习很多新技术、新框架,还要及时补充必要的计算机基础知识,底子硬的同时还要学会拥抱变化。

学习的过程,就好像登山一样,大概有 80% 的人在这个过程中会掉队。那么请相信我,只要目标明确,努力加上坚持,再加上一点点好运气,你就能登顶!

文章来源微信公众号丨沉默王二,希望能够帮到你!我要发个炸弹去。.

如果你想更好地提升你的编程能力,进入到百度腾讯等大厂工作,好好学习C/C 编程知识成为高薪软件开发工程师的话!那么你很幸运~

编程学习书籍:

一个程序员必须掌握的基础知识(程序员能力不足)(7)

编程学习视频:

一个程序员必须掌握的基础知识(程序员能力不足)(8)

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

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

C语言C 编程学习交流圈子,点击下方【了解更多】获取更多学习资料帮助你学习成长哦~

猜您喜欢: