程序员是学的越多越好,还是专精一些好呢?
程序员是学的越多越好,还是专精一些好呢?
-----
网友解答:
-----
其实搞开发是比较苦逼的,新技术层出不穷,干一辈子学一辈子。大部分的程序员,都是社交、管理类业务软件,没多少高精尖,个人建议,无论是技术还是业务,先弄精一块,在这个领域,我就是最牛的;然后以此为基点向外发散,逐步把相关的弄通,进而弄精,不可能编一辈子代码的,要为40之后的道路提前规划。对程序员来讲,基础的、底层一些的,最常用的技术框架,常用设计模式,数据库,编码规范,UML,DDD等,这些基本知识,在毕业2-3年内弄懂弄会弄精,熟练使用、知其所以然,就已经很不错了。在此基础上可向架构延伸,向业务领域延伸,向管理延伸,尽量找机会参与综合的、复杂的、大型的系统和项目,有几个项目锻炼后,毕业5年内在大部分的软件公司中混个高级点的技术职位肯定没问题。
-----
网友解答:
-----
问题的关键在于你学的不多你找不到工作,你学的不深你也找不到工作!
我曾经去平安面试的时候,因为大学学的是电子信息工程,学过C,面试官硬是让我对比了下JAVA和C的异同,编程风格,最后说到汇编语言,单片机!我真的是无力吐槽啊。。。所幸还是过了,然后问得东西大部分还是本语言相关的,比如SQL,JS等语言也会提及,也会问是否知道C等的开发!
比如说JAVA面试:
多的方面面试官起码会问你JAVA基本类型,面向对象思想,文件操作,多线程模型,SQL操作与优化,单例模式等设计模式,spring框架,mybatis框架,netty框架,redis,memcache等缓存,消息中间件,性能监控等等东西!
深的起码问你spring的原理ioc,DI,怎么用的反射来管理bean的,问你netty基于什么?NIO,reactor模型是啥?有多少线程模型?会问你JVM底层原理,垃圾回收算法,fullGC的触发原因,怎么解决?垃圾收集器有几种?区别是啥?
所以作为一个程序员,就要有程序员的觉悟,不仅要学的多,还要精通得多!
不过理论上是不推荐所有东西都要求精通的,一个人的精力毕竟有限,不可能所有问题都亲力亲为!只有精通了一门语言或者技术,就能融会贯通所有的编程,因为技术都是相通的,只有捅破一扇门,才能有捅破后面的无数门的机会,只有去尝试了,才知道能不能做到!
比如说之前我接手一个项目,花了两天时间看代码,然后就让我接需求进行开发(尽管很抵触),最后在做的过程中把项目也认识了个七七八八,如果只是单纯的看代码,我应该掌握的没那么快,所以学习新技术还是靠自己的用心深入的去钻研,去练习!
我还走在多学多精通的路上,期待你的交流,更多技术分享,敬请关注。。。
-----
网友解答:
-----
这是一个很好的问题,作为一名计算机专业的教育工作者,我来说说我的看法。
首先,经过多年的发展,当前程序员的概念边界已经有了很大的扩展,程序员也划分成了很多种类型,不同类型的程序员对于技术能力的要求也有所不同。对于从事应用场景开发的程序员来说,知识的广度比较重要,这样能够快速适应不同场景下的开发任务,而对于专注技术平台研发的程序员来说,专业精度更重要。
当前的IT互联网行业正在经历从消费互联网向工业互联网覆盖的过程,程序开发任务以技术平台为分界线分成了两大类,一类任务是基于各种技术平台来完成行业场景的落地应用,比如基于云计算平台、大数据平台和人工智能平台完成的各种行业场景开发,这一类开发任务的整体数量是非常大的,而且在工业互联网的推动下,未来大量的行业企业都需要基于技术平台来完成创新。
另一类程序员则专注于各种技术平台的研发,包括云计算平台、大数据平台、物联网平台、人工智能平台等,而且在工业互联网的推动下,技术平台也在不断细化,有的企业会在云平台的基础上做PaaS类平台,有的企业会基于大数据平台做行业大数据平台等等,这同样需要大量的程序员。
通常情况下,我们把基于技术平台做行业落地应用的程序员称为应用级程序员,而从事技术平台研发的程序员称为研发级程序员,二者的专注点是不同的,开发方式和团队合作方式也有一定的区别。
应用级程序员对于知识的广度要求更高一些,毕竟在技术落地应用的过程中,需要考虑到大量的技术细节,这些技术细节虽然难度不算大,但是涉及到的技术却比较杂。相对于应用级程序员来说,研发级程序员则更专注于平台的各种系统级功能,而系统级功能往往有很高的性能要求,所以就需要程序员对于操作系统和算法都有较深的理解,而且平台研发的团队规模往往都很大,每个程序员只需要关注一个点就可以了。
我从事教育、科研多年,目前在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以私信我!
-----
网友解答:
-----
学以致用,否则何益
-----
网友解答:
-----
个人觉得需要向T型人才靠拢。
首先,知识面需扩展。随着科技的发展,信息技术更新很快,作为程序员需要跟上时代的步伐,学习并掌握业界主流的技术,并形成一定的知识积累,扩展自己的知识面和技术技能,达到对主流的知识有所掌握,有所了解。这样才不会和时代脱节,不至于和别人交流的时候,出现对于一些技术感到陌生或者没听过的尴尬局面。
其次,技术需要有深度。根据自己的兴趣爱好和技术特长,在某一个技术领域进行深耕、熟练掌握、融会贯通、读懂源码、吃透原理、深入研究,并能提出自己独到的见解,加以改进,形成自己独有的成就,成为该领域的行业专家。
最后,个人的时间和能力是有限的,针对越来越多的技术和知识点,需要自己进行分门别类地去总结,分析,掌握好的学习方法和学习技巧,并长期坚持系统学习,学以致用,努力提升自己的知识宽度和深度。
------------------
推荐阅读:
上一篇:对考公务员和事业编制有啥看法?
下一篇: 练毛笔字的时候竖笔总是写不直,怎么提高?