程序员

Java程序员的发展前景

坚强是说给别人听的谎言 提交于 2020-01-01 14:12:45
不知道什么时候开始,IT业初级程序员的工作性质与进城打工的"农民工"变得如此惊人的相似。很多IT公司的高管认为"人便宜,就是要用到坏掉,然后再找更便宜、更年轻的",于是,初级程序员们与农民工一样被剥削,一样做着没什么太大技术含量的枯燥工作,一样拿着微薄的收入,有上顿没下顿,买不了房开不了车,日复一日重复"IT民工"的劳动。 "IT"这个英文缩写,原本在人们脑中总是条件反射地与"精英"二字联系在一起。标准的形象应该是"西装革履,背着笔记本电脑,高投入却也高收入".曾经听人说:"想赚钱,就来做IT吧"可如今,人们渐渐忘却了"精英",而是自然而然把"民工"两个字跟在了"IT"后面。 其实,尽管新经济浪潮已经席卷多年,IT仍然是高技术含量的智慧密集型产业。最新2012年十大热门专业、十大高薪专业近期火爆出炉,位居榜首的都是软件开发专业,而如今却把它与"民工"这样一个承担繁重体力劳动的职业联系在一起,一定程度上反映中国IT产业当下的尴尬现状。 当"民工"这个词汇加上个定语--IT,我们大体可以感知这个高科技行业中底层从业者的生存状态。而想要在IT这条道路上继续向前走变身"IT精英"的"民工"们,就必须懂得,只有掌握随时更新的技术,才是进一步发展的硬道理。只有学的好、学的精、学的高端,才能在这个用光速更新换代的行业里站稳一席之地。 java作为现在最热门的语言之一

非好学校科班出身的程序员,该如何快速提升自己

青春壹個敷衍的年華 提交于 2020-01-01 14:07:41
目前一般的大点的公司,往往会在招聘时(尤其在招聘3年以下工作经验的程序员时)会设置学校的门槛,比如需要211或985相关专业毕业。这里我无意贬低不在这个范围的程序员,相反在本文里还将根据我所见和我所闻,为这些同学给出发展的建议。 首先我用我的切身体会给大家予以足够的信心:我最近呆的都是一些不小的公司,虽然在招聘时有上述的门槛,但事实上,在3年左右的正式员工里,大约30%是一般学校,或非科班出身,在外派的员工里,这个比例会高到70%左右,而且,每个组平均每年有3个左右转正的名额。所以,出身一般的程序员,只要有足够的勤奋度,而且方法得当,绝非就一定低人一等。 恕我直言,在学校和学历方面稍微欠缺的同学里,我有见过能力很强的,但平均综合能力确实不如好学校。(这里如果我说高于好学校,说出来也没人信)。 不过对于勤奋的同学来说,并非是能力不行,而是努力的方法和方向不对。对于这批敬业勤奋的同学,我非常敬佩,所以在这篇文章里,我将专门分享些相关的提升技巧。 1 战术上要重视,分析为什么大公司要设置学历和学校的门槛 平心而论,为什么有这样的设置呢?第一,能进好学校的同学在之前的学习过程中已经证实了自己“综合能力强“这个特质,第二,好学校毕业的同学,一般基础能力比较扎实,比如数据结构算法操作系统编译原理等,不仅理论经验,不少还有实训经验。 在前进的过程中,我们必须认清自己,所谓知己知彼百战不殆

重建中国.NET生态系统

梦想与她 提交于 2020-01-01 13:32:29
Neuzilla官方微信公众号:搜 架构师联盟 或 neuzilla 我是.NET铁杆粉丝,所以如果你要在评论里跟我撕逼.NET怎么怎么烂,Java、C++、PHP、JavaScript怎么怎么好,我奉陪。我这人没什么优点,就是说话直入主题,然后骂到你爽为止,当然咯我不是纯流氓,我是有文化的流氓,呵呵。 为什么我喜欢.NET 我用.NET十年了,说实话 C#这个语言我很喜欢,比C++不知道人性化多少 ,当然前提是不考虑性能的情况下,C++的性能比.NET好上10倍左右,这是官方MSDN里提到的,所以不用质疑。但问题是Java也好不到哪去,慢的跟狗屎一样,只能说半斤八两。倒是JavaScript的V8引擎异军突起,你看Node.js最近多火呀,当然V8也是用C++写成的,性能赞也不足为奇。 .NET的设计理念是会一种语言即可,但程序会被编译成同一种代码(MSIL),然后运行在同一个虚拟机上(CLR) 。其实不得不说微软的有些理念还是很不错的,虽然理想很丰满,现实很骨感。虽然微软经常干虎头蛇尾的事,但.NET是个例外,至少目前来看,.NET的语言层面的推广和维护做的还是很不错的,近期微软对于开源及Linux系统上Mono的支持力度还是很不错的,并且已经开源了CLR,我们可以预见不久的将来很多高级的定制CLR会诞生,微软正在仿效当年Sun的模式来推广.NET。

程序员修炼之道读书笔记6

蹲街弑〆低调 提交于 2019-12-31 23:02:21
  本书第八章为注重实效的项目。   在“注重实效的团伙”部分,首先讲了团队作为一个整体,不应该容忍破窗户。其次是团队作为实体需要与外界明晰的交流。给出了提示60,“围绕功能,而不是工作职务进行组织”。确保一致的和准确的一种很好的方式是使团队所做的每件事情自动化。   在“无处不在的自动化”部分,给出了提示61,“不要使用手工流程”。在项目编译时,使用makefile有若干好处。项目构建包括以下几个步骤:1、从仓库中签出源码2、从头开始构建项目3、创建可分发映像4、运行规定的测试。对于大多数项目,这一层面的构建是在每天夜间自动运行的。   在“无情的测试”部分,给出了提示62,“早测试,常测试,自动测试”。提示63,“要到通过全部测试,编码才算完成”。项目范围测试的三个主要方面是:测试什么(单元测试,集成测试,验证和校验,资源耗尽、错误及恢复,性能测试,可用性测试),怎样测试(回归测试,测试数据,演练GUI系统,对测试进行测试,彻底测试),以及何时测试。给出了提示64,“通过蓄意破坏测试你的测试”。提示65,“测试状态覆盖,而不是代码覆盖”。提示66,“一个bug只抓一次”。   在“全都是写”部分,提到注重实效的程序员会把文档当作整个开发过程的完整组成部分加以接受。给出了提示67,“把英语当作又一种编程语言”。提示68,“把文档建在里面,不要拴在外面”。   在“极大的期望”部分

组合和聚合之间的区别

无人久伴 提交于 2019-12-31 21:30:00
组合表示的是整体与部分的关系,比如:引擎是汽车Car的一部分,脱离了汽车的引擎毫无作用,没有实在的意义。 而聚合表示的是另一种关联关系,比如:人由身体所组成,应该由身体来组合为一个人,身体作为人的组合的一部分,人和人的手,脚是组合关系,因为当人死亡后人的手也就不复存在了。人的身体在数据库中,应当直接作为人的属性存在。但一个记录人信息的文档,即便脱离人本身,也可以在其他地方体现价值,这就是聚合。 用更加理论化的文字阐述: A类的构造方法里创建B类的对象,也就是说,当A类的一个对象产生时,B类的对象随之产生,当A类的这个对象消亡时,它所包含的B类的对象也随之消亡。 而在聚合的方式下,A类的对象在创建时不会立即创建B类的对象,而是等待一个外界的对象传给它,传给它的这个对象不是A类创建的。 容易看出,组合的关联关系要比聚合更强。 不过,组合和聚合的关系并不是一成不变的。假如有一个程序员,他只会写代码,那么他想用写代码谋生,就必须拥有一台电脑,那么程序员就与这台电脑为组合关系,一旦电脑坏了,程序员就会饿死,如果程序员能力太差,找不到饭吃然后饿死了,这台电脑也会被丢进垃圾桶送去焚烧。 这时电脑与程序员的关系应该是这样的: public class Programmer { public Computer computer; //程序员唯一一台电脑 public Programmer() {

快速学习FreeMarker-FreeMarker简介

。_饼干妹妹 提交于 2019-12-31 13:41:46
2 FreeMarker简介 2.1 什么是FreeMarker FreeMarker 是一款模板引擎 :一种基于模板的、用来生成输出文本(任何来自于 HTML格式的文本用来自动生成源代码)的通用工具。它是为 Java 程序员提供的一个开发包或者说是类库。它不是面向最终用户,而是为程序员提供的可以嵌入他们开发产品的一款应用程序。 FreeMarker 的设计实际上是被用来生成 HTML 网页,尤其是通过基于实现了 MVC(ModelView Controller,模型-视图-控制器)模式的 Servlet 应用程序。使用 MVC 模式的动态网页的构思使得你可以将前端设计者(编写 HTML)从程序员中分离出来。所有人各司其职,发挥其擅长的一面。网页设计师可以改写页面的显示效果而不受程序员编译代码的影响,因为应用程序的逻辑(Java 程序)和页面设计(FreeMarker 模板)已经分开了。页面模板代码不会受到复杂的程序代码影响。这种分离的思想即便对一个程序员和页面设计师是同一个人的项目来说都是非常有用的,因为分离使得代码保持简洁而且便于维护。 尽管 FreeMarker 也有编程能力,但它也不是像 PHP 那样的一种全面的编程语言。反而,Java 程序准备的数据来显示(比如 SQL 查询),FreeMarker 仅仅使用模板生成文本页面来呈现已经准备好的数据 FreeMarker

优秀程序员和普通程序员的差别在哪里?

核能气质少年 提交于 2019-12-30 10:53:20
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.对待需求的态度 优秀程序员: 在有需求与任务时,会不断地询问需求与任务,并且多次确认想要的结果,再动手写代码。 一般程序员: 接到任务就闷头写代码,反正做错了也是你们要求的,不是我的锅。 2.编码习惯 优秀程序员: 他的代码读起来是赏心悦目的,若遇到难理解的实现点时,他也会写下清晰的注释来帮助后来人理解。 一般程序员: 我有我的代码风格,我看得懂就行了。几个月后我也看不懂了,那就重写一遍吧。 3. 善于学习 优秀程序员: 遇到没接触过的技术时,他会主动搜索资料去学习钻研,并以此为乐趣。 一般程序员: 疯狂地找插件,类库和框架,常常做代码搬运工,安慰自己不要造轮子。 4. 对工作精益求精 优秀程序员: 会抽时间review自己的代码,并思考如何提高性能。 一般程序员: 只喜欢开发新项目,不喜欢维护旧项目,万一搞崩了呢? 5. 有钻研精神 优秀程序员: 遇到问题,会考虑独立寻求解决办法,提升自己处理问题的能力。 一般程序员: 喜欢把问题交给别人,把代码发给别人,让别人帮他找问题。 6. 良好的情绪管理 优秀程序员: 理解需求是会不断变化的,不会把消极情绪表达出来,能控制好情绪,能跟产品经理和谐愉快沟通。 一般程序员: 因为需求反复修改就索性说这个代码实现不了。 7. 态度很谦虚 优秀程序员: 对新的技术敏感度

经典计算机书之C++

半世苍凉 提交于 2019-12-30 04:51:18
C++篇 1.《C++Primer》 l 推荐理由 本书是久负盛名的C++经典教程,其内容是C++大师StanleyB. Lippman丰富的实践经验和C++标准委员会原负责人JoséeLajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。对C++基本概念和技术全面而且权威的阐述,对现代C++编程风格的强调,使本书成为C++初学者的最佳指南;对于中高级程序员,本书也是不可或缺的参考书。 本书所有作者都是著名的C++权威人物。 l 九度链接 /thread-119-1-2.html 2.《C++程序设计语言》 l 推荐理由 体味C++语言的精妙与魅力 享受与大师的心灵对话 《C++程序设计语言》介绍了标准C++以及由C++所支持的关键性编程技术和设计技术。标准C++较以前的版本功能更强大,其中许多新的语言特性,如名字空间、异常、模板、运行时类型声明等使得新技术得以直接应用。这本书围绕语言及库功能来组织,内容涉及C++的主要特征及标准库,并通过系统软件领域中的实例解释说明一些关键性的概念与技术。 l 九度链接 /thread-1207-1-1.html 3.《EffectiveC++》 l 推荐理由 Effective C++是世界顶级C++大师ScottMeyers的成名之作,初版于1991年。在国际上,这本书所引起的反响之大,波及整个计算机技术出版领域

「强烈推荐」每个程序员都应该收藏的网站

半城伤御伤魂 提交于 2019-12-30 03:03:48
作为一名互联网人必须要知道的网站,建议收藏 一、自媒体方向 1. 文本排版 a. 365编辑器 b. 135编辑器 2. 图片设计 a. 作图怪 b. 创可贴 c. 搞定设计 d. 设计坞 二、图片 1. 无版权图库 a. Colorhub b. 泼辣有图 c. 大作 d. Pixabay 三、前端方向 1. CSS样式 a. 生成渐变css c. 配色方案 3. css语法 2. 网站布局 a. flew布局 b. grid布局 四、后端方向 1. 代码生成 a. Sql转JavaBean b. Json转JavaBean 2. 数据分析 a. Json视图 3. 源码文档 a. API 来源: CSDN 作者: chinesszz 链接: https://blog.csdn.net/Message_lx/article/details/103744424

详解.NET 4.0新特性Dynamic相关知识

大城市里の小女人 提交于 2019-12-29 21:59:33
详解.NET 4.0新特性Dynamic相关知识 2010年一季度Visual Studio 2010和.NET 4.0将发布正式版,在这里我们将先体验一下.NET 4.0新特性Dynamic及其相关知识,希望对大家有所帮助。 前段时间看过一些关于dynamic这个C#4中的新特性,看到有些朋友认为dynamic的弊大于利,如无法使用编译器智能提示,无法在编译时做静态类型检查,性能差等等。因此在这篇文章中我将就这些问题来对dynamic做一个较详细的介绍,希望通过这篇文章,能使大家对dynamic关键字有个更深入的认识。 dynamic介绍 相信很多人应该都已经对Anders Hejlsberg在PDC2008上所做的那篇”The Future of C#”(注1) 都有所了解了,当时的这篇演讲已经介绍了C#4.0的一些最重要的特性。Anders提到C#的未来时候指出C#4.0的特点是动态编程,他同时也列举了很多在4.0中关于动态编程的例子,这里我具体讲一讲他首先提到的dynamic关键字。 提到dynamic,我首先想到的是var关键字。事实上,当var在C#3.0中刚刚出现的时候就引起了一些人的质疑,后来微软解释var只是隐含类型声明符,并且只能用作局部变量,它其实仍然是强类型,只不过是编译器由初始化结果推断而来,所以对这个变量仍然可以可以使用VS的只能提示