真正的编程能力,两个词概括:

建模+实现

  建模能力如何提高?关键在于分析问题

  理解越深,预测能力越强,自己的智慧才越好发挥。这就是学习软件编程最快的方式之一 “造轮子” ——造轮子就是为了深刻理解轮子、预测轮子的行为。

  实现能力如何提高?关键在于工具的使用

  (数据结构,算法基础,语言,框架,工具,软件)

  把目标转化成指挥方案,这种 “做应用题” 的能力你造吗?不会告诉你建模的知识点,也不会透露全部必要条件,增强这个能力你需要 “理解垂直行业的业务逻辑”。

  当用户觉得我们的东西功能齐全、用起来得心应手,恭喜你,你已经成功了!

1、编程能力是一种解决问题的能力

  如果问题没能很好地解决,知道再多也没用。

2、编程能力是一种运用机器解决问题的能力

  什么问题可以被机器解决?如何让机器更好地理解问题?不同的问题适用不同的编程语言。让机器更高效率地解决问题吧!

3、编程能力是一种抽象问题的能力

  借用轮子省力省时间,而想要高效地借用轮子,就需要将问题分解再分解,抽象再抽象。任何一个实用的系统都需要进行大量的分拆和组合。

  所以系统设计是编程能力里的高级技能,合理的假设、简化问题尤其有难度。

  高手和新手的区别在于:新手往往不知道轮子的适用范围,而高手不仅轮子多且熟知轮子间的差异,不同的问题用不同的轮子,及时找不到合适的,也可以自己动手改造。

  当然能知道怎样快速在搜索引擎里搜出轮子也是一种能力。

4、编程能力是一种需要考虑扩展性的能力

  算法竞赛中的很多算法考虑的是单机的内存算法。计算模型经过高度抽象,在实践中机器的模型更为复杂。比如单机的多级结构带来的各种时间空间复杂度的取舍平衡,多机网络中如何能在提高单机性能外进一步优化整体性能。

  除了在机器端的扩展,在程序员一端的扩展也很重要。复杂的问题和工程往往意味着团队协同以及更长时间的开发维护。

图片来源网络

5、编程能力是一种取舍的能力

  局部的最优解未必是全局的最优解。如果一个美妙的解决方案需要将完工时间向后推迟一两个月,那么你就需要考虑是否先使用平凡方案解决问题,之后再进行优化。

  当你的工作延后会阻碍别人的工作时尤其如此,不要为了追求心理满足而花很多时间放在一个漂亮的轮子上去(参考 Amdahl 定律)。

6、编程能力是一种预见未来的能力

  目前的方案有哪些假设和局限性,在何种情形下会遇到问题甚至崩溃。在未来出现问题时问题是否需要重新定义,系统是否需要重新设计,代码是否需要重构或优化等等都需要未雨绸缪。

7、编程能力是一种工程能力

  无它,唯手熟尔。

  如何去提升编程能力?在约定的条件下,对自己的模型和实现能够知道(how),和为什么(why)的情况下,选择最合适的方案建模并有能力实现设计来满足需求。提高编程能力的方法:学习 + 建模 + 实现(造轮子或者仿造别人造轮子)

  拿起你的武器,建立你的 “国度” 吧

“我是一名从事了10年开发的老程序员,最近我花了一些时间整理关于C语言、C++,自己有做的材料的整合,一个完整的学习C语言、C++的路线和工具。如果你感觉你自学C/C++编程有难度的话,可以湫湫扫下方二维码。这里是编程爱好者的聚集地,欢迎初学和进阶中的小伙伴。希望你也能凭自己的努力,成为下一个优秀的程序员。

C/C++学习路线图:

什么才算是“真正的”编程能力?不提升这些能力,你何时能拿高薪!相关推荐

  1. ​什么才算是真正的编程能力?

    关注.星标公众号,直达精彩内容 知乎作者:刘贺 整理:技术让梦想更伟大 | 李肖遥 计算机科学有两类根本问题. 一类是理论:算法,数据结构,复杂度,机器学习,模式识别,等等等. 一类是系统:操作系统, ...

  2. 怎样才算是好程序员?关于好程序员与好代码的杂谈

    ​ 怎样才算是好程序员?​ · 具有优秀的技术技能,能写出干净整洁的代码. · 具有扎实的开发技术知识和解决问题的专业技术. · 了解编程的最佳实践以及何时使用它们. · 对编程有着持久的热情,并积极 ...

  3. 到底什么级别才算是高并发?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:边鹏_尛爺鑫 https://segmentfault.co ...

  4. 怎样才算是一个合格的网页设计师?

    随着互联网的盛行,市场上各行各业的企业对于网站的更新换代都有着不等级别的需求,然而网页设计师这个专业便是一个赤手可热职位.在上海建站行业里面什么样的网页设计师才算是合格的,对于企业网站设计理念,设计思 ...

  5. java怎样才算高级_怎样才算是一名java高手?

    在招聘网站上看到好多信息,招聘java高手,就在想具备什么样的水平才算是他们眼中的java高手. 这个问题 ,在刚学java时候就问过自己,也在不断地自己回答自己,但是很快就发现答案不对,于是又在试图 ...

  6. C++学到什么程度才算是精通?

    C++学到什么程度才算是精通? C++语言学透是不可能学透的,这辈子不可能学透的,C又不会用,就只有学学C++,维持上班不忘记这样子. 其实这个问题应该这么说,学无止境,你准备学到什么程度? 1,初级 ...

  7. 什么才算是“好的”测试用例?

    什么才算是"好的"测试用例? 通常,你的第一反应很可能会是"发现了软件缺陷的测试用例就是好的用例",我可能会反问你"如果说测试用例发现了缺陷就是好用例 ...

  8. 什么是大数据 究竟多大才算是大数据,大数据怎么学习?

    大数据,什么是大数据呢?多大的数据叫大数据?红火一时的数据分析走向了我们,纷纷称不分析数据企业将长久不了,可是究竟什么样的数据才是大数据呢,什么样的数据才是最大的呢? 如果你没有接触过大数据,那么你就 ...

  9. 数学与泛型编程:高效编程的奥秘pdf下载_【编程入门】提升孩子全脑思维、逻辑能力,帮你省下万元培训费...

    现在什么辅导班最火.最烧钱? 大概"少儿编程"当之无愧. 继"奥数"之后,少儿编程再次成为家长的纠结: 上还是不上? 不上真的会"输在起跑线上&quo ...

最新文章

  1. dsp-asic-fpga
  2. ZLAN串口转接以太网ZLSN3003S
  3. SQL Server 2005 和JBOSS 4 系统运行缓慢--高并发系统探讨(1)
  4. 第 10 章 容器监控 - 078 - Docker 最常用的监控方案
  5. js根据应纳税所得额计算税金
  6. REVERSE-PRACTICE-BUUCTF-23
  7. 为了释放AI在边缘计算的力量 英特尔又出手了
  8. AI编译器与传统编译器的联系与区别
  9. Vista初级使用技巧及故障总结
  10. ubuntu怎么将Dash切换位bash
  11. 基础的重要性(程序员之路)
  12. 程序员必备注释模板——“佛祖保佑 永无bug“
  13. ESD门禁管理系统方案
  14. 刷脸支付服务商市场空白大有可为
  15. NFT Insider #62:The Sandbox宣布与狮门影业达成合作,红杉资本继续扩大Web3领域投资
  16. 微信分享点击回到原APP却仍然留在微信的问题
  17. 25则“验尸报告”— 创业失败者启示录
  18. Html5手机端网址封装成微信小程序的教程
  19. java中实现word(doc、docx)中完美提取文字、表格为结构化数据
  20. Spring实战第五版源码

热门文章

  1. vue设置img大小的属性_Vue.js自定义标签属性并获取属性,及绑定img的src属性的坑...
  2. pythongui做计算器_python 实现简单的计算器(gui界面)
  3. ElasticSearch手动创建mapping
  4. B端页面——详细表单设计流程
  5. 手把手教你做用户画像
  6. B端可视化: 图表设计(2)
  7. 拼多多黄峥一句话,阿里P8的我,越想越后怕
  8. 一款问答APP的产品需求文档(PRD)
  9. python逐行读取数据时出现错误_Python利用逐行读取readline()打印出现空行的解决办法...
  10. 【计算机科学基础】存储程序原理