现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

一个半路出家的10年程序员:谈工作、学习与Qt

2014-12-16 03:25 工业·编程 ⁄ 共 9620字 ⁄ 字号 评论 8 条

    安晓辉,2014年CSDN博文大赛编程语言组冠军(小组赛文章、决赛文章)、CSDN Qt论坛的版主(http://bbs.csdn.net→移动开发→Qt)。他于1998年保送入西安交大教改班,2002年毕业进入西安大唐电信从事售后技术支持工作,2005年3月离职,始习编程之术。在此期间,有个人文集收录于各大文学站点与论坛,部分散文、小说、书评见诸杂志与报纸。国内第一本BBS原创文集《指尖的飞翔》(兵马俑BBS原创文学精选)作者之一。网络文学选集《竹林听海》作者之一。2005年4月加盟西安信利软件科技有限公司,参野狐禅,走开发路。

    2008年见Qt而倾心,用之于GUI、网络服务器、嵌入式开发,带领团队成功开发出基于 Qt 的互联网电视机顶盒。2012年移植 Qt Embedded 4.5.2 到 Android平台并应用于智能机顶盒项目。著有《Qt on Android 核心编程》和《Qt Quick核心编程》。

CSDN:请和大家介绍下你和目前所从事的工作。

安晓辉:我始终觉得自己的身份是一个程序员,是手艺人,我觉得靠技术吃饭是纯洁、高尚、值得尊敬的,有诗为证:闲来就写青山卖,不使人间造业钱。

我从技术支持转做程序员,做到现在,已经有将近十年。一路走来,项目经理、部门经理、项目总监,很多角色都干过,现在入伙朋友的公司,算是最小的合伙人。公司在做的事情还不能说,没做出来呢,做出来了再说。不过我们正在招人,Android、iOS、Java,感兴趣的朋友可以联系我(邮箱:hqspeak@163.com)。

CSDN:你是如何走上软件开发之路的?

安晓辉:其实当时我转行做开发,是形势所逼,觉得自己干不了别的。写小说出版不了养活不了自己吧,搞销售又没有脸皮和嘴皮,还能干什么……干技术活儿吧,于是就决定做开发了。当时还有一个考虑,觉得软件开发是有创造性的工作,应该和写小说有差不多的乐趣。现在看来,确实有很多东西是相通的。这一点已故的文坛外高手王小波已经证实:他本人既是一流的小说家,又是一流的程序员!

犹记得我毕业那会儿通信行业很火,大中华(大唐、中兴、华为)很流行,我随着滚滚人潮就进了大唐电信,去做技术支持。干了两年,觉得自己要废掉了,整天东奔西跑插拔程控交换机、换板卡、跳线、更新版本,没有挑战。另外老出差,也不是个事儿,就想转行,不打算再做技术支持了。回到西安后,没能在公司内部转研发,我就辞职了。

大学学过PASCAL,可是很少有软件公司用这个,读了几天Java,觉得不对胃口,就去学C语言,经典的《the C Programming Language》,很对胃口(关键书薄薄的一本,感觉比较好征服)。大学时宿舍有个哥们儿从教改班转到了计算机系,擅长C,指针指针指针的满嘴跑,很高深的样子,有点儿印象,这也是我选择C的一个原因。

花了一个星期,粗读了一遍书,我就开始颠颠地跑着找工作了,目标就是软件开发。当时也不会干别的,做技术支持时程控交换机里的软件是公司的牛人们做的,我觉得这也是个不错的行当,带着憧憬就奔它去了。

理想是美好的,现实是残酷的。对于我这种半道出家的野和尚,就看了几天书,居然敢于跑到要求熟悉这个精通那个的公司去应聘,也是逼不得已。我记得花了一个多月的时间还没找到工作,不断被鄙视吧。唯一的收获就是C的笔试题做了好多,到最后终于觉得可以顺利通过一部分公司的笔试关卡了。后来面试华为,过了三面,因为没有经验,推荐我去慧通,我嫌慧通不是嫡系,就没去。整整行囊,拍拍灰尘,继续找吧。

人品总是会爆发的,只要你多坚持那么两天。再后来比较幸运,遇到了信利的谢总胜落,愿意把我招入麾下,我就这么在西安信利软件科技有限公司开始了我的软件开发之旅。

时间如箭飞逝,已经快10年了。

CSDN:通过你的简介了解到,你就读于具有深厚理工科传统的老牌名校西安交大,却是国内第一本BBS原创文集《指尖的飞翔》(兵马俑BBS原创文学精选)作者之一,也是网络文学选集《竹林听海》作者之一,能简单介绍你涉猎文学写小说的情况?

安晓辉:上大学的时候,已经丧失了学习的兴趣和动力,整日无所事事。彼时网络又刚刚兴起,痞子蔡的《第一次的亲密接触》打开了网络文学的窗户,大家都觉得网络上写小说这种事儿,会码字就成,碰巧计算机扫盲扫过了,会码字,于是就在兵马俑BBS上混起来了,做了几个文学版的斑竹。当时榕树下、红袖添香、西陆文学、网易文学论坛、故乡、天涯舞文弄墨等都还挺有人气,也混了一阵子,还拿了一届西陆文学的十大明星写手,不过水平有限,到现在基本不写了,而当时曾经擦肩而过的一些写手,如今很多都是文学界的宠儿了。

CSDN:如今走上技术之路,平时写的都是技术博文,接下来还会再提起笔?或有其他一些规划吗?

安晓辉:其实我对写小说还是情有独钟。当年红袖添香文学大赛有个哥们儿写了一长篇武侠,献给自己的女儿,据说都是在把女儿哄睡之后写的。小说写得特别好,我印象深刻。我有女儿时我还想,也要为女儿写一部武侠小说,可惜到现在还没开始动笔……武侠小说技术性太强(主要是武斗场面金古梁温已基本写尽很难出新),我是干不来了。最近在考虑以程序员为背景的小说,也许过阵子会写,也许没几天又忘了。

CSDN:你对文学用情颇深,你对技术又有着怎样的情感?

安晓辉:人的生活应该有多个支点,技术和文学是我的两个支点。我个性内敛,闷头干活的事情我喜欢,靠自己就靠得住的事情我喜欢,技术恰巧就是这类事情。我一直不觉得自己对技术有多痴迷,可我媳妇说他就害怕我写程序,因为写起来什么都不顾,这让她觉得压力很大。所以前一阵子我辞掉一个公司的总监职位时,她就表示特别的担心,因为看起来是要再干开发的节奏嘛。现在看来,技术已经是我的立身之本了,我身上也已经被打上了深深的烙印,到驾校都有同学说我一看就是搞开发的……

CSDN:成功者总是在不断的学习,每个人都有自己的学习之法,你的一路以来是如何学习的?

安晓辉:软件开发会经常接触新东西,必须有足够的好奇心和兴趣,才能不断的学习进步。

至于如何学习,每个人都有自己的模式,我受现行教育体制荼毒比较深,学一门技术时,遵循的是看书、实践、再看书、总结这样一个模式。

在实际工作中,我有一个基本的理念,那就是:用到一分,你就往广里多学一分,往深里多学一分。这样时间长了,自然会不断丰富自己,脱胎换骨。

回忆过往,我高三以来一直没好好学习(对不起父母对不起毛主席啊),能进交大的教改班那是因为高一高二的底子好混了个保送名额。大学的时候基本上就徘徊在被淘汰的边缘(教改班实行末位淘汰),泡BBS(兵马俑),玩游戏(仙剑、轩辕剑、星际争霸、三国志、英雄无敌等等),踢球……就这么过了四年。所以谈到学习,真是非常惭愧。但我觉得大学生活也没白过是吧,我现在的看法是:你知道怎么学习,那什么时候学都不晚。不是说朝闻道夕死可矣吗。

因为大学没怎么学,什么操作系统、信号原理、模电数电、计算机组成原理、数据结构等等,都不知道考试怎么及格的,后来又干了两年技术支持,对于软件开发,实在是知之甚少啊。

八小时之内是现在,八小时之外是将来。什么意思呢,你懂得。

我其实还是一个比较爱钻研的人,毕竟初中、高中的各种奥数、奥物、奥化竞赛都拿过奖;另外我也是一个心里存不住疑问的人,所以我不但刚开始干软件开发的时候业余时间老是买各种技术书看,后来干熟练了,依然抽时间学习技术。这已然成了习惯。当你工作中用到一项技术,可能只是用其一点,那还有与这点关联的很多点,那这门技术必然还有很多相关的技术,用心的话,会想了解更多,于是,以点带面,就会持续不断地学下去。好好学习,天天向上么,这时候才发现这不是一句空话。

如果你发现了自己的学习模式,愿意学并且能坚持,我觉得没什么能阻挡你征服软件世界的脚步。每当我遇到一个问题,常常会茶饭不思,吃了也是味同爵蜡,我脑子就离不开这个问题了,直到有一个答案,很多时候我都是梦里还在思考某条路线到底能否走通某个BUG能否解决,也有不少次半夜醒来的时候。人家女孩子午夜梦回是看了《午夜凶铃》,我们干开发的,有时候半夜突然坐起来是因为不小心想到自己把雷埋在哪里了。

都说IT这行日新月异,那确实,还真没哪个行当可堪比拟。对开发者来讲,自然是需要不断学习的。但我觉得更重要的一点是:发现自己的学习模式。一旦你能够用模式来指导你的学习,有意识地践行、改进你的学习模式,那年龄我觉得也不是问题,到40岁,到50岁,依然可以跟得上技术的发展。

2008年,当时如日中天的诺基亚公司宣布以1.53亿美元收购奇趣科技(Trolltech),并更名为Qt Software。这次收购一度被业界视作诺基亚意在加快移动设备和桌面应用的跨平台软件战略部署,加速推出互联网服务业务。但世事无常,随着诺基亚宣布放弃Symbian系统,以及IOS/Android系统的快速崛起,2011年3月,Qt的商业授权和技术支持业务被Digia收购,2012年8月,Digia宣布完成对全部Qt技术平台和知识产权的收购。

CSDN:作为一款跨平台图形界面软件,Qt开发工具可实现在多操作系统以及移动设备之间一致的跨平台用户体验,你觉得被收购后的Qt至今发展如何?

安晓辉:发展得还不错,在嵌入式和很多行业都有更好的表现,目前又支持了Android 、 iOS等移动平台,作为跨平台的解决方案,始终是最强悍的。

具体情况,在我的《Qt on Android核心编程》一中也有提到,摘录如下:

Qt 被 70 多个行业中数以千计的主要企业所使用,内部使用 Qt 的数百万计的设备和应用,你每天都会使用。

Qt 强有力地支持着来自 70 多个行业中的主要企业开发了数以百万计的产品,也是财富 500 强企业里前10个企业中的5个所选择的开发技术。 Qt 的完整框架功能(包括直观的 C++ 库、工具和 Qt Quick UI技术)使它成为汽车、手机制造商、工业自动化、消费电子产品、石油和天然气、国防和各种各样的其他领域内顶级玩家的首选技术。

CSDN:每一个工具都有适合的使用场景,Qt也不例外,对于开发者来说,是否选用一种技术,要看这个技术和他的需求是否契合。Qt适合的应用场景有哪些?

安晓辉:Qt特别适合跨平台开发,比如你要支持Windows、Mac OS X、Linux、Android、iOS等等平台,那Qt绝对是值得考虑的技术方案。

比如办公软件,要跨平台,支持Windows、Mac OS X、Linux、Android、iOS等,就可以选用Qt。又比如用于企业办公的网络会议系统,也需要同时支持桌面和移动平台,Qt也是很棒的解决方案。又比如一些行业软件,医疗、工业自动化、自动控制等,都有很多使用Qt的。当然你也可以使用它做游戏,“吃药了”这款游戏就是用Qt做的,还有很多其它的游戏也选择了Qt。

CSDN:Qt支持的平台包括Windows、Mac、Linux等桌面操作系统,QNX、VxWorks、Embedded Linux等嵌入式平台,还包括Android、iOS、WP/Windows Runtime三大移动操作系统,和Java跨平台相比有什么区别?前者的优势是什么?

安晓辉:Java在做web端应用时很有优势,跨平台也威力强大。但是目前的移动端,客户端应用,如果说你在Android上用Java,没有问题,因为Android使用Java作为基础语言构建了针对Android的一套UI框架,但是你在iOS上使用Java来做应用,在Windows Phone上使用Java来做应用,还有其它的一些平台,都是非常吃力的,没有好的解决方案。

而Qt的跨平台,在桌面应用开发,在移动端应用开发,所有平台都是一致的体验,它针对各个平台编写平台相关的QPA插件,直接与各个平台融合在一起,最终既不损失性能又跨平台,对开发者来讲,一次编写,多次编译,到处运行,这实在是太迷人了!

CSDN:日前,你出了《Qt on Android 核心编程》一书,能否谈下写这本书的缘由?期间有什么难忘的事?

安晓辉:因为我有写小说的梦,也写过不少未发表的小说,对写作其实是有情结的。我想有一本自己的书,但其实没想到会是技术书。

2008年在西安信利软件使用Qt开发机顶盒产品接触 Qt,一见倾心,她优雅从容,非常好看。之前也用过MFC、WTL、Win32等等框架,但仅仅是用而已。我用Qt做嵌入式开发,工作之外我也想研究她,看看她到底是什么回事儿,从外到里,一层一层剥剥看,所以就去读了源码,慢慢就对Qt有了较为深入的了解,形成了有问题看帮助,帮助不行看源码的习惯。

我觉得一个人技术做到一定程度,会愿意与他人分享,不介意把自己辛苦得来的技能和经验讲给他人来听。这是一种自发的行为吧,也算是一种修炼。知识这玩意儿是为数不多的越分享越多、越碰撞越好的东西。

13年底时我恢复了在CSDN的博客更新,其实这个时候我工作已经很少用Qt了,但Qt刚好出了支持Android的版本,我就想研究它。Qt还出了Qt Quick这个迷人的小姑娘,我也想研究它。于是不断地在博客上记录我的学习历程,我知道的都讲出来给大家看,不作保留。

后来电子工业出版社博文视点的策划编辑高红霞老师联系我,问我愿不愿意出书,那当然愿意啊,我有出书的情结嘛。说干就干了,我们一个电话没打过,事情就敲定了,我开始挑灯夜战,天天晚上都写,不是一点就是两点。不写的时候也在琢磨怎么写。周末也搭上了。连女儿我也很少陪她玩儿了。总之我全身心地投入了这件事情当中,也没在意老婆说的“万一卖不好岂不白辛苦”这种问题,我喜欢,我愿意这么干,我就这么干了。老婆善解人意,支持我,女儿小小年纪也支持我,这是最令我开心的事儿。

《Qt on Android核心编程》这本书就这么出来了,我人也瘦了十来斤,不过我要说的是,做了,爱了,享受了这个过程,无怨无悔。

在写《Qt on Android核心编程》的时候,我发现Qt Quick这个框架无论如何不能包含在里面了,而这么好的东西如果我不把她展示出来,那就太暴殄天物了。于是我跟高老师讲我还要做一本书,Qt Quick的,而且目前国内没有同主题的书,于是我就做选题做大纲,于是又通过了,事儿就这么成了,于是我马不停蹄又投入了新的写作。于是几个月后《Qt Quick核心编程》出来了。

请容许我讲讲这两本书吧。

《Qt on Android核心编程》主要分两部分,一部分讲述Qt核心的概念,比如信号与槽、元对象系统、网络、Qt Widgets等等,非常适合Qt初学和进阶;另一部分讲解Qt在Android上的开发主题,比如触摸、手势、传感器、JNI扩展等等,适合对使用Qt开发Android应用的感兴趣的朋友。总之这本书既可以作为Qt入门参考,也可以作为Qt移动开发的入门参考。

《Qt Quick核心编程》是专门讲述Qt Quick技术的,从QML语言、Qt Quick基本元素、Model-View、动画、多媒体、网络、Android主题……该讲的都讲了,不该讲的也讲了,总之我觉得它是业内第一本系统讲述Qt Quick的书,是填补空白之作,对于初学 Qt Quick(QML)的开发人员和想进阶的开发者都有很好的参考、借鉴意义。

CSDN:当Qt跨界牵手Android,移动开发会有什么不同?

安晓辉:有这么几点,我觉得非常重要。

1. 跨平台,之前说过了,你为Android开发的应用,稍作改动,就可以支持iOS和其它平台,想想就兴奋嘛。你只要学了Qt,就拥有了全平台的神器。

2. 开发的便利性,比方说你开发Android应用,需要模拟器,而AVD又慢得要死要活的。Qt就不同了,你直接可以在桌面环境下调试你的应用逻辑、甚至是界面,非常方便。Android就不行,因为界面是必须依赖Android系统。

3. 丰富、成熟、强大的类库,比如网络处理的类库,以http为例,天生是异步的,很好用。而Android提供的Http类库,比较难用,想异步,就得配上线程,不友好么,这点从我写的一篇介绍AsyncHttpClient的博文的点击量就可以看出来,大家都在寻找更好用的Android网络类库。Qt还有很多其它的类库也很强大,看我的《Qt on Android核心编程》就知道了。

4. 经验的延续性,比如你用过Qt开发桌面软件,用它开发Android等移动软件,你的经验一脉相承,没有陡峭的学习曲线。而就算是Java开发人员,要开发Android应用,也要重新学习Android的UI类库。

CSDN:初学者如何借助Qt开发Android应用?

安晓辉:只要针对Android的环境搭建起来了,其它的事情和桌面开发差不多,很方便。

安晓辉老师也是半路出家学编程,经历了一个痛苦过程,如今十年过去,一路从程序员、小组长、项目经理、部门经理就这么走着……今年他完成了两本书的写作、换了工作了,新工作也告别写代码……作为一名老程序员,在面对开发群里经常有学生问面试、择业等问题时,有感而发特开辟了《漫谈程序员》专栏,以幽默的笔调深受网友们的喜爱,由于文章诙谐指数高入云霄,在这里我们也请安老师以一个比较正式的口吻来分享,让我们来一起关注程序员成长。

CSDN:作为十年的程序员,你是如何看待程序员这一角色的?

安晓辉:程序员,就是手艺人的角色,吃的是技术饭。他当然有很多的酸甜苦辣咸,与其他行业并无不同。关键是我们自己的心态,你喜欢,你就有乐趣,如果你纯粹是把它当作一个挣钱糊口的手段,那可能就会慢慢厌倦这种高强度高更新频率的工作,要么麻木要么转行。

其实程序员没有比其它人苦逼多少。你说夜班出租车司机苦逼不,天天熬夜……你说建筑工人苦逼不,累死个人还被小市民鄙视……你说明星苦逼不,结婚了都不敢说,酒店开房还要被抓……你说国家领导人苦逼不,该颐养天年的时候还得四处奔波,还说不定哪天就被揪斗了……关键是心态,所谓此心安处是吾乡,每一行都有它的苦乐忧愁,花开富贵一季红,竹生平凡千日青,放平心态,一切都会不同。

CSDN:你也是中途踏入软件开发之路,程序员的门槛几何?与此同时,你认为普通程序员和优秀程序员的不同之处在哪里?

安晓辉:程序员没什么门槛,但是从普通到优秀,从优秀到卓越,这里面各有很长的路要走,对很多人来说,穷其一生也不一定能走完这中间的旅程。

关于普通和优秀的差别,从做事结果上看,优秀程序员做出来的软件可能有更好的易用性、健壮性、安全性、灵活性;从行为上看,优秀程序员会更积极一些,自我成就欲望强一些,最终表现在解决问题的思路、手段、能力等更强一些。

CSDN:一个程序员该如何学习技术以及选择技术方向?

安晓辉:对多数人来讲,你所做的事情决定你要学习的技术以及你将来会走的技术方向。当然有相对的一面,有些人,是先选技术后选事情,根据技术选要做的事情。但不管哪种,到最后,我个人观点,具体的技术都不再重要。重要的是,解决问题的能力。因为程序员的职责其实不是编写程序,而是解决问题。

如果非要讲如何学习技术,那还是奉行“实践出真知”吧。

至于选择技术方向,虽然说技术无高低,但还是要选择有发展潜力的吧,有些没落的,走下坡路的,就不要选择了,比如MFC之类的。需要说明一点的是,很多技术都有其特定的应用场景,我们在选择某一个技术方向时,实际上也选择了你工作的方向。这点可能会给将来的就业带来很大的影响,所以决定要学一门技术时,还是要了解一下它能解决什么问题,在什么行业得到了什么样的应用。

CSDN:有一定的技术后的准程序员们怎么找工作?以及有哪些职业风险?

安晓辉:这个话题比较大,我在漫谈程序员系列中也有谈及,感兴趣的可以移步阅读。

其实干什么都是有风险的,对于开发人员来讲,最大的风险是什么呢?选错一门技术?干错一个项目?做错一个产品?跟错一个老板?……也许都不是,也许是没有在合适的年龄找到合适的妹纸……

对于开发人员来讲,最大的风险是:在职业规划上没有延续性地乱跳槽。

有人跳槽为了涨工资,不跳不涨么。一年都能换几次,也不管工作内容、技术路线什么的。这其实也无可厚非,是吧。龙生九子,个个不同。理解万岁。桥归桥,路归路。

我是比较迟钝的人,到了 30 多岁才第一次正式地来审视“怎样找工作、找什么工作”这个问题,可能是年龄大了吧,觉得不能再玩从零开始的游戏了。有人早慧,可能大学没毕业就明白了这个道理。真的,我有一同学,毕业时放着微软不去,坚定地找嵌入式的机会,真给他找着了,并且干得风生水起……还有个小盆友,小学时就说长大了要当校长,原因呢,是因为他的老师老打他手心,他当了校长就可以直接开掉这个老师……

当年我在参加一家公司的面试时对面试官说:要在两到三年内做到不可替代。结果被拒了……你懂的,单位都讨厌这个。可是作为开发人员,这是你时刻要牢记在心的:培养自己的稀缺性。

为什么这么说呢?物以希为贵么。如果你很牛X,干的活儿很重要,别人又替代不了,你自然受重视是吧。

CSDN:你做过五六年的项目经理,你对好产品的理解是什么?

安晓辉:说说我早前的经历吧,工作上回到老东家,是因为老板对我说要做产品,做一个视频相关的产品,具体是什么还不清楚。那时我虽然还有点儿糊里糊涂,听过很多道理,还没过好这一生。可毕竟已经不是懵懂少年,多少有了些自己的看法。觉得做产品比较靠谱,比外包靠谱,比外企有更大的可能性,没准一下子红了呢?风水轮流转,明年到我家,也许就可以鲜衣怒马走天涯……

这是我当年的一个认识吧:

“有产品做,就不要做外包;有独担一面的机会,就不要去做外企或者大公司的螺丝钉。”

当然很多人与我见解不同,理解并支持你们!王小波是罗素的信徒,罗素说,参差多态乃幸福之本源。本来么,求同存异,不能视见解与己不合的人为异端,那是法*西斯。工作中其实也是一样的。

吭哧吭哧干到了 2014 年,从 08 年到 2014 年,发生了很多变化,老婆孩子什么的都有了,人生有几个六年呢……有了白头发了……

如今,再来说一下我对好产品的理解,大概是这样的:

  • 解决用户痛点

  • 所处行业前景光明

  • 产品有延续性,可持续性发展

  • 好产品加上靠谱的公司,基本上就是比较靠谱的工作了,甚至可以做成事业。

总的来说,能解决用户痛点的产品就具备了好产品的基本条件。如果还能给企业带来效益,那就是真正的好产品了。这就是好产品的两面。

CSDN:怎么判断公司靠谱呢?

安晓辉:我有一些经验,用来鉴别不太靠谱的公司或工作:

  • 只关注你过往能力和项目的匹配度

  • 只想用你已有的技术能力解决公司遇到的问题

  • 面试你的人对公司产品没有热情,自己都不了解公司的产品远景,也不了解公司的远景,说不出个一二三

  • 没有新产品,招你就是维护性开发

  • 如果新公司靠谱,有实力(有一帮牛人、有资本投入)把这个产品做好,那是最好的了。

对于如何了解一家公司呢。我认为互联网搜索、熟人打听、公司网站、招聘要求等都是途径。还有一个就是面试,一定要牢记,面试是双向的,不但是公司选择你考问你,也是你最好的了解这个公司的机会,有时机就问一些思考过的问题:为什么自己要离开现在的公司、自己想干什么、将来的路怎样规划等。

我在面试一些应聘者时,通常在最后会留机会让他们问问题,经常遇到有些求职者说我没什么问题……这么好的机会都放过了,一般这种情况,这个人我就不再考虑了……

CSDN:对于那些正在大学的准程序员和初级程序员,你最想对他们说什么?

安晓辉:假如一句话来概括的话:

不畏浮云遮望眼,风物长宜放眼量。

另外,作为开发人员,我们需要了解自己的能力边界,清楚自己能干什么不能干什么,多多发挥、打磨自己的长处。所谓自知者明自胜者强,有些短处倾其一生也是无法改变的,天生的,没必要在意。而有些长处经过打磨会越来越好,如果你不去发掘、培养它,那它也可能慢慢萎缩掉。

还有非常重要的一点,开发人员需要在软件开发之外建立另外的一个兴趣。人生需要多个支点,多样的生活会更加有趣。

来源:CSDN

目前有 8 条留言    访客:8 条, 博主:0 条

  1. 爱求索 2015年03月25日 9:19 上午  @回复  Δ1楼 回复

    1. 跨平台只在PC上有优势,在移动设备上毫无优势。移动设备整体的应用风格需要保持一致,你外部加进来一个UI,倒是和平台保持一致了。你如何保持和原生UI的这种使用一致性。
    =============================
    个人觉得,第一点是有误,现在虽说界面风格很重要,但你看看很多主流的app都在保持统一的自家的风格(至少在排版上和配色上,操作逻辑可以不一样),但qt是跨平台的,这里的跨平台总被人说是gui的跨平台,说白了,就是一模一样的界面,其实这是不可能!即使我使用qt开发各个平台的app,我也是会重写界面的,至少我得写一个设置来进行不同平台界面的适配,但是,最重要的一点是,我的后台代码和业务代码不用重写,这不是当下最最最最流行的前端和后台业务的分离吗?不一样的风格界面却运行着一样的业务,对于大公司跨平台开发是有十分的诱惑力的。一个核心的业务团队,多个不同平台的界面设计和美化团队,只要数据对接成功,就可以了,好过雇佣多个平台的团队,在界面设计和美化是上不会重复,但在核心业务设计上,其实是有职务重叠的。
    另一个,就安卓而言,现阶段各大厂商都在耍自己的安卓UI和风格,即使是使用java来开发也不可能和原生的UI保持一致。
    再说到,界面设计和业务代码的分离,其实我真的得着重介绍一下qml,qml在诺记时代被推出时,本身定位就是界面描述语言,对界面只要进行描述就可以达到界面设计的目的,而且专门针对移动设备,当时诺记可是有两个不同的平台,那诺记当然是推出针对不同平台的UI库啦,但是即使是不同的UI库,但他们的控件名和使用方式完全一模一样!但渲染出来的样式则各有各的风格。
    在 Digia 时代,QtQuick模块更是推出了QtQuick.Controls模块,还有QtQuick.Controls.Styles 模块,可以直接使用纯qml实现一些风格的界面。
    例如:Metro风格的控件
    https://github.com/wilfilho/qml.metro
    https://github.com/qyvlik/Metro.qml

  2. 爱求索 2015年03月25日 9:20 上午  @回复  Δ2楼 回复

    2.在开发易用度上,Android(java) API 已经做得很好,包括事件,广播,服务等Qt里有的基本上Android API里已经做得很好,从Qt开发者转为java开发者也很容易。 而如果要写QfA应用,开发者不仅要懂Qt,同样也避免不了要写java代码。 
    ============================= 
    关于第二点,在转型上都会遇到的门槛,这里就不多说了

  3. 爱求索 2015年03月25日 9:20 上午  @回复  Δ3楼 回复

    3. 如果要写和其它app通信的时候,QfA的灾难性就来了。如果是上层的几乎等完整的搞一遍Android API吧。 另外对于和设备相关的一些调用(GPS/Telephony)等,QfA的工作量一下子就上来了,这时候你还指望QML么?
    ============================= 
    这个 Digia 会搞定的,再说了qt当年在诺记手上时,那可是要顾到自家的两个平台呢!一个是塞班一个是MeeGo,系统内核完完全全不一样的,所以在系统调度上Qt可是会进行封装的哦(QtDBus话说在新的版本中已经可以通用了,但是在安卓上的话,就使用QAndroidJniObject)~

  4. 爱求索 2015年03月25日 9:21 上午  @回复  Δ4楼 回复

    4.性能呢? QfA对于图形渲染区的请求还得在java的接口请求,是不是又要绕了个大弯。
    ============================= 
    关于图形界面,安卓底层是c/c++ ,应用框架是java,怎么说呢?Qt作为一个正统的c++框架,这个Digia会搞定的

  5. 爱求索 2015年03月25日 9:22 上午  @回复  Δ5楼 回复

    5. 软件体积。 终端用户要用Qt app,势必要先装一个Qt lib, 或者在你的app 中一起静态发布。  在有很多优秀的QfA app出现之前,大家不带乐意只为一个好的app 去装一个大的软件,而会愿意选择一个原生软件替代。
    ============================= 
    体积的话,qt版安卓应用,破天了,全部库都打包进app里,要200M,但是一个包含网络模块,数据库模块和用户界面模块的安卓app体积或许在50M,进行裁剪的话,或许可以瘦身到30M左右。看起来还是很悲剧的,要是用户或者厂商使用QtLib的话,多好啊~

  6. 爱求索 2015年03月25日 9:22 上午  @回复  Δ6楼 回复

    6.官方支持。目前Qt开发团队多少人?但目前他们要支持多少平台。 如果没有一个比较大的商业级别软件在用QfA,官方能做的就是让这个软件在Android平台能编译,运行,解决一些明显的bug。
    ============================= 
    新东家 Digia 是个商业公司,不做赔本买卖,亏了就变成开源的~~~

  7. 爱求索 2015年03月25日 9:23 上午  @回复  Δ7楼 回复

    个人感觉,其实在国外(欧美)的话,C++相对会比国内使用得多点,国内早已是Java的半壁江山了,c++能否再次爆发呢?看来是不太可行的,另一个Qt仅仅只是以C++为主要编程语言的框架,使用其他编程语言也是可以实现核心的以及大部分机制,另外一方面安卓不光使用java开发,诸如c/c++、c#,Python、ruby等等,各个语言都来凑热闹,当然少不了Qt啦。

  8. 爱求索 2015年03月25日 9:31 上午  @回复  Δ8楼 回复

    QT开发的视频监管平台分享 http://bbs.csdn.net/topics/390961598

给我留言

留言无头像?