工作和在大学学的知识是不一样的,我已经从事C/C++编程开发十多年。当初也是计算机专业毕业。这一点算是深有体会

我在面试很多计算机本科甚至硕士毕业生时,他们很难向我们展现出实际的项目经验和工作能力,因此我们只能考验他们对某门编程语言的熟悉程度,也就只能是语法和算法。因此也不可避免地让他们做些算法题。说实话,我觉得这种方式很傻,有谁会在纸上写程序呢?但你会有更好的选拔方法吗?

不夸张的说,一切学校学习的目的是为了通过考试。因此在学校学习编程无非是通过期末的考试。考试是在卷子上写程序,还是在机器上写程序并不重要,因为无论哪种考核方式,都和你将来是否成为一个合格的程序员没有什么卵关系,它仅仅就是纯粹的考试。但是,我想说编程的能力不在于你对这门计算机语言语法背诵以及几个算法的记忆。在实际工作中,更多在于你怎么组织你的代码。 语法是可以百度的,算法前人早已经给你写好了,你只需要知道怎么调用。但是新手和老手写出的程序是很容易就能分辨出来的。

有些人面试的时候很厉害,但到后面,你会发现他/她并不适合也不想成为一个程序员。因为真正的编程工作是如何理清一大堆代码,而不是在几个烧脑的算法上玩智力游戏。如果你刚入行接手的是一堆糟糕的代码,那么我只能遗憾的告诉你,你的程序员生涯有了一个糟糕的开始。第一次糟糕的体验是会影响一生的。所以我希望你一开始接手到的是一堆高人留下的代码,这对你的发展以及培养你对编程兴趣是起到至关重要的作用的。当然,如果你天赋好,你最好有能力选择好的代码堆,或者自立门户。毕竟自己挖坑总比填别人的坑要来得爽。

我这里有点小小的人生经验要分享,就是你看一个人适不适合编程,就得看他是不是喜欢把事物整理得井井有条。在学校里你看他的床铺,看他的写字台,看他组织集体活动的能力,等等。不要以为程序猿都是胡子拉碴,脏里八稀的,那些都是电影小说杜撰的。就算有时候会出现这种情况,那也是为了短期的冲刺工作。程序猿就是艺术家,虽然很多人不这么看,就连很多程序员自己也并不这么认为。但实际上,程序员就是艺术家。语法和算法,还有程序组织能力,那些都只是基本功,就像画家的画功一样。厉害的程序员是要有对现实世界抽象的能力,是要用系统性的思维去理解世界,并有可能模仿上帝去创造自己世界的人。因此,你会看到许多高阶程序员写的书和文章都像哲学家写的一样。

看一段糟糕的代码就如同你走进一间脏乱的房间,你会闻到不好的味道,你会看到东西被放在不该放的位置上。新手写的代码就如同一间不知道整理的小孩的房间,被子团在床上,玩具乱扔,墙上乱画.....你暂时是不会指望他能把整个家都收拾好的。因此,很多情况下我带新人更多的是会告诉他们代码应该写在哪里,而不是i++和++i的区别。

实际的编程工作中,你做的事情往往是一个大系统中的一个组件。完成一个大系统的开发工作是一个团队的事情,因此你必须学会如何团队开发。而这点上和学校学习的编程是有本质区别的。学校的编程课教授的东西是点状的,它教你如何写出可以编译过去的一小段代码,它教你一些经典算法,但都没什么实际卵用。有兴趣和笔者一起交流学习c/c++编程的小伙伴去微信公众号:编程学习园发送“编程”二字获得学习资料。举个例子,比如排序算法,教科书上一大堆。有些同学硬是能将各种排序算法默写出来。然而他们永远不会想到关系型数据库是如何实现排序的,因此我一问他们如果内存装不下所有数据的情况下,怎么排序,就个个傻眼了。因为他们只知道在内存中排序数据,不知道多了硬盘后怎么处理;他们只知道冯·诺依曼这个名字,并不理解它在计算机架构中的本质。

这些点状的知识点对于一个不接触实际的学生来说是很难串起来的。团队开发是个很搞的课题,涉及组织理论。虽然很多人都能意识到这样一个事实:人多未必能办好事。但真正联系到实际,就是如何发挥一个团队的最高组织效率时,往往对自己的认识是估计不足的。很多想当然的事情是行不通的。编程工作是纯粹的脑力劳动,是很难量化的劳动。咨询公司乐此不疲地发明各种指标(如:代码行数)和各种团队编程模式(如:SCRUM),但也是基本没什么卵用的。永远记住程序员是艺术家,不要试图用管理指标来衡量艺术家的工作,这只能靠尽可能发挥程序员的主观能动性来提高效率和质量。

老师傅告诉你,学校学的编程知识,和工作所需要的差别有多大!相关推荐

  1. 程序员编程知识经验总结

    感觉听上去也算合情合理.毕竟,新的编程语言和技术在源源不断地面世.但是我要告诉你,编程语言比很多人想得都要"长寿". 语法不是难点 对于 Java 程序员,学习 Python 就像 ...

  2. 不知道你有没有听说过所谓编程知识也是有半衰期的?

    不知道你有没有听说过所谓编程知识也是有半衰期的?这个半衰期限很多人普遍认为是 5 年.也就是说,5 年以后你现在所学的知识将会有一半被淘汰. 感觉听上去也算合情合理.毕竟,新的编程语言和技术在源源不断 ...

  3. 计算机学哪个编程好,达内机器人编程VS计算机编程,学哪个最好

    随着编程学习成为全球化的趋势,中国家长关注编程学习也越来越多,但是很多家长还是不清楚机器人编程和计算机编程的区别,也不清楚如何为孩子选择合适的课程体系?今天根据参考资料,收集了一些关于机器人编程和计算 ...

  4. 学校教的Python,找工作没企业要,太崩溃了【大四真实求职经历】

    如果只靠学校学的东西去找工作,能找到工作吗? 今天给大家看一个粉丝的真实求职案例,想做Python方面的工作,投了二十几个简历却没人要,心态崩了.为什么没人要?我来告诉你答案. 然后我还会结合我的这些 ...

  5. Socket编程知识必学/SELECT 编程

    Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如 connect.accept.recv或recvfrom这样的阻塞程序 ...

  6. 5岁自学python编程-一张图告诉你孩子学编程怎么选

    原标题:一张图告诉你孩子学编程怎么选 [5秒Get本文干货] 1. 少儿编程应7岁开始学起. 2. 少儿编程不一定是孩子未来的职业,更应该是一种生活技能和态度,一种思维方式和语言. 3. 正常学习使用 ...

  7. 南京 学计算机的学校,南京小学生暑假学计算机编程去哪家学校好

    南京小学生暑假学计算机编程去哪家学校好 南京小学生暑假学计算机编程去哪家学校好,推荐 南京童程童美专注于中国6-18岁青少儿编程教育的品牌.依托集团16年积累的互联网教育经验和百余名IT教研团队优势, ...

  8. 湘潭哪里学计算机编程,湘潭哪里学机器人编程?湘潭学机器人编程的学校有哪些?...

    原标题:湘潭哪里学机器人编程?湘潭学机器人编程的学校有哪些? 随着机器人编程教育在一线城市的大众化,许多家长也纷纷跟随着趋势送孩子去学习,如果你也想要自己的孩子学习机器人编程,那就一起来看看学习机器人 ...

  9. 学机器人编程要学什么知识

    学机器人编程要学什么知识?孩子的学习一直以来都是让家长们非常关心和重视的一件事情.家长在培养孩子的学习方面也可以说相当的耐心的,他们会给孩子选择一些能够有利于孩子成长的课程,就拿现在很多的家长想要孩子 ...

最新文章

  1. 【实用】Angular中如何实现类似Vuex的全局变量状态变化功能?
  2. 深js, jsconf China 回顾
  3. 显示Iframe指定位置
  4. java 5 2_java 图形界面5.2
  5. 微信开发接口调用(前端+.net服务端)
  6. 无法打开虚拟机,获取该虚拟机的所有权失败。 主机上的某个应用程序正在使用该虚拟机。
  7. 为tornado自定义session
  8. 问题记录_MFC使用不了using namespace std
  9. Unity3D for VR 学习(2): 暴风魔镜框架探索
  10. windows 10 账号密码策略及规则
  11. Android-弹窗AlterDialog对话框使用全解析
  12. 呕心沥血踩坑之:外星人M17电脑在一块硬盘上成功安装Windows与Ubuntu16.04双系统
  13. 爱吃喵粮的小招喵(查找,动态规划)
  14. monkey压力测试命令
  15. 手机坏了微信聊天记录怎么恢复?不用怕,用这招
  16. 自激多谐振荡电路实验总结,小白电路测试
  17. 邀请码:20111221235047_092555,有效期至2011-12-21 23:50:45
  18. python3 爬虫学习:自动给你心上人的微博点赞(一)
  19. Calendars and DateFormats should not be static
  20. 爬虫百战(四)——爬取yy短视频

热门文章

  1. 微信小程序定义全局变量_微信小程序第二天学习内容分享
  2. linux内核udp校验和计算函数,Linux 内核IP和UDP检验和计算
  3. 外部函数获取内部函数变量_一维随机变量的分布函数
  4. java service层 事务_Java高并发秒时啊API之Service层1
  5. 《关键对话——从“心”开始,如何确定目标》读书笔记(三)
  6. 数据分析之如何制作数据埋点文档(二)
  7. 运用数组,输出从小到大的10个数
  8. python异常值处理箱型图_如何利用python处理异常值?
  9. 《大数据》第1期“聚焦”——从系统角度审视大数据计算
  10. 管理软件实施(3)——项目的生命周期