该如何做一个可持续发展程序员?

来自实验室编程思想培训会议记录,老王谈编程:一个入门程序员该如何进行可持续的提高来应对技术的不断更新迭代,如何站在一个更高层的角度来思考问题与进行职业规划。(带鸡汤)

一. 一些学习方法

  • 书:
    code clean:Robert著,讲了一些跟敏捷开发,DDT相关的东西。不少公司设计了极其严格的程序迭代开发策略,在一个迭代中对功能的开发等做了很强的限制。
    Legency code:在企业中,因为人事技术的变动,软件的维护是最难的,80%的程序员在80%的时间做的是维护的工作,修改代码时要时刻考虑对程序的影响,这本书主要讲了一些maintain的方法,包括一些auto-test的方法。unit-test采用了大量断言的技术,并且直接针对class method进行维护。
    code complete:代码书写,程序设计的核心思想与规范书。迭代抽象规范的思想,尤其是一些类借口变量的设计。
    23个最经典的design pattern:软件都是通过现有的知识来进行有限组合来解决新的问题,如同解方程,就如编译时的抽象语法树,又如过去的汇编语言,用C去写C的编译器,自己产生更优解。在软件背后总是有着熟悉的一些套路,或者套路的组合,而套路是又一些基础的元素所组成,就如元素周期表一样,所以看清其中的基本元素并且它是如何被应用的十分重要,也可以让学习变得更加效率,略过套路抓创新点,比如一些functional language是运用原来的面向对象语言与其他功能的结合而产生的。
    人月神话:神书之一,10人10月,1人100月
    。。。
    论被赶鸭子上架的老王是如何在九个月看完一百本书的,然后完成项目的。

  • Blog

  • Sample

二. 有效运用现有资源
对于新问题,寻找已有工具去解决无疑是最有效率的方法。

  1. ide
    有效运用ide高级的feature来加速快发,并有效抓住ide等中哪种是核心的功能,要有过滤和核心的sense,在ide中看source code也能有效的发挥其搜索和navigation的功能。
  2. 搜索
    静态搜索:awesome+技术名(Angualr Cli2 用了skill code generation 重构+创新)
    github code+navigation+变量名/方法名(尝试理解为啥这么写)
    动态搜索:example+断点 / 通过path来猜并加以验证
  3. 一些网址博客资源,http://caniuse.com可以查各框架的浏览程度

三. 实践

  1. 尝试解决复杂问题,就如开发算法,先建立抽象,再通过拆分问题,设想限定输入 —> 输出来解方程。定义串联关系,先解决小元素,由小元素构成解答。数学问题可能没有一个解决方案,但是所有程序问题都是会有一个解决方案的,所以多试试跑起来找问题,利用好feedback,一些复杂的问题上手后可能不难,要有一定的侥幸心理。一年争取开发5~6个算法,同时实践也更利于看书的效率。
  2. 不始终纠结于问题本身,先用一种大局观去看待问题再进行剖析,对于未知的事物,用已知推测未知。学习做架构的设计,结合已有的东西,设计基础可持续的模块。

四. 思索

  1. 做超越年纪的事情,年纪越轻,潜力越大,加上知识面越深越广,也越容易被培养。
  2. 对于培养,抓住机会(Push下自己跟住节奏)+回馈+innovation(就像面对用户一样,提出功能看法,讨论论证),同时具有一定的argument —> improvement
  3. 跳出思维,思考和寻找新的合作机会,talking+知识是最容易产生机会的方式,老王逮人就是一通交流的能力确实让他为自己与公司收获了很多机会。把公司(lab)当成家,思考新技术对公司的影响,思考如何为公司解决问题。
  4. cooperation + 以完成任务为核心+耐心沟通交流+share
  5. 培养写具有优秀可读性document的能力
  6. 人品+眼光+实力+用户眼光 —> 机会, 站在更高维度看问题,避免恶性竞争。

五. 对于新技术的调研与presentation

  1. 从client user的角度去看待问题,比如pwa技术拥有很多好处,但是之所以上不了场的原因,比如它支持不了ios notification的功能,比如一些重力感应等手机feature它是否能实现,思考与真正的工程业务的结合能力,调研就要做的详尽彻底方方面面,而不是局限于网上的一些说法。
  2. 从同事角度上,如果要使他们使用新技术,那么最重要的是什么,最有力的说服点是什么,如果presentation具有说服力,那么就是真正的技术讲堂。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你从零开始,想要成为一名优秀的C++程序员,以下是一些步骤和建议: 1. 学习基础知识:开始学习C++编程之前,建议先掌握计算机基础知识,包括计算机操作系统、数据结构和算法等。 2. 学习C++语言基础:了解C++的语法、关键字、数据类型、变量和运算符等基本概念。可以通过在线教程、书籍或视频课程等途径进行学习。 3. 练习编写简单程序:通过编写简单的C++程序来巩固所学知识,例如打印输出、变量赋值、条件语句和循环结构等。 4. 深入学习C++特性:学习C++的高级特性,如面向对象编程、模板、异常处理、STL库等。这些特性可以提高代码的可重用性和效率。 5. 阅读和分析优秀的C++代码:通过阅读和分析开源项目或优秀的C++代码,学习其他程序员的设计思路和编码技巧。可以从GitHub等平台找到一些优秀的开源项目。 6. 解决实际问题:找一些实际问题或小项目来实践所学知识,锻炼自己的编程能力。逐步增加项目的复杂度和难度,挑战自己的技术水平。 7. 参与编程社区和讨论:加入C++编程社区,与其他程序员进行交流和讨论,分享自己的问题和经验。可以通过论坛、博客、社交媒体或开发者活动来互动。 8. 持续学习和更新知识:C++是一门不断发展和更新的编程语言,要不断跟进最新的C++标准和技术发展学习新的特性和最佳实践。 9. 实践与反思:通过实践项目和编写代码,不断反思自己的编程风格和习惯,尝试优化代码,提高代码质量和可维护性。 重要的是要保持持续学习的态度,不断练习和探索,积累实际项目经验,通过不断地编写和阅读代码来提升自己的技术水平。同时,也要注意参考优秀的资源和资料,与其他C++程序员进行交流,并从他们的经验中汲取营养。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值