
随着互联网的不断发展,java编程开发程序员的需求量也是不断的增加的,而今天我们就一起来了解一下,成为一个专业的java程序员都有哪些阶段。
一、新手
如果你是新手阶段,全面、扎实地掌握语言的基本要素是当务之急。你可以在正规的指导下飞速进步,并培养出良好的编码习惯。然后可以再结合专栏,看看Java技术领域典型的、长期的热点话题,了解业界通常从哪些角度判断你的能力和水平。
二、高级新手
工作了几年,整天忙于业务代码,很容易困惑下一步的方向在哪里,相当多的程序员长期停留在高级新手的阶段。一个常见的表现就是发展成为了“面向搜索引擎”编程工程师,擅长快速利用开源项目或者以往成果,完成一些“OK”的工程任务。这本无可厚非,职业路线很多,未必每个人都想成为底层专家。
但是,如果想在技术领域更进一步,一定要避免下面两个问题。
面对没见过的、一定规模的或者较高标准的问题时无所适从,具体表现为“领导,你看这样行吗”。没做过互联网高并发应用,难道就不能对并发编程有相对深入的思考吗比如,习惯了使用Executors,你有没有思考过不同的线程池到底适合什么场景当前的实现在未来业务量增长下可能出现什么问题
无法独立提供有说服力的、有深度的分析、设计和实现,比如业务系统运行一段时间就变慢,调整Heap大小,似乎仍然OOM。目前团队处理的方式就是重启服务器,有没有想过去发掘真正的原因,真正去解决它
我建议不要满足于这些表面的特征,要学会用白盒的视角看待技术内部,系统性的思路掌握普遍规律。即使未来你不在一线编码,或者未来不再使用Java,同样的思维习惯和积累也是很有帮助的。
三、胜任者
那如何才能算是摆脱了高级新手的阶段呢或者换句话说,如何成长为团队的核心成员这取决于你能背多大的锅、填多大的坑,比如你已经可以:
独立负责做GC调优,即使没有历史经验,也能给出有说服力的方案。
在JVM领域有充足的技术经验和知识储备。
全面评估评估后台变慢等问题的复杂度、风险点、解决的可能性。
对于所谓本质的思考和理解,能听懂深入的抽象观点。
并且,除了Java/JVM,还要掌握更完整的技能树,例如分布式系统设计、数据库隔离级别选型等。
掌握将“OK”的事情做到“excellent”程度的能力,IT培训认为不断地进行高效实践、领域的扩展和精深,我们就可以达到并超过胜任者,逐步成为精通者和专家。
学习软件开发都需要看《c和指针》、《c缺陷和陷阱》、《c专家编程》,这三本书是一个初级C程序员必看的三本书,同时也是应届新员工必须好好学习的教材,非常适合刚毕业的大学生学习 。
另外还有:
C++语言提升:
《Effective C++:改善程序与设计的55个具体做法》
《More Effective C++:35个改善编程与设计的有效方法(中文版)》
《C++沉思录》
《C++Templates中文版》
《深度探索 C++ 对象模型》
《泛型编程与STL》
一个由C转向C++的程序员,从来没有系统的学习过C++的语法,往往是用到的什么学习什么。如果要系统入门,《C++ primer》倒是不错。
设计类《代码大全》:
《重构-改善既有代码的设计》
《代码整洁之道》
《实现模式》
《程序员应该知道的97件事》
这几本书一般讲的是函数以及更低层次的设计。《代码大全》完完整整的读完过,而且做了很多的笔记,获益良多。《重构》就不必说了,其他几本书前面大致看了一下,也非常不错,计划有时间要好好学习一下。
架构:
《软件体系结构的艺术》
《领域驱动设计:软件核心复杂性应对之道》
《软件架构师应该知道的97件事》
《企业应用架构模式》
《面向模式的软件体系结构卷1:模式系统》
《软件架构设计》
《架构师需要知道的97件事》
敏捷开发:
《测试驱动开发》
《敏捷软件开发——原则、模式与实践》
《Scrum敏捷项目管理》
《硝烟中的Scrum和XP——我们如何实施Scrum》
《敏捷软件开发》
如今随着互联网行业的迅速发展,市场对于程序员的需求增大,同时程序员又是一个有发展,稳定,工资高的职业,很多人都想转行做程序员
那么转行程序员,如何入门呢?
还是要明确具体的职业方向。
程序员是个统称,写代码的都叫程序员,但Java程序员,或是Python程序员,这才是职业。就好像很多大学生,专业是软件工程,这玩意儿并不是职业,学的内容也比较宽泛。更不要说计算机科学与技术之类的专业了,更加没有指向性,基本就是知识大杂烩。
所以,如果想当成从业方向,先要确定做什么,才能下一步是学什么。
如果是转行,计算机基础薄弱且不是本科以上学历,我比较建议,不要学Java或Python、Go等语言,可以考虑学PHP、H5等。
做什么程序员有发展,其实也不难判断,除了用Tobie编程语言排行,或者看下百度指数
一下给你五个建议如何去入门程序员
0、结果很重要,但是解决的方法更重要!
解决问题是一个通用的能力,本应在学生时代习得,若是不擅长解决问题,怕是短时间内很难提升,但在一个具体的领域里,往往「途径」更加重要。
1、一句话的真理≠真理
想必大家肯定听到不少类似于「抽象可以解决计算机领域的一切问题」、「动态类型语言才能提高编码效率」、「C语言是世界上最本质的编程语言」等等。
不是说结论有错误,而是结论并不能对你有所帮助,知道如何获得结论的过程才是获取真理的正确姿势。
2、欲善其功必先利其器!
每个人在选择工具的过程中都会掺杂大量的个人喜好,但我建议大家在选择工具时考虑下面几个因素:是否是免费软件或开源软件、是否有公司在维护、是否有大量用户和活跃的社区、是否支持插件或拓展、是否支持多种平台。
3、写出可以运行的代码只是最基本的要求
程序运行了是不是很高兴那可别高兴的太早!
你是否考虑到了各种边界情况;当程序收到非预期的输入会发生什么;所依赖的外部服务出现异常会怎样,发生错误时是否能从日志中还原出现场;如果程序处理的数据量或运行时间提高几个数量级会发生什么;构建、测试和部署过程是否做到了自动化;代码是否为将来的修改做好了准备等等。
4、别想左手右手一个慢动作,要就独臂先行!
PHP还是C++还是……对于刚开始准备学习编程的大家,很容易陷入“技多不压身”的想法,那你就太天真了!
不是所有人都能左右开弓!一旦你这样做了就会发现很难将同时学习的两种语言的知识区分开,因为它们实在太像了。
以上就是我的回答,希望对你有所帮助
首要之首:不要急于选择一种语言新手们有一个常见的错误就是犹豫于判断哪种编程语言是做好的、最该先学的。 我们有很多的选择,但你不能说那种语言“最好”。 我们应该理解:说到底,什么语言并不重要。 重要的是理解数据结构、控制逻辑和设计模式。 任何一种语言—甚至一种简单的脚本语言—都会具有所有编程语言都共有的各种特征,也就是说各种语言是贯通的。 我正在攻读我的计算机学学位,我编程使用Pascal,汇编,和C语言,事实上我从来没有把它当成职业以求获得回报。 我一直在自学编程,工作上用不到它,我使用现有的知识,参考各种文档和书本,学习它们的用法。 因此,不要急于选择何种编程语言。 找出你想要开发的东西,使用一种能够完成这项任务的语言,这就可以了。根据各种开发平台的不同,有很多不同的软件开发形式可供你选择:从网站应用到桌面软件到智能手机软件到命令行脚本工具。 这篇文章里,我将重点介绍一些很受欢迎的入门教程和资源,它们能帮助你学会如何在各种主流的平台上编程开发。 我先假设你是一个悟性很强的读者,但对于新手,当我谈论程序代码时还是要按照入门级的水平。 因为即使是你自己看一篇编程入门手册,如果发现都能理解时,心情自然会很高兴,这样利于你进一步学习。桌面脚本想要动手在Windows里或苹果系统里编程,最简单的方法是从一种脚本语言或宏语言开始,例如AutoHotkey(Windows) 或Automator(苹果系统)。 如今一些硬件程序员冲着他们的屏幕大喊大叫,说AHK和AppleScript并不是“真正”的编程语言。 也许他们说的是对的—技术上,这些种类的语言只能做一些上层的编程。 但是对于那些只是想来脱盲、想在他们的电脑里实现一些能自动运行的程序的新手来说,这些语言会是一个绝妙的入门入口—而且你会吃惊于它们丰富的功能。例如,大家都喜爱的Texter就是Adam使用AutoHotkey开发的能独立运行的Windows应用程序,所以说这种脚本语言远不是只能开发小规模脚本软件。 如果你想从AutoHotkey入手,可以参考Adam的指导:how to turn any action into a keyboard shortcut using AutoHotkey(然后,你可以下载Texter源代码看看这个功能齐全的使用AHK开发的Windows应用程序的内部结构)。Web开发HTML 和 CSS:开发网站,你第一件要知道的事情就是HTML(网页就是由它组成的)和CSS(一种让外观更好看的样式标记)。 HTML 和 CSS 并不是编程语言—它们只是页面的结构和样式信息。 然而,在开始开发web应用程序之前你必须要学会如何手工的编写简单的HTML和CSS,web页面是任何webapp的前端显示部分。 这个HTML 指导是你入手的好地方。JavaScript:当你可以通过HTML和CSS构建一个静态页面后,事情就开始变得有趣了—因为到了该学JavaScript的时候了。 JavaScript是一种web浏览器上的编程语言,它的魔力就是能在页面里制造一些动态效果。 JavaScript可以做bookmarklets,Greasemonkey脚本, 和Ajax, 所以它是web上各种好东西的关于因素。学习JavaScript从这里开。服务器端脚本:一旦你学会了网页里的知识,你就要开始对它添加一些动态服务器 *** 作—为了实现这些,你需要把目光转移到服务器端脚本语言,例如PHP, Python, Perl, 或 Ruby。 举个例子,如果想要制作一个网页形式的****表单,根据用户的输入发送邮件,你就需要使用服务器端脚本来实现。 像PHP这样的脚本语言可以让你跟web服务器上的数据库进行沟通,所以如果你想搭建一个用户可以登录注册的网站,这样的语言正是你需要的。Webmonkey是一个优秀的web开发资源网站,里面有大量的各种web编程语言的指导手册。 阅读一下他们的PHP 初学者指南。 当你感觉差不多了的时候,看看WebMonkey’s PHP and MySQL tutorial学习如何使用PHP跟数据库交互。 网上最好的要数PHP语言官方的在线文档和函数参考了。 每个知识点上 (例如strlen function这个)都在后面列出来用户的评论注释,这些对于文档的本身是非常有价值的。 (我很喜欢PHP,但还有很多其他种服务器端的脚本语言你们都可以选择。)Web框架:过去数年里,web开发人员在开发动态网站的过程中不得不一遍又一遍的针对重复遇到的问题写出重复的代码。 为了避免这种每次开发一些新网站都会重复劳动一次的问题,一些程序员动手搭建了一些框架,让框架替我们完成重复性的工作。 非常流行的Ruby on Rails框架,作为一个例子,它利用Ruby编程语言,为我们提供了一个专门面向web的架构,普通的web应用程序都能使用它来完成。 事实上,Adam使用Rails开发了他的第一个正式的(而且是叹为观止的!)web应用程序,MixTapeme。这就是他的如何在没有任何经验的情况下搭建一个网站。还有一些其他的web开发框架包括CakePHP(针对 PHP 编程者),Django(针对 Python 编程中), 以及jQuery(针对 JavaScript)Web APIs:API (应用层序编程接口)是指不同的软件之间相互交换的程序途径。 例如,如果你想在你的网站上放一个动态的地图,你可以使用Google Map,而不需要开发自己的地图。The Google Maps API可以轻松的让你通过JavaScript在程序中引入一个地图到你的页面上。 几乎所有的现代的你所知道的和喜爱的web服务都提供了API,通过这些API你可以获取到他们的数据和小工具,在你的应用程序里就可以使用这些交互过来的东西了,例如Twitter, Facebook, Google Docs, Google Maps, 这个列表远不止这些。 通过API把其他web应用集成到你的web应用里是现在富web开发的前沿地带。 每个优秀的主流的web服务API都附带有完整的文档和一些快速入手的指导(例如,这个就是Twitter的)。 疯狂吧。命令行脚本如果你想开发一个程序,让它读取文字或文件、输入输出一些有用的东西,那么,命令行脚本语言将是个不错的选择。 然而它并不像web应用程序和桌面应用程序那样有吸引力和好看的外观,但是作为快速开发的脚本语言,你却不能忽视它们。很多的在linux平台上运行的web脚本同样能以命令行模式运行,例如Perl,Python和PHP,所以如果你学会了使用它们,你将能在两种环境中使用它们。 我的学习道路一直没离开Perl太远,我自学Python使用的是这本优秀的在线免费书Dive into Python。如果成为一个Unix高手也是你学习的目标,那么你绝对要精通bash这个脚本语言。 Bash是Unix和Linux环境下的一种命令行脚本语言,它能够为你做所以的事情:从自动备份数据库脚本到功能齐全的用户交互程序。 起初我没有任何使用bash脚本的经验,但最终我用bash开发了一个全功能的个人代办任务管理器:Todotxt CLI。插件(Add-ons)如今的web应用程序和浏览器都可以通过一些扩展软件来丰富自己的功能。 由于一些现有的软件,例如Firefox、WordPress越来越受到开发人员的关注,插件的开发也日益流行,人们都在说“But if only it could do THIS…”只要你掌握了HTML,JavaScript和CSS,你就可以在任何的浏览器里开发你想要的很多东西。 Bookmarklets,Greasemonkeyuser scripts, 和Stylishuser styles这些软件都是用的更普通页面一样的语言写成的, 这几个东西都值得你去研究一些。更高级的浏览器扩展程序,例如Firefox的扩展,它们可以帮助你很多。 开发Firefox的扩展,举个例子,需要你精通JavaScript和XML(一种标记语言,类似HTML,但具有更严格的格式)。 早在2007年我就写下来how to build a Firefox extension, 这是我在笨手笨脚的研究网上的一些学习资料后获得的成果。很多免费的、受欢迎的web应用程序都提供了扩展框架,例如WordPress 和 MediaWiki。 这些应用程序都是用PHP写成的,所以只有对PHP熟悉你才能做这些事情。 这个就是如何编写WordPress插件。 而想驾驭Google Wave前沿技术的开发人员可以从使用HTML, JavaScript, Java, 和 Python 写小组件和小工具开始。 我写的第一个Wave bot是跟着这个一个下午时间的快速入门指导开始的。开发桌面上的Web应用程序学习编程最好的结果是你在一个环境下学的东西可以应用到另外的环境中。 先学习开发web应用程序的好处就是我们有一些方法可以让web应用程序直接在桌面上运行。 例如,Adobe AIR是一个跨平台的即时运行平台,它能让你编写的程序运行在任何装有AIR的 *** 作系统的桌面上。 AIR应用程序都是由HTML, Flash, 或 Flex 写成的,所以它能让你的web程序在桌面环境中运行。 AIR是开发部署桌面应用程序的一个优秀的选择,就像我们提到过的10个让你值得去安装AIR的应用程序。移动应用开发能在iPhone或者Android智能手机上运行的手机应用程序的开发如今正呈现井喷之势,所以你也可以梦想一下如何在iTunes应用商店里通过你的天才程序大赚一笔。 但是,作为一个编码新手,直接奔向移动开发所经历的学习曲线可能会很陡,因为它需要你熟悉高级的编程语言,例如Java和Objective C。 然而,你当然应该看看iPhone 和 Android 编程究竟是什么样子的。 阅读这个简单的iPhone应用开发例子可以初步认识一下iPhone程序的开发过程。 Android 程序都是由Java写成的,这有一个简单的视频教程教你如何开发第一个”Hello Android“程序(注:可能需要代理才能看这个视频)。耐心,刻苦,尝试,失败好的程序员都有一个不达目的誓不罢休的品质,他们会惊喜于通过长期推敲和失败换来的一点成绩。 学会编程会有很好的回报的,但是学习的过程可能会是饱受挫折和孤独的。 如果有可能,最好找个伴一起陪你做这件事。 想精通编程,这和其他事情一样,需要坚持,反复尝试,获得更多的经验。
编程入门先学什么?有哪些种类?我整理了相关内容,来看看吧!
编程入门先学什么
编程入门先学C语言或者python。
如果你想在编程的道路上深耕的话,学好数学是充分必要条件,它决定了一个程序员未来的发展潜力。
编程的学习方向很多,如Fortran语言、C语言、汉语程序设计语言等都是面向过程的语言;而以C++、Smalltalk等为代内表的面向对象的容语言与面向过程语言有着许多不同。
毕竟学C++之后的关口就是算法和数据结构。提到数据结构,指针是其中重要的一环,绝大多数的数据结构是建立在指针之上的,如链表、队列、树、图等等,所以只有学好指针才能真正学好C++。
编程的种类1C语言:
最常用的,最基础的就是C语言。同时它也是最繁琐的一项编程语言非常地费脑力。C语言的编程工具非常多,如微软的Visoual Studio,苹果的xcode,KDe-velop,Dev-C++等。
2C++:
它是C语言的一种延伸。是一种面向对象的计算机程序设计语言,它是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、面向对象程序设计、泛型程序设计等多种程序设计风格。
3Delphi:
Dephi是Borland公司退出的可视化应用程序开发工具,它比较适合设计Windows窗口界面的东西。比如考试登陆的界面,门禁系统的选择,还有数据库的调用等。
4java:
是一门面向对象编程语言,不仅吸收了C++的优点,同时也摒弃了一些C++指针的概念变得更容易理解。很多程序员都是用java,它比较适合用来编程游戏等其他面对对象的东西。
5Labview:
它也是一种比较冷门的编程软件,它上面的那些结构,程序语言都是可以直接调用的。它主要是用来统计观测调查数据的,它可以作为上位机部分,具有其他软件不可代替的优点。
学程序员编程可参考如下:
对于初学者来说,可以采用视频+书籍的方式进行学习。这两种方式形成互补关系。编程教学视频可以让人迅速掌握编程,但通常比较生动、浅显,不成系统。
编程书本是比较系统、深入的,但是枯燥,所以最好的方法是书和视频结合。当人已经过了入门期之后,看书、看视频、看博客就可以随心所欲。
其实软件工程发展到今天,编程已经是一个很“职业化”的技能。业内自嘲“IT民工”,每天“搬砖”之类的,就是这种现象的反应。不扯远了,总之一句话,基本上都是些是个人都能学会的技术,没有什么神秘的。
某些培训机构招一些高考失利的考生,培训两年就把他们往公司里送,他们也一样能胜任工作。所以自学也不是件难事。但前提是,你走对了路。
如果你从二进制、编译原理、数据结构……这些开始,我估计你陷在里面就出不来了——除非有名师指点或者天赋异禀,再或者有大机缘?
不要急着做这些“学究”式的学习研究,就像学开车一样,不需要你从发动机原理学起是一样的。程序/语言是让你用的,就像车是让你开的,明白了这一点,你就可以立马轻松100倍。
所以,先选一辆“好开“的车,迅速的跑起来,享受这种微风拂面的快感和刺激,才是最重要的。
程序员的岗位需求很多,例如大型网络公司、软件开发公司等等都需要程序员。
程序员需要学习:
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/>
一个熟练的程序员需要掌握的知识是非常多,俗话说,活到老学到老。计算机的更新是非常迅速的,对于程序员来说,想要掌握计算机最新的知识,需要不断的学习新知识。在学习Java知识的过程中,初学者和熟练的程序员学习的方法和需要掌握的技术是不同的,那么对于熟练的程序员来说应该掌握哪些开发技术呢?下面丽江电脑培训为大家具体介绍。
1、语法:无论学习任何语言,语法都是最核心的部分。Java程序员也是需要熟练掌握语法,在进行代码编写的过程中,编辑器在出现的问题的地方会进行明确的显示,对于语法的错误应该具备解决问题的能力。
2、命令:学习过程中还必须熟悉JDK附带的一些常用命令和常用选项。命令需要熟悉:appletviewer,HtmlConverter,jar,java,javac,javadoc,javap,javaw,native2ascii,serialver等多种。如果您还没有完全了解这些命令,那么丽江IT培训认为你可能并不是很了解Java。
3、工具:在学习Java语言开发的过程中,必须学会使用一种IDE的开发工具。它包含的工具有很多种,其中Eclipse、Netbeans、JBuilder、Jdeveloper和IDEA等,还包含一些工程管理、常用的选项设置以及进行调试的功能。
4、测试:在任何开发中,测试的步骤都是非常重要的,只有掌握测试的方法才能让后期代码的使用更加稳定,并且java课程培训机构发现还能对代码进行自动测试。
5、管理:Java程序员必须熟悉使用ant来完成项目管理的常见任务,例如项目编译、生成javadoc、生成jar、版本控制和自动测试。
6、规范:进行编写的代码必须符合流行的编码约定,例如类名的第一个名称的大小写,成员的第一个字母的小写和方法名称,方法名称的第一个单词通常是动词,包名称全部是小写等,java课程这样明确的区分方法以便保证程序的可读性。
以上就是关于java程序员入门需要经历的阶段全部的内容,包括:java程序员入门需要经历的阶段、软件开发初学者应该看什么书、想转行做程序员,如何入门等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)