在博客里分享的是我在知识星球发的一篇文章,继续在这里分享下,也是昨天在猪猪群里对一位网友的回答吧。
两个问题,一个是学历重要吗?一个是怎么判断自己适合不适合做个程序员?
首先,学历重不重要?
当然重要。是门槛,是门面,是学习能力的体现。
我是个大专生,在这方面吃了很多亏,尤其在先找工作的时候。我相信如果有看到这篇文章并且学历不高的兄弟,在找工作的时候应该有跟我相同的感受。
如果给我再读一次书的机会,我相信自己不会比别人差。
因为我在工作中的不断自学,在每个小团队中的超越,变成核心人物,都常常让我很有优越感。
所以学历重要吗?其实也没那么重要,在我带过的项目里,硕士生大专生本科生,2:5:3这样子,许多大专生的能力不见得比硕士生差。
那么,什么最重要?
自学,不是在学校的考试学习,是主动解决问题的自学能力。
兴趣,只有兴趣才能让你超越别人,产生成就感,有动力自学。
专注,解决一个事情一个bug就是要跟它干,不死不休。
坚持,对以上。
有时候,有没有解决问题时,越来越兴奋?
恭喜你,咱们踏入了学会编程语言到程序员的门槛了。
第二个问题,怎么判断自己适合不适合做个程序员?
在解决问题的时候,有没有其他人都放弃了,你还是搞到不想睡觉就想解决它。
有没有做梦的时候都在想解决方案?
好,上面都有。
那么,解决问题时有没有很好的思路而不是无头苍蝇?
能不能get重点去百度谷歌?
会不会试错?
会不会点到源码里看?
有没有仿造过轮子并学以致用?
以上的能力都很重要,但是,我觉得最重要就是两点,
有没有思路?会不会试错?
有没有思路?会不会试错?
有没有思路?会不会试错?
思路靠什么?
靠日志分析,靠灵光一闪,靠猜。
猜?什么鬼?
我个人理解,猜是对这个代码为什么这么写,为什么这样设计的一种解读?然后我们再去看看它的内部实现,是不是这个思路?是不是更优美?
为什么能猜对?
用一个成语来说,叫见多识广。
这又涉及到广度与深度的问题了,不再展开。
然后,会不会试错?怎么试错?
我觉得有两个点,一个是调试,跟踪源码,会watch变量值,合理打印过程日志,到达报错点更换写法,暴露对象内部值。
另一个是傻瓜式办法,也是我在出现各种诡异问题的时候(环境、缓存、多线程……),最常使用的方法,试着倒退或跳跃删除代码,直到正确的为止。这个方法反过来,在产品上来说,又叫MVP(Minimum Viable Product,即“最小化可行产品”。当然,我们这里讨论的不是产品和运营,而是代码。
就这么多吧。
下面是我的星球,欢迎你的加入。