程序员的编程那些事
随着互联网的高速发展,使得软件开发行业对程序员的要求也倍增。同时也促生了大量的 IT 培训机构。短短几年时间,科班出生的程序员和培训机构出生的程序员呈指数式增长。
这些年的软件开发工作,内心也有些感触,写下来共勉。
关于语言
从汇编到C语言,再从VB到C++,后来Java 、js……,越来越多的语言被创造出来,渐渐的出现一个奇怪的现象,程序员语言鄙视链。其实所谓的鄙视链往往也就是因为各种语言的性能以及难易度造成的。
往往越高级的语言,越容易阅读,但是性能比不过C语言这种中层语言。因为一系列的检查机制和代码编译造成了一些性能浪费。
语言其实不分好坏,各种语言都各自的优点和缺点,Java适合用来做Web;Swift在iOS上独领风骚;Python在爬虫等行业上发展壮大。
说PHP是世界上最好的语言只是一句玩笑话,几乎有点编程经验的都知道。世界上没有最好的语言,只有最合适的语言。
关于经验主义
很多刚毕业的或者刚培训出来的学生,在找工作的时候喜欢批评HR,没经验怎么了,你们不也是从没经验过来的吗?凭什么招聘非要3年经验的。应届生不是人吗?
HR招人只是为工作,经验足的上手快,基本认的是这个理。不是HR错了,也不是没经验错了,这个矛盾至始至终没有什么好的解决办法。
大家都是从没经验过来的,如果幸运的被大公司找去当实习生出来也不愁经验的问题。所以吐槽3年经验,还不如让自己多接触点实际项目,哪怕是抄开源的东西,只要你做出来了,也是极好的,分分钟上手一个项目,哪家公司会不想要,除非雇不起。
在编程这一行,天赋跟经验都很重要。比如从来没有人跟你说过泛型,也没有见过搭建框架来完成项目,那么在你写业务的时候,你可能自己封装了一个类,直接就上了。
但是如果你看过别人用了这个方式,你肯定会觉得自己写的不如人家,以后会学习别人。
这就是经验积累。这种积累无可替代,都是自己摸索。
但是这种经验有时候也挺害人的,比如某个语言出来一个新的特性,因为没用过,奉行经验主义会让你避免使用这个新的更高效的功能。
因为你认为传统的东西更可靠,更安全,殊不知在正式推出新特性的时候,语言工程师无数的调试和修改,保证了稳定性才推出了正式的更新。
经验是用来避免已经犯过的错误,不是用来逃避技术更新说辞。双刃剑靠自己把握。
关于科班和培训生
有人这么分,是因为公司按这种分类给程序员不同的待遇,尤其是体制观念很深刻的公司。
非要排个序的话,我是把能力排在第一的,而且我觉得程序员之间不要用科班生和培训生来分类,如果你觉得待遇不公平,上等的方式就是做的比他更好,然后跟老板要该有的待遇。
一个公司不能给有能力的员工符合能力的待遇,一般情况下员工会自己离开的。如果你不出众,却觉得:比你更差的人却比你待遇好,老板是不是傻,我要跳槽…… 之类的时候,很可能陷入一个恶性循环,自己能力一般,跳来跳去,最后既没有拿到自己想要的待遇,也没有提升自己的技术水平,这就尴尬了。
当你觉得:我擦,凭什么大学好一点待遇就比我好那么多? 或者:那个野鸡大学出来,进培训班出来的程序员凭啥对我吆五喝六的时候。我只能说:少年,你的思想很危险啊。
关于非对口专业入行
如果你觉得自己上了假大学,找不到工作,想干程序员;或者,你觉得程序员看起来高大上,想干这一行;或者,你热爱编码……
如果你不是对口专业,还想入行的时候,培训机构是最佳选择,不过从零开始培训的培训机构看起来高大上,也要注意一定要上实践课,保证你找工作起码有2~3个熟透的中型工程
这样你找工作就轻而易举了,别还没上完就急着找工作,到时候工作发现技术不够用,痛苦的是你自己。
报名培训机构的小伙伴要注意,最好多试听几节课,3~4节。
不过要小心打着招聘的幌子,骗你培训交学费的机构。这种灰色的东西,光凭平社会的正义感是很难消灭的,还是自己小心。
至于培训机构,不是报名费越高,资格越老,就越好的。
关于学习
道理大家都知道,但是懒惰谁都难逃魔掌,看谁懒的少一点,或者更会懒一点。
懒得少一点:就是你比别人付出更多时间来学习,尽量多打鸡血,笨鸟先飞,勤能补拙!
更会懒一点:就是你有不一样的学习方法,学习五分钟,装逼两小时。效率比一般人好n^n倍!
关于领悟
有时候看一个新的技术,会突然一下感觉眼前一亮,原来能这样。或者看自己以前的代码,我擦那是什么shit,改着改着,自己技术就上来了。
有时候同事的东西或 GitHub 上的东西会让你觉得,好厉害的代码,我要用到自己的项目里。
当遇到这种情况时,千万抓住时机,重构自己的代码,或是记下自己的领会,不然这种感觉失去了,可能你又会变得浑浑噩噩,以后再也找不回那种感觉了。