导航:首页 > 程序命令 > 学了三年的程序员

学了三年的程序员

发布时间:2023-03-04 01:44:45

A. 工作3年的java程序员应该掌握哪些技能

1、基本语法
这包括static、final、transient等关键字的作用,foreach循环的原理等等。
2、集合
非常重要,基本上就是List、Map、Set,各种实现类的底层实现原理,实现类的优缺点。
集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的实现原理,
(1)ConcurrentHashMap的锁分段技术
(2)ConcurrentHashMap的读是否要加锁,为什么
(3)ConcurrentHashMap的迭代器是强一致性的迭代器还是弱一致性的迭代器
3、设计模式
设计模式在工作中是非常重要、非常有用的,23种设计模式中重点研究常用的十来种就可以了,面试中关于设计模式的问答主要是三个方向:
(1)你的项目中用到了哪些设计模式,如何使用
(2)知道常用设计模式的优缺点
(3)能画出常用设计模式的UML图
4、多线程
假如有Thread1、Thread2、Thread3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现?
聪明的网友们对这个问题是否有答案呢?不难,java.util.concurrent下就有现成的类可以使用。
另外,线程池在面试中也是比较常问的一块,常用的线程池有几种?这几种线程池之间有什么区别和联系?线程池的实现原理是怎么样的?实际一些的,会给你一些具体的场景,让你回答这种场景该使用什么样的线程池比较合适。
最后,虽然面试问得不多,但是多线程同步、锁这块也是重点。synchronized和ReentrantLock的区别、synchronized锁普通方法和锁静态方法、死锁的原理及排查方法等等,关于多线程,
5、JDK源码
要想拿高工资,JDK源码不可不读。总结一下比较重要的源码:
(1)List、Map、Set实现类的源代码
(2)ReentrantLock、AQS的源代码
(3)AtomicInteger的实现原理,主要能说清楚CAS机制并且AtomicInteger是如何利用CAS机制实现的
(4)线程池的实现原理
(5)Object类中的方法以及每个方法的作用
6、框架
老生常谈,面试必问的东西。一般来说会问你一下你们项目中使用的框架,然后给你一些场景问你用框架怎么做,比如我想要在Spring初始化bean的时候做一些事情该怎么做、想要在bean销毁的时候做一些事情该怎么做、MyBatis中$和#的区别等等,这些都比较实际了,平时积累得好、有多学习框架的使用细节自然都不成问题。
7、数据库
一些基本的像union和union all的区别、left
join、几种索引及其区别就不谈了,比较重要的就是数据库性能的优化,如果对于数据库的性能优化一窍不通,那么有时间,还是建议你在面试前花一两天专门把SQL基础和SQL优化的内容准备一下。
8、数据结构和算法分析
数据结构和算法分析,对于一名程序员来说,会比不会好而且在工作中绝对能派上用场。数组、链表是基础,栈和队列深入一些但也不难,树挺重要的,比较重要的树AVL树、红黑树,可以不了解它们的具体实现,但是要知道什么是二叉查找树、什么是平衡树,AVL树和红黑树的区别。
9、Java虚拟机
Java虚拟机中比较重要的内容:
(1)Java虚拟机的内存布局
(2)GC算法及几种垃圾收集器
(3)类加载机制,也就是双亲委派模型
(4)Java内存模型
(5)happens-before规则
(6)volatile关键字使用规则

B. 在一线城市上班的程序员,3年后平均工资是多少

程序员的行业根据环境,地域,行情,技术等因素来决定薪资,所以除了专业的数据分析平台,我个人只能给出一个大概的范围吧:

虽然小明知道现在的待业已经不算高了,但是重在安逸稳定,所以他并没有跳槽的想法,哪怕看到网上一些言论说四年的工资多少,他也直接无视,但是程序行业日新月异,老东家坚持不住了,倒闭了,于是小明又要重新找工作了,这个时候的小明五年工作经验,税前16k,于是他写简历,因为他有资历,了解了现在的行情,洋洋洒洒写了一份很精致的简历附上期望月薪30k,可是面试的过程并不顺利,很多问题他都答不上来,要么就是基础忘记了,要么就是新技术他不会,于是他开始迷茫了~~

C. 一个刚做Java程序员如何规划自己的3年计划

我来给你一个好的回答吧,也算是经验之谈。
1。如果是初学者,那么一定需要多多增加基础知识,thinking in java等都是不错的书。
2。尽量多多学习一下整个JAVA EE的知识,毕竟单独用JAVA的不是太多。
3。看代码,读代码,学代码,经常去CSDN上面回答别人的问题,不会回答的,自己在网上找,尽量帮别人回答。
4. 争取一年内 熟悉常用技术。

第二年,跳槽,一定选择一个好的公司,大的公司,工作累的公司,别在乎工资。
如果你在上海,建议加入上海惠普GDCC。
在HP呆两年,再次跳槽。

此时你在HP的两年,已经不需要你计划什么了,你已经成为一个优秀的程序员了,当然 算不上是高级的。

第四年,再次跳槽,这次要选择比较精确了,emc oracle ptc 等(工资一定要高,越高越好)都是可以选择的公司,然后呆5年。 你会发现之前3年的东西非常有用,而且可以学到另外更加实用的东西。

后面的没经验了,也在摸索中。。

祝福你。。

另外 IDE一定要熟悉。项目管理要熟悉。

OK

D. 程序员需要学些什么

程序员的岗位需求很多,例如大型网络公司、软件开发公司等等都需要程序员。

程序员需要学习:

1、掌握数据及其转换、数据的机内表示、算术和逻辑运算,以及相关的应用数学基础知识;

2、理解计算机的组成以及各主要部件的性能指标;

3、掌握操作系统、程序设计语言的基础知识;

4、熟练掌握计算机常用办公软件的基本操作方法;

5、熟练掌握基本数据结构和常用算法;

6、熟练掌握C程序设计语言,以及C++、Java、Visual Basic中的一种程序设计语言;

7、熟悉数据库、网络和多媒体的基础知识;

8、掌握软件工程的基础知识,了解软件过程基本知识、软件开发项目管理的常识;

9、了解常用信息技术标准、安全性,以及有关法律、法规的基本知识;

10、了解信息化、计算机应用的基础知识;

11、正确阅读和理解计算机领域的简单英文资料。

程序员必备技能:

1、熟练开发工具

做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。

而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVAOne很可能会成为未来的主流开发工具之一。

其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,CBuilder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。

另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。

2、熟知数据库

作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。

虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL,Postgres等。

3、了解操作系统

当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。

要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。

Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。懂得网络协议TCP/IP。

在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式。

从最早的客户/服务器结构,到今天的WEBServices,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,深入掌握TCP/IP协议是非常必要的。

至少,需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。

4、明白DCOM/CORBA/XML/WEBServices存在的意义

随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。

XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布式计算的基石之一。

5、不要将软件工程与CMM分开

大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员。

一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能。

如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。

6、需求理解能力

程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求。

要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。

7、模块化思维能力

作为一个优秀的程序员,他的思想不能局限在当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。

这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。

就业方向:

1、网络开发

现在网络已经成为世界通讯的一座桥梁,好像Javascript、PHP、Ruby这几类开发语言大部分是用作网络开发方面。

2、企业软件开发

JAVA、C#、VB这几类开发语言都实现了面向对象开发的目标,更多时候用于企业系统的开发。

3、系统软件

C语言、C++、Object-C这些软件更多是用在系统软件开发,嵌入式开发的方面。

当然,这分类不是绝对,像JAVA、C#、VB很多时候也用于动态网站的开发。在很开发项目都会使用集成开发的方式,同一个项目里面使用多种开发语言,各展所长,同步开发。

但所以在刚入门的时候,建议先为自己选择一种合适的开发工具,“专注地投入学习,全力一击”。


(4)学了三年的程序员扩展阅读:

会编程、会计算机语言就能加入互联网发展大潮中,享受数字经济发展的红利,一时间社会上的程序员培训机构都变得格外火爆。

但是现在,专家的数据分析结果告诉你:若想跟上数字经济发展的步伐,光会编程可不行,这个行业现在紧缺高端的、综合型人才。

11月22日下午,清华大学经管学院互联网发展与治理研究中心与领英联合发布《中国经济的数字化转型:人才与就业》,揭示我国数字人才现状与趋势。

报告显示我国数字经济发展面临人才短缺的挑战,但这种短缺主要体现在拥有中高级专业技能数字人才的比例不高,拥有人工智能、智能制造等前沿技术的人才更是少之又少。

与美国、英国、加拿大等国家相比,中国的数字人才储备尚有很大差距。

此外,报告根据对人才需求的数据分析,结果显示我国数字人才的技能需求不再强调单一编程技能,更加看重技术、管理和领导力等综合技能。

2015年,我国从事信息传输、软件和信息技术服务相关工作的人数约350万,但其中中高端人才,特别是前沿技术的数字人才并不多。根据领英中国智库的研究,在人工智能领域,美国的从业者数量在85万人以上,印度15万,英国14万,中国只有5万多人。

报告负责人、清华大学经济管理学院副院长陈煜波教授表示,我国目前在大数据与人工智能领域人才缺口明显。

他解释说,目前中国85%以上的数字人才分布在产品研发类,而深度分析、先进制造、数字营销等职能的人才加起来只有不到5%,存在较大缺口,新兴技术人才和创新型人才培养方面存在滞后和不足。

这份研究报告的基础数据来自领英在中国的3600万个人用户,这些用户毕业于1.5万多所国内外院校,分布在36.4万家企业,拥有超过2.3万项技能。

陈煜波研究团队从中筛选了72万数字人才,多维度提取用户画像并跟踪其职业轨迹,以此预测不同地区的人才流向、雇佣率、受雇主欢迎的技能等人才趋势层面的信息。

陈煜波说,根据数据分析结果,整体来看,虽然编程技能和数据分析技能需求占据主导,然而随着数字产业走向成熟,企业除了强调编程技能,也逐步更加看重人才的技术、管理和领导力等综合技能。

近年间,项目管理、产品运营等“技术+管理”类技能的需求呈现出明显的上升趋势,懂技术、懂管理的人才被认为是“一将难求”。

领英中国代理总裁曾志恒也提醒,如果你有兴趣向数字职能转型,不能仅仅专注于自己的技术能力,沟通和领导力等软性技能将成为你脱颖而出的关键。

陈煜波希望这些研究结果能为教育行业和政府部门提供借鉴。他说,教育行业可根据职位的供需趋势更好地规划人才培养的方向,政府也可更好地了解人才流动方向、技术缺口等,以此制定有针对性的引才策略。

程序员岗位职责:

1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。

2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。

3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。

4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。

5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。

6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。

7、负责相关技术文档的拟订。

8、负责对业务领域内的技术发展动态进行分析研究。

相关书籍:

很多程序员响应,他们在推荐时也写下自己的评语。 以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 9的书。

其实除了前9本之外,推荐数前30左右的书籍都算经典,笔者整理编译这个问答贴,同时摘译部分推荐人的评语。

下面就按照各本书的推荐数排列。

1、《代码大全》 史蒂夫·迈克康奈尔

2、《程序员修炼之道》

3、《计算机程序的构造和解释》

4、《算法导论》

5、《重构:改善既有代码的设计》

6、《设计模式》

7、《人月神话》

8、《计算机程序设计艺术》

9、《编译原理》(龙书)

10、《活着》

E. 工作三年的java程序员应该拿多少工资

工作三年的程序员拿多少工资,其实你可以去招聘网站看看企业的招聘信心的,基本上只要你是正常努力的人,不是那种在公司混日子的人,工作三年,工资在一万五是没有问题的。
不过话说回来,工作年限是一方面,更多的还是看你的努力程度,有的人工作一年就能达到你工作三年的技术水平,有的刚毕业就比你工作了一两年经验还要丰富,懂得还要多,所以提升自己的技术水平才是关键。

F. 3年经验的c++程序员是个什么水平怎么评诂

有趣的问题,程序员的评估倒不难,写个代码就可以了。
问题是3年C++经验是什么水平?
首先,要问教育背景,是否计算机相关专业,这决定了知识体系是否完整,可能的知识广度有多大。
再者,3年内完成了什么内容?
按计算机业界3~6个月一个项目的情况来看,以及每个项目后有半年间隔,最少应有3~6个项目,当然也可能是同一个项目3~6个版本。
按代码量来看,人均日产40行,实际编写的代码应不少于5000行,考虑到10倍效率差,最高应在5W左右。
写过这么多代码,应该熟悉了一个平台上的API,能说出一二三了。
最后,3年能学到什么?

基本的工作方法:任务和时间安排、工作环境搭建等。
基本软件开发流程,团队合作过程等
对软件系统的认识和理解,大致能照猫画虎设计一个系统了。

我认为3年,一般可以达到专业入门水平,相当于围棋的职业一段吧。

G. 工作3年的java程序员 很迷茫 我该怎么走出来

其实我觉得你是一个很上进的人,肯吃苦,有理想,有干劲。拿死工资在我们这行月薪30k已经快到顶了,和做生意当然不能比。但是你父亲不想让你接手也有他的考虑,也许是他觉得你的工作很光鲜,也许想让你自己闯可能。不管怎么样来说,你离父亲确是差得很远,这没什么,不用自责。所以你现在这么浮躁肯定是不行的,沉下心来 摆正心态

H. Java程序员如何自我提升

一、编写可读性强的代码

曾经碰到过多少人认为编写一些不可思议的、复杂的代码可以为他们提供工作的保障。“如果除了我其他人都不知道薪资报告模块是如何工作的话,上面就肯定不敢炒我鱿鱼!”

当然,这在理论上可能是对的(尽管有太多的人在说这句话的时候往往高估了自己)。虽然企业老板可能不会炒掉你,但他们也不会支付你很多薪水。如果公司不能在薪资报告模块上失去你,那么自然而然也不会晋升你。它不会把你放到另一个更受人瞩目的项目上。这样做只会让你牢固地待在当前位置,就像死水一样波澜不惊。

而且,不要自欺欺人地以为这也可以测试市场反应。企业总是希望程序员能够编写干净、可维护的代码。他们需要刷掉不合格的人以满足业务需求。如果你的简历主要特点是精通某一个点,那么你就不会有很多选择,因为在一次又一次的晋升考验中,你的老板总是会略过你。

不要走那条错误的路。与之相反,你需要编写能够使其他人受益的代码,并让业务灵活起来,无论是在项目人员配置上还是在对代码进行更改的时候。


二、了解你的代码如何让别人赚钱

如果有人付钱让你写软件,那么你的输出结果就应该产出经济效益。学习并了解这个利益关系。发展向任何人解答这方面内容的能力。

对最新的客户端技术或在云中进行加速的能力感到兴奋的开发人员比比皆是。对这些东西感到兴奋,并且了解如何使用这些能力来赚钱的开发者就少见的多了。

如果你能针对产品特征好好培养对业务动机的理解,那么你就能做得更好。你会找到既能节省时间又同样能实现业务目标的替代方法。或者,当有一个产品特征证明不可能实现时,你可以提出能降低一部分成本的建议。

企业(特别是真正支付薪水的大boss)喜欢这种软件人的思维。这将意味着你可以晋升,提供咨询服务以及担任领导角色。

三、对职业的思考

擅长编程代表了职业生涯的其中一个方面,并且是一个重要的方面。建议多考虑许多其他的方面,并且有目的地去发展和培养那些习惯。在你自己的时间里,你应该通过一切手段,爱上这个职业。当然还要确保你可以为他人和为自己赚到钱。

阅读全文

与学了三年的程序员相关的资料

热点内容
怎么自己免费制作一个手机app 浏览:582
python同时迭代两个变量 浏览:740
好分数app家长版怎么删除孩子 浏览:424
安卓快手下载怎么没有下载到本地 浏览:228
怎么在安卓手机登绘旅人 浏览:404
桌面文件全部加密 浏览:401
6s怎么外接u盘需要什么app 浏览:131
linux查看文件权限命令 浏览:685
安卓手游存档怎么用 浏览:761
linuxyum安装ftp 浏览:690
村委会主任可以推行政命令吗 浏览:102
电脑文件夹封面多张图片 浏览:263
网吧总服务器叫什么 浏览:922
多个算法解决同一个问题 浏览:455
小车解压后我的购车发票呢 浏览:977
做app开发用什么云服务器 浏览:177
linux网卡子接口 浏览:985
21岁职高毕业学程序员怎么学 浏览:321
vs如何对单个文件编译 浏览:6
为什么有的电脑不能安装python 浏览:75