非计算机专业的同学如何为成为一个程序员


  • 1. 学会一门编程语言。随便什么语言都可以,其实python很适合初学者,有本书叫《与孩子一起学编程》用的就是它。不过考虑到步骤2,还是选个流行的教学语言吧,比如C++或者JAVA
  • 2. 学好离散数学,重点是高等代数、数理逻辑、集合论、图论,最好再学会概率论。计算机科学的本质是离散数学,不掌握这些知识你如何能真正理解矢量、逻辑运算、最短路径、涂色算法这些概念呢?
  • 3. 非常非常非常非常非常非常认真地学习《数据结构》这门课。你作为程序员功力几何,很大程度上取决于你在这方面的造诣。
  • 4. 自己做一个小项目,尽可能把你学会的东西都用上。这不仅能向招聘者展示你的功力,也是一个把所学知识融会贯通的过程,只有做了一个项目,你学的知识才真正变成为了你掌握的技术。

有人看到这里可能要说了,码农对编程语言熟悉就行了,学那么多不相干的又何必呢?

老夫打个不太恰当的比方,离散数学和数据结构就像一个武林高手的内功,编程语言则是招式。内功不行,就算会很多招式,可以吓唬吓唬武功一般的人,但是碰到打硬仗这些花拳绣腿就不管用,会死得很惨。可惜现在很多人不重视内功,不少计算机专业毕业生连堆栈和队列是怎么回事都不知道,更别提二叉树、链表、图结构了。不管碰到什么需求,上来就定义几个大数组,你能指望他编出多高效的代码?比如现在互联网热门的大数据,算法效率是核心问题,如果谁整出个O(n^2)的算法,信不信老板分分钟砍死他?

再说远一点,学会一门编程语言容易,精通很难,难就难在理解它的精髓。有很多开发者热衷于最新潮的技术,今天玩玩NoSQL,明天搞搞Html 5,说起来头头是道,但是都深入不下去,从来没有真正没有理解这些技术的精髓,也就做不出一个能发挥出它们真正优势的产品来。这往往就是因为内功不行而心态又很浮躁。(补充一篇文章:《叶正盛:再次写给我们这些浮躁的程序员》)但是程序员是靠代码说话的,只是善于对某个技术侃侃而谈没有任何价值。Linux和Git之父Linus Torvalds说过:“Talk is cheap. Show me the code.”(空谈无价值。拿你的代码来看看。)所以老夫要说,作为一个程序员,不先练好内功就写不出优雅的代码,这样是走不远的。

怎么学呢?这些不需要花很多钱去培训机构,而且从我面试过的很多培训学校学员的表现来看,绝大部分人学完了连MVC的概念都没搞明白,花半年时间就学会了if…else,何必去糟蹋这钱呢?现在一些大学有旁听的学分课程,花几百块钱就可以听一门课,还可以交作业做实验(比如:http://zhidao.baidu.com/question/245256206.html)。建议你尽可能去选最好的学校,不仅仅是老师水平高,关键是同学的高水平会促使你对自己有更高要求,这和培训学校的氛围是完全不同的。

如果你在以上4步都做得很好,那么你应该可以在码农这个行业获得一些机会,剩下的就看你在工作中的表现和积累了。码农的修行是一个长期过程,计算机领域每年都有新技术出现。做了码农,就得活到老学到老,注定一辈子苦兮兮的。如果你喜欢这种感觉,那么你的选择可能就是正确的。



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值