【转载】程序员如何把控自己的职业 ——陈皓(左耳朵耗子)

【本文转载于程序员如何把控自己的职业 | 酷 壳 - CoolShell,勤读自勉,分享之】

 参考:

程序员如何把控自己的职业 | 酷 壳 - CoolShell

左耳朵耗子:技术人如何更好地把控发展趋势?-腾讯云开发者社区-腾讯云

左耳朵耗子:打造高效团队的最佳实践|GTLC_文化 & 方法_陈皓_InfoQ精选文章

目录

世界发展趋势

人才需求

Google评分卡

认识自己

打好基础

学习效率

小结

Q&A

这篇文章的主要内容主要是我今年3月份在腾讯做的直播(左耳朵耗子:技术人如何更好地把控发展趋势?-腾讯云开发者社区-腾讯云),主要是想让一些技术人员对世界有一个大体的认识,并且在这个认识下能够有一个好的方法成就自己。而不是在一脸蒙圈的状态下随波逐流,而日益迷茫和焦虑。直播完后,腾讯方面把我的直播形成文字的形式发了出来,我觉得我可以再做一个精编版。所以,有了这篇文章,希望对大家有帮助。

对我来说,在我二十多年的工作经历来看,期间经历了很多技术的更新换代,整个技术模式、业务模式也是一直变来变去,我们这群老程序员成长中所经历的技术比今天的程序员玩的还更杂更多。我罗列一下我学过的,而且还被淘汰掉的技术,大家先感受一下。

- MIS应用开发:FoxPro,PowerBuilder,Delphi
- OA:Lotus Notes,VBScripts
- 微软:ODBC/ADO,COM/DCOM,MFC/ATL,J++
- 服务器:AIX,HP-UX,SCO Unix
- Web:CGI,ISAPI,SOAP
- RPC:CICS,Tuxedo
- J2EE:Websphere,Weblogic
- DB:Sybase,Informix 

我想说的是,无论过去还是今天,我们这些前浪和你们后浪所面对的技术的挑战和对技术的焦虑感是相似的,我们那个时候不但玩996,还玩封闭开发(就是一周只能回家一天)。当然,唯一好的东西,就是比起今天的程序员来说,我们那个年代没有像微信、微博、知乎,抖音这些巨大消耗你人生的东西,所以,我们的工作、生活和成长都有很效率,不会被打断、喜欢看书、Google还没有被封……当然,那时代没有StackOverlow和Github这样的东西,所以,能完成的东西或质量都一般。

当然,这里并不是想做一个比较,只是想让大家了解一下两代程序员间的一些问题各有千秋,大同小异。在整个成长过程中,其实有很多东西是相通的,其本上来说,就是下面的三件事——

第一,如果想要把控技术,应对这个世界的一些变化,需要大致知道这个世界的一些规律和发展趋势,另外还得认识自己,自己到底适合做什么?在这个趋势和规律下属于自己的发挥领域到底是什么?这是我们每个人都需要了解的。

第二打牢基础,以不变应万变,不管世界怎样变化,我都能很快适应它。基础的重要程度对于你能够飞多高是相当有影响的,懂原理的人比不懂原理的人能做出来的事情或是能解决的问题完全是两个层级的。

第三,提升成长的效率,因为现在社会的节奏实在太快了,比二十年前快得太多,技术层出不穷,所以我们的成长也要更有效率。效率并不单指的快,效率是怎么样更有效,是有用功除以总功(参看《加班与效率》),怎么学到更有效的东西,或者怎么更有效学习,是我们需要掌握的另一关键。

下面是我这多年来的一些认识,希望对你有帮助。

世界发展趋势

我个人经历的信息化革命应该分成三个阶段:

  • 1990年代到2000年,这个时代MB时代,是雅虎、新浪、搜狐、网易门户网站的时代,这个时代就是ISP/ICP互联网提供商,把一些资讯数字化,然后发布到网络上。
  • 2000年到2010年,这个时代叫GB时代,或是叫多媒体或UGC时代,上网开始变得普遍了,每个人手里的数码设备开始变得多了起来,可以上传照片,可以上传视频,甚至可以在网上做社交。
  • 2010年到2020年,这个时代叫TB时代,这过去的十年是移动互联网时代,移动互联网只需要手机在线,不需要依靠电脑。因为手机随时在线,所以个人的各种各样的数据始终在被收集,只要用户上网就会产生数据,所以人的行为最终也被数字化了。

所有的硬件和软件都是跟着需要处理的数据而演进的,我们需要更大的带宽,更大的硬盘,更多的处理器……大到一定时候就只能进入分布式化的技术架构了,再大,数据中心也顶不住了,就会要引入更为分布式的边缘计算了。

另一方面,从业务上来看,我们可以看到整个世界就在不断地进行数字化,因为,只要数字化了,就可以进行复制传播和计算,只要可以进行计算了,就可以进行数学建模,就可以自动化,只要可以自动化了就可以规模化,只要可能规模化了,就可以改变整个行业。人类的近代史的大趋势基本上都是在解决能源和自动化的事,源源不断的能源是让机器不知疲倦的前提条件,用机器代替牲口,代替人类进行工作是规模化的前提条件。

所以,技术的演进规律基本是自动化加规模化,从而降低成本,提升效率。这就是为什么世界变得越来越快,人类都快跟不上节奏的原因,主要是整个社会不断被机器、数据所驱动。

人才需求

在这个过程中,需要什么样的人?下面是我的一些认识——

  • 技工,在机器和自动化面前,肯定是需要能够操作机器的技术工人了,这类人是有技术的劳动力。在编程的圈子里俗称“码农”,他们并不是真正的工程师,他们只是电脑程序的操作员,所以,随着技术门槛的下降或是技术形式的变更他可能就会变得越来越不值钱,直到被淘汰掉
  • 特种工,这种人是必须了解原理和解决难题的一类人,他们是解决比较难的、特定的一些技术问题。当一种技术被淘汰,他并不容易被淘汰,因为他懂原理,原理就是解决问题的能力,是解决问题的套路和方法
  • 工程师,不但是使用技术,还可以把活儿做好,他们认为代码更多的时间是在维护,这些人使用各种各样的手段和各种技术,精益求精地持续不断地提高代码的易读性、扩展性、可维护性和重用性,这个过程似乎永无止境。对于这些有“洁癖”,有“工匠精神”,有“修养”的技术人员,我们称他们为工程师。这种人做事又稳又快,而且可以做出很多称手的工具和方法论
  • 再往上是设计师和架构人员,这些人主要是开发一些工具,框架,模式,提升软件开发和维护效率,同时也提升用户体验,和提升稳定性、性能、代码重用等,总的来说就是为了降本增效。这类人的工作降低了技术得到门槛,他们把技术门槛降低了以后,就可以把这个技术普及开来,就可以由广大劳工、技工、特殊工人使用了。
  • 还有一类人是经理,经理主要是组织团队、完成项目、创造利润。这类人中,即有身先士卒的leader,也有高高在上的boss,但无论怎么样,这些人只不过是为了让一个公司或是一个团队更好组织在一起的“粘合剂”,这类人只有在大公司中才会变成更有价值。

这就是我总结的世界需要哪些人才,我们了解这些东西以后大概就明白我们现在所处的位置有什么样的问题,我们应该去什么样的地方。

Google评分卡

接下来,我们再来看看Google的SRE的自我评分卡:

0 – 对于相关的技术领域还不熟悉
1 – 可以读懂这个领域的基础知识
2 – 可以实现一些小的改动,清楚基本的原理,并能够在简单的指导下自己找到更多的细节。

3 – 基本精通这个技术领域,完全不需要别人的帮助
4 – 对这个技术领域非常的熟悉和舒适,可以应对和完成所有的日常工作。

  • 对于软件领域 – 有能力开发中等规模的程序,能够熟练和掌握并使用所有的语言特性,而不是需要翻书,并且能够找到所有的冷知识。
  • 对于系统领域 – 掌握网络和系统管理的很多基础知识,并能够掌握一些内核知识以运维一个小型的网络系统,包括恢复、调试和能解决一些不常见的故障。

5 – 对于该技术领域有非常底层的了解和深入的技能。

6 – 能够从零开发大规模的程序和系统,掌握底层和内在原理,能够设计和部署大规模的分布式系统架构
7 – 理解并能利用高级技术,以及相关的内在原理,并可以从根本上自动化大量的系统管理和运维工作。
8 – 对于一些边角和晦涩的技术、协议和系统工作原理有很深入的理解和经验。能够设计,部署并负责非常关键以及规模很大的基础设施,并能够构建相应的自动化设施

9 – 能够在该技术领域出一本经典的书。并和标准委员会的人一起工作制定相关的技术标准和方法。
10 – 在该领域写过一本书,被业内尊为专家,并是该技术的发明人。

SRE需要自评如下这些技术或技能。

– TCP/IP Networking (OSI stack, DNS etc)
– Unix/Linux internals
– Unix/Linux Systems administration
– Algorithms and Data Structures
– C/C++
– Python
– Java
– Perl
– Go
– Shell Scripting (sh, Bash, ksh, csh)
– SQL and/or Database Admin
– Scripting language of your choice (not already mentioned) 
– People Management
– Project Management

这个评分卡是面试Google前需要候选人对自己的各种技术进行自评,也算是一种技术人员的等级的度量尺,其把技术的能分成11个等级,我用颜色把其它成四大层级,希望这个评份卡能够给你一个能力提升的参考标准。

认识自己

认识了世界是怎么发展的,也知道技术人员的种类和层级,那么还要了解一下自己,因为如果不了解自己,那么你也无法找到自己的路和适合自己的地方。

我觉得,一个人要认识自己就需要认识自己的特长、兴趣、热情、擅长等,下面是一个认识自己的标准方法:

  • 特长。首先你要找得到自己特长。你要认识自己的特长,找到自己的天赋,找到你在DNA里比别人强的东西,就拿你的DNA跟别人竞争就好了。所以你要找到自己可以干成的事,找到别人找你请教的事,你身边人找你请教就是说明你有特长。这是找到自己特长非常非常重要,扬长避短。
  • 兴趣。如果你没有找到自己特长,就找自己有兴趣有热情的东西。什么叫兴趣?兴趣是再难再累都不会放弃的事。如果你遇到困难就会放弃不叫兴趣,那叫叶公好龙。不怕困难,痴迷其中,就算你没有特长,有了这种特质,你也是头部的人才。
  • 方法。如果你没有特长,没有兴趣和热情就要学方法。这种方法就是要有时间观念,要会做计划,要懂统筹、规划对于做过的事情,犯过的错误多总结,举一反三,喜欢自己找答案,自己探究因果关系,这是一些方法,自己总结一些套路。
  • 勤奋。如果你没有特长,没有兴趣,也没有方法,你还能做的事就是勤奋,勤奋注定会让你成为一个比较劳累的人,也是很有可能被淘汰的人随着你的年纪越来越大,你的勤奋也会越来越不值钱。因为年轻人会比你更勤奋,比你更勤奋、比你斗志更强,比你能力更强,比你要钱更少的人会出现。勤奋最不值钱,但是只要你勤奋至少能够自食其力。

以上就是为了应对未来技术变化,作为个人必须要从特长、兴趣、方法一层一层筛选挖掘,如果没有这些你就要努力和勤奋。就只能接受“福报”了

从我个人而言,我不算是特别聪明的人,但自认为对技术还是比较感兴趣的,难的我不怕。有很多比较难啃的技术,聪明点的人啃一个月就懂了,我不行,我可能啃半年。但是没有关系,知识都是死的,只要不怕困难总有一天会懂的。最可怕是畏难,为自己找借口,这样就不太好了。

打好基础

最前面提到我学的各式各样的被淘汰的技术,会让你感觉很迷茫,或是迷失。但前面也提到了“谷歌评分卡”,在这个评分卡中,我们看到了许多基础原理方面的内容,其实要应对未来的变化,很重要的一点就是无招胜有招,以不变应万变。

变化都是表面的东西,内在的东西其实并没有太多的变化。理论层面上变得不多,反而形式上的东西今天一个花样,明天一个花样,所以如果要去应对这种变化,就一定要打牢自己的基础,提升内功修养。比如像编程的一些方式和套路,修饰模式原理本质,解耦,提升代码的重用度等。提升代码重用度必须解耦,要跟现实解耦,提升抽象,这些都是一些技术基础。无论用什么语言,都是这么做的。

打牢基础就可以突破瓶颈,不打牢基础没有办法突破瓶颈。在技术世界不要觉得量变会造成质变,这是不可能的。技术这个东西就像搞建筑砌砖头,砌砖头砌的再多也不可能让你能成为一个架构师的,因为你不懂原理,不懂科学方法,你就不可能成长上去的,就像学数学一样,当你掌握了微积分这种大杀器后,你解题的能力是无所披靡,而微积分这种方式绝对不是你能“量变”出来的。

所以你必须学习基础的理论知识,如果不学这些基础理论知识,还要学习解题思路和方法,如果你只学在表面,那么当这个技术的形式有变化,就会发现以前学的都没用了,要重头学一遍。掌握技术基础可以让自己找到答案和知识,基础是抽象和归纳,很容易形成进一步的推论。我们学的很多技术实现都逃不脱基础原理,不管是Java,还是其他语言,只要用TCP用的都是相同的原理,逃不出范围,只要抓住原理,举一反三,时间一长了,甚至还可以自己推导答案。对于技术的基础,我会把其它成四类:

  • 程序语言:语言的原理,类库的实现,编程技术(并发、异步等),编程范式,设计模式……
  • 系统原理:计算机系统,操作系统,网络协议,数据库原理……
  • 中间件:消息队列,缓存系统,网关代理,调度系统 ……
  • 理论知识:算法和数据结构,数据库范式,网络七层模型,分布式系统……

这些知识其实就是一个计算机科学专业的学生他所要学习的原理,但可惜的是,我们的一些学校教得也很糟糕,不但老师能力不足,而且放着世界上最优秀的教课书不用了,一定要自己写一本。讲也讲不全,还有各种错误,哎……总之,如果你学习用用到的教材不行,那么可以肯定的是你的学习效率一定是很糟糕的。这就是为什么我们大学上完了,还是跟个傻瓜一样,还要在工作中再重新自学。

不过,就算自学,这些基础技术大概需要四五年的时间堆叠。我工作二十年了,这二十年来基本还是这些原理没变,无论形式怎么变,但是核心永远还是这些,理论创新很难,这是以不变应万变

学习效率

谈到学习效率,就需要拿出这张学习金字塔的图来了。从图可以看到学习方法分布两层,一种是被动学习,也是浅度学习,听讲,阅读,视听,演示都是在被动学习,而与人讨论,自己动手实践,教授给别人是主动学习。主动学习我们称之为深度学习,如果你不能深度学习,你就不能真正学到东西。这也是你会经常有“学那么多干什么,不用就忘了”,这就是浅度学习的症状了。

下面,我给出一些我自己觉得不错的学习经验:

1、挑选一手知识和信息源。对于学习方法:第一我们一定要到知识源去挑选知识,知识信息源非常关键,二手信息丢失太大了,谭浩强写的书就丢失太多信息了。目前计算机一手知识基本都是国外的,所以英文非常重要。我鼓励大家一定读第一手的资料。如果你英语有问题,至少要看翻译过来,最好是原汁原味翻译的,不要我理解了给你讲那种,那种也是被别人嚼一遍再讲给你你没有体会,是别人带着你,别人的体会会影响你,也许你的体会会比他更好,因为是你自己总结出来的东西,所以知识源很重要。

2、要注重基础原理。虽然可以忘记这个技术,但是原理记在心里,我可以徒手实现出来,而且通过原理可以更快学习其他类似的技术。所以原理很重要!当你学会C、C++要学Java和GO都很快。

3、使用知识图谱一定要学会使用知识图,把知识结构化。从一个技术关键点开始不断地关联和细化下去,比如:关于TCP协议,首先第一个要记住状态图,怎么建立连接,怎么断连接,状态怎么变迁。TCP没有连接,是靠状态维护连接的。其次,要了解TCP怎么保证可靠性,就是丢包以后怎么重传,重传有哪些技术点。然后,重传会让你联想到拥塞控制,拥塞控制到滑动窗口……。这基本就是TCP的所有东西了,找到关键点,然后顺着这个脉络一点点往下想,通过知识图关联就可以进行顺藤摸瓜。我们不需要记所有知识,那些手册的知识不需要记,你知道在哪里能找到就可以了。你脑子里面要有地图,学一个东西就跟在城市生活一样,闭上眼睛就知道地图,A点到B点怎么去大概方向要知道。我在北京我去广州,广州在南边,我大概坐飞机还是火车要心里有数。。

4、学会举一反三。就是用不同方法学一个东西,比如说学TCP协议,看书是一种方法,编程是另外一种方法,还有用做Debug去看的,用不同方法学一个东西会让你更加熟悉,你学一个知识的同时把周边也学了。比如说学前端能不能把HTTP学一下,比如说长连接、短连接,包括hp1、hp2有一些不一样的东西。

5、总结和归纳。只有学会总结和归纳,才能形成自己的思维框架、自己的套路、自己的方法论,以后学这个东西应该怎么学。就像学一门新的语言,不管GO语言,还是Rust语言,第一件事情就是了解内存是怎么管理的,数据类型什么样,第二是泛型怎么搞,第三是并发怎么弄。还有一些抽象怎么弄,比如说怎么解耦,怎么实现多态?套路这种东西只有学的多了以后才能形成套路,如果你只学会一门语言不会有套路,你要每年学门语言,不用学多精,你思考这个语言有什么不一样,为什么这个这种有玩法,那个有那种玩法,这些东西思考多了套路方法论就出来了。比如说Windows和Linux有什么不同,Linux和Unix又有什么不同?只有总结自己的框架、套路和方法,这些才永远不会被淘汰。

6、实践和坚持。剩下就是多做多练,多坚持,只有实践才会有经验,只有锻炼了才能够把自己的脂肪变没,所以,要把知识变成技能必须练,就像小学生学会加减乘除,还是要演练,必须多做题,题目做得多了,自然掌握得好。要挑选好的知识源,注重原理技术,有一些原理的基础的书太枯燥,但是我告诉你学习这些基础太值得投入时间,搬砖赚几十元不值得,因为赚的是辛苦钱,老了就赚不了,必须要赚更有能力的钱,这是学习投资。

小结

好了,该到这篇文章收尾的时候了,小结一下,如果你想更好的把握时代,提升自己,你需要知道这个时代的趋势是什么,需要什么样的人,这些人需要什么样的能力,这些能力是怎么获得的,投入到基础知识的学习就像“基建”一样,如果基础不好,不能长高,学习能力也是需要适应这个快速时代的重要的基础能力,没有好的学习能力,很快就会掉队被淘汰。

这些东西,是我从业二十年来的总结和体会,希望对你有用。

(全文完)

(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)

Q&A

Q:程序员被会被取代吗?

A:程序员不会被取代!这里面有两层含义:

第一:总是会有更难的问题需要程序来解决,难度级别会越来越高。但是肯定会有一些程序员被取代掉,技术含量不高的程序员会被取代。

第二:业务模型会变,20年前的业务模型是Web,过了十年又变成手机了,二十年前的数据量不大,单机系统就可以了,今天的数据量很大,变成分布式系统了,所以业务场景在不断变化。业务场景的变化,意味着不同业务场景下要用不同的工具。业务模型发生变化,技术也会随之发生变化,像我以前是Window程序员,现在Windows不做后端了就转做Linux,业务模型以前是集中式,现在是分布式的,但原理还是一样。所以只要业务模型会发生变化,程序员就不会被取代,只是会出现更高级的程序员,首先是汇编,然后是C语言,然后是面向更高层,无论到哪一个层级需要工程师的,这是改变不了的。

Q:众所周知基础很重要,但是大学基础理论没有经过实践,理论没有充分实践,工作追求实践,没有办法连接理论和实践的联系,我们学习TCP协议有很多理论,但是实际工作当中运用这些原理和实际结合是怎么做的?

A:问题总是会有的,我以前在公司总会在某一些时候出现问题,技术故障、应变力,出现故障的时候无论做什么事情都会出现故障,有的故障可能很快能解决,有的故障需要很长时间,懂基础原理比不懂基础原理的人调查更快。

如果没有故障我就接触不到很多东西,我觉得现在分工分的实在太细,不像我们那个时候不分,测试和运维也都做。我建议你找找运维的同学和架构师请教,如果可能可以帮他们打打下手,还有也可以通过开源项目实践相关的知识内容。

我有时候也到云平台买几台机器自己搭一个环境试一下,因为不实践、不动手真的很难掌握这些知识。有的公司真用不到这些东西,比如我很早以前就待过一个外包团队,工作上没什么技术,但是我还是用业余时间学习,很多时候,工作上学不到太多东西,还是要在工作之余自己搭环境学习。

而一些需要这些技术的公司,你如果不学懂这些技术的话,别人不会给你相应的工作的,所以,有很多时候,我们能从工作上学习到的东西并不多,更多还是要自己主动找地儿学。

Q:写了三年的业务代码感觉迷茫,想做更大的事情找不到方向?

A:依照上文所说,产品要研究用户体验,做工具是增加效率降低技术门槛和成本,还有做一些基础设施、架构方面的东西,是为了提升性能。开源软件有很多这样的内容,当你没有方向就老实学习基础就好了。

Q :如何看待未来的后端技术和发展,比如说Serverless

A :Serverless是需要更快上线更快维护。但是分布式的东西会带来很多问题。Serverless场景是什么样的,它到底解决的是什么问题,提高了哪些方面?也许它是昙花一现,什么问题没有解决,只是为了炫耀。我们过去二十年这种炫的技术太多了,问题是你解决了什么问题?如果你不能很好解决问题,那么这个技术就是为了炫耀而炫耀,所以还是回归本质问题。一但Serverless解决了实实在在的问题,那么就一定能够成为杀手级的技术。

Q:互联网的业务需求很多,加班很多,业务压力很大,怎么有时间学习?

A:就像前文说的要主动管理,怎么找到自己的时间,怎么样少加一些班,多学习,真的很重要。“两权相害取其轻”,我以前也是一样,以前做外包也是礼拜一到礼拜六,早上九点到晚上十点,但是我动作比较快一些,一开始我做工具,每次都让我做业务逻辑很类似的功能,我就自己抽象来做,需求很快就做完了,但是我不告诉他们我做完了,我说我还没有做完,我就腾出一点时间自己学习了。但是你也别太离谱了,我也加班,但是我自己学我的东西,我偷偷看书什么的,这些小技巧,如果你不充电、不学习你肯定到不了下一个地方去,所以千万别太透支了,还是要找到一些技巧的一些东西的,可以主动的管理自己的时间,不要你做完了别人又给你活儿,要学习主动管理。

Q:如何识别“XY问题”,有时候产品经理提出问题我这边没有思路,我又不了解这个领域?

A:你要跟产品经理弄清“XY问题”,就必须要了解这个领域。没办法,多少你要比他懂一些,才能够跟他反驳和争论。还有一个方法,当产品经理有时候无理取闹的时候,你可以问他:“你到底没有数据,你说这些有没有什么依据?”,不一定是数据,有没有依据支撑你说的有道理就行,证明需求不是自己拍脑袋决定的,有没有其他公司是这么做的?类似这样的也能倒回去,这里面还是有一些小技巧的。

Q:作为一个程序员因为工作性质在公司没有太多机会接触到架构实践的内容,感觉难以提升,怎么破局好?

A:没有人一开始可以接触这些东西,这里我分享我的经历。我一开始也接触不到,每个人入行都不可能接触到这些东西,但是我希望你一定要让别人看到你在学这个方面的东西。

首先你一定要让别人看到你在学架构方面的东西,你桌子上多少放点像分布式架构方面的书,让别人知道你在学这方面的知识,你和其他的程序员不太一样,这样别人可能愿意给你这个机会,给你分享更多知识经验。

第二个就是:主动找公司里面一些技术厉害的人聊天吃饭,我以前也是这样的,找一个高级程序员约他吃饭,找他讨教问题,就找他学习就可以了,学到一定时候你就问他,有没有一些什么周边的事情我可以帮你做的,就这样先认识人,认识了人以后跟他学习,找他讨教,别白请教别人,该请吃饭或者是红包,给别人是好学主动可以被人带的印象,有了这个印象以后别人才会给你机会,抓住那个机会就慢慢过去了,大概是这样。

Q:请问老师您对于Python如今的快速发展是怎么看的呢?

A:Python之所以发展很快速,是因为它降低了技术门槛,让一般人很快可以编程,比如在一些科学和大数据领域,让不懂编程的数学家们可以很快上手,这是Python降低开发门槛的一个特性。但是我们程序员了解Python其实还是一个脚本语言,做分布式或者更深层次的系统的时候,还是需要回归更为高级的语言。所以Python之所以火,其实更多是让那些并不是科班出身的一些程序员和孩子们更容易接受编程。这是我今天的理解,每个语言都有每个语言的场景,用python写一些自动化的脚本是挺好的,但是要做工业级的软件,它离Java还有一定的差距。

Q:Scala和Java有什么区别?

A:Scala比Java好用很多,但是Scala本质上还是Java类的基于JVM的,我觉得Scala很好,语言没有问题。不过社区里面更多还是Java,我觉得Java要先学好,Scala也挺好。

Q:有时候压力比较大,大到不想做执行,拖延症怎么办?事情还没有做完,拿不出时间学习,在公司放不开,有点闷如何解决?

A:还是那句话,认识自己,找到你的长处,哪一块地方你有足够自信。关键要找到自己有信心、能上手、有感觉的东西。多想想你的擅长点和兴趣点,最后勤能补拙。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值