这些年,互联网爆炸式的发展,促生了无数程序员。

也促生了青鸟,达内,黑马,极客学院等大量 IT培训机构。

短短数年间,科班出生的程序员和培训机构出生的程序员呈指数增长。

程序员的职业也不再是金饭碗。写了这么多代码,有些感触,所以写下来。

浅谈编程(肺腑之言)_各种语言




0x00关于语言

从汇编到C语言,再从VB到C++,后来Java 、js……,越来越多的语言被创造出来,渐渐的出现一个奇怪的现象,程序员语言鄙视链。其实所谓的鄙视链往往也就是因为各种语言的性能以及难易度造成的。

按照我现在的经验,往往越高级的语言,越容易阅读,可性能也比不过C语言这种中层语言。因为一系列的检查机制和代码编译造成了一些性能浪费。

我觉得语言其实不分好坏,各种语言都各自的优点和缺点,Java适合用来做Web,因为早期的跨平台加上多年积淀,已经让Java EE发展到现在,无数的框架模板各种企业级商业解决方案,Swift在iOS上独领风骚。Python在爬虫等行业上发展壮大。

浅谈编程(肺腑之言)_java_02


有些人喜欢拿语言缺点说事,我觉得吧,这种人应该自己写一套语言,看看他写的语言能不能既像自然语言一样好理解,还能完美利用内存,性能堪比汇编。

说PHP是世界上最好的语言只是一句玩笑话,几乎有点编程经验的都知道。世界上没有最好的语言,只有最合适的语言。如果你非要分好坏,我表示不争论这个,我且尊重你的观点。

0x01关于经验主义

很多刚毕业的或者刚培训出来的学生,在找工作的时候喜欢批评HR,没经验怎么了,你们不也是从没经验过来的吗?凭什么招聘非要3年经验的。应届生不是人吗

HR招人只是为工作,经验足的上手快,基本认的是这个理。不是HR错了,也不是没经验错了,这个矛盾至始至终没有什么好的解决办法。

大家都是从没经验过来的,如果幸运的被大公司找去当实习生出来也不愁经验的问题。所以吐槽3年经验,还不如让自己多接触点实际项目,哪怕是抄开源的东西,只要你做出来了,也是极好的,分分钟上手一个项目,哪家公司会不想要,除非雇不起。

在编程这一行,天赋跟经验都很重要。比如从来没有人跟你说过泛型,也没有见过搭建框架来完成项目,那么在你写业务的时候,你可能自己封装了一个类,直接就上了。

但是如果你看过别人用了这个方式,你肯定会觉得自己写的不如人家,以后会学习别人。

这就是经验积累。这种积累无可替代,都是自己摸索。

浅谈编程(肺腑之言)_泛型_03



但是这种经验有时候也挺害人的,比如某个语言出来一个新的特性,因为没用过,奉行经验主义会让你避免使用这个新的更高效的功能。

因为你认为传统的东西更可靠,更安全,殊不知在正式推出新特性的时候,语言工程师无数的调试和修改,保证了稳定性才推出了正式的更新。

除开程序员,一些老爸老妈级的网民和政府机关现在还在用IE6,也是因为经验主义,觉得IE6一直用,很舒服,不喜欢换。

或者特定的软件必须用IE6,这款软件几万年没有更新了,除了IE6没有其他可兼容的浏览器能运行,也间接影响了各种机关办事效率。可能走办一个业务,走一个程序要等很久,很久。我是真心希望这些机构能更新一下软件和硬件,毕竟我们国家的税收不低。

浅谈编程(肺腑之言)_c语言_04



经验是用来避免已经犯过的错误,不是用来逃避技术更新说辞。双刃剑靠自己把握

0x02 关于科班和培训生

我的观点是程序员不是按出生分的,有人这么分,是因为公司按这种分类给程序员不同的待遇,尤其是体制观念很深刻的公司。不得不说有的人潜意识里还是有《出生论》批判过的思维。

非要排个序的话,我是把能力排在第一的,而且我觉得程序员之间不要用科班生和培训生来分类,如果你觉得待遇不公平,上等的方式就是做的比他更好,然后跟老板要该有的待遇。

一个公司不能给有能力的员工符合能力的待遇,一般情况下员工会自己离开的。如果你不出众,却觉得:比你更差的人却比你待遇好,老板是不是傻,我要跳槽…… 之类的时候,很可能陷入一个恶性循环,自己能力一般,跳来跳去,最后既没有拿到自己想要的待遇,也没有提升自己的技术水平,这就尴尬了。

所以能力我是放在第一位的,能吸引老板的地方,必然是我会的比别人多,我学的比别人快……

当你觉得:我擦,凭什么大学好一点待遇就比我好那么多?或者:那个野鸡大学出来,进培训班出来的程序员凭啥对我吆五喝六的?的时候。我只能说:少年,你的思想很危险啊。

浅谈编程(肺腑之言)_泛型_05



只要公司里不是像宫斗戏一样勾心斗角,作为技术人员还是把技术放在第一位的比较好。

你问如果勾心斗角怎么办,呵呵,you can you up,no can you leave! 毕竟人家厚黑也是他的能力。

0x03 关于非对口专业入行

如果你觉得自己上了假大学,找不到工作,想干程序员;或者,你觉得程序员看起来高大上,想干这一行;或者,你热爱编码……

如果你不是对口专业,还想入行的时候,培训机构是最佳选择,不过从零开始培训的培训机构看起来高大上,也要注意一定要上实践课,保证你找工作起码有2~3个熟透的中型工程

这样你找工作就轻而易举了,别还没上完就急着找工作,到时候工作发现技术不够用,痛苦的是你自己。

我是不鼓励语言基础在培训机构里学习的,那些个课程网上一搜一大堆,前面说的编程经验就是告诉你,要有做项目的能力

所以培训机构值钱的就是实战项目,这种实战项目越新,越有用,越老,越说明培训机构越out。

常见的已经OUT的实战项目如:学籍管理、进存销系统、电商购物车、坦克大战、贪吃蛇、2048……,因为这些东西老了,网上一搜一大堆。

浅谈编程(肺腑之言)_编程经验_06



报名培训机构的小伙伴要注意,最好多试听几节课,3~4节,也要看清所谓的学后付款是不是贷款交学费,贷款交学费的话,无论你学没学好,都会强制还贷款的。

还要小心打着招聘的幌子,骗你培训交学费的机构。这种灰色的东西,光凭平社会的正义感是很难消灭的,还是自己小心。

至于培训机构,不是报名费越高,资格越老,就越好的。我个人的评判的标准还是看培训机构的实战项目你能不能从网上搜到、新技术有没有在培训的课程里更新。

0x04 关于学习

怎么说呢,道理大家都知道,但是懒惰谁都难逃魔掌,看谁懒的少一点,或者更会懒一点。

懒得少一点:就是你比别人付出更多时间来学习,尽量多打鸡血,笨鸟先飞,勤能补拙!

更会懒一点:就是你有不一样的学习方法,学习五分钟,装逼两小时。效率比一般人好n^n倍!

另外在多年教学过程中,我发现有些学生还算是有着编程的天赋,但是因为个人的傲气而不愿低头开发、眼高手低。


前些天,我在微博上留下了这句话:有才的人败给傲,平庸的人输给懒...

浅谈编程(肺腑之言)_各种语言_07

分享一个别人的学习方法Xdite:永葆热情的上瘾式学习法

忽略这篇文章的广告,还是有干货的:

Orid 学习法

Objective 你对今天学的记得什么?

Reflective 一句话形容今天的情绪(今天的高峰、低峰);

Interpretive 今天你学到了啥?重要的领悟是什么?

Decisional 一句话形容今天的工作,明天要继续哪些工作。

精力管理

每个人的高效时间是不一样的。而不是用力过猛想在所有的时间全部拿来学习,或全部拿来做事。

而甚至在有了这个基础的概念之后,我还会安利其他人,当你觉得倒霉时,迷信的说法就是倒霉顶多是一天的事,发现自己倒霉,就赶快去睡觉,把霉运睡掉。

而这背后科学的道理实质上只是恢复旺盛的专注力。

浅谈编程(肺腑之言)_编程经验_08



不一一举例了,自己看就好

0x05 关于顿悟

不知道顿悟这个标题合不合适,有时候看着新的技术,会突然一下感觉眼前一亮,原来能这样。或者看自己以前的代码,我擦那是什么shit,改着改着,自己技术就上来了。

有时候同事的东西或者github上的东西会让你觉得,好厉害的编码,我要用到自己的项目里

浅谈编程(肺腑之言)_泛型_09



当遇到这种情况的时候,千万要抓住时机,重构自己的代码,或记下自己的领会,不然这种感觉失去了,可能你又要变得浑浑噩噩,可能以后再也找不回那种feel了。

嗯,这一条是写给我自己看的,因为我之前想到的,现在因为断线了,补不回来了,唉。


浅谈编程(肺腑之言)_java_10 

作者: 杨校