❶ 程序员怎么自学
程序员这么自学:
如果有一定的基础,对编程、代码有很强烈的兴趣,并且有较强的自学能力,这样是可以自学的。因为这个专业的实践性和逻辑性特别强,不付出一定的时间和精力是学不好的。
建议:
1.每天花1小时看书,难的不是1小时,难的在坚持。
2.英语对编程来说很重要,试着习惯英语阅读(扇贝系列的软件)。
3.数据结构和算法要学好,这算是对编程来说最重要的课了,以后不见得能用得上,但用的时候起码你有印象。
4.善于利用搜索引擎,从用Google做起,学会英文关键字搜索,有问题第一时间想到去搜索而不是去请教别人。
5.多去混GitHub,目前最流行的开源社区,多参与开源项目,慢慢试着读牛人们的代码,时机到的时候自己也可以为开源社区贡献力量,可以这样说在GitHub上认真混一年,比你在大学四年学的东西要多的多。
6.第一份工作很重要,因为你会受一些周围同事、公司氛围的影响。
7.最后一条是尽快找一个女朋友,因为你的工作使你接触到的女性会越来越少。
❷ 编程行业需要学习多久才能毕业
你好,现在编程行业一般需要学习4年才能毕业,如果学习比较简单的话,一两个月就可以了。
❸ 自学程序员需要多长时间
自学程序员需要半年的时间。
程序员职业要求:
一般的程序员都有四年的在专业领域的学习,需要一个在程序领域的学士学位获得者,不论是数学方面的还是工程方面的都是可以的。
大约有20%的人在这一领域的计算机科学和工程学拥有更高的学位。还有很小一部分程序员是自学的,尽管一些专业性的学校或者综合大学可以提供,但是也需要一些别的途径来提供相关的人才。尽管学历是比较重要的,但是公司经常把重点放在应聘者的工作经验上,很多刚从大学毕业的大学生虽然有引人注目的学位证书,但是他们找不到工作是因为他们缺乏经验。
(3)两年自学程序员扩展阅读:
程序员岗位职责
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
❹ 学习编程需要多少时间呢
最近很多人都在问如何学习编程。我觉得学习编程最重要的是入门,如果你入门的时候有一个好的方法和思路,打下比较扎实的基础,对今后的编程工作是很有益处的。即使在学习新的编程语言也无所谓,因为它们有很多相通之处,可以相互借鉴。
我认为可以先学习一下pascal,这个语言比较严谨,适合初学者。pascal它被称为教学语言,结构严谨,不像C语言那么灵活,易于理解和学习。 然后可以继续学习C语言,这个语言比较灵活。有了pascal的基础,在进行C语言编程就不会因为C语言的灵活而有问题 。后面的就可以学习VC什么的了。
C语言的书推荐谭浩强的,比较好。
我当时学习pascal和C语言的时候是将书后的习题都做了一遍,感觉效果很好。
当然了,学习什么语言也要看你具体准备从事什么行业。例如你要进行嵌入式开发,C就是很好的选择,如果是Windows开发,那么VC就不错。还有数据库方面的开发、网络开发等等。不同的语言适合不同的方面。要看自己的选择的,呵呵 。
还有很多人说自己的基础很差,甚至中学毕业什么的。其实这个并不重要,比较说英语,在计算机语言里所用到的单词量很少,而且都是常用词,经常使用就记住了。当然,如果你要看原文资料或者帮助的话,专业词汇比较多,不过在金山词霸的帮助下,经常看,也是没什么大的问题的。至于数学什么的,其实数学只是培养你一个逻辑思维能力,在初学编程的时候影响不是很大。况且,作为一个基础编程人员来说,上面还有系统分析师、项目经理,他们会把需求分析、概要设计和详细设计做好的,你只要按照文档写代码就OK了。不过,要上更上一步的话,其他基础知识就非常重要了,毕竟你不能写一辈子代码。
在你学习好C语言以后,个人建议好好学习一下数据结构和软件工程。这两门对你的水平提高都是很有帮助的。特别是软件工程,它能够使你按照科学的工程方法进行软件开发,对今后的发展很有好处。
只是一家之言,有不到之处,还望见谅!
❺ 如何自学成为程序员
问题一:如何自学成为初级程序员 [经验之谈]30岁,我的程序,我的梦!
程序人生 : 30岁,我的程序员梦想
作 者: redbridge (雪燃)
30岁,开始实现我的程序员梦,从一个编程爱好者,从一个业余的程序员,一个水平不高的程序员,一个半道出家的程序员......
我的经历到这里就告一段落了,五年里跳了五次槽,不知道和大家比算不算多J,没有什么太多起伏,但我想很多朋友可能会和我有类似的经历,不知道能不能引起你们的共鸣。我想对我上面所说的话给一个总结:
1. 如果你觉得自己应该追求什么,不管遇到什么困难千万不要放弃,一定要坚持下去。
2. 不要因为自己年轻就找理由挥霍时间,少玩一点SC、CS、魔兽3、传奇、魔力或者…….,多看点书,多练练题。
3. 如果你还是在校的学生,英语很差,专业课也很差。没关系,想怎么学计算机就怎么学计算机吧。其它地只要能混到毕业证就行了。除非你对自己的未来没有信心。(当然,如果你的理想不仅仅是要做一个程序员,那你别丢掉英语。)
4. 如果你不是科班出身,想要转行而不知该怎么开始的话,建议你先看两类书:(1)计算机原理;(2)数据结构和算法。(看数据结构之前先看C语言)。
5. 什么时候努力都不晚,关键是你明白要努力了,大器晚成总比一事无成要好的多。
6. java、、C++、PB、VB、Delphi、汇编到底应该学哪个?我的经验,哪碧郑余个最简单就先学哪个、公司用哪个你就学哪个、哪个和你有缘(比如刚好你认识一个愿意帮助你的Delphi高手)你就学哪个,如果你都学,或者三天两头的换,我可以告诉你结果肯定是什么都不会,不要心浮气燥,他们都只是工具,学精一门其它的就相通了,重要的是掌握编程的思想。如果你问我面向对象(好像现在已经是面向需求了)、UML、WebLogic、WebService、软件工程、XML…….应该怎么学呀,对不起,这些我也确实不是都会,但请相信,你先实实在在的写上十万行以上的代码以后,那些东西你自然就慢慢会了。
7. 不要以为程序员的工资都很高,程序员之间的水平差异也大。公司衡量一个人的待遇标准是他能给公司带来多大的效益。如果你体现了自己的价值,公司会主动给你加薪的,当然你也可以自己主动提,但一定要在你表现出了自己的价值之后。
8. 轻易不要跳槽,如果非要跳,也要保持工作经验上的延续,而不是从新开始,不丛喊然就会象我一样走很多弯路。
9. 如果你以为程序员都是熬夜熬出来的,那么你错了,因为它的代价就是缩短你的青春!大家不要象我一样,真的,熬夜一点也悔滚不好!记住老毛的话:如有恒,何须三更起,半夜眠;最怕莫,三天打鱼两天晒网,竹篮打水一场空!
10. 这一点是我觉得最精华的一点:“君子性非异也,善假于物也。”这句话的本意是一个水平很高的人本身并不一定很高明,关键是他善于利用别人的高明!我在这里做个借鉴,就是要充分利用自己身边的资源,不放过任何一个可以提高自己的机会。大家不要误会,这里的假于物可不是指抄袭别人的源代码,而是指通过学习别人的源代码把他的思想扩展到自己的思想里去。
注:上面的十大“精华”纯属我个人的“谬论”,您自己看着消化,有用的收下,没用的请拖入“回收站”。如果你觉得这些总结不过是一些浮华之词,那请你先问问自己:“是不是在行动上都真正做到了。”
这就是我,一个不算优秀,不算勤奋;玩能玩通宵,学也学能学通宵;对梦想的追求很执着;到了30才开始真正写程序;一个很平凡但又不甘于平凡的人……我的经历相信很多朋友都有过的,我现在也不能算是一个成功人士,但我相信我的经历却是值得大家借鉴的,因为我终究代表了一类人......>>
问题二:如何成为一名程序员? 首先先选择一门语言 现在比较火的是sun公司的java 和微软的C#
友情提示:java移植性很好,这是网络平台所需要的。C#只能运行在微软的平台,有局限性。
我不排斥其他的计算机语言 不过一般只要学懂一门语言后就相当进入程序的天堂,在学其他的语言时候就能简单的多,因为很多软件语言是相同的,学懂一门就能够看懂其他的。
买书,见意买比较薄的书开始学,太厚的书看不完会打击心灵。
需要有耐心,其实是非常有耐心,因为学软件做软件是一辈子的,没有任何一门技术能做到老,必须一路学下去。每当度过一个阶段尽量总结所学过的。
一定要沉得住寂寞,无论是学软件还是做软件。
只要认真学,一般一年自学都可以有所小成,程度还要看个人的领悟。
做软件是需要注意很多细节,正是这些细节所以让人很头疼,所以需要耐心。
顺便提一句:学软件就尽量学比较火的,因为市场需要,才会火。
我不是鄙视某某某语言,而是实话说,毕竟学出来需要应付工作的,如果工作不需要,就算学的很有本事,没人雇也没用,对吧!
你完全可以去招聘网看看软件这个行业哪些软件需要的人才多。
别听谁谁谁说哪种语言火,火不火招聘的数量就能说明一切。
一定要对软件充满信心,千万别轻易放弃。相信软件是有“钱”途的。
本人现在也是在自学软件,也有三年的学习。
以上是我一些经验,如果有需要,可以按右下角Hi我,相互促进。
问题三:程序员能自学吗? 首要之首:不要急于选择一种语言新手们有一个常见的错误就是犹豫于判断哪种编程语言是做好的、最该先学的。 我们有很多的选择,但你不能说那种语言“最好”。 我们应该理解:说到底,什么语言并不重要。 重要的是理解数据结构、控制逻辑和设计模式。 任何一种语言―甚至一种简单的脚本语言―都会具有所有编程语言都共有的各种特征,也就是说各种语言是贯通的。 我正在攻读我的计算机学学位,我编程使用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, ......>>
问题四:如何成为一个程序员 1、 程序员意味着要编程序。(如果你仅仅想得到一份高薪水的工作,喝喝咖啡就等老板发薪水,我奉劝你还是另找一份更合适的工作,譬如练摊,真的,兄弟,这份工作不适合你)
2、你是学文的还是学理的,编程序也许需要浪漫,但更需要逻辑和严谨。(说坦白点就是,在你没有找到乐趣以前,它很枯燥)
3、你有对新技术追求的热情吗?你有刨根问底的探索精神吗?(热情绝对是最重要的!你仔细思考一下自己的性格适合当程序员吗?)
4、当程序员决不是什么好差事,时刻需要学习,需要思考。(直到你成为那个可以引导别人去学习和思考的人,你才可以偷偷的嘿嘿笑,又一群傻蛋)
5、程序员的未来很迷茫。(但我认为关键看你自己!我希望你是一个有追求的人,不仅仅是混碗饭吃。因为真正的乐趣在于创造;如果你能改变软件业的历史,那才是英雄;不想成为Bill Gates,不想成为Dennis Ritchie和 Bjarne Stroustrup,我会说你没有追求。有个关于程序员未来的笑话,也许你还没听过,你该听一听,摘抄如下:
一个程序员对自己的未来很迷茫,于是去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问Lippman,他现在领导的程序员的队伍可能是地球上最大的”
于是他去问Lippman。
Lippman说“程序员的未来就是驾驭程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问Gates,他现在所拥有的财产可能是地球上最多的”
于是他去问Gates。
Gates说“程序员的未来就是榨取程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问侯捷,他写的计算机书的读者可能是地球上最多的”
于是他去问侯捷。
侯捷说“程序员的未来就是诱惑程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝摇摇头“唉,我的孩子,你还是别当程序员了”)
6、当程序员还是很有乐趣的。(当你学到新知识时,当你有新的思想见解时,当你有新的产品问世时,和知己探讨你的成果时…我问你,觉得这些是乐趣吗?)
7、当程序员不易也不难。(世间事有难易乎?为之…;不为…。你有决心和信心吗?)
8、你真的要当程序员?是你自己的想法?
9、你舍得花钱买书吗?(读好书绝对是学习编程的最佳捷径。你一定会说,现在电脑书籍真他XX的贵,没法子,谁让知识和技术在人家的脑袋,在人家的书里呢;等你写书时可以把价格定低一点,记着还有好多没钱但想买书的兄弟很困难呀。要舍得买书,买好书,不好的的书不如不读,其害大于其益,关于买什么书,你可以问高手或看候捷的书评;准备一个小本子记录你想买的书的名字,逛书店时看看,如果好就买下,记住要读,别光买不看。) 10、我告诉你,程序就是:任何有目的的、预想好的动作序列,它是一种软件。
11、编程序就是编写程序。
12、你想好了吗?(如果你想好了还是决定要当程序员,可以继续往下读;否则,你可以继续寻找别的出路了。)
(三) 一个程序员应该具备的基础知识和概念
1、计算机是有什么组成的,CPU是什么东西,其工作原理是什么。(对于这些以及下面将要提到的概念我不会告诉你什么答案,你可以看相应的教材,关于教材我会在下一部分详述,记住理解最重要!)
2、机器语言和微指令集的概念。
3、程序的概念。
4、汇编语言是低级语言但不是机器语言。
5、高级语言主要有那些?(C......>>
问题五:如何才能成为一名优秀的程序员 中国的信息技术发展迅速,由它所带来的浪潮已经渗入到了人们生活的每一个角落,而程序员们成为了这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和责任。做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVA One很可能会成为未来的主流开发工具之一。其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C Builder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。熟知数据库为什么数据库是如此重要?作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL, Postgres等。对操作系统有一定的了解当前主流的操作系统是Windows,linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。只有对操作系统有一定的了解后,你会发现自己上了一个新的台阶。懂得网络协议TCP/IP在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEB Services,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,所以,深入掌握TCP/IP协议是非常必要的。
问题六:怎样才能快速成为一名程序员 1 学习如何编程
这当然是最基本的黑客技术。如果你还不会任何计算机语言,我建议你从Python开始。它设计清晰,文档齐全,对初学者很合适。尽管是一门很好的初级语言,它不仅仅只是个玩具。它非常强大,灵活,也适合做大型项目。
但是记住,如果你只会一门语言,你将不会达到黑客所要求的技术水平,甚至也不能达到一个普通程序员的水平---你需要学会如何以一个通用的方法思考编程问题,独立于任何语言。要做一名真正的黑客,你需要学会如何在几天内通过一些手册,结合你现在所知,迅速掌握一门新语言。这意味着你应该学会几种不同的语言。
如果要做一些重要的编程,你将不得不学习C语言,Unix的核心语言。其他对黑客而言比较重要的语言包括Perl和LISP。 Perl很实用,值得一学;它被广泛用于活动网页和系统管理,因此即便你从不用Perl写程序,至少也应该能读懂它。 LISP 值得学习是因为当你最终掌握了它你会得到丰富的经验;这些经验使你在以后的日子里成为一个更好的程序员,即使你实际上可能很少使用LISP本身。
当然,实际上你最好四种都会。 (Python, C, Perl, and LISP). 除了是最重要的四种基本语言,它们还代表了四种非常不同的编程方法,每种都会让你受益非浅。
这里我无法完整地教会你如何编程---这是个复杂的活儿。但我可以告诉你,书本和课程也不能作到。几乎所有最好的黑客都是自学成材的。真正能起作用的就是去亲自读代码和写代码。
学习如何编程就象学习用自然语言写作一样。最好的做法是读一些大师的名着,试着自己写点东西,再读些,再写点,又读些,又写点....如此往复,直到你达到自己在范文中看到的简洁和力量。
过去找到好的代码去读是困难的,因为很少有大型程序的可用源代码能让新手练手。这种状况已经得到了很大的改善;现在有很多可用的开放源码软件,编程工具和操作系统(全都有黑客写成)。这使我们自然地来到第二个话题...
2 得到一个开放源码的Unix并学会使用、运行它
我假设你已经拥有了一台个人计算机或者有一个可用的( 今天的孩子们真幸福 :-) )。新手们最基本的一步就是得到一份Linux或BSD-Unix,安装在个人计算机上,并运行它。
当然,这世界上除了Unix还有其他操作系统。但它们都是以二进制形式发送的---你无法读到它的源码,更不可能修改它。尝试在DOS或Windows的机器上学习黑客技术,就象是在腿上绑了铁块去学跳舞。
除此之外,Unix还是Internet的操作系统。你可以不知道Unix而学会用Internet,但不懂它你就无法成为一名Internet黑客。因为这个原因,今天的黑客文化在很大程度上是以Unix为中心的。(这点并不总是真的,一些很早的黑客对此很不高兴,但Unix和Internet之间的共生关系已是如此之强,甚至连微软也无可奈何)
So,装一个Unix---我个人喜欢Linux,不过也有其他选择。(你也可以在同一台机器上同时运行DOS,Windows和Linux)学会它。运行它。用它跟Internet对话。读它的代码。试着去修改他。你会得到比微软操作系统上好的多的编程工具(包括C,Lisp, Python, and Perl),你会得到乐趣,并将学到比你想象的更多知识。
关于学习Unix的更多信息,请看 The Loginataka.
要得到Linux,请看: 哪里能得到 Linux...>>
问题七:如果想成为一个程序员应该学习什么知识 程序员需要学习程序的逻辑,其次是需要学习编程的语言,这才是最根本的,有了语言才能和计算机“沟通”
如果做一个专业的程序员:
1.基础语言知识 :从底层的ASM 到结构化的C,到面向对象的C++ JAVA,如果不能都精通,但是要了解,至少要精通一门
2.基础数学知识: 高等数学(数学分析) 线性代数 离散数学,概率.数理统计等等
3.基础计算机原理:操作系统原理,微机原理,编译原理 数据库原来等等
问题八:20岁如何通过自学成为一名程序员 努力追求,坚定自己的信心,一直坚持。
不要挥霍时间,少玩一点电脑大型网络游戏,多看点这方面的书,多练练这方面的题。
建议看两类书:(1)计算机原理;(2)数据结构和算法。(看数据结构之前先看C语言)。
java、、C++、pb、vb、Delphi、汇编里自己认为哪个最简单就先学哪个,不要都学,也不要过一段时间换一个学,不要心浮气燥,他们都只是工具,学精一门其它的就相通了,重要的是掌握编程的思想。
调整作息时间,不要总是熬夜,有一个好的身体是做任何事的前提。
懂得充分利用自己身边的资源,不放过任何一个可以提高自己的机会。
问题九:怎样自学成为程序员并进入微软 微软的官方网站上写着我们期待具有独创性、开拓性的智者加入队伍,我们的面试程序也是为网罗这样的人才专门设计。程序员只是具备了编程序的能力,微软看中独创性和开拓性。所以职业潜力更重要,独创性需要一些人文要求,开拓性需要一些创业能力,而不完全是就业的能力。
问题十:怎么才能成为一个优秀的程序员 优秀的程序员要具备很强的分析,和思维能力,我是一个Java JSP 的程序员,以我自己的感觉,程序员的理解能力要很强,因为我们做一个业务系统需要了解这个业务的逻辑,才可以去开发,至于学什么语言,我觉得只要你可以精通一种语言,其他的你就都可以自学的。但是C除外。
至今我都不是很懂那个,我刚开始学的时候就是学的VB,但是我觉得可以直接学JAVA。搐可以选择JAVA .NET C# 这都是现在很流行的。
如果你可以的话C是最好的。我们单位C的 开的工资是我们的几倍。你要学一种语言,就必须先了解他的思想,所以你还是先看看理论上的东西吧。呵呵,其实程序员挺枯燥的,你要有思想准备哦。最大的困难就是你需要让自己有恒心。
❻ 程序员入门:如何自学编程_自学程序员怎么入门
首要之首:不要急于选择一种语言新手们有一个常见的错误就是犹豫于判断哪明睁种编程语言是做好的、最该先学的
我们有很多的选择,但你不能说那种语言“最好”
我们应该理解:说到底,什么语言并不重要
重要的是理解数据结构、控制逻辑和设计模式
任何一种语言—甚至一种简单的脚本语言—都会具有所有编程语言都共有的各种特征,也就是说各种语言是贯通的
我正在攻读我的计算机学学位,我编程使用Pascal,汇编,和C语言,事实上我从来没有把它当成职业以求获得回报
我一直在自学编程,工作上用不到它,我使用现有的知识,参考各种文档和书本,学习它们的用法
因此,不要急于选择何种编程语言
找出你想要开发的东西,使用一种能够完成这项任务的语言,这就可以了
根据各种开发平台的不同,有很多不同的软件开发形式可供你选择:从网站应用到桌面软件到智能手机软件到命令行脚本工具
这篇文章里,我将重点介绍一些很受欢迎的入门教程和资源,它们能帮助你学会如何在各种主流的平台上编程开发
我先假设你是一个悟性很强的读者,但对于新手,当我谈论程序代码时还是要按照入门级的水平
因为即使是你自己看一篇编程入门手册,如果发现都能理解时,心情自然会很高兴,这样利于你进一步学习
桌面脚本想要动手在Windows里或苹果系统里编程,最简单的方法是从一种脚本语言或宏语言开始,例如AutoHotkey(Windows)或Automator(苹果系统)
如今一些硬件程序员冲着他们的屏幕大喊大叫,说AHK和AppleScript并不是“真正”的编程语言
也许他们说的是对的—技术上,这些种类的语言只能做一些上层的编程
但是对于那些只是想来脱盲、想在他们的电脑里实现一些能自动运行的程序的新手来说,这些语言会是一个绝妙的入门入口—而且你会吃惊于它们丰富的功能
例如,大家都喜爱的Texter就是Adam使用AutoHotkey开发的能独立运行的Windows应用程序,所以说这种脚本语言远不是只能开发小规模脚本软件
如果你想从AutoHotkey入手,可以参考Adam的指导:(然后,你可以下基乱载Texter源代码看看这个功能齐全的使用AHK开发的Windows应用程序的内部结构)
Web开发HTML和CSS:开发网站,你第一件要知道的事情就是HTML(网页就是由它组成的)和CSS(一种让外观更好看的样式标记)
HTML和CSS并不是编程语言—它们只是页面的结构和样式信息
然而,在开始开发web应用程序之前你必须要学会如何手工的编写简单的HTML和CSS,web页面是任何webapp的前端显示部分
这个HTML指导是你入手的好地方
JavaScript:当你可以通过HTML和CSS构建一个静态页面后,事情就开始变得有趣了—因为到了该学JavaScript的时候了
JavaScript是一种web浏览器上的编程语言,它的魔力就是能在页面里制造一些动态效果
JavaScript可以做,脚本,和Ajax,所以它是web上各种好东西的关于因素
学习JavaScript从这里开
服务器端脚本:一旦你学会了网页里的知识,你就要开始对它添加一些动态服务器操作—为了实现这些,你需要把目光转移到服务器端脚本语言,例如PHP,Python,Perl,或Ruby
举个例子,如果想要制作一个网页形式的联系方式表单,根据用户的输入发送邮件,你就需要使用服务器端脚本来实现
像PHP这样的脚本语言可以让你跟web服务器上的数据库进行沟通,所以如果你想搭建一个用户可以登录注册的网站,这样的语言正是你需要的
Webmonkey是一个优秀的web开发资源网站,里面有大量的各种web编程语言的指导手册
阅读一下他们的PHP初学者指南
当你感觉差不多了的时候,看看WebMonkey’sPHPandMySQLtutorial学习如何使用PHP跟数据库交互
网上最好的要数PHP语言官方的在线文档和函数参考了
每个知识点上(例如strlenfunction这个)都在后面列出来用户的评论注释,这些对于文档的本身是非常有价值的
(我很喜欢PHP,但还有很多其他种服务器端的脚本语言你们都可以选择
)Web框架:过去数搏槐档年里,web开发人员在开发动态网站的过程中不得不一遍又一遍的针对重复遇到的问题写出重复的代码
为了避免这种每次开发一些新网站都会重复劳动一次的问题,一些程序员动手搭建了一些框架,让框架替我们完成重复性的工作
非常流行的RubyonRails框架,作为一个例子,它利用Ruby编程语言,为我们提供了一个专门面向web的架构,普通的web应用程序都能使用它来完成
事实上,Adam使用Rails开发了他的第一个正式的(而且是叹为观止的!)web应用程序,MixTape
me
这就是他的如何在没有任何经验的情况下搭建一个网站
还有一些其他的web开发框架包括CakePHP(针对PHP编程者),Django(针对Python编程中),以及jQuery(针对JavaScript)
WebAPIs:API(应用层序编程接口)是指不同的软件之间相互交换的程序途径
例如,如果你想在你的网站上放一个动态的地图,你可以使用GoogleMap,而不需要开发自己的地图
TheGoogleMapsAPI可以轻松的让你通过JavaScript在程序中引入一个地图到你的页面上
几乎所有的现代的你所知道的和喜爱的web服务都提供了API,通过这些API你可以获取到他们的数据和小工具,在你的应用程序里就可以使用这些交互过来的东西了,例如Twitter,Facebook,GoogleDocs,GoogleMaps,这个列表远不止这些
通过API把其他web应用集成到你的web应用里是现在富web开发的前沿地带
每个优秀的主流的web服务API都附带有完整的文档和一些快速入手的指导(例如,这个就是Twitter的)
疯狂吧
命令行脚本如果你想开发一个程序,让它读取文字或文件、输入输出一些有用的东西,那么,命令行脚本语言将是个不错的选择
然而它并不像web应用程序和桌面应用程序那样有吸引力和好看的外观,但是作为快速开发的脚本语言,你却不能忽视它们
很多的在linux平台上运行的web脚本同样能以命令行模式运行,例如Perl,Python和PHP,所以如果你学会了使用它们,你将能在两种环境中使用它们
我的学习道路一直没离开Perl太远,我自学Python使用的是这本优秀的在线免费书DiveintoPython
如果成为一个Unix高手也是你学习的目标,那么你绝对要精通bash这个脚本语言
Bash是Unix和Linux环境下的一种命令行脚本语言,它能够为你做所以的事情:从自动备份数据库脚本到功能齐全的用户交互程序
起初我没有任何使用bash脚本的经验,但最终我用bash开发了一个全功能的个人代办任务管理器:Todo
txtCLI
插件(Add-ons)如今的web应用程序和浏览器都可以通过一些扩展软件来丰富自己的功能
由于一些现有的软件,例如Firefox、WordPress越来越受到开发人员的关注,插件的开发也日益流行,人们都在说“ButifonlyitcoulddoTHIS”只要你掌握了HTML,JavaScript和CSS,你就可以在任何的浏览器里开发你想要的很多东西
,scripts,和Stylishuserstyles这些软件都是用的更普通页面一样的语言写成的,这几个东西都值得你去研究一些
更高级的浏览器扩展程序,例如Firefox的扩展,它们可以帮助你很多
开发Firefox的扩展,举个例子,需要你精通JavaScript和XML(一种标记语言,类似HTML,但具有更严格的格式)
早在2007年我就写下来howtobuildaFirefoxextension,这是我在笨手笨脚的研究网上的一些学习资料后获得的成果
很多免费的、受欢迎的web应用程序都提供了扩展框架,例如WordPress和MediaWiki
这些应用程序都是用PHP写成的,所以只有对PHP熟悉你才能做这些事情
这个就是如何编写WordPress插件
而想驾驭GoogleWave前沿技术的开发人员可以从使用HTML,JavaScript,Java,和Python写小组件和小工具开始
我写的第一个Wavebot是跟着这个一个下午时间的快速入门指导开始的
开发桌面上的Web应用程序学习编程最好的结果是你在一个环境下学的东西可以应用到另外的环境中
先学习开发web应用程序的好处就是我们有一些方法可以让web应用程序直接在桌面上运行
例如,AdobeAIR是一个跨平台的即时运行平台,它能让你编写的程序运行在任何装有AIR的操作系统的桌面上
AIR应用程序都是由HTML,Flash,或Flex写成的,所以它能让你的web程序在桌面环境中运行
AIR是开发部署桌面应用程序的一个优秀的选择,就像我们提到过的10个让你值得去安装AIR的应用程序
移动应用开发能在iPhone或者Android智能手机上运行的手机应用程序的开发如今正呈现井喷之势,所以你也可以梦想一下如何在iTunes应用商店里通过你的天才程序大赚一笔
但是,作为一个编码新手,直接奔向移动开发所经历的学习曲线可能会很陡,因为它需要你熟悉高级的编程语言,例如Java和ObjectiveC
然而,你当然应该看看iPhone和Android编程究竟是什么样子的
阅读这个简单的iPhone应用开发例子可以初步认识一下iPhone程序的开发过程
Android程序都是由Java写成的,这有一个简单的视频教程教你如何开发第一个”HelloAndroid“程序(注:可能需要代理才能看这个视频)
耐心,刻苦,尝试,失败好的程序员都有一个不达目的誓不罢休的品质,他们会惊喜于通过长期推敲和失败换来的一点成绩
学会编程会有很好的回报的,但是学习的过程可能会是饱受挫折和孤独的
如果有可能,最好找个伴一起陪你做这件事
想精通编程,这和其他事情一样,需要坚持,反复尝试,获得更多的经验
❼ 如何自学成为程序员
如何学习自学编程的方式最好的莫过于在网络上面查找资源。
目前,网络上电脑资源多不胜数。其中有很多都是基础到精通的视频教程。通过视频讲解。让你明白重点知识。你通过查找一套适合自己的视频。然后看完是基本。
这里推荐几个可以在线学习的好网站:慕课、极客学院、传智播客、如朋网、网易公开课等等做笔记在进行看视频的过程中,一定注意要记笔记。
对视频中重点的部分进行截图,并加以文字解释。就形成了自己的笔记。这些笔记对于你来说很重要。通过记笔记的形式,你就不需要重新观看视频了。只需要复习的时候查看笔记就够了,这样就大大的节约了时间。
下面介绍一个记笔记的好软件:CherryTree多练习代码在视频中讲解的代码,我认为你至少需要自己写三遍以上。在写代码的时候,就用到了上面写的笔记了。通过看笔记截图,即可自己慢慢摸索写出来代码。当然练习到一定程度,就需要你适当的做个项目。巩固自己的知识。
程序员必备技能
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、模块化思维能力
作为一个优秀的程序员,他的思想不能局限在当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。
这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。