最近有很多朋友问我一些学习上的想法,最开始我是本着高大上的思维来考虑的,但是经过了解发现有不少的朋友有此疑问,而且很多是来自于二三线城市。突然我意识到我的出发点有点偏离了,甚至有些建议是不合适的。所以我觉得我得重新审视一下自己的建议,需要针对一些二三线的朋友,他们的群体其实远比一二线城市庞大,而且学习意愿强烈。
从我的感受来说,北上广深,北京的技术氛围优势实在是太明显了,浓厚到上广深的技术氛围远比北京的要淡薄得多。一线城市之间尚且如此,二三线的差异就更明显了。
不信你可以打开手机,除了微信,支付宝之外,其他的app你可以查一下都来自于哪里,大多数的情况下基本都是同一个:北京。北京占据了大多数的技术会议的热点中心,说句简单的话,如果你是一个爱学习的人,每周基本都有机会去参加一个技术活动。对于大型技术会议来说,年中年终是两个小高潮,值得期待。
北京就好比是一个沸腾的熔炉,永远充满能量而且似乎也永远不缺少你的那一份力量,所以一线大城市的姿态基本是:爱来不来;二三线城市的姿态是:来吧来吧。
时间作息
从时间作息上来说,二三线城市的节奏相对较慢,他们大多数离家比较近,上班时间基本都在半个小时以内。而且从工作强度上来说,相对来说加班的频率不高。
其实我一点也不喜欢北京,包括很多景点都是如此,因为离得近,竟然产生了距离,而没有产生美。
生活节奏
简单来说,二三线的生活大多数才是所谓的生活,一线城市的生活哪里是生活。 先拿每天的上班时间来说,平均往返需要两个小时以上,不少二三线城市还有午休的福利,所以很多二三线的生活品质就如同一碗优质拉面,而一线的生活就充其量是个泡面水平。问题来了,一线的生活成本和二三线是相反的。
我的很多好友也相继离开了北京,找到了离家更近或者就在老家的生活,我虽然羡慕他们的生活,但是我的生活就是如此,我不喜欢北京,但是我需要继续留在北京,因为这里有太多的机会。
所以某种程度上我可以自私一些把父母接到北京,而让他们过早的体会大城市的“鸟巢”生活,某种程度上还自己给自己贴个“孝顺”的标签,其实大大不是。
点到为止,道理其实大家都懂。
技术栈
从技术栈来说,根据客户的性质来说,企事业单位居多,系统相对比较老旧,
比如开发语言,Java,.net方向的居多,数据库选型以Oracle,SQL Server为主,
企业开发模式很多还是偏于传统的瀑布模型。敏捷开发的意念都有,但是落实的程度远远不够,而且互联网模式的落实,推动力没有一线城市那种争先恐后那么积极性。
技术栈方向稍后我会给出一些更具体的建议。
我的五点建议:
1.不要盲目追求最新的技术,华而不实
如果你要去一个口碑很好的菜馆,那么你可以根据最新的数据得到当前的一些排行榜等,由此很容易就能够得到一些很不错的建议,同理,我们可以根据一些口碑和记录得到技术学习栈。
但是最新的技术不一定代表了最稳定的技术,从这一点来说,对于生产环境要抱有敬畏之心。相对于最新的版本,我们可以得到一个相对最稳定的版本,这是在大量的使用经验之上得到的,绝对不是拍脑袋得到的。
如果对于技术的最新发展如数家珍,但是光有眼界没有行动的人要警惕了,这类人是最需要警惕的,那就是典型的眼高手低,我相信这些新技术的推广也很可能不是他一手促成的。新技术的落地相对来说没有一帆风顺,一气呵成的事情,有时候你要做一个布道者。而盲目的追求新技术,很可能会适得其反。
比如Java技术,生产环境的版本一定是相对落后于现有版本的,开发的框架和基础技术依赖一旦确定好了之后,就很难快速变化,这是一种平衡。
比如Oracle版本,虽然现在都18c了,但是现在更多还是11g为主,12c已经推出了多年,但是目前还是在一个过渡阶段,尤其数据库技术更是底层技术,更不可能一下子就有快速的变化和响应。
2.哪些才是更有价值的
如果你从事的职业不同,而想得到一个相对普适的结果很难,但是我思考了很久,目前来说,答案只有两个:架构和优化
打个比方,现在已经是云时代了,但是我们的很多客户可能还在观望或者试水阶段,那么下一步来说,这个阶段终究会来临,那么带给我们的冲击和挑战有多大。
比如数据库方向,有了云时代,对于传统运维中的安装部署,备份恢复,监控管理会是一种弱化,但是不是完全的取代,数据库方向的意义和价值在那里,绝对是优化,而对于个人和企业来说,有没有云服务,对于系统的架构和设计始终是要面对的问题,这些不会因为这样那样的原因而消失,那么这些就是核心所在。
在此基础上,做一个建议,如果你没有好的平台,或者好的技术驱动力,那么可以做一个开源项目的贡献者或者核心开发者。有很多不错的开源项目,尤其是国产的开源项目,我们可以投入进去。如果在这里能够体现出你的核心价值,那么你的格局和圈子也会大很多,这些价值是很难用金钱去衡量的。
3.对学习进步要保持好奇心
很多二三线的朋友感觉事业的发展容易有瓶颈,其实主要的一个方面还是对学习进步的动力不足,要保持学习的好奇心,同时有自己的理解和思路,听起来好像那么回事,但是实际上是很难的。
比如对于技术发展,哪种开发语言更吃香或者发展更好,虽然我也从事Java,Python,数据库方向的技术,但是我个人理解可能是go的发展要更好一些,至于为什么可能需要写一篇文章的篇幅来解释了。简单来说,很大一方面是技术生态,有些是对于个人的喜好,但是对技术的使用我依旧喜欢使用Python,因为它目前来看确实快捷可行。
比如现在的前端技术不仅仅是框架的拼接,更是JS方向和前后端技术的竞争。很多时候感觉前端技术实在太乱,框架一大堆,而且各种标准学习成本实在太高,其实前端这么些年来的发展也是前后端技术融合或者竞争的一个局面,以前的前端是单一的功能,但是现在的主流框架更多是在JS上下足了功夫,也有了很多思路差异很大的解决方案,无论如何都同样有效,我们需要的仅仅是做一个技术选择上的平衡,而不是成为技术的奴隶。
4.学习的进阶渠道
学习如何进阶,其实这是一个很好的问题。
每年有很多的技术大会,比如 全球技术开发者大会,CSDN和行业的很多技术峰会。
这个票价一般都会贵,有的有5000多,绝对不是个人能够承担的,那么有个攻略就是无法参会,但是我们可以参与直播分享,这个要更实惠一些。
平时也要多参与一些技术沙龙,这些的干货更足,对于二三线城市来说可遇不可求,要珍惜。如果需要一波有共同理想的人,那是极好的。
5.学习和经验分享
学习的分享,路径大体是这些:
博客,通过博客记录自己的学习生活或者总结等等。
线上课程,可以开设在线的课程,可以让大家互相学习或者提供反馈建议,自己讲和听完全是两回事。
github,可以参与github的博客或者部分项目
社群,规模比较大的社群,
难点就是坚持,选择任何一个方式坚持下来就一定能够有所收获。很多朋友坚持了10天就希望别人给你大大的赞,这样做没错,但是不能抱有太高的希望,既然要坚持,那就一定是一件清苦的事情,有时候会很孤单,会很无助,但是只要你朝着正确的方向坚持下去,就能很快打开局面。
以上我不能保证你能成功,但是我保证你坚持下来就有所收获。