第一个是基础,比如对集合类,并发包,IO/NIO,JVM,内存模型,泛型,异常,反射,等有深入了解,最好是看过源码了解底层的设计。比如一般面试都会问ConcurrentHashMap,CopyOnWrite,线程池,CAS,AQS,虚拟机优化等知识点,因为这些对互联网的企业是绝对重要的。而且一般人这关都过不了,还发闹骚说这些没什么用,为什么要面试。举一例子,在使用线程池时,因为使用了无界队列,在远程服务异常情况下导致内层飙升,怎么去解决?你要是连线程池都不清楚,你怎么去玩?再举一例,由于对ThreadLocal理解出错,使用它做线程安全的控制,导致没能实现真的线程安全,你怪我哦?所以作为一个拿两万的JAVA程序员这点基础是必须的。
第二你需要有全面的互联网技术相关知识。从底层说起,你起码得深入了解mysql,redis,mongodb,nginx,tomcat,rpc,jms等方面的知识。你要问需要了解到什么程度,我可以给你说个大慨。首先对于MySQL,你要知道常见的参数设置,存储引擎怎么去选择,还需要了解常见的索引引擎,知道怎么去选择。知道怎么去设计表,怎么优化sql,怎么根据执行计划去调优。高级的你需要去做分库分表的设计和优化,一般互联网企业的数据库都是读写分离,还会垂直与水平拆分,所以这个也有经验的成分在里面。然后redis,mongodb都是需要了解原理,需要会调整参数的,而nginx和tomcat几乎都是JAVA互联网方面必配,其实很阿里的技术栈选择有点关系。至于rpc相关的就多的去,必须各种网络协议,序列化技术,SOA等等,你要有一个深入的理解。现在应用比较广的rpc框架,在国内就是bbo了,可以自行搜索。至于jms相关的起码得了解原理吧,一般情况下不是专门开发中间件系统和支撑系统的不需要了解太多细节,国内企业常用的主要是activeMQ和kafka。你能对我说的都研究的比较深入,阿里p6我觉得是没问题的,当然这个还需要看你的架构能力方面的面试表现了。
第三就是编程能力,编程思想,算法能力,架构能力的考量。首先2W程序员对算法的要求我觉得还是比较低,再高级也最多红黑树吧,但是排序和查询的基本算法得会。编程思想是必须的,问你个AOP和IOC你起码的清清楚楚,设计模式不说每种都用过,但是也能深入理解个十四五种。编程能力这个我觉得不好去评价,但是拿一个2000W用户根据姓名年龄排序这种题目也能信手拈来。最后就是架构能力,这种不是说要你设计个多牛逼多高并发的系统,起码让你做一个秒杀系统,防重请求的设计能快速搞定而没
‘贰’ 现在程序员一个月的工资大概多少
根据北上广深历年数据来看维持在一两万左右但是这中间也看个人能力和水平进行薪资计算
对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
世界上第一位程序员是英国着名诗人拜伦的女儿AdaLovelace,曾设计了巴贝奇分析机上解伯努利方程的一个程序。她甚至还建立了循环和子程序的概念。由于其在程序设计上的开创性工作,AdaLovelace被称为世界上第一位程序员。
计算机科学发展到今天(21世纪初期),程序员从事的人群很多,分工也不相同,从大的方面可以分为以下几类:asp程序员、web前端开发程序员、delphi程序员、php程序员、powerbuilder程序员、C程序员、linux程序员、net程序员、vb程序员、java程序员、javascript程序员、C++程序员、Python程序员、ABAP程序员、android程序员、iOS程序员。
30%的技术人员从门户网站获取开源技术信息,剩下的70%的技术人员都是从专业的开源社区和开源厂商的技术网站上获取信息,包括有SourceForge、LinuxToday、OpenOffice和IBMdW等。
‘叁’ 为什么很少见到工资很高的程序员炫富
我们先来说说炫富。
炫富,本身就是一个特别2B的事。
即便是有钱人,也分贵族和土豪,真正的贵族不会炫富,炫富的都是土豪。
你见过马云炫富吗?他也是一个有钱人。炫富这事儿,和一个人的素质与修养相关。
有人说,你炫耀什么,就是缺少什么,也许吧。
再者,炫富有什么意义呢?看到别人羡慕嫉妒恨的眼神获得一种心理满足?这人得多空虚啊??更何况,苍蝇不叮无缝的蛋,有的炫富还可能招来灾祸。
就好像我们会看到一个现象:越是有本事的人越谦虚,越是一瓶子不满半瓶子晃荡的主越能?N瑟。大江大海走进它,是沉寂的;反而是小河小溪,才会流水哗啦啦的响。
程序员,是靠脑子混饭吃的,是一个高知群体。
虽然收入较高,但还是一个打工仔,BAT的李彦宏、马云、马化腾还没炫呢,人家老板都非常低调,你一伙计成天炫个什么劲?
跟朋友炫?跟同事炫?跟亲属炫?跟同学炫?
谁会喜欢一个炫富的人?
人都喜欢比较,炫富的人通过比较沾沾自喜,被炫的人通过比较郁郁寡欢,炫着炫着别人就给你贴上了虚荣的标签,炫着炫着你的朋友就越来越少了??
有知识有文化的人,一方面知道自己的不足,另一方面会学会知足,程序员这样的群体,会有这样的自知。
再者,程序员也没空去干这种无聊的事。
有人开玩笑的讲,程序员不是经常加班,而是经常不下班。
天天忙于工作,沉浸于代码,别说炫富了,出轨都没空。前台MM约你看电影,都和人家讲改完这个bug先??
天天不是在办公室,就是在家里,人际交往相对简单,炫富的场景确实相对少一些。
就算要装逼,也要有装逼的对象,装逼的机会,还要研究装逼的姿势,而程序员,明显没有这样的时空和时间。
最最重要的是,程序员的世界里,就没有炫富这两个字,只有一条简单的鄙视链。
鄙视链的逻辑也很简单:老婆漂亮的程序员>老婆不漂亮的程序员>有女朋友的程序员>单身程序狗。在单身狗之间才有语言、编辑器和操作系统的互相鄙视。
程序员会买一台两万块的苹果笔记本电脑,但不会买一个两万块的LV包包。
程序员最愿意把钱花在电子产品上!
你身边有没有这样的技术人员,他可能收入高也可能收入低,但他有苹果三件套:iPhone、iPad、MacBook,甚至iWatch??
他们把钱花在“生产力工具”上,他们喜欢接触新的电子产品,喜欢玩新、奇、怪。可能在有的人看来,程序员用个iPhone X也算是一种炫富吧。
还记得前阵儿,我和一个中学同学聚会喝酒扯淡,聊到机械键盘,他听说我两个机械键盘,一个键盘一千多块,大为惊讶,他觉得就是二三十块钱的东西??其实,只是大家的消费观念不同罢了,就好像我也不理解他为什么买块手表花了好几万一样,这在程序员看来,性价比很低而且一点科技感也没有。
无论穷富都没必要让别人知道。穷了别人不一定会帮你,有的可能还会笑话你;富了别人也许会嫉妒你,甚至私下说你的不是。过日子是自己的事,没必要让别人知道那么多。