开发者社区> 超努力的写代码> 正文

程序员自我发展之路:从态度到方法

简介: 程序员自我发展之路:从态度到方法
+关注继续查看

三周前,正值手头事情忙得不可开交之际,接到右总邀稿,要我谈谈程序员发展的几条出路。我思考再三,索性趁此机会干脆行文一篇,把自己多年来给团队的唠叨整理整理,也算不负他人之托。

事先声明,本人并非专业的职业规划师,也不喜欢给人的职业生涯出谋划策,这里所写所言只不过是一位经历还算得上丰富的老程序员的所见所得。各位只需看看就好,若能引起共鸣,那更是不胜荣幸!


选择大于努力?



有段时间经常在朋友圈内看到类似“选择大于努力”的论调,甚至看到不少朋友还不断的转发和点赞。一开始我受到影响也心有戚戚焉,但后来觉得似乎哪里不对:


  • 如果没有丰富的阅历和经验做支撑,根本不可能做出很好的选择,而前者不会从天而降。
  • 有的选择机会是有门槛的,不努力的话,连门槛都达不到。
  • 一目了然的选择也不太可能是好选择,因为大家都会去选它,自然会引发激烈竞争。
  • 选择并不意味结束,它只是开始,在执行过程中不全力以赴,也是枉然。
  • 退一万步,就算有贵人相助,但除非含着金钥匙出身,要得到贵人的认可和相助也不是件易事。


鉴于以上几种原因,不努力,大概率也会导致不会或很难有好选择。可以说,不论走哪条路,发展的起点都要努力为先。之后,在执行过程中,按照自己的兴趣和机缘会各自走上不同的道路。


尽快确定方向



但是,光靠努力并不能让你就一定得到很好的结果,如果没有目标或方向,那就是白费气力,心中的阴影面积会越来越大。所以呢,你第二个要解决的紧要问题就是尽快确定方向。但是,你不要指望这个问题可以一蹴而就,半个小时就能搞定。作为人生三大问题之一,到哪去,只能“listen to your heart”。放在程序员发展之路这个背景下,我的建议:


  • 多跟长者交流和学习
  • 多跟朋友交流和学习
  • 多跟不同背景的人交流和学习
  • 多看看行业新闻和动态
  • 多看看图书市场的出版动态
  • 多看看招聘网站上的职位动态


基于这些信息和数据,我相信你也不会是木头,没有任何感触和想法。有了想法,就尝试,但不能一遇困难就退缩,否则你将很难判断出是自己能力不足,还是因为确实不喜欢这个方向。如此往复,即是死循环,永远原地打转,无法升级。找方向的过程是一个不断尝试和渐入佳境的过程,在这个过程中多交些朋友,多参与些社区,他们将会成为你的良师益友和支撑下去的力量。


环境会影响成长


微信图片_20220123190609.jpg


环境,也是一个不得不说的因素。孟母三迁已经说明了环境的重要性,这里我也就不再展开讨论。简单的说就是:环境会影响你的成长。在我看来,环境可以用这样的三元组来表示:(城市,公司,团队)。其他更细微的环境,如办公环境,不在此处讨论之列。我认为好的环境包括下面的要素:


  • 机会多,包括:升职机会、培训机会、工作机会等
  • 氛围好,包括:积极的学习氛围,融洽的人际关系,公平的竞争机制等
  • 有将来,包括:朝阳行业,快速赛道等


这里我没有列出加班或薪水之类的因素,是因为它们根本就不是决定你是否成长和发展的关键因素,并不值得作为首要考虑的条件。当然,不是所有人都那么幸运地可以身处不错的城市、优秀的公司和好的团队,三元组的顺序则可以作为你选择的优先级,即:城市 > 公司 > 团队。


好的方法 = 如虎添翼



有努力的意愿、确定了明确的方向、选择了好的环境,这些已经让你站在了一个比较高的起点,但如果拥有好的方法,则会让你如虎添翼。好的方法应该是可以习得的,而且能够让你快速入门,并不断提升。所幸,我们并不需要自己去发明所谓的“好方法”,因为业界已经有很多值得学习的方法可供借鉴和拿来即用了:


  • 敏捷方法,熟悉敏捷开发的朋友可能会觉得很奇怪,觉得敏捷方法跟个人的修炼的成长关系不大。如若有此印象,只能说你的想法太局限。敏捷方法本质上是一种杜绝浪费的经验实践,一种发现浪费并消除浪费的思想。既是如此,为何不能将其应用于个人的学习和成长之中呢?尤其是其中的 TDD ,本身其实就是先树立目标,接着快速实现,然后不断优化的实践。将其应用于新知识的学习过程中,不仅可以学习实际的知识,还可以锻炼对新知识的洞察和理解,否则光树立目标和如何验证都做不成。
  • 设计思维,相对于敏捷方法而言,设计思维更侧重于做什么,借助于更优的沟通技巧和手段、快速地原型设计和验证,迅速拿出一个可行的方案。这也是为何我个人认为设计思维在前,敏捷方法在后的原因。比较而言,敏捷方法更偏目标确定之后的工程实践,设计思维更偏在正式工程之前找到最优方案。利用设计思维,有助于锻炼所谓的“移情”能力,这是很多成功者具备而大部分程序员不具备的能力之一。
  • 视觉化表述,一图胜千言,而且做一个会画画的程序员应该很酷。
  • 系统思维,整体全面地看待问题,很多人都希望如此,但实际中做到的很却不多。大多数原因都是虽然对此有认识,但从没有系统性地学习和掌握这方面的理论和工具。彼得圣吉的《第五项修炼》的江湖地位已不再需要过多描述,同时我还推荐一本实操性比较强的《系统思考》(丹尼斯舍伍德著)。虽然这类书籍被划分到管理类,但它们本质上属于思维改造类资料,我建议广大程序员在敲代码之余可以去看看。


相比起行业技术,以上方法是经得起时间考验的,并不会出现一朝被行业抛弃的情形。掌握这类方法将深刻改善你的认知和见识,相比起零星地碎片化学习,这些知识值得静下心来专门学习。


体验的重要性



最后,我想谈谈【体验】的重要性。如果你想提升你的见识,不去体验生活,几乎不太可能获得真正有用的体验。这也是陆游所言:纸上得来终觉浅,绝知此事要躬行。关于体验,作为过来人,我看到和做过的:


  • 参与社区,融入社区,有机会就分享,这是一个思想交流的机会。
  • 写文章、翻译文档,通过写作来整理思路,形成自己的观点,不要人云亦云。
  • 参与开源项目,体验不一样的协作模式和开发方式。
  • 对于公司内的机会,也不要错过,应该将它们作为你的首要目标,不要舍近求远,先去看外部机会。


修炼,就是折腾自己,在这个过程中才能真正成长。


总结


最后总结一下吧。

在这篇文章中,我既没有像其他文章一样去告诉大家程序员有哪些职业发展方向,如前端、后端和架构师等;也没有谈你的人生规划,如是创业、做个自由职业者,还是打工?这是因为我认为外面已经有很多文章谈到了这些,再写下来也没什么意思。


而且,我觉得授人以鱼不如授人以渔。你告诉他的这些所谓的职业规划和方向,只不过是当下环境下特有的职位和方向而已,未来可能不复存在。况且,提前说明这些,反而有可能事先将你的思维方式局限住,不如干脆讲些“元知识”,然后由你自己去决定自己的路如何走。


整篇文章先从态度(即努力)说起,再言及“方向”,进而谈到“环境”、“方法”和“体验”,所有这些都是我认为对于个人成长和发展非常关键的要素和条件,通过这种层层递进地说明,希望能起到为一些还感到迷茫的朋友解惑的作用,谢谢!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
17050 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
9163 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
24837 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
32842 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
12612 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
13832 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
14687 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
18063 0
1946
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载