一个程序员的选择

码农翻身 梦见 2018-02-07


点击上方“程序员小灰”,选择“置顶公众号”

有趣有内涵的文章第一时间送达!



本文转载自公众号  码农翻身



前言:BlindingDark是我认识的很有想法的一个年轻人,今天他给大家带来一篇关于『选择的文章,人生是有很多选择组成的,程序员的选择也有很多,找一条最适合自己的路吧。

每个人都有最适合自己的道路,所以请选择能让自己舒服的姿势。毕竟人生苦短,对自己好点。 


比如我,就搞不来学术研究,就不喜欢研究语言的细节实现,不喜欢研究算法,因为我人比较笨。


所以如果你看到别的大佬大学搞 ACM,搞编译器,工作去 BAT,微软,谷歌 Facebook,你也跟着学,结果发现自己干啥啥不行,不要怀疑自己,要承认自己的确就不是那块料。 


所以,认识你自己,接受你自己,找到最适合自己的路,比写一万行代码更管用。


所以下面仅是一家之言,仅供参考。


1
设计模式

找工作的时候,我经常被问到的问题之一就是所谓的设计模式。而我的作答一般是,『了解其思想,而不局限于实现。』


先说个人观点:

  1. 尽可能晚的接触设计模式。

  2. 先写代码,再想设计模式。

  3. 不懂设计模式无所谓,但一定要多思考。


过早的接触设计模式,再加上许多人对设计模式的神化,很可能导致你个人的思考被其束缚。 


设计模式的重点不在其实现,而在其思想。只是因为 Java 语言本身的表达能力有限,所以才使得其代码实现变得比较复杂。


我见过许多人把它做为知识点一样,去记忆那些实现代码,我觉得这种行为是很可笑的。 


我个人认为正确的学习姿势是,在你已经写了一定量的代码,尝试使用自己的思路去解决过一定难度的问题,有一定程度的基础和经验的时候再去看设计模式。 


这样在看的过程中你就会有感触,『哦,这种模式就是我平时用的某种方法的变形,那种模式比我写的更严谨,而这种模式我还没有见到过……』这样对照对比着去学习,才能让你从中汲取知识,且不会让你困扰于设计模式的细节实现,以及陷入到滥用设计模式的陷阱中去。 


另一种学习设计模式的姿势就是,换一门表达能力更强的语言,看看它们是怎么解决的。这样你就能摆脱实现细节,专注于思想本身。


2
编程语言

说到语言,新的语言层出不穷,经常会有人发出这样的疑问:


我应该学什么语言?

我现在使用的技术是不是快要过时了?

我要不要去追赶下一个热门技术? 


找到工作短短一个月内,我就学习了三种语言,而且目前所使用的主语言我之前连听都没听说过的,但是工作三个月后,我已经基本熟练掌握了语言的特性和用法,至少足够应对工作。


我是怎么做的?


答案是:


  • 我学过 Lisp。所以在语法层面,我可以快速上手任意一个所谓有各种高级特性的新语言。


  • 我认真学习了大学本科的计算机专业课程。比如在 Web 开发方面,计算机网络,数据库原理对我的帮助很大。


  • 我喜欢编程本身,所以学习对我来说是一种享受,而不是痛苦。


所以,要不要学习新语言/技术?


我的答案是,掌握一种高级抽象形式,以及打好基础,能让你快速学习任何一种新技术。 


当你有了这种能力之后,就不会惧怕新技术,而是可以根据需要来选择任何一种新技术,即使再更新换代,有再多层出不穷的技术出现,你也能游刃有余。


有了扎实的基础和快速学习的能力,同时还要保持求知欲和好奇心。要像海盗探险一样积极去寻找有助于自己的尚未探索的技术领域,毫不吝啬的掠夺那些有助于自己的知识来扩充自己的宝库。


而在快速进化的计算机领域,如果你是一只懒惰的海盗,不持续更新你的技术,那么你很快就会被时代扔下车。


不仅仅是语言,其它譬如操作系统、开发环境、开发工具等,也要积极去跟进更新。选择那些业内最前沿、社区最有活力的技术并熟练掌握它们,把自己武装到牙齿。


3
前途/钱途

我经常看到很多人在讨论这样的话题:

『某某方向最近很赚钱,要不要去学一下。』

『我是培训出来的,据说程序员很赚钱。』

『学这个技术以后还有钱途么?』 


没错,赚钱养活自己的确是基础需求,但是你真的想要的就只有赚钱么?


做你自己想做的。


我一直认为,工作是用来践行自己的一种方式,而赚钱只是其附加属性。如果一个职位让我感到很痛苦,那我可能会拒绝。只有你在做你喜爱的东西的时候,你才会全力去做,才是最有效率的。 


所以不要犹豫,听从你内心的想法吧。


有时候在长时间重复劳动之后,难免会觉得枯燥。其实计算机远不止写代码,还有好多有趣的东西值得你去发掘。不折腾的程序员不是一个好程序员。 


操作系统换成 Arch 或者 Gentoo,有点闲钱买个树莓派玩一玩,掌握 Emacs/Vim,搭建一台服务器…… 


你可是程序员!看到不爽的就去改造它!而不是适应它!


还有一点就是要有黑客精神。据说每个程序员内心都有一个黑客梦,其实攻击者那叫骇客(Cracker),只要你有一颗不被束缚的心,你就是黑客(Hacker)。 


当你不仅仅把计算机视为一只饭碗的时候,你才能看到更多的东西,才能获取更广泛的知识。


愿大家都能成为一只 Happy Hacker。




—————END—————




喜欢本文的朋友们,欢迎长按下图关注订阅号程序员小灰,收看更多精彩内容




本站仅按申请收录文章,版权归原作者所有
如若侵权,请联系本站删除
觉得不错,分享给更多人看到
梦见 热门文章:

漫画:编程其实是文科    阅读/点赞 : 1108/17

我是一个线程    阅读/点赞 : 693/22

漫画:三分钟了解敏捷开发    阅读/点赞 : 644/17

漫画:什么是中间人攻击    阅读/点赞 : 613/16

我是一个Java class    阅读/点赞 : 552/10

网贷遇雷潮,投资者如何避雷?    阅读/点赞 : 0/0