给5年左右程序员的一些建议

时间:2021-01-01 11:51:27

一、

技能树真的只是针对入行几年的,技术还不过关的,四年以上真的要看甚至把握行业发展了。

人工智能,视觉计算,区块链,能否达到用专业的角度去看可行性呢。

 

二、

当然,每个人生活不一样,不是所有人都是技术爱好者。

记得上家公司,一个两年的程序员面对一个线程问题,束手无策,一脸茫然的样子。那时我也刚入行,但是却看到了能力与工作时间是不能成正比的。

我看过他的代码,只是轻描淡写提了几个问题,说多了怕伤到他脸面。他说,当时也想到了,只是懒惰了一下,就直接按前面的模板拷贝修改下来的。

可是这一懒惰,轻则效率慢的要死,重则直接崩溃呀。

上面两个知识点,一个可以用fork-join方式实现,一个是基本认识问题,修改是把无数次链接查询改成一次查询,在内存里做计算,当然能用java8的流处理就再好不过了。

这里我只是看到了一个两年的程序员对知识毫无热情,对新技术,新知识更不关注罢了。而且不是少数。

所以新人们,真的喜欢程序的,还是可以勇敢加入程序员行业的。

地铁上随便吐槽下。

有空再加内容。补全知识脉络图。

 

三、

个人认为,带着点东西去看优秀的作品才能真正提高。

带什么呢?良好的基础,算法、数据结构、设计模式、java中的反射、io、nio、xml读取、枚举、注解实现、多线程等等,当然jvm是必看的,内存模型、字节码格式、编译加载过程,虽然实际码代码是用不到,但是,这些都是理解更高层东西的基础。没有个内存模型在心中,那多线程也理解不了。当然tcp连接多少也是要了解下的。

别说,好多人转行两年,自己电脑上写了个项目,怎么让公网上其他人也能访问都不知道……讲真的,很丢脸,因为程序员在普通小姑娘眼里那是分分钟能化身黑客的。你这只会码些逻辑代码,到底算什么呢?多少去了解了解网络知识吧!

看什么呢?反正现在我看过spring源码、struts2源码、mina源码、netty源码、dubbo源码,而且现在还在看,反复看,看到能理解作者的设计思想。

不想写出优雅代码的程序员真的不是个好程序员。

 

四、

记得刚入行那时候,我向一同转行的朋友推荐说,idea还真是挺好用的啊,公司也用的idea。这位朋友的态度是:“卧槽,不用,没用过,又得学。”

显然人各有志,不好说什么。

仅仅是学用个工具而已,又不用去理解弯弯绕绕的原理。贴个备忘录在桌面,记录idea各种快捷键的使用。习惯后,真的发现想干什么都贼快的自豪感。

另外,还有几款应用也是有必要选择掌握的。

画思维导图的xmind;

画时序图的studio;

画用例图的powerdesign;

什么都能画的edraw。

很有利于做笔记什么的。

至于学习时间,讲讲个人感受吧,前期学东西贼慢,后来会感觉变快,再后来学什么都很快的错觉。

那是建立在庞大知识体系下,再去接收新东西,和吃饭一样简单。

 

五、

记得以前和朋友争论过,学习是看视频好呢?还是看书好呢……

个人观点:

入门的话,看视频,现在视频资源太丰富了,很多老师讲的都相当不错。(不仅仅是新人入行,入很多知识领域看看讲解,有个大概后再深入也相对容易)

我的百度云现在还有整整2个T的视频资源呢……

提高的话,还是看书,看文档吧。视频加以辅助,某些点难理解的,看看视频,看看大牛怎么搞的。

看书,看文档的习惯是一定要养成的。

我朋友总觉得看视频好,映像深,轻松,看书多泛味呀。

但是,在公司上班时候,总不好拿着手机或者ipad或者工作电脑上放视频吧;其次,视频看过后,短期记了点,长期下来,万一你想查某个知识点,那翻视频可不容易;还有就是很多视频讲的知识点是不全的,跟自己查和翻资料是没法比的。

 

六、

简单写了写学习感想和经历,没想到有那么多人看。

题主改了题目后,高端许多了,没太多想法。架构层面的东西,十个架构师应该至少能有四种不同的架构设计方案。

不过大都是初步架构模型,然后根据需求不断改进吧。

原公司的项目架构,从美观和简洁上,真的能无限吐槽,但要考虑到不同模块不同团队去实现,也就释然了。实现功能,快速迭代才是他们的追求。而且项目成立蛮早的,模块与模块间还依赖频繁,现在想把模块独立出去,难度都不小。

印象最深的是自己这边写了个并发请求,请求到中间模块进行处理,中间模块再去请求资源。小数据量测试居然没问题,加到几千数据量测试,结果频频掉数据。自己代码审视了N遍,才捉包定位到这个中间模块居然不支持并发…那几十万的数据,要我怎么处理…,联系中间模块负责人,居然没有了……

这里思考最多的又是,如何更好的协作开发,快速迭代,可扩展,可控性强。当然部署和运维,又是另一方面考量。

 

看到好多新人

以下共勉

我个人原来从事制药行业,不了解的人,根本不清楚我国制药和外国制药的差距是个什么样子。

行业与行业有可比性的。我原来从事的便相当于制药行业的外包。国外知名企业把一些污染的,利润低的拉到国内生产加工罢了。

深深体会到技术间的差距,和无奈。

也深深感受到,革命善未成功,同志仍需努力的真正含义。

计算机行业呢?差距也不小吧。

 

大多数人和我一样相信计算机科学会有更大的作为。

我倒希望将来有能力将计算机知识反哺到传统行业里去。

希望不忘初心。

学海无涯,希望遇到许多有追求的程序员。

 

七、

收藏的人很多,不过还是要提醒各位。

一定要动手,想到什么不妨尝试去实现。

看书方法推荐《如何阅读一本书》。

知易行难啊。

我朋友那案头两本书,《深入理解jvm》、《并发编程实战》,在我看了三十本以上的书后,他也许还只翻了前两章。

大部分人都没有太大的智商差异,于我看来,聪明=记忆力好+逻辑思维好+执行力强+好的学习方法。

just do it 才难。

就比如,我jvm其实算算应该看了不下六遍……甚至前两遍和重读没区别,但后面就轻松的太多了。设计模式单《大话设计模式》就看了三遍吧,硬是把大致模型原理先记下了。《java8》也是看了一遍后,过一周又看,实际开发用的时候还会翻翻。

可惜思维导图在以前公司电脑,不过以后还会重新总结的。

好多新人转行,心态摆好。作息规律起来,强迫自己集中注意力,养成良好的学习方法习惯。

能帮的就就这么点。

========================分割===========================

补充点

网络上其实充斥着各种言论。什么语言不重要,框架不重要,甚至还有前端的架构师说源码不重要...还有搞营销、销售的说技术不重要,前些天还有个说百度李彦宏就是因为技术出生限制了视野的搞笑言论。

给自己沉淀的时间,最多三年,你也可以这么说。

但还是希望别这样说吧,一是否定自己过去的努力,二是误导新人。

 

 

如果你还没有创造的能力,那就保持学习。尤其是程序员。