学习能力

  学习力强的程序员敢大胆地体验尝试新技术,他们的技术栈始终在保持不断地更新。他们能快速把握事物的本质,并判断出它能用来做什么,不能用来做什么。他们拥抱技术升级和革命,因为他们学习并掌握新技术的速度比其他人更快,所以他们永远不用担心失业。

  而学习力差的程序员呢?为了继续停留在旧技术的舒适区,他们往往会抵制新技术的推广,甚至百般阻挠。因为那会使他们过去的经验统统无效,只能和后来者站在同一起跑线上。抱死一个框架好几年,脱离了框架啥都干不了的程序员实在太多了。事实上,这样的人不能驾驭技术,反而是被技术给奴役了。

  学习技术最有效的方式是阅读、实践和交流。公司没给你安排这方面的工作,那你自己都做了些什么呢?八小时之外的时间都用在哪了?有没有读源码?有没有看原版书?有没有泡技术社区?有没有尝试最新流行的技术?有没有尝试把它们用在公司的项目上?你如果感觉自学C/C++语言有困难的话,我本身是一个C/C++出身的程序员,感兴趣的小伙伴可以点击我的主页,去看一看。

  看文档

其实是最快的学习方法。对于自己工作中常用到的技术,抽时间把官方文档通读一遍(其实篇幅都不大),绝对收获满满。没事的时候多翻翻自己使用的框架/系统/平台的API,看看有哪些自己不知道或者没用过的功能,想想这个功能可以用来做什么,能不能解决现存的问题,或者优化当下的解决方案。

  读源码

是深入学习开源技术的唯一途径。只有理解了某个功能在底层是如何实现的,你才能真正把握它更适合用来做什么,不能用来做什么。正如不明显汽车的构造和原理,我们也能把车开好。而如果多少知道一点,开起来就会更得心应手。当车出现问题时,也不至于完全束手无策,只能蹲在路边等待救援。

  学习力的源泉就是好奇心,也就是对新知识的渴求,以及对探索未知的冲动。学不到技术最核心的原因只有一个:动机不足。

  学编程最重要的是实践,就是写代码、看别人写的代码、再写代码,你看再多的书,不写代码,你还是不会编程。但是写代码也要讲究方法循序渐进,不能刚学了几天语法,就想写个操作系统什么的,树立这种不切实际的目标只会让你的自信受到严重打击迷失自我。

  为了数据科学类问题研究新领域的发展

  尽量亲自动手去完成事情。你将会有一种直觉,知道如何去处理该事物。积累案例,从数据表中标注着你已获得的数据开始。这不仅适用于数据科学,也适用于解决任何数值问题。用一个电子表格(或一个R/Python Notebook)来实现算法并获得一些结果,在过去帮助我真正理解了问题,避免走死胡同。例如,在建立一个外汇定价系统时,我能够使用电子表格来描述定价算法是如何工作的,并向交易者解释它。在执行和部署算法之前,我们可以调整计算并确保一切都清楚。

  在找到通用办法之前,先找到一种能解决当前问题的办法。让算法本身输出调试信息。你应该能够转储每一步的中间结果,并用文本编辑器或是 Web 浏览器手动检查它们。不要为单元测试操心,定义出正确行为才是首要的。维护大的、不熟悉的代码库程序、

检查文件的大小。最大的文件总是包含了程序的实体部分,至少是指向程序实体内容的分派程序。 main.cc 通常很小,并且对寻找代码结构毫无用处。从主循环调度开始单步调试程序。可以学到很多关于控制流的东西。寻找数据结构,特别是做为参数传递到许多函数中的那些。大多数程序具有一个小的关键数据结构集合,找到它们,理解代码的其余部分会变得容易的多。写单元测试。这是确认你所理解的代码与真实代码工作方式无误的最好方法。

  性能工作

  1.在开始所有工作之前,甚至是在剖析(profile)之前,建立一套代表典型现实世界的使用基准。别让性能倒退,除非你确信已经登峰造极,高处不胜寒,并且更好的解决方法还藏在世界的某个角落里无人发现(如果出现了那种情况,在版本控制系统(VCS)中标记你的分支,以便在发现错误之后回来更改。)。

  2.许多性能瓶颈都出现在系统的交叉处。在所有 RPC 框架中搜集时间统计数据,并且有一些方式来传播和可视化每个服务器的请求时间,以及哪些部分的请求是并行的,哪里是关键路径。

  3.剖析(Profile)。

  4.通常,避免不必要的工作可使你赢在起跑线上。缓存最大的计算结果,粗略评估不常用的东西。

  5.不要忽视常量因素。有时候一个渐进性更差的算法在实践中执行的很好,原因是其具有更好的缓存局部性。为此,你可以在多次调用的函数中识别出威胁。

  6.当你获得了程序大致剖析之后,更改数据结构往往会获得更多收益。注意内存的使用,时常缩小内存需求来减小缓存压力,可显著地提高系统的速度。注意局部性,将常用数据放到一起。如果你的编程语言允许(为 Java 感到遗憾 ),可以消除指针雕镂(pointer-chasing)来支持值控制。

总结 

  技术世界就如同一片汪洋大海,细分领域真是多如牛毛。我们只是站在其中一个小岛上,怎么确定自己该朝哪个方向进发呢?学习是一辈子的事,作为程序员你不去挖掘更先进的技术那么你早晚会被这个行业淘汰掉。

论程序员的核心竞争力相关推荐

  1. 谈谈如何在面试中发掘程序猿的核心竞争力 什么是程序员的核心竞争力?

    谈谈如何在面试中发掘程序猿的核心竞争力 早两天看了知乎日报的这篇文章<什么是程序员的核心竞争力?>,caoz讲的几点是让我感同身受.这让我联想起了给程序猿的面试,其实也就是通过短暂的接触来 ...

  2. 从《我不是潘金莲》谈程序员的核心竞争力

    我没有去电影院,也没有看完整部电影,但片中有一段对话很有意思,引发了我的思考,也就有了今天要讨论的话题. 故事是这样的: 故事女主人公名叫李雪莲,跟在城里开车的秦玉河是夫妻,李雪莲在结婚前有过一段感情 ...

  3. 从《我不是潘金莲》谈程序员的核心竞争力 1

    我没有去电影院,也没有看完整部电影,但片中有一段对话很有意思,引发了我的思考,也就有了今天要讨论的话题. 故事是这样的: 故事女主人公名叫李雪莲,跟在城里开车的秦玉河是夫妻,李雪莲在结婚前有过一段感情 ...

  4. 什么是程序员的核心竞争力?

    什么是程序员的核心竞争力? 如题所说,我现在是个刚毕业的小本,野鸡学校,而且不是正统的计算机专业,现在踏入了程序员这一行,到底什么样的技能才是才是程序员的核心竞争力,换言之,我在工作的前几年,需要累积 ...

  5. 程序员的核心竞争力是什么?为什么?

    知乎上,有个好问题:程序员的核心竞争力是什么?为什么? 对于程序员,最核心竞争力就是: 学习态度:保持谦卑+不断学习!!! 核心能力:自学能力+深厚的技术内功!!! 真正懂得这两点的人,可以快速成长, ...

  6. 程序员的核心竞争力分享

    假若你工作10年以上,程序员的核心竞争力应该从以下来体现: 1.经验才是我们职场老鸟的优势. 2.实践.思考.梳理.提高. 3.带着明确的输出.

  7. 程序员的核心竞争力/核心优势

    参考 1.程序员的核心竞争力 https://blog.csdn.net/foruok/article/details/54884943 列出竞争力的系统 2.大牛程序员经验:什么才是程序员的核心竞争 ...

  8. 转载:什么才是程序员的核心竞争力

    下文转载自http://www.cnblogs.com/ajianbeyourself/p/4189449.html,版权归原作者所有. 文章格式略有编辑,内容稍作整理,应该不影响原意. 1.对人的态 ...

  9. 程序员的核心竞争力是什么?

    作为过来人,我说几点,以下所说的都是心里话,都是自认为对程序员来说是非常重要的. 1. 坚持学习,高效的学习 程序员也开始卷了,找工作容易的好时候已经一去不复返了,不像前几年学个安卓.ios 培训班, ...

  10. Java工程师核心能力_java程序员的核心竞争力是什么?

    知其然,知其所以然,知其所必然! 我觉得发现问题和解决问题的能力是一切职业的核心竞争力.发现问题需要你关注当下,去思考什么地方有待改善,做一个有心的人:解决问题需要很多很多基础知识和经验的积累并加上一 ...

最新文章

  1. 用 Label 控制 Service 的位置 - 每天5分钟玩转 Docker 容器技术(106)
  2. python绘制曲线图-python绘制多个曲线的折线图
  3. message from server: Host 'XXXX' is not allowed to connect to this MySQL server
  4. VS2008下编的程序生成的EXE 在没有安装VS2008的计算机上能运行
  5. Apache Hive
  6. Afterthought 原来是这样的啊。。。。
  7. Linux C 算法——查找
  8. DSPBuilder笔记
  9. Ajax技术的一些总结
  10. json日期格式化 java_java_Java Web程序中利用Spring框架返回JSON格式的日期,返回Json时格式化日期Date 第一 - phpStudy...
  11. Python 3 从入门到精通 Mac OS
  12. Python开发3D游戏技术探索
  13. 四叉树 gis java_GIS中四叉树索引及其分类介绍
  14. word标题多级编号里的坑
  15. 需要管理员权限解决办法
  16. JAVA文章相似度对比(hanlp)
  17. 解决一下 WebView2 不能用 socket5代理的问题。
  18. 关于javascript中避免使用eval的理解
  19. 为什么有的chm会显示“已取消到该网页的导航”?
  20. 优先队列三大利器——二项堆、斐波那契堆、Pairing 堆

热门文章

  1. zabbix agent 类型所有key
  2. 基本数据类型的成员变量放在jvm的哪块内存区域里?
  3. 产品经理如何利用ER图,指导原型设计?
  4. 面试题,如何改进一款产品
  5. 35岁的互联网人出路在哪?
  6. 2021年中国自有品牌行业发展白皮书
  7. python 弹出对话框_python+selenium 抓取弹出对话框信息
  8. id门禁卡复制到手机_怎么将手机当做门禁卡使用?给大家详解手机设置门禁卡功能...
  9. 作者:钱卫宁(1976-),男,华东师范大学计算机科学与软件工程学院教授、博士生导师。...
  10. 作者:李海生(1974-),男,博士,食品安全大数据技术北京市重点实验室、北京工商大学计算机与信息工程学院教授、研究生导师...