行业新闻
2017-02-04 13:04
大纲
找一种你喜欢用到工作中的语言
修复问题
(公开)发布工作
写博客
保持健康心态的小技巧
引言
“哦,天那。相比其他开发者,我又笨又没准备。老板会知道我是多么无能,我要被炒鱿鱼了。”
这种想法,在我们作为一名软件开发人员刚进入工作领域的时候,非常常见。我也不例外。这种想法会让人觉得自己不如其他的开发者,感觉自己是滥竽充数的,感觉自己像一个全面的傻瓜,当涉及到写代码的时候。
在短短的几个月后,我第一次获得一份真正编程工作的兴奋——改善和维护一个基于web的研究平台——终于变成了绝对的恐惧,那些消极负面的想法在我的脑海里不断地涌入。即使在我去了更大节奏更快的组织机构,以及之后终于开创了我自己的企业,这些想法也在不断地蚕食我。
...
2017-01-11 13:00
在上一篇文章《张小龙的不克制》里我用一句话总结了张小龙对小程序的定义:小程序希望用即用即走的方式激活线下的弱连接场景。这篇文章,我将对这个定义做详细的阐述。
今天,1 月 9 日,小程序正式发布,用户可以体验到各种各样的小程序,从 8 月中旬写了《别开发 app 了》后,我对小程序和微信的观察没有停止过,通过外部的观察以及和一些业内朋友交流,我逐渐清晰地推导出,微信到底想用小程序干什么,以及从小程序当中,我们能看到哪些可用创业的场景。
1 小程序的定位在变化?
1 年前的微信公开课,张小龙提出要做应用号,经过 8 个月的研发,小程序(应用号)开始内测。如果你有观察从内测至今微信小程序提供的 API、后台功能等的变化,你会发现,似乎过去 2 个月微信团队做的事比之前 8 个月还要多。
...
2017-01-04 13:13
作为程序员,最平常不过的就是敲代码了。然也,这是我们自身以及外界对我们最朴实的认知。在编码过程中,我们可能会遇到并解决掉一些问题,积累经验和心得,有的人选择用自然语言记录下来,形成博客,而大多数人往往不会做这种记录。
本文将试图探讨,为什么程序员都应该尝试记录自己遇到的问题,经验和心得,以及为什么我们需要以公开的博客的形式来展现。
首先,做个简单的自我介绍,我是一名 Android 开发,在大学时候受到当时的创新工场首席布道师 蔡学镛 的一篇微博教诲,开始尝试写技术博客。先前在csdn写一些简单的总结,最后自己开始维护一个独立的博客,名为技术小黑屋。该博客维护将近4年多。专注于书写Java 和 Android 的技术文章,在开发者头条和稀土掘金有着大量的关注,并且在droidcon和GDG做过多次主题分享。
...
2016-12-30 14:21
想要成为一名成功的程序员,我们除了了解不同编程语言的设计思路,也应当了解编程的发展历史,从而判断未来的编程技术将走向何方。接下就为大家普及下计算机发展历程中的8个冷门小知识!
1.第一台电脑为蒸汽驱动
作为公认的编程之父,Charles Babbage发明了世界上首批计算机之一。他将这台新设备称为分析引擎。其体积超过一栋房屋,由六台蒸汽机驱动并使用打孔卡进行编程。分析引擎有四大主要组成部分:
1) 转盘——相当于现代计算机中的CPU;
2) 存储——相当于现代计算机中的内存与存储介质;
...
2016-12-26 13:42
回顾即将过去的这一年,勒索软件正逐渐成为俄罗斯黑客进行政治宣传和网络攻击的强大武器。但是人们容易忽略的一点是,2016年发生的所有攻击事件并非都是如此丑陋和暴力的。虽然,在过去这一年间,网络犯罪和网络间谍的控制和影响范围正在进一步扩张,但是2016年也展现了一些鲜为人知的“好”的一面:安全研究人员通过改变游戏规则进行了一系列饱含创意的网络攻击活动,他们通过既有创意又令人不安的攻击方法来破解物联网设备、攻破锁定计算机以及劫持电脑鼠标等。所以,如果你依然对风靡一时的“400磅黑客”的生活感到困惑,或是厌倦听到那些关于比特币赎金以及俄罗斯“Fancy Bears”黑客组织的新闻,下面我们就一起看看今年那些白帽黑客带来的最为酷炫的攻击方式吧。
...
2016-12-11 13:32
继承的最大好处就是为了实现代码的复用。那么,子类到底从父类得到的什么呢?
实例成员
父类的private成员不会被子类继承,子类不能访问。但是子类对象的确包含父类的私有成员。
父类的 包访问成员 继承为子类的包访问成员。就好像他们直接定义在子类中一样。
父类的 protected 成员继承为子类的protected 成员。就好像他们直接定义在子类中一样。
父类的 public 成员继承为子类的public 成员,就好像他们直接定义在子类中一样。
实例方法
继承到的实例方法在子类中可以直接被使用,还需重点理解是方法的重写和重载。
...
2016-12-10 13:32
前言
本文是异常内容的集大成者,力求全面,深入的异常知识研究与分析。本文由金丝燕网独家撰写,参考众多网上资源,经过内容辨别取舍,文字格式校验等步骤编辑而成,以飨读者。对于本文的内容,建议小白需要多多思考力求掌握,对于老手只需意会温故知新。对于本文的内容,属于基础知识研究范畴,切勿以为读完此文就能将异常知识掌握到家。切记:操千曲而后晓声,观千剑而后识器,所以我觉得没有大量的源码阅读经验,你很难知道什么时候需要自定义异常,什么时候需要抛出异常。
异常机制概述
异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。
...
2016-12-10 13:19
程序员干到30岁,好不容易从码奴混到了白领,却再也干不动了,还时时面临失业的危险。30岁,是一个程序员伤不起的年龄。明天,何去何从?
一.30岁现象
在官场上,曾经有一个59岁现象,就是官员们会在59岁时,会使劲捞上一把。很明显嘛,权力过期作废,再不捞就要退休了,没有机会了。在程序员的圈子里,也有一个30岁现象。当然,如果你有铁饭碗,比如在国企或政府机关,那你是无法理解底层劳动人民的感受的。同时也要恭喜你成为体制内的一员,可以一直干到退休无忧。30岁现象人人都明白,但要给出一个定义并不容易。列举几个表现,也许你会觉得心有戚戚焉。面临职业瓶颈,程序写不动,上升又困难。薪水较高,加班变少,后浪追前浪,面临失业压力;生活压力剧增,不敢跳槽;招聘程序员年龄限制在30岁以下成为行业潜规则,跳槽困难。30 岁现象和59岁现象貌似不搭边,其实都出于同样的原因:价值贬值。官员老爷在任就像皇帝,一旦退休,就成为了平民百姓,贬值那是自然的。而程序员也一样, 所谓三十而立,一旦到了30岁左右,由于面临结婚生子,一方面需要高薪抚养家庭,另一方面却无法像以前那样全身心投入到工作,性价比急剧下降;与此同时, 大批廉价的新手涌入,他们往往还使用最新的技术,老一辈程序员只能慢慢的靠边站了。
...
2016-11-27 13:25
我大部分走路的时间还有睡梦中的潜意识里都会琢磨着Deep Learning 的问题。Peter Thiel 有一个很有名的说法——“最后一个公司的优势”。意思是你可能不需要具备“第一启动的优势”,但是你一定要成为你行业里最后一个站着的公司。就像Google有可能是最后一个搜索引擎公司,Amazon有可能是最后一个做电商的, Facebook希望不是最后一个社交网络公司等。但是让我夜里辗转反侧的是——深度学习有可能会是“人类最后一个发明”(Last Invention of Man)。
但是,咱们先别想那么远。不管怎样,Kurzweil在他《奇点临近( Singularity)》一书中预计在2045年实现的设想也是30年之后的事情。我们现在要做的就是在这30年里弄清楚想生活在像电影《极乐(Elysium)》中那样,还是什么别的不知名的腐烂废水里。
...
2016-11-26 13:54
各位,请从前端和后端等各角度分开说,为什么还有那么多人想转行当程序员?谢谢!补充:有程序员在家办公吗?
本期我们聊聊程序员的辛苦!
晨池,缓则,哪里走?!带上我!
代码水平不高的时候,天天加班也干不完,还说其实是喜欢。
随着代码水平的提高,注释写的越来越少,话也越来越少了。
话说得少了,觉得办公室气氛变得有点压抑,于是离职换了一家公司。
在新的公司还是那么忙,于是经常幻想老了就可以轻松点,却发现脑门子越来越大,眼睛看不清楚了胳膊腿儿越来越细,肚子越来越大,原来已经提前老了,但是还要加加班。
...
2016-11-26 13:01
不是每一个程序员都能成为优秀的软件工程师。在过去的6年时间里,我在Ooyala、Quora和now Quip这3个创业公司面试过许许多多挺有发展潜力的“种子选手”,他们都有着5年以上的工作经验,并且曾为类似于谷歌这样的顶级技术公司服务过,但是就是搞砸了面试。毫无疑问,这些应聘人员都是不错的软件工程师,并且,他们甚至可能很擅长他们目前的工作。我之所以否决他们,只是因为我不认为他们能成为一名优秀的软件工程师。
我多年的面试、培训和指导经验告诉我,具备一些特殊的品质能让软件工程师更容易在创业环境中取得成功。并且,这些品质在初创企业比在一个更成熟的公司更为关键。因为在一家初创企业:
...
2016-11-20 14:51
想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,在面试之前到底需要准备哪些东西呢?面试时面试官想了解你的什么专业技能,以下都是一个合格JAVA软件工程师所要具备的。
一、专业技能
1、熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架、多线程(并发编程)、I/O(NIO)、Socket、JDBC、XML、反射等。
2、熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发经验。
...
2016-11-20 13:47
过去,几乎所有的软件开发项目都采用瀑布模型。这种编程方法酷似工厂装配线,要求开发人员完成一个开发阶段,之后才能进入到下一个阶段。这种方法高度结构化,但是项目需求有变化时,它就不适用了。
近些年来,开发人员开始青睐更迭代性的流程,因而更容易兼顾项目范围和需求出现的变化。敏捷软件开发以及似乎无穷无尽的变种方法已越来越常见。现在它们成了主流的编程方法。
我们在本文中介绍了十种最流行的软件开发方法的功能特性,包括敏捷、Scrum、精益、极限编程,甚至还有瀑布方法。
1、敏捷软件开发
2001年,17位软件开发人员签署了敏捷宣言(Agile Manifesto),因此载入史册。自那以后,敏捷软件开发迅速流行起来;实际上,在2015年弗雷斯特调研公司的一份报告中,54%的受访企业表示,其内部一半以上的开发团队在使用敏捷方法。敏捷理念基于12个核心原则,这些原则注重简短迭代、持续交付、简洁性、回顾以及最终用户和开发人员之间的协作。
...
2016-11-17 13:34
大多数人选择Java可能只是因为听说Java前景好、Java比较好找工作、Java语言在TIOBE排行榜上一直位于前三等等之类的原因,但是Java具体好在哪里,心里却是没有什么概念的。其实我选择Java也是出于以上的原因,但是现在确实真正地爱上了Java。
那么现在我们来分析下Java的好处究竟在哪里,我们为什么选择Java?
简单易学
首先Java是一个面向对象的编程语言,容易理解。而且略去了多重加载、指针等难以理解的概念。并且实现了自动垃圾回收,大大简化了程序设计。
其次Java学习资料较多,在官网上可以找到很多Java的学习视频,另外也有一些培训机构提供的有免费的Java视频课程。有这些学习资料,类似高淇300集等入门足矣。
...
2016-11-14 13:17
以下讨论只针对PC端和移动端。
Java最大的优势真的在于跨平台吗?以前是,但现在已经不是了。
Java最大的优势真的在于跨平台吗?
有跨平台需求的仅仅是客户端应用,而不是服务端。例如桌面应用,你的客户可能是Windows用户,也可能是Linux用户,这时候如果不想多投入成本对各个平台进行适配,那么Java所谓的”Write once, run everywhere”就显得异常光彩。然而今天,整个软件世界都在向B/S应用倾倒(嵌入式除外),即使要做客户端跨平台,QT等第三方框架远远比Swing更强大,Java在桌面应用领域基本被淘汰已经是不争的事实了,而当初Java引以为豪的Applet也早已销声匿迹。如果说客户端Java还有一点优秀的话,那只有Android了。Android最初确实靠JVM屏蔽了不同硬件设备之间的区别并取得了巨大的成功,但在今天,Android L中ART模式的出现也即将颠覆这一情况,况且Google还可能会想用自家的Go语言取代Java成为Android平台的第一语言。所以在客户端,Java几乎完败。
...