转:http://heis.iteye.com/blog/507808
我是一名初级程序员,工作一年多。还记得刚毕业,踏入社会的时候,面临着很多工作上尴尬和困惑。首当其冲的便是在学校学的知识并不够用,甚至并不管用。于是学习新技术成了重点解决的问题。其实IT行业推陈出新的速度是很快的,学习新技术并不是初级程序员独有的问题,但是他们的处境是更为困难的,缺乏经验和指导,如何迈出第一步,如何筛选信息,如何深入学习都是摆在我们前面的一道道题目。下面就我的经验来谈谈程序员学习的策略吧。
1.明确目标。
首先在学习之前要设定明确的学习目标。什么是明确的目标呢,例如工作的项目需要你能熟练的编写javascript,那么你的目标很明确,就是学习 javascript。如果目标设定为网页前端技术,那么这个目标是很模糊的,因为一种技术是有很多的具体的实现方法,所用的具体技术也大有不同。你还需要对目标作进一步的细化,一定要具体到一门语言或一种解决方案。当然你目标设定的前提肯定是要用在工作上,如果学的技术不能用在生产上,那么你学习的东西是没有意义,时间也浪费了,你还不能确定你掌握到了什么程度。如果你无法明确自己的目标,可以看第2点。
2.广泛涉猎,浅尝辄止。
如果你对一个领域一无所知,无法设定具体的目标,那么你是遇到了技术选型的问题。很多时候,我们第一反应是使用搜索引擎。搜索的确是很方便,但是搜索的信息量会把你淹没。所以有技巧地筛选信息很重要。我的经验是使用广度优先的方法,例如google“网页前端技术”,你会找到很多关键词 Ajax,jquery,javascript,css,xhtml等等。这时候先把这些关键词记录下来,作第二次的筛选。对于名词的搜索,可以考虑使用维基百科,这个阶段你要找到相关技术的著名社区或者是官方网站,往往这些地方可以提供最有价值的信息和入门教程。
当你找到了一些入门的教程或者了解到了这个领域的一些基本情况,就可以开始“浅尝辄止”的学习了。例如利用一两天的时间运行入门教程的例子,了解技术的特点和长处。但是千万不要轻易地深入学习,深入学习是需要付出巨大的学习成本(时间,精力)的。所以浅尝辄止是一个很好的策略,当你尝完所有的技术入门,可以对比出这些技术的特点,局限性,稳定性,学习的成本。对比自己的实际情况,你的目标也应该明确了,可以选择深入学习的技术。
3.兴趣所在,学为所用。
选择技术深入学习,最好要符合你自己的兴趣,那样你的学习效率会比较高,至少你会比较主动地去学。如果你对这门技术心存排斥,你是无法掌握它的。但是很多时候并没有那么完美的事,如果你是迫于工作需要才去学,那么你就要控制深入的程度了。有一家公司叫37signals,他们公司生产软件的宗旨是满足客户的最小需求,不提供那些客户可能根本不会使用的功能。我们也可以借鉴这样的宗旨,学技术,够用就行了,等到不够用的时候再去补。
很多初学者可能会坠入一个误区,认为一项技术过时了,便又去追求一项新的技术。其实技术的“新与旧”只会在那些软件厂商的广告或者书籍里有区分,在我看来,技术只有能不能满足工作需要之分。想想多数的牛人其实都只能擅长一个领域或一种技术,广泛应用于金融行业的COBOL语言比现在99%的程序员都要老。
4.欲善其事,先利其器。
日常的学习会用到很多的工具,例如浏览器,搜索引擎,开发工具等等,掌握使用工具的技巧可以更加高效地学习。很多程序员习惯一遇到问题就直接 google,百度,可能在翻了好几页都找不到解决方法。搜索引擎通常都有高级的API,在关键字后面加上 “site:www.blogjava.net",你就能在blogjava站内搜索问题。一个在海里捞鱼,一个在鱼排捞鱼,哪个容易?搜素引擎是屠龙刀还是水果刀,那也取决于你会不会用。
还有一个工具是英语,可能是很多程序员的老大难。我的意见是不会听说,至少要会读写。延续上面的例子,有些问题在g.cn和baidu.com搜不到,翻译成英文就可以在google.com里搜到。
磨刀不误砍柴工,亘古不变的道理。
5.戒骄戒躁,虚心严谨。
这一条可能无关学习策略,不过是一种学习态度。
我的建议是,浮躁者,少看新闻,少交流,多看历史和文学。骄纵者,多看新闻,多交流,少孤芳自赏。
虚心,程序员都应该要有的品质,无须多讲。但是严谨可能是很多程序员都没有的,想想你工作的时候说过多少次“可能”,“应该”,“人品问题”。你可能认为那是一种习惯,但是你也会习惯失去别人的信任。
分享到:
相关推荐
从技术层面讲,.NET框架为应用程序提供了一个运行环境,使得开发者可以编写跨语言的代码。.NET框架的核心组件包括Common Language Runtime(CLR)和Common Language Infrastructure(CLI)。 CLR是一个运行时环境,...
此外,大部分的技术文档、参考资料和技术论坛都是英文原版,高质量的翻译往往滞后,可能导致理解偏差或延误对新技术的掌握。 例如,英文术语“roll back”就有多种中文译法,如“回滚”、“回退”等,这种不一致...
初级程序员考试,全称为全国计算机技术与软件专业技术资格(水平)考试中的初级程序员级别,是为评估和认证个人在计算机编程领域的基础知识和实践能力而设立的一项国家考试。这个考试通常包括理论知识和应用技术两...
QQ讨论群的存在为考生提供了一个互动交流的平台,群内可以共享学习资源,解答疑问,进行模拟测试,提升备考效果。初级程序员①和②两个群组,可以满足不同考生的需求,互相学习,共同进步。 在准备软考的过程中,...
根据给定文件的信息,我们可以将“程序员的八个级别”这一概念进行详细解析,以此来深入理解...每个级别都有其特定的要求和特点,随着技术能力的提升和个人职业发展的推进,程序员可以从一个级别逐步晋升到另一个级别。
而在大环境中,由于竞争激烈,跳槽往往被视为一个快速成长的途径。跳槽能带来新的机遇,如更高的薪资、更大的挑战以及更丰富的经验积累,但同时也需要谨慎处理,确保每次跳槽都能带来实质性的职业进步。 标签中的...
- 访问当前节点,并将其与上一个节点连接。 - 遍历右子树。 3. **完成**: - 完成中序遍历后,伪头节点的右子节点即为排序后的双向链表的起始位置。 #### 7. 代码实现 - **数据结构定义**: ```c++ struct ...
这篇文章“程序员十层楼:程序员的修炼”旨在描绘程序员从初学者到资深专家的成长路径,为不同阶段的程序员提供一个自我评估和提升的标准。下面将详细探讨这个成长体系中的各个层次及其所代表的知识点。 1. **入门...
通过这一篇,初级程序员可以了解到如何提高自己的技术水平,以及如何将业务知识与编程技能相结合。 第二篇主要讨论架构修炼,旨在帮助具有一定架构设计经验的中级程序员系统化提升能力。这一篇详细阐述了架构思维...
- 该报告还涉及了多个岗位的薪酬水平,如业务拓展、通讯技术、人力资源、行政、采购、物流、客服、建筑工程、技术支持、品牌运营、市场、财务、公关、测试、质量管理部门等。具体到每个岗位的薪酬起始页码,为企业...
软考程序员是针对信息技术领域初级技术人员的一项国家资格认证考试,旨在测试考生的基础编程能力、系统分析能力和软件工程实践能力。 在这些年的试卷中,你可以找到以下几个关键知识点: 1. **基础编程语言**:...
【软考程序员试卷及答案分析】是一份涵盖了2009年至2017年间的全国计算机技术与软件专业技术资格(水平)考试初级程序员级别的试卷合集,这是一系列重要的学习资源,对于备考该级别的考生来说具有极高的参考价值。...
Java程序员职业规划是一个重要的主题,...记住,持续学习和适应新技术是Java程序员保持竞争力的关键。无论是通过阅读专业书籍、参加在线课程,还是参与开源项目,不断拓宽视野和增强实践能力都将有助于你的职业发展。
整理者花费了大量的时间与精力,将这些宝贵的信息整合在一起,旨在为考生提供一个便捷的学习平台,使得备考工作更加有序和高效。通过研读这些资料,考生可以了解考试的结构、重点以及可能的出题方向,从而有针对性地...
《程序员面试功略》与《程序员面试宝典...总的来说,《程序员面试功略》和《程序员面试宝典》全面覆盖了程序员面试所需的各个层面,无论你是初级程序员还是有经验的开发者,都能从中受益,为你的职业生涯开启新的篇章。
6. **数据库管理**:虽然不是初级程序员考试的常规重点,但基础的SQL查询语言(如SELECT、INSERT、UPDATE、DELETE)和数据库设计理论(如ER模型、范式)的理解对后期发展很有帮助。 7. **软件工程**:包括需求分析...
“从小工到专家”则明显指出了程序员职业发展的一个理想路径,即从最初级的编码执行者到掌握深厚技术与业务理解的高级专家。 书中可能包含的知识点有: 1. 编码技巧:包括掌握至少一种编程语言、熟悉数据结构和...
- **角色转变**:相较于初级程序员,中级程序员更有可能参与到项目的决策过程中,包括技术选型、编码规范制定以及开发流程优化等。此外,他们有时还需要承担起指导团队成员的责任。 - **重要性**:作为公司的中坚...
中国计算机技术职业资格认证指导中心于2018年发布了最新的软考初级程序员考试大纲,旨在为考生提供明确的学习方向和考核标准。这份大纲详细规定了考生需要掌握的基本知识、技能以及应试策略,涵盖了计算机基础、程序...