保持初心,继续前行 -- 做一名程序员容易,但做一名好程序员难

大纲

1、学习传统的算法与数据结构

2、为什么计算机基础如此重要?

3、作为一个后端工程师,如何规划自己?

4、在每天的工作之中保持一颗学习的心态

5、真正的热爱,才能保持初心

6、写给培训班出来的一些话

 

正文

1、学习传统的算法与数据结构

15年我开始接触ACM,进了校队,利用自己蹩脚的C语言基础在HDU上刷题。当时并没有多大的概念,也不知道算法与数据结构在实际应用中有什么扩展。但是开始刷题了之后,大家应该都经历过那一种热血澎湃的日子,每日为了一个Accept高兴得手舞足蹈。渐渐地这一份热情,或多或少地给了我接下来继续留在ACM实验室刷题学习算法一些鼓励和坚持的信心。直到大一暑假集训,我慢慢学习了传统的算法,接触到了除了链表和栈之外更多的高级数据结构。毫无疑问,这个阶段是非常艰难的。很多人都深有体会,数据结构接触简单,难在实现,难在灵活变通。如果说对二叉树与链表之间的转换以及图中一些常见的最短路、最小生成树之类的问题都不能拿捏自如的话,可能都难以在数据结构这一门课上给你合格的成绩。当然,我给自己的目标也一直没有变,我一直在ACM中疯狂刷题,暂且可以说疯狂吧。从大一到大三,三年时间,想过放弃,但从未松懈。

有些困难和瓶颈,是必须要趟的。现在不尝试不坚持,以后,真实的命运可能就与你的理想背道而驰。

2、为什么计算机基础如此重要?

计算机基础包括计算机网络、操作系统、数据库以及数据结构。在软件开发的过程中,最简单的C/S架构,是基于TCP或者UDP连接起来的,有计算机网络才有通信。通信之间一定会有数据的传输,数据的格式就需要用对应的数据结构保存。对于客户端与服务器端之间的交互,大量的信息和数据需要存在数据库里,而数据库是部署在服务器上的,这样,对操作系统也需要了解。也许这些在平时的工作中并不是用的太多,可是有基础和没有基础是完全不一样的。基础决定格局,格局决定高度,你掌握得越多,在工作做思考的问题和解决的办法就会越多。这样有利于你在工作中能够游刃有余,得心应手。

盲目追求学习技术而不抓基础,就像推崇建设地标建筑而忽视了地基,最后只会陷于其中,成为不可迈过的坎。

3、作为一个后端工程师,如何规划自己?

一个系统后台的搭建,包括业务、数据、搜索等多个方面。具体的划分可以很细很细,不要只甘于做CRUD。无论什么阶段,都应该多了解全局,了解整个大型网站的架构。一般来说,一到三年的后端工程师,应该对开发语言有完整的把握,对行业内的业务熟悉,有自己的思想,有一定的开发效率,有一定的处理解决问题的能力。对于分布式、大数据等应该都要去涉猎,对当前热门的机器学习内容,如果有兴趣,也可以做适当的了解和扩展。

技术很多,也更新很快,但是切勿急躁,三天打鱼两天晒网,捡芝麻丢西瓜。保持初心,慢慢前行。

4、在每天的工作之中保持一颗学习的心态

技术是不断迭代的,很多时候,不进则退。在工作之余,我们每个人都需要去充实自己,学习新的知识新的东西。量变才会引起质变,每天进步一点点,能力才会在无形之中有所提高。具体可以细致到总结自己的知识,列一个大纲,或者写一篇博客。又或者深入某一个知识点,看几篇博客,阅读一本书等等。

工作并不是你的全部,你应该时刻都有紧迫感。工作是乏味的,可是获取知识是快乐的。

5、真正的热爱,才能保持初心

可能很多时候,我们都不知道自己到底在做些什么,对自己突然之间产生一个大大的问号。自己喜欢吗,喜欢每天这样的工作这样的生活吗,自己想要什么,能力?工资?知识?也许这些问题,只有对自己进行深深的反省,才能找到答案。互联网是一个快速发展的行业,对很多人来说,都可能还是局外人。俗话说得好,自己就像一块砖,哪里有需要就往哪里搬。可是这样糊涂地无所求地过着真的好吗?有的时候想想,或许有些可怕。

可能真正的热爱,才是最好的吧。才能保证,可以保持初心,不会变成曾经最讨厌的那种人。

6、写给培训班出来的一些话

人无高低之分,每个人都有选择的权利。但是,我们都需要时刻反问自己,自己真的能达到工作两年经验的水平吗?培训班的风气不好,可能也是众多公司讨厌培训机构出来的程序员的原因之一。我想对你们说一句话,把心沉下来,不断学习,把自己变成不需要依靠培训机构包装自己就能进大公司的人。虽然我知道很难,但你们还是会有理想的,对吗?我以前听过一个哲理性的比喻,说人就好像一杯水的里茶叶,一定要沉下去被开水浸泡,才能完全散开,浮出水面。

不管现在如何,尽早给自己树立一个目标吧。既然你参加培训了,就说明你看好这个行业。人这辈子,如果在年轻的时候,没有一个牛逼的目标和一段艰苦的经历,到老了可能就会体会到那种无可奈何的遗憾。

 

写了这么多,更多的是写给自己的,但也可以与诸君共勉。

你可能感兴趣的:(成长心得)