1、成为大牛,基础要很扎实很扎实。不能小看基础,很多流行的框架什么的,其实都是从基础起来的,你理解了基础,很多东西都可以理解的。
2、多读源代码,官方的。有问题,直接找官方,最快最佳最直接。
3、有一定的条理,做事情,就是要有条理性,会分解,把复杂的问题简单化。简单化,就是0和1一样的简单的那种。
可以深耕的领域,其实,这个看你目前所在的行业,做自己熟悉的最好,java目前比较适合的是后台、金融、互联网方面。
2. 如何成为编程开发技术大牛
首先确定自己的位置:
一、菜鸟
第1 层楼属于地板层,迈进这层楼的门槛是很低的。基本上懂计算机的基本操作,了解计算
机专业的一些基础知识,掌握一门基本的编程语言如C/C++,或者Java,或者JavaScript,...,
均可入门迈进这层。
二、大虾
从第1 层爬到第2 层相对容易一些,以C/C++程序员为例,只要熟练掌握C/C++编程语言,
掌握C 标准库和常用的各种数据结构算法,掌握STL 的基本实现和使用方法,掌握多线程编程
基础知识,掌握一种开发环境,再对各种操作系统的API 都去使用一下,搞网络编程的当然对
socket 编程要好好掌握一下,然后再学习一些面向对象的设计知识和设计模式等,学习一些测
试、软件工程和质量控制的基本知识,大部分人经过2~3 年的努力,都可以爬到第2 层,晋升
为"大虾"。
三、牛人
由于"大虾"们经常被一些疑难问题给卡住,所以有了"大虾"们只好继续学习,他们需要将原
来所学的知识进一步熟练掌握,比如以熟练掌握C++编程语言为例,除了学一些基础性的枯和州C++
书籍如《C++ Primer》,《Effective C++》,《Think in C++》,《Exception C++》等之外,更重要
的是需要了解C++编译器的原理和实现没蔽机制,了解操作系统中的内部机制如内存管理、进程和
线程的管理机制,了解处理器的基础知识和代码优化的方法,此外还需要更深入地学习更多的数
据结构与算法,掌握更深入的测试和调试知识以棚灶及质量管理和控制方法,对各种设计方法有更好
的理解等。
学习上面说的这些知识不是一挥而就的,不看个三五十本书并掌握它是做不到的。以数据结
构算法来说,至少要看个5~10 本这方面的着作;以软件设计来说,光懂结构化设计、面向对
象设计和一些设计模式是不够的,还要了解软件架构设计、交互设计、面向方面的设计、面向使
用的设计、面向数据结构算法的设计、情感化设计等,否则是很难进到这个楼层的。
主要还是多接触,多看书,多编码,多自己动脑子解决问题,多帮助别人,积累经验
3. 如何成为一个优秀的程序员
讲几个小的方面吧。
批评还是启发?
代码审查是一个不错但很少用的想法。在一个团队里,优秀的程序员另一个任务就是要指导经验比你少的程序员,但是主要以指导和启发为主,不是贬低和公开批评,因为消极的态度不利于接下来团队合作的开展。
学会分享
搞编程的没有去逛一些论坛都不好意思说自己是干编程这个行业的。优秀的程序员往往会在这些论坛帮助别人,而实质上,输出就是最好的学习。在一个团队中也是一样,帮助他人解决问题收获更多,你也将不断地得到成长。
劳逸结合
每天工作 24 小时不会让你更有效率!不少程序员年纪轻轻就有腰椎盘突出、颈椎病、肩周炎、腰肌劳损、圆肩驼背等职业病。程序员们需要加强锻炼,运动不仅仅可以加强肌肉的力量和耐力,而且也能够活动身体的各个关节,有效缓解长时间保持一个动作导致局部肌肉过劳。
另外,编程是一项艰苦的脑力劳动活;有时你的大脑确实需要休息一下,休息是为了更好的工作。否则,你的工作质量将大打折扣。业余时间养成一项自己的个人爱好,确保自己可以放松并沉浸其中。如果是球类运动,效果更好,它将让你保持旺盛的精力和活力。
不要闭门造车
留意网络各种平台,学习新语言和框架、参与讨论以及看看同行在干什么。多关注业界在干什么,这将让你的视野更加广阔,不致于为了编程而编程。
4. Java绋嫔簭锻桦备綍鍙桦缑镟村姞鐗涳纻
瀵笿ava绋嫔簭锻樻潵璇达纴濡傛灉鍏朵粬浜虹О璧炰綘鏄澶х墰绾т汉鐗╋纴闾d箞灏卞缑鐪熷绩镄勪负浣犻紦鎺岋纴杩欎篃灏辫〃鏄庝綘鍦↗ava鎶链鐣岀殑姘村钩宸茬粡灞炰簬涓娄箻镄勚傚逛簬涓涓狫ava绋嫔簭锻樻潵璇达纴濡傛灉涓嶆兂璁╄嚜宸卞彉寰楁洿鐗涳纴闾d箞灏变细榛橀粯镞犱负锛屽钩搴+骞冲焊=娌¢挶銆佹病鍓嶉旓纴𨱍冲繀浣犱篃涓嶆効镒忚嚜宸辨垚涓鸿繖镙风殑Java绋嫔簭锻樸傚寳澶ч潚楦熶粙缁岼ava绋嫔簭锻桦备綍鍙桦缑镟村姞鐗?
Java绋嫔簭锻桦备綍鍙桦缑镟村姞鐗?
1.閲嶈嗗︿範
鍏跺疄寰埚氢汉閮界煡阆掳纴褰扑笅镄勮嚜宸辫繃寰椾竴鑸鑸锛岃佹兂镊宸辫繃寰楁洿濂斤纴闾d箞灏卞缑锷锷涘︿範锛屽繀椤讳粠镊韬閲嶈呙ava瀛︿範銆备絾鏄寰埚氢汉閮藉仛涓嶅埌锛屽氨濂芥瘆寰埚钦ava绋嫔簭锻橀兘鐭ラ亾镊宸辫佸彟澶栬姳镞堕棿鍦↗ava镄勫︿範涓婏纴浣嗗氨鏄娌℃湁锷炴硶浠桦嚭琛屽姩鍦↗ava镄勫︿範涓婏纴镓浠ヤ綘蹇呴’瑕佹敼鍙樿繖涓鐜扮姸锛屾瘆濡傚氱湅镣逛功绫嶃
2.淇濇寔镐濊
寰埚钦ava绋嫔簭锻樻棩澶崭竴镞ラ吨澶岖潃钖屾牱镄勫伐浣滐纴鐪嬩技姣忓ぉ閮藉緢蹇欙纴鍏跺疄镞╁氨宸茬粡涓уけ浜呜嚜宸辩殑镐濊冿纴阆囧埌闂棰桡纴灏辨兂浠ュ墠鏄镐庝箞澶勭悊镄勶纴浠庢潵娌℃湁𨱍虫兂链変粈涔堟柊镄勫勭悊鏂瑰纺娌℃湁銆傚苟涓斿緢澶氢汉浠庝笟寰埚氩勾锛岄亣鍒伴梾棰桡纴涓嶆槸镊宸卞厛镐濊冿纴钥屾槸𨱍崇潃鍏堢栌搴︿竴涓嬶纴铹跺悗鎸夌収锏惧害镄勬柟娉曟潵銆
3.浼桦寲鎶链
浣犳墍锅氱殑涓鍒囧嗳澶囷纴浠ュ强杞蹇甸兘搴旇ユ槸锲寸粫镌浼桦寲浣犵殑Java鎶链銆傛瘆濡傚潥鎸佸︿範Java锛岄偅涔埚氨鑳藉熷氩氢简瑙d竴浜涙柊镄凧ava鎶链锛屼笉鏂娣卞叆Java镄勫︿範锛岃繖瀵逛綘涓嶆柇镄勪紭鍖朖ava绋嫔簭链夊緢澶х殑甯锷┿备紭鍖朖ava鎶链涓嶆槸涓澶曚竴链濊兘澶熷畬鎴愮殑锛岄渶瑕侀暱涔呯殑鍧氭寔锛屼綘涓嶆柇灏濊瘯镌浼桦寲锛岄偅涔堜綘灏变细鍙桦缑瓒婃潵瓒婄墰銆
5. 作为一个程序员如何优雅的赚钱
本人10年开册羡发培训经验拿姿配,期间经历了JavaWeb,Android,H5,大数据,PHP等多个不同的方向的开发,也做过软件培训公消指司的金牌讲师,很有兴趣回答你这个问题。
如果一个程序员可以优雅的挣钱,也不是不可以,可以从两个方向进行突破。
1.成为行业内的技术大牛
当你成为大牛之后,薪资自然就高了,也可能不用非要在一线进行开发了,做个架构或者技术指导,相对来说就可以轻松赚钱了。
另外当名气足够大的时候,随便出去做个技术讲座,演讲或技术指导,出场费就得几千几万,比纯做技术好的多。
你也可以写书,写教程,写博客,录视频等,只要内容写的好,随便一卖,就能轻松躺着挣钱。
当然这都是基于技术很6的条件上。
2.在别的方面进行突破
如果自己的技术不行,那就想办法在别的方面突破吧,比如接点私活,自媒体什么的。
我从事开发培训10年,擅长JavaWeb,Android,H5,大数据,PHP等多个不同的技术方向。后续我会写一系列关于互联网技术方面的文章,感兴趣的朋友可以
6. 技术大牛是如何炼成的
如果回答对楼主有帮助,给个采纳好不,谢谢啦
破仑说:不想当将军的士兵,不是好士兵。无论你在做开发、测试、运维,你都是一个技术人员,而我相信,每个技术人员的心中,都有一个成为技术大牛的目标,这个目标鞭策着每一位有梦想的人,去努力和改进自己。 梦想总是在现实面前有过一度的彷徨,因为你会发现,真正的工作和心中的理想状态天壤之别,不是一码事。当你面对的是,天天加班写业务代码,每天都有执行不完的测试,扛机器接网线敲shell命令,你也许会怀疑,这是我想要的人生吗?接下来,就让我们带着疑惑,去寻找答案!三大误区误区一:拜团队技术大牛为师,给你开小灶首先,不可否认,大牛的确有能力将你锻炼培养成另一位大牛,但是,无论是单独给你开小灶,还是培训整个团队,时间成本消耗过大,因此,一般没有大牛愿意这样做。其次,很多人都认为不懂就问是个好习惯,但是你忽略了很多问题大牛是不屑回答的,比如像“jvm的-Xmn参数如何配置”这种上网能找到答案的问题,只会浪费他人以及自己的时间。最后,大牛是个极具小众的群体,因此,直接请教和辅导的机会非常少,即使有幸参加过几次真正大牛的培训,也不太可能让你嫣然一变,成为技术大牛的。总而言之一句话,以自己为主,系统且有针对性的进行学习;然后再以请教学习为辅提升自己。误区二:不断重复,停滞不前首先,要认清一个事实,写不好业务代码和只把业务代码写好的程序员,在技术大牛的世界里,没有什么本质的不同。如果光是沉浸在一个基础技术里积累学习,那么毫无疑问,这是你的惯性和惰性在束缚着你前进,打破它,不断向更大的挑战迈进,最终成为他人眼中的大牛。误区三:大环境的不公与碎片化时间首先,大多数人都在抱怨中国的环境对于自己可能性的扼杀,并认为很多本来能成为大牛的人才被现实埋没,不可否认,这个理由具有一定的客观性,因为环境的确可以改变一类人的发展和命运。但是,如果我们转过身来自问,是否自己真的已经倾尽全力?我相信,总是存在一些人,借着社会不公的理由,给予自己偷懒的借口;毕竟,大牛还是会有的,万一就是你呢?其次,如果你抱怨现如今社会的碎片化时间,不能有整段时间提供自己深入学习,那么,是否先改变自己的一个观念,那就是碎片化时间也可以深入学习。而未来,利用碎片化时间学习将可能成为一种趋势。正确的做法1、尽量多的尝试当你每次都做得更多,随着时间的发展,将会是这样,产品讨论需求找你、测试有问题也找你、老大对外支撑也找你,于是,你就成了这个系统的“专家”了。要想有机会,那就得与众不同,努力做到更多。怎么做得更多呢?可以从以下几个方面着手:1)熟悉不止你负责的更多业务,熟悉不止你写的更多代码。好处:需求分析的时候更加准确,能够在需求阶段就识别风险、影响、难点问题处理的时候更加快速,因为相关的业务和代码都熟悉,能够快速地判断问题可能的原因并进行排查处理方案设计的时候考虑更加周全,由于有对全局业务的理解,能够设计出更好的方案2)熟悉端到端比如说你负责web后台开发,但实际上用户发起一个http请求,要经过很多中间步骤才到你的服务器(例如浏览器缓存、DNS、nginx等),服务器一般又会经过很多处理才到你写的那部分代码(路由、权限等)这整个流程中的很多系统或者步骤,绝大部分人是不可能去参与写代码的,但掌握了这些知识对你的综合水平有很大作用,例如方案设计、线上故障处理这些更加有含金量的技术工作都需要综合技术水平。3)自学一般在比较成熟的团队,由于框架或者组件已经进行了大量的封装,写业务代码所用到的技术确实也比较少,但我们要明白“唯一不变的只有变化”,框架有 可能要改进,组件可能要替换,或者你换了一家公司,新公司既没有组件也没有框架,要你从头开始来做。这些都是机会,也是挑战,而机会和挑战只会分配给有准备的人。以java为例,大部分业务代码就是if-else加个数据库操作,但我们完全可以自己学些更多java的知识,例如垃圾回收,调优,网络编程等,这些可能暂时没用,但真要用的时候,不是google一下就可以了,这个时候谁已经掌握了相关知识和技能,机会就是谁的。2、尽量做到更好世界上没有完美的东西,你负责的系统和业务,总有不合理和可以改进的地方,识别这些“不合理”和“可改进”的地方,并且给出解决方案,然后向主管提出,一次不行两次,多提几次,机会,就是自己去争取和把握。例如:重复代码太多,是否可以引入设计模式?系统性能一般,可否进行优化?目前是单机,如果做成双机是否更好?版本开发质量不高,是否引入高效的单元测试和集成测试方案?目前的系统太庞大,是否可以通过重构和解耦改为3个系统?阿里中间件有一些系统感觉我们也可以用,是否可以引入 ?3、尽量动手实践光看不用效果差例如:学习了jvm的垃圾回收,但是线上比较少出现FGC导致的卡顿问题,就算出现了,恢复业务也是第一位的,不太可能线上出现问题然后让每个同学都去练一下手,那怎么去实践这些jvm的知识和技能呢?Netty我也看了,也了解了Reactor的原理,但是我不可能参与Netty开发,怎么去让自己真正掌握Reactor异步模式呢?看了《高性能MySQL》,但是线上的数据库都是DBA管理的,测试环境的数据库感觉又是随便配置的,我怎么去验证这些技术呢?框架封装了DAL层,数据库的访问我们都不需要操心,我们怎么去了解分库分表实现?怎么办?1)系统化的学习这个是第一阶段,看书、google、看视频、看别人的博客都可以,但要注意一点是“系统化”,特别是一些基础性的东西,例如JVM原理、Java 编程、网络编程,HTTP协议等等,这些基础技术不能只通过google或者博客学习,一般做法是先完整地看完一本书,有了全面的了解,然后再通过google、视频、博客去有针对性地查找一些有疑问的地方,或者一些技巧。2)自己动手丰衣足食这个步骤就是解答上文提到的疑惑,也就是自己去尝试搭建一些模拟环境,自己写一些测试程序。例如:Jvm垃圾回收:可以自己写一个简单的测试程序,分配内存不释放,然后调整各种jvm启动参数,再运行的过程中使用jstack、jstat等命令查看jvm的堆内存分布和垃圾回收情况。这样的程序写起来很简单,简单一点的就几行,复杂一点的也就几十行。Reactor原理:自己真正去尝试写一个Reactor模式的Demo,不要以为这个很难,最简单的Reactor模式代码量(包括注释)不超过200行(可以参考Doug Lee的PPT)。自己写完后,再去看看netty怎么做,一对比理解就更加深刻了。MySQL:既然有线上的配置可以参考,那可以直接让DBA将线上配置发给我们(注意去掉敏感信息),直接学习;然后自己搭建一个MySQL环境,用线上的配置启动;要知道很多同学用了很多年MySQL,但是连个简单的MySQL环境都搭不起来。框架封装了DAL层:可以自己用JDBC尝试去写一个分库分表的简单实现,然后与框架的实现进行对比,看看差异在哪里。用浏览器的工具查看HTTP缓存实现,看看不同种类的网站,不同类型的资源,具体是如何控制缓存的;也可以自己用Python写一个简单的HTTP服务器,模拟返回各种HTTP Headers来观察浏览器的反应。3)交流分享,发现自己的不足之处。与人交流分享,既需要我们将一个知识点进行系统化的梳理,并且考虑各种细节,这会促使我们进一步思考和学习。同时,听的人可以有不同的理解,或者有新的补充,这就令知识技能体系变得更加完善。后记无论结果怎样,当我们谈论过程的艰难与乐趣之时,是否可以不去计较自己是否付出太多?因为一个真正热爱技术的人,只会勇往直前,不忘初衷,坚持到底!