软件开发,安卓开发需要哪些知识基础支撑?

iOS 开发入门需要学习哪些知识,从一无所知到精通需要多长时间?
按投票排序
多说无益,怒以身犯险,亲身示范!
无基础文科生入门iOS的3个月(以第一个app上线作为入门标准)
这个经历主要是分享给一些像我这样,对互联网想法多多,按耐不住非得亲自上阵的楞头青。这里以上线一个app为目标(不奢望做出啥高级算法,90%的app也不会涉及算法),当第一个app完成,基本上就不会再对开发有恐惧,之后尽情学习,享受创造规则的快感吧!
也有其他大牛们说上网搜索自己学入门超快的,我觉得身为一个无背景的文科生,还是有点吃力的。脑子里没有知识的框架,学到个知识点都不知道往哪里整。所以还是推荐从书或者公开课入门。有个老师带入门总是容易理解些的。第一步:编程入门课时间预计:4个星期 推荐看公开课,Udacity也行,网易公开课也行,自己找一个面对对象语言(一般是JAVA,
Python)的课。我是在网易公开课看的斯坦福的CS106A,学的JAVA。如果你纯粹学iOS开发,不推荐看哈佛CS50,CS50是给CS系的学生介绍整个计算机世界的框架,讲的内容比较多,进度比较快,对iOS开发其实有点累赘了。(臣妾有点跟不上啊!!) 计划安排是一天一课,看课程要求的书(至少看完一本)及大部分作业。这一阶段重点不是语法,而是以下3个目标。目标:1.
让自己对编程这件事感到适应。 写hello
world。 怎么写function,
怎么调用function。 全局变量,局部变量这类基本知识点。 都是基本的东西。看看书,写多两个程序就欧啦。2.
掌握编程语言的基本要素。 编程语言4个要素: a.
基本的数据类型:整数,实数,character,
string, boolean b.
基本的运算符号:+-×/&&++--那啥的 c.
怎样输入输出 d.
怎样控制程序:sequence,selection,loop3.
了解编程范式 面对过程编程。 面向对象编程。第二步:上手iOS!时间预计:2星期 强烈推荐CS193P,老头子讲的超级好!我的很多东西(对象思维啥的)是在这里跟着做练习的时候才真正明白的(好啦,也可能是上一堂课练习做得少的原因)。如果等到9月应该itunes
U上会开始教iOS
7了。网易公开课的是2010年iOS
5版的,前10堂课,也行。(iTunes U上有完整的课) CS193P说有prerequisite,一开始被吓到,事实证明还是可以学下去的。头两节课一头雾水,没关系,把itunes
U上的课件下载下来,把所有代码打出来,然后一个个元素对应之前学的语言匹配,再不懂先放着,继续学后边的,过几天打多点代码就懂了。 感觉学5、6堂课,一个星期左右就可以开始进入下一阶段自己做东西了。之后用啥学啥,每堂课都有主题的。速度慢点的同学们,这阶段跟我一样准备两个星期吧!第三步:开发app!时间预计:2星期(本人...1个半月,实在不好意思说出口) 这个时间就可长可短啦,还包括美工,交互啥的。坚持要用啥学啥的原则,其实就是知道iOS
SDK都有什么组件,每个组件有什么function而已。stackoverflow,
Github, apple sample code多上,搜索引擎多用。如果有个师傅,这个阶段真的是进步神速。 好的!不出意外,你的第一个app就这么新鲜出炉了!从今天开始,成为一个冷艳逼格高尚的iOS开发者吧!====================================================================== 这种学习开发方法弊端是基础不牢,后期提高需要自己重新補上C知识,毕竟Objective是基于C的语言。 但优势也是相当明显的,就是快速消除文科生对编程的恐惧!对于常规的,C
→ C++ →Objective
C这样扎扎实实,动辄半年熟练掌握一个语言的缓慢进程,一想到就悲从中来,让想学习开发的大部分人第一步都不敢迈出。
经验纯粹由一个刚入门可能还全身bug的菜鸟分享给连门都还没入的菜鸟们,有错误的地方,请各位高手指正,让更多人能学会编程,享受创造产品的乐趣!
可以参考一下我在这里的回答:从无知到精通,至少需要1年的项目开发才行。也要看精通的定义了,如果是大多数iOS API都要了解并理得清的话,需要至少1年。你是文科生,不知道是否逻辑能力也够强呢?我老婆是文科生,逻辑不太强,现在在学iOS开发,进度很慢……----引用以前的回答----我一般推荐直接从以下几个地方下手,而不要看那种成系列的教学视频或书,那些学起来太慢了,钻在一大堆细节里会拔不出来的…先确定一个小目标,让自己写一个小软件来学习iOS开发Obj-C语法简述 Obj-C语法详述 论坛上学习别人的范例、提问和回答等上找一些感兴趣的范例或开源代码研究上找自己问题的答案看WWDC的Kick Off视频,纵观了解一下目前iOS有哪些功能
两个月前连 OC 都不会。这个月18号提交了 APP Store,这周二审核被拒,原因是在 iPad 上有闪退。不知道 iPhone 应用也要在 iPad 上测试。又提交了一次。第二个应用预计下周末提交。第二个应用相对简单一些。起因应该算是从今年 WWDC 发布 swift,之后几天看了 swift,于是就无知的萌生了搞 iOS 开发。上了 apple 的 "贼船",结果发现不学 OC 完全不行,现有的各种资料让你不得不去学 OC。还有一部分原因是感觉 iOS 上的应用实在太赞了,用 Android 的时候没什么特殊的感觉,应用就是应用,iOS 的感觉应用就是个艺术品,精赞,让你不得不佩服。尤其吸引我的是各种动画效果。有时候感觉看的心都酥了。今晚花了点时间整理了下我收集的 github 上iOS 动画效果 。有兴趣的可以看这里
.正好假期没什么事情,就开始天天学,天天写,看过一点点斯坦福的那个视频,觉得太慢了,也没找到特别适合的书,因为更新太快有的教程教你操作 Xcode3 4 时候连个按钮都找不到就很崩溃。后来找到了 iOS 7 的教程 在这里
就跟着大概过了一遍。当然我感觉第一个应用用不到的就不看了。只是为了入门。看来大概一个星期就开始写,边学边写,基本上靠 Google 和 StackOverFlow 写完的,比如要修改 navigation bar 的颜色,就 Google custom navigation bar 或者 navigationbar color , 百分之九十九的问题都能通过这两个途径解决。之前试着连续登录 StackOverFlow 以拿到 Enthusiast 的 Badge 无果,这些天不用刻意登录都拿到了。。其次是借助 github 上的开源项目。以及 code4app 上看别人是怎么写的。两个月下来感觉 iOS 入门还是相对困难的,cocoa touch 的内容太多了,即便是有两年开发经验的也会有没听说过的功能。回到正题,iOS 入门需要哪些知识,其实并没有什么,当然有 C/C++ 的经验以及面向对象和设计模式的思想绝对有优势,但没有也不是不可以,不要考虑太多,直接上手,项目驱动,一定会经历一段很艰难,感觉什么都特别困难的时期,多 Google 入门了就好说了~ 至于入门需要多长时间,这个要因人而异了,不过要熟悉,至少也得大半年,甚至更久。每年的 WWDC 还会给你新的东西去学。 另外, 用于查文档提高不少效率,写 iOS 文档还是最靠谱的,apple 也提供了一些例子。可以参考。共勉~
develper是有点难度的,我的建议是做pm,文科生对用户需求,用户体验的思维不一定会比理科生差,再加上一些项目管理和团队沟通上的知识的话,也能作出不错的产品。平时可以多把玩一些ios应用,慢慢就有感觉了。
除了算法有点费劲之外,编程和文理科真的一点关系都没有。本人大学美术专业,高中开始就没学过数理化,现在代码写得唰唰的~基本上想要的东西都能写出来。iOS开发的学习内容,刘虓震同学已经说的很清楚了,我自己的经验,从零开始,每天4小时Coding或学习Coding,二到三个月就会有小成。
你去听听这个,你要的答案都在这里面,这个东西的作者就是一位文科生,通过自学成为开发者的,他的观点很好,但是你不要对他抱太大的好感,它能力很不错,但是在思维方式上不同于常人,你要是向他表达你的观点可能就会被认为是傻逼,但是人不错
1.你要喜欢编程,编程不喜欢很枯燥;2.你要会英语,文档基本都是英语写的;3.你要自己动手解决问题的能力和一定的逻辑思维能力;4.密集学习至少需要半年或更久。
文科生不文科生并不重要,重要的是编程的思路能不能想得通,能不能把一件事情规划成程序的样子来完成。能想得通的话,那么开发就不是什么困难的事情。时间的话,因人而异了。上手会挺快的,几个月,但是要想积累出自己的经验,那就快不了了。
怎么样才能学好iOS开发,我们要看什么书呢,还是什么视频,其实这些都不是重要的,重要的是,你认为自己可以学好iOS开发,认为自己可以坚持下来,这是关键啦。
其实学很多语言都是通的,从C语言入门,因为IOS开发用的是OC语言,是在C基础上的,不过也跟C不是很搭界,你可以直接学习OC语言也可以,还
有开发工具是用Xcode,是在Mac系统的,你多摸索一下就可以开发简单的应用了,建议你买一本iphone开发秘籍第二版看看。学语言,无非就是要学
好基础,弄清楚概念,然后做个简单的例子,慢慢的体会,基础打好了,到后面你会觉得突然自己提高了很多,很多东西都自然而然地明白了,在黑暗中的努力是为
了迎接光明。我觉得学iOS开发,首先心态要好,不要想着我已经学习很长时间了,可以找个好工作,可以赚钱了,牛人除外,不过大多都是普通人。先慢慢培养兴趣下定决心,然后开始找资料,找视频,查百度。等你觉得这些基础的都差不多理解了,那就别看书,将精力集中于界面开发、一定的数据库开
发、通讯接口开发、协同开发与联调。然后自己设计个东西,可以涵盖他们的,做个自己想做的东西出来,虽然可能很难,但是你会在过程中学到很多,是别人教不
会你的。在学习过程中遇到什么问题,你可以百度一下看看别人的回答,看多了印象就深了,也就慢慢掌握了。遇到什么思路上的问题,可以来论坛发帖,论坛肯定会
有人来帮忙的,就算不能完全解决,也可以提供点参考。学习要会利用资源,论坛上那么好的资源不用可惜的哦,还有资料堆的东西,只要你能掌握70%,不相信
你试试。等学完了UI后,可以想想搞点数据的存储的东西,比如做个网络图片收集的,里面涉及到网络连接,图片保存,UI线程安全,数据库操作等等,又可以学
到好多,何乐而不为呢。等学完这些,已经算不错了,接下去就要做点大的项目,最好是有客户端和服务器的,也练习下数据操作,了解下http协议,了解下
wifi,了解下电话短信googlemap的等知识。如果是游戏,那么还需要涉及到引擎、建模、素材、光影、故事板等。推荐两本书两本经典入门书籍
《objective-c基础教程》和《iphone4和ipad开发基础教程》。当然你有兴趣的话可以在中间看看iOS的源码。最后,等上层应用的东西基本学完了,学点底层的,你就做点调用底层的东西,深入了解下,就可以做很多东西了,比如3D游戏性能提高,编码解码等等。还
有一种快速地进行iOS开发,那就是通过互联网上面的在线移动开发平台,即使不懂技术也能开发,比如通过手机APP定制平台。不过今后如果真的想从事
android开发这一行的,还是建议你们下定决心安心学习这么技术。如果只是暂时有这门兴趣,创意很多,那么可以试试互联网上的在线移动应用开发平台,
因为操作都是傻瓜式的,这样会给你剩了很多时间,也不会让你学习的特别苦恼。以上的经验希望大家参考下,主要是你觉得适合的,可以去试试,当然你可能有比我更好的方法,每个人都不同的嘛,但是都希望你们能成为高手。最后我觉得做好开发更重要的还是得靠自己不断的努力学习, 师傅领进门学艺靠个人 相信自己, 努力学习,一定会成功的。推荐楼主看一下这些视频。iOS开发入门实战iOS8 App开发快速入门iOS开发视频教程《愤怒的小鸟》
程序猿读书进阶路径《ios开发基础知识》《程序设计教程》《ios系统操作教程》《项目开发指南》《产品经理指南》《孙子兵法》《情商》《易经》《禅的初心》《佛经》《老子》《劲椎病康复指南》《腰椎间盘突出日常护理》《腱鞘炎的预防与治疗》《高血压降压宝典》《强迫症的自我恢复》《抑郁症自我修复100问》《精神病症状学》《活着》。。。
先买个mac,再买本head first iphone 系列,可以开始操作了,和文科生理科生高中生本科生研究生高贵冷艳投行白领十八线吃麻辣烫茶水妹没有任何关系。
认为还是要看语言天赋的,有的人很快上手,有的人觉得i=0;很难理解
有很完备的课程。比如Programming for Non-Programmers: iOS。步进式教程带你熟悉iOS开发:
第一步,学习开发语言Objective-C,熟悉Xcode。参考书《Objective-C基础教程》,书快看完的时候还需要补充一些关于面向对象的知识,一般计算机专业的学生都是在学C++的时候接触这类思想的。本参考书里也会有一些讲解,进一步的学习需要以后再去看资料,Objective-体现的是面向对象是一种编程思想,以后写代码的时候可以慢慢体会。学完《Objective-C基础教程》,就会对iOS开发中所用到的基础数据类有一个了解,这时候应该就可以写简单的无界面程序了。熟悉Xcode,比如项目的管理,各个按钮的功能,各种选项的设置,4.4之后的新特性等等。第二步,学习iOS开发的软件运行原理,软件开发思想、规范以及一些苹果公司提供的常用标准UI(User Interface,用户界面)控件的使用方法。推荐参考书是《iPhone 4与iPad开发基础教程》,该书有中文译本,虽然不是最新的iOS教程(最新的教程应该是iOS7开发基础教程,但是该书没有中文译本,如果英文过硬,看这本书当然最好)。建议可以去看看这个教程:ios开发视频教程配合着可以看《IPhone开发秘籍(第2版)中文》这本书,把上面的工程全部敲一遍。第三步,熟悉常用第三方控件。因为苹果本身开放性的局限,其提供的标准开发库会有一些功能局限,智慧的网友们开发了各种各样的第三方控件来实现他们想要的功能,可以使开发过程事半功倍。此部分为进阶学习内容,需要在掌握前两步内容的基础上展开。这一步主要是试用,学习第三方代码,要求阅读第三方开发文档以及代码多一些。可以与开发同时进行,边学边进行软件开发。除了参考书,这里推荐一个网站“DevStore”()里面收录了很多的开发者服务,并且可以对同类的服务进行参数对比,能够很有效的找到你需要添加的服务。学习期间及后期做项目阶段都可以在这个网站找到相应的服务和配置过程,并且可以在交流群里咨询大神。只能跟你大概说下都需要那些基础的知识,前期主要是打一个基础,基础打好之后到你熟练掌握需要多久还要看你自己的时间了,每个人的接受水平是不一样的,持久的坚持,加上平时养成多看文档多写代码的习惯会进步快一些的。
建议去这自学,能入门,要想精通,没个三五年是不可能了
谢邀。这个问题有两个子问题,1. 入门需要学习哪些:2. 到精通需要多久:很抱歉,不知道。
能听懂专业牛人说的是什么,基础熟练,交流无障碍,半年钻研足够。要说精通,如果你是指高手中的高手的话,学无止境呢。
没编过iOS程序,大学专业是英语,大三暑假找到一份兼职,做某个件重复性非常高的事情,愣是自学shell编程,搞了个脚本,8个月里大概更新了5个版本,总共100多行代码,实现了自动化,。但可悲的是,效率提升了,待遇完全没有任何提升。后来从事的行业跟编程没有任何关系,估计又忘光了。
知乎上的高人比知道的多,而且诚恳。补充,如何解决视频课中提到的教科书的问题呢?
我觉得入门3个月, 精通要两年。 看看apple上的objective c 语言规范 pdf看看stanford的教程。然后做些app, 其实最好是去下载一些别人做的“小”程序。 看看。如果要精通, 自己玩的话, 我自己用了两年多。 我觉得。 总会遇到些不明白的东西, 一直在学。找学校,搜学校,学校口碑早知道!
您可以免费发布教育培训信息,找学校,找课程,找老师,学校建站,发布新闻动态,招生培训等。
LOADING...
您当前的位置: >>
>> 软件开发工程师的基础要求有哪些?难吗?
软件开发工程师的基础要求有哪些?难吗?
LOADING...
招生对象:北大青鸟 软件工程师
课程名称:
培训费用:面议优惠价:面议
开课日期:更新日期:
截止日期:人 气 度:<font color="#FF次
授课方式:脱产班 -
授课学校:
信息来源:&
上课地点:杭州市下城区建国北路236号诚信大厦17楼
报名免费咨询电话(9:00-18:00)
招生老师:郭老师
详细地址:杭州市下城区建国北路236号诚信大厦17楼。
注册时间:
会员级别:普通会员
&&&&&&&&&&&& 软件开发工程师的基础要求有哪些?难吗?&&&&&& 软件开发工程师的基础要求有哪些?难吗?杭州北大青鸟IT学院作为是杭州最具有影响力的IT培训学校,其优势在于更加注重技术实践,培养学员的实际操作能力,目的在于让学员毕业后更能适应企业的职位需求。一般的高校毕业生,在个人简历上几乎都是没有任何的工作实践经验的,这样企业在选择人才的时候,更愿意选择本校的毕业学员,进入岗位后不需要花费大量人力物力去培训职员,这样对企业来说,也节省了大量的资源。所以,很多企业都愿意选择北大青鸟毕业的学员,为工作岗位直接创造价值。&&&&&& 软件开发工程师的基础要求有哪些?难吗?软件开发技术专业(专科)的设立是为了适应新经济建设与发展的需要,特别是为了适应软件技术及相关高新技术产业的发展对软件开发技术人才的急迫需求。同时针对社会的需求特点,强调实用性,注重考核考生对基本理论、基础知识和基本技能的掌握,以及运用基本理论和基础知识分析问题、解决问题能力。特别是更多地考虑到专科毕业学生的就业特点和就业需求。本专业旨在培养德智体全面发展,具有高尚的职业道德,具有现代科学观念,具备基本的软件开发技术专业基础知识和基本技能,具有基本的软件知识,具备进行软件部分项目开发的实际技能的实用型软件开发技术人才。培养能够在以软件开发为代表的软件开发技术领域从事开发的技术产业工作者。基本要求:理解和掌握本专业的基本原理、基础知识和基本技能,具有较好的软件开发技术专业的基本素质和从事软件开发技术工作的实用能力,能开展软件开发技术方面的技术开发工作。&&&&& 软件开发工程师的基础要求有哪些?难吗?软件产业已日益成为面向21世纪的全球经济发展的轴心。目前,随着以网络软件发展为主导的网络技术的不断发展,建立覆盖全国的信息高速公路,已成为美国、欧洲、日本等发达国家争先恐后且肯投巨资实施的计划。印度的软件业年均增长率一直保持在50%以上,到2008年,印度的软件业产值预计可增长到 870亿美元,年出口总额达到500亿美元,占印度出口总额的33%,并将把印度的GDP增长率提高到两位数。我国目前约有15万软件开发人员,1000 多家以软件开发为主营业务的大小公司。2007年,我国对软件技术人员的需求高达70万人以上。在国家大力推进软件产业发展的大背景下,我国软件行业对软件人才的需求每年将超过20万人。WTO、西部大开发、发展软件产业等国之大计都预示着巨大的软件人才需求。软件开发人员起薪一般是元 /月,有三年经验以上的,月薪可以达到10***元以上,资深软件工程师月薪可达10万。五月花权威职业资格证书成为你上岗的强势“通行证书”!&&&&&& 了解更多“软件开发工程师的基础要求有哪些?难吗??”信息,请登录杭州北大青鸟官方网站: 咨询!&&&&&& 杭州北大青鸟武林门校区地址:杭州市下城区建国北路236号诚信大厦17楼。 &&&&&& 杭州北大青鸟官方网址: &&&&&& 杭州北大青鸟软件基地:/&&&&&& 咨询热线:400-711-***366 0571-56***15&&&&&& QQ:13***14***
真实姓名:
性  别:
报读人数:
手机号码:
所在地区:
学员留言:
如果您还有什么需求,请在这里详细说明。
* 温馨提示:如果24小时内没有与您回复请直接电话联系学校,以免耽误您的报名!
小贴士:本页信息由用户及第三方发布,真实性、合法性由发布人负责,详情请阅读求学快递网免责条款。
上一课程:
下一课程:学android,手机软件开发,需要有什么基础? - 教育文化
北京千锋互联科技有限公司
咨询电话:400 654 7788
企业资讯首页 >>企业资讯学android,手机软件开发,需要有什么基础?
Android开发培训是非常具有结构化的培训课程,很多想要转型的程序员以及面临从事移动互联开发的人员都要从基础学起,然后逐步由浅入深,提升自身的开发能力,很多优秀的开发者都具有完善的学习模式,Android软件开发需要学什么?在学习Android过程中,也都一步一步进行提升自身的技术实力,从而走向事业的高起点,获得未来成功。
反之,则拖慢Android的发展进程,上海千锋Android培训机构作为行业最具权威的Android研发和人才培训基地,致力于帮助更多学员高薪就业,同时为诸多名企解决了专业开发人员不足的硬性问题,在日新月异的科技行业,足够专业的开发技能才能保持长远的发展,这样的前提下,Android软件开发需要学什么?有无开发经验显得都无关紧要,通过培训增强自身的Android技能是最主要的事。
Android软件开发需要学什么?Android的种种优势已成为科技趋势,对行业程序员来说,专业技能的强弱决定了求职的待遇与今后的职业生涯,上海千锋Android培训机构秉承良心教育的理念和负责任的态度,注重学员的后续发展,帮助大批学员高薪就业,同时,四个月的学习不单单是技能的培训,学习过程中,半军事化的管理完全按照企业标准要求学员,对学员来说,经过四个月的磨砺,已经完全可以称得上合格员工,在求职过程中具有更强的竞争优势。国内IT公司病的有多重?技术圈交际花谈软件研发管理怪现状
虎嗅注:在创业过程中,研发管理是很重要的内容。但是国内创业公司的研发管理却长期处于一种比较混乱的状态。国内创业公司的研发管理到底出了什么问题?技术人攻略的Gracia采访了素有“技术圈交际花兼娱记”称号的程显峰。从程显峰的口中,我们可以了解到国内创业公司在研发管理上的各种怪现象。程显峰:@程显峰-Mars,蓝海讯通COO,MongoDB中文社区发起人,曾任积木盒子技术副总,Admaster首席布道师,混迹于安全、广告、云计算、大数据、互联网金融等多个技术圈。文/Gracia“什么时候采访我?”在GitCafe北京分部的开幕活动上,显峰半开玩笑半认真地问我。认识显峰的时间不算短,总在各种技术大会与小会上频繁碰面。过去一年多,他的工作状态算不上“稳定”,这不,刚离开高大上的互联网金融,投身APM的伟大事业。真要采访,得先选出一个可行的话题切入角度,他引用《人件》里提到的“高科技幻觉”,从传统工程的角度谈了谈对IT研发管理的看法,于是采访主题顺利地定了下来。这通吐槽显然憋了很久,不乏“这个行业充满了骗子与强盗”的激烈言辞。我有点被惊到,常看他以典型的东北式幽默与人调侃,并不知道他原来如此严肃。在北五环外的东升科技园,我们从下午两点半,一直聊到天黑,期间换了3个场地。末了,他叹到:“为什么好好做技术这么难!”显峰无需借此博眼球、搏出位,公开发表这些话给他带来的潜在风险远大过收益,观点犀利自然会赢得一些赞同,也难免招致对号入座的无端恨意。在乌合之众汇聚成的网络空间,谩骂而非理性的讨论是更为常见的交流方式。虽然在文字上做了些处理,我仍然对其可能带来的争议无比担心。发给他确认,几乎没做大的修改,仅回了个:“整体很流畅,但细节上的文字还不够平滑。”看,真是个对品质要求很高的人。这些细节暴露了他的始终如一,也让我更加理解显峰的选择,不安定的背后,自有他严格的价值坚守。如果有机会,显峰希望去教小孩写程序,热爱学习的人是真诚的,他喜欢和这样的人在一起。技术人攻略:你从什么时候起开始对对研发管理感兴趣?我是学工程出身,本科就读于哈工大航天工程与力学系,研究生是悉尼大学的航天专业,期间受到了严格的工程训练。传统航空业的研发和制造体系非常完整,拿造飞机举例,悉尼大学的本科生就完全可以组装出可供销售的飞机,因为整个生产过程非常严格,任何一个扳手都有编号,有详细的记录和流程,不可能搞错任何东西。虽然专业选择了航天,我对编程却非常热爱。从小学就开始写程序,那时候家里没有电脑,每次上机需要走40分钟山路。研究生期间,独立完成了完整的有限元分析软件,算是我在科学计算领域的一次实践。回国之后,我加入的第一家公司Antiy,很重视底层技术,产品做得非常成功,但研发管理做得并不好。我在那期间学了很多软件研发历史,但在研发体系建设上,还是留下了许多遗憾。随后加入做互联网广告监测的创业公司AdMaster,当时公司正在筹建,人员来源多种多样,研发管理问题比较突出。我的职位是专职敏捷教练,配合技术负责人做团队建设,开始更深入地思考研发管理。刚进入IT这一行时我很难理解,为何在传统工程和制造领域很平常的事情,在IT领域却是需要商量和悬而未决的。可靠性在航天等领域早已解决得很好,为何软件行业却一直解决不了产品质量问题。后来看了不少管理的书,发现IT研发管理的许多思想都是从建筑业、制造业借鉴而来,例如快速迭代、精益管理等概念。结合工作实践,我逐渐发现了研发管理问题的症结所在。研发能力是工作的综合体现,内功水平是关键,任督二脉打通了,练什么都很快,至于到底用哪个套路,是很轻松的一件事。举个例子,大家通常说要做“敏捷转型”,认为自己是从传统软件研发转型成敏捷,关于二者的争论也显得像是泾渭分明的两派,但实际上不是。难道传统软件就不做配置管理吗?难道敏捷就不做测试吗?这两派理论有八成是一样的,即便在软件工程教科书里,也同样有关于质量控制、配置管理、迭代等理论,如果很好地去执行,同样可以达到不错的效果。为什么敏捷转型失败的案例很多,因为企业并不具备相应的内功,只想寻求解药,以为敏捷能有所帮助。实际上如果不打好基础,结果还是一样。具备这种内功的人,玩传统软件也会很好。航天、制造、金融行业并不过分强调敏捷,当然敏捷里的好东西,他们也能非常快地去借鉴。《精益软件开发艺术》这本书的作者来自波音公司,他们将其在制造上的经验应用于研发,对软件的驾驭能力相当高。强调时髦的概念,对研发帮助并不大。比如知道了TDD测试驱动开发,对团队帮助有多大呢?TDD想执行好,要求对测试理论有深入理解,但大部分国内开发团队不仅不具备很高的测试水平,连测试是什么,如何测都不知道。这种情况下去推广TDD是没有意义的。技术人攻略:根据你的观察,国内研发管理有哪些常见问题?我观察到国内研发管理主要的问题有几个:第一是过于强调个性,缺乏共同价值观;第二是内功差,不重视软件质量;第三是很多从业人员眼界狭窄,拿无知当个性;第四是对技术缺乏敬畏之心;第五是整体气氛浮躁,擅长炒作概念而非脚踏实地做事。IT这一行太推崇个性,过于强调创新,强调极客,而对于共同价值的坚守非常少。传统工程领域里,大家都遵照明确的规范和标准做事。软件行业的国家标准很落后,大家也都不执行,几乎每个公司都会自定义一套方法和流程,大家各说各话。个性的东西太多,达成共识的东西太少,导致软件行业的人很难树立共同价值观,以及清晰的研发过程。我做软件咨询的时候发现,不少合作多年的团队,都未能在基本价值观上达成一致。例如自家产品到底能解决客户哪些问题,10个人能给出8个答案。我认为研发管理首先要解决的问题,是形成一个团队,这就要求大家必须有足够多共性。想要塑造有战斗力的团队,需要模仿军队管理,大家穿一样的衣服,迈一样的步子,用同样的方式使用工具,减少不必要的浪费和沟通。建立共性的关键之一,是要对代码质量树立共同的认可规范。好代码必须干净、可维护、可测试性好、适宜阅读。如果在大规模项目之前没有就此达成统一,大家冲上去的时候,再说如何配合、包抄,只会被打得一败涂地。关键之二,是要做好版本控制。版本控制是研发的基石,开发人员每天都要用,而即便很多资深程序员,对版本控制的使用方式依然很落后。版本控制最基本的要求是可回滚,但国内大部分公司做不到这一点。《精益软件开发艺术》这本书第0条就讲:代码必须在版本控制工具里。离开这个基础,其它的改善都是无用功。我原来一直在推Git,本质原因还是我们的内功特别落后,你看Github有多流行,就知道国外做得有多好。技术人攻略:国内研发管理内功不足,除了版本控制,还体现在哪些方面?除了版本控制外,调程序和测试的情况也不乐观。国内程序员调试程序大部分全凭拍脑袋,不能以程序的方式思考问题,不仅不具备调高难度算法的能力,也没有清晰思路去解决问题,更不会使用工具。在互联网领域,测试的重要性远远被低估。合格的测试开发工程师应该既懂测试,又懂开发,还要能教育其它开发工程师。这种人在现实情况下很难找到,根据我面试的经验,能把最基本的单元测试要点说清楚的人都不多。做互联网金融这段时间,我接触过国内很多第三方支付,都在测试上做得一塌糊涂。举个例子,开放平台让商家接入之前,需要提供一个虚拟测试环境。Paypal的正规做法,是给每个商家建立一个沙盒。而国内大部分厂商的做法,是让所有商家共用一个测试账号,往里面打一分钱。这一看就根本不懂测试理论,沙盒测试是标志性的东西,如果你到某个医院,发现那里没有显微镜,那就一定说明这个医院不具备做某些类型化验的能力。电信、金融、制造业等传统软件开发领域,对软件质量重视程度很高。互联网领域最不重视软件质量,普遍采用的灰度测试,虽然能解决体验、交互流程上的问题,但并不能解决质量和正确性问题。测试能力是很基本的内功,做灰度可以,但不能对测试一窍不通还无所谓。这好比你有10发子弹,因为时间、资源所限,只能打1发。但如果你只有1发子弹,你就打,不要说别的不好,因为你根本不知道完整的方式该是怎样,只能灰度。国内的创业者天天看TechCrunch,知道美国的市场、机会、商业模式,唯独别人的研发流程不了解,所以只会抄袭一些表面的东西。媒体总是报道Facebook一夜成名,但很少有人知道,在这家公司刚开始壮大时,就从Mozilla挖了一位非常资深的专家去负责工程。这些经验丰富的人是团队的定心丸,前进路上有多少坑,他们早就踩过了。研发有本质的客观规律,不能因为你年轻,你创新,就逾越这些规律。技术人攻略:你提到的从业人员眼界狭窄,表现在什么地方?从业人员不怎么看书,是这个行业普遍存在的问题,最多看点讲程序开发的书,所以有文化的程序员特别少。作为完整的人来讲,基础文化结构的缺失,导致大部分程序员看问题很偏激,没有常识,不知道历史,还总拿无知当个性。例如做技术选型时,看好某门技术,就要用到项目里,这其实是非常幼稚的行为。技术选型一定要考虑团队的驾驭能力,考虑能不能持续招到懂这门技术的人,以及最重要合作伙伴用了哪些技术,你选的这门技术能不能同他们高效沟通等非技术因素。研发管理90%的问题,30年前在美国已经出现过,好好看看经典书,90%的问题能解决得挺好。不要总觉得自己是世界上第一个遇到这个问题的人,差不多你都快成为世界上最后一个遇到这样愚蠢问题的人了。干了多年研发管理的人,都没读过研发管理经典的书,是很可笑的事。我经常说,想去研究软件考古学。软件的历史比较年轻,可考证的东西又比较多,能研究出相对清晰的历史、来源、派系,帮助我们了解行业的发展过程。《人月神话》这本软件工程经典书,就是讲软件开发的历史,程序员知道历史后,会更有兴趣去思考整体的行业脉络。上大学时,我们会从各种空难事故中,学习飞机设计失败的教训,例如某个部位为什么要这么设计,是从哪一次空难开始改进的。航空工业能发展成现在这样,不是由几个小屁孩拍脑袋做成。在大体理论框架没有突破的前提下,许多改进都是基于已有经验,对细节的精益求精。任何行业都需要积累,研发管理也类似,我们需要对行业历史有所了解,要传承,而不是完全去创新。计算机行业理论框架突破并不多,并且能得图灵奖的理论,跟大部分撅着屁股干活的人没啥关系,所以还是老老实实把这些经典理论继承了,对你的帮助更大。至于为什么要读那么多其它方面的书,除了能提高人文素养,还能帮你解决自身的问题。国外软件业大师,在思考自己行业问题时,常常能旁征博引其它行业的案例,例如引用一本护士学的书、一本机车修理的书,或一本建筑电气的书。各学科反复交叉会带来启发性思考,可能你这个行业的难题,在其它行业就不是事儿,帮助你开拓新思路。技术人攻略:对技术缺乏敬畏又如何理解?国内一些程序员懒、没有开阔的视野,对于技术缺乏敬畏之心,觉得自己什么都懂,不需要特别谦虚去学技术,一幅老子写代码天下最牛逼的样子。问他行业里有没有偶像,回答没有,问他知道业界谁做过什么东西,回答不了解。这种人是行业祸害,拉低了行业平均水准。开发人员能不能成长,只要看有没有追求就可以。面试时我通常会问几个问题,例如最近学了什么?通过什么途径去学习?看哪几本书?都是谁写的?他还写过什么书?关注什么开源项目?谁写的?他还做过什么项目?这几个问题如果能很清晰回答出来,说明面试的这个人是有追求的,起码有吹牛的追求。如果一个程序员连吹牛的追求都没有,是很失败的。那这群人为什么如此骄奢淫逸?因为拿钱太轻松了。互联网公司程序员离资本非常近,光今年上市的公司就大概有20家,行业发展得实在太好。国内互联网已经快15年没有寒冬了,包括2008年金融危机时,企业融资可能受点影响,但程序员的薪水一路水涨船高。除了干IT,有几个刚毕业的人能拿到上万工资呢?金融行业能拿到,但不需要IT这么多人。美国每7、8年,就会经历一次经济周期,而国内这一代程序员没有经历过寒冬,所以不珍惜自己的工作,不知道自己真正的价值在哪里。出来混终究是要还的,大量发行货币必然导致通货膨胀,只是时间早晚问题。从经济学角度讲,市场有了泡沫,需要经历一次大萧条,把泡沫挤压干净,才能变成更健康的环境。经纬合伙人已经写信,让大家做好过冬准备,如果资本持续注血,繁荣的假象就会持续得更长,如果市场找钱很困难,那大批互联网公司就会死掉,释放出大量人员,工资水平马上就会下来。研发工作非常辛苦,需要踏实态度和长期努力,通过日复一日的艰辛劳动才会有所收获。国内浮躁氛围很难培养出好的工程师。但换个角度,工程师价格高了,对真正有乐趣从事这一行的人来说,还是好事。从趋势上看,技术学习也正在发生变化,在校学生如果心态够开放,通过参与开源社区快速获取经验,在学校里就能练就很好的内功。这群人一旦成为一个小气候,可以直接和毕业5年左右的人竞争。尤其是当经济形势不好的时候,那些得过且过的人会很危险,终究有一天,他们会拿起书本去学习,知道自己根本不值那个价。技术人攻略:这种行业普遍存在的浮躁心态,带来了哪些不利影响?我们生活在一个非常功利、信仰缺失的时代,人们只想快速获取财富,很难有正确的价值坚持。用博弈论解释,这种浮躁走向了囚徒困境,类似日本、德国这种成熟社会,大家做事都不浮躁,整个社会能达到比较高的均衡。而在一个浮躁社会,没按规矩的人走得更快,于是那些按规矩做事的人就吃亏了。这种浮躁其实把大家都害了,把行业也害了。IT现在和钱离得比较近,所以病得挺重,整个行业里充满了骗子与强盗。大家努力的方向不是提升自己,而是只要能获得钱的事情都会去做。任何时代都有骗子,但一个国度里大部分人都是骗子,是不正常的,还是应该实实在在创造一点价值。热衷于炒作概念,是行业浮躁的表现之一。前几天参加一个研讨会,讨论了半天,才发现这群人不是在玩大数据,而是玩“数据”。因为以前根本没有数据,决策主要靠拍脑袋,现在有数据了,就觉得自己与时代划上了等号,想裹着这个外衣去挣钱,真是无知者无畏啊。好多人觉得有Hadoop集群了,上了硬件了,从政府那里拿到钱就牛逼了。可对数据没有理解,不知道怎么用Hadoop发挥价值,有钱也没有用。云计算也类似,被地方政府当成了房地产来搞,涌进许多根本不懂这个行业的人。这种浮躁会导致软件研发竞争优势下降,我们在圈子里有讨论,如果做高端基础软件,硅谷研发成本会比国内更低,能雇佣更高素质的人才,有更好的配合,以及更确定的产出。国内拿到钱的互联网公司,将来可能都会去北美建立研发中心。贵不贵是一说,还有值不值的问题,为什么中国建研发中心不值,这是一个很耐人寻味的问题。互联网行业看上去门槛低一些,创业相对容易,但总要设置一些门槛给竞争对手,所以还是要有自己的积累。我以前曾喷过阿里这样的公司,觉得他们做的东西不够专业,但后来我改变了观点,他们能坚持这么长时间,能把云计算推到这样的高度,就算走了一些弯路,也是值得敬佩的。这些实实在在的创业者,才是业界的良心。技术人攻略:根据你做敏捷咨询的经验,实施技术团队过程改进的最大困难在什么地方?最大的困难在于建立起团队成员对你的信任。许多敏捷实施失败的原因,就是因为程序员不信你,特别是团队资深的人不信你,基本一定会失败。从事敏捷咨询行业的人,许多并不是技术背景,他可以讲一大堆方法论,但程序却写得乱七八糟。所以想做好技术团队的过程改进,至少你得是个懂技术的人,首先要向团队展示出自己的技术能力,才有机会去解决困扰他们的问题。管理大师德鲁克曾说过:“你度量什么,就能改善什么”。在具体过程改进实施中,我喜欢从细节着眼,寻找一些善于实施,又能见到效益的改善。比如我经常会用到一个方法:度量程序员的时间花在了什么地方。如果大家都是靠猜测,管理不好也不奇怪。我曾经装过一个软件,记录自己使用电脑的行为,例如统计每天用了多少时间上微博、聊QQ、写邮件,还是写代码。真正把时间记录下来之后,才发现实际结果和自己的感觉大相径庭。社交要消耗大量时间,非常影响工作效率,所以后来我把IM都关掉,集中处理工作。一个管理良好的团队也是一样,想要改善需,就必须要有动力。作为管理者,你必须刺激团队成员身上的动力,给他们一面镜子,照出来他们背后的魔鬼,这样才会有改善的基石,这也是建立信任的其中一步。大部分程序员都很尊重事实,当他发现每天5个小时都花在聊天上,自己就会想办法去改善。逐渐实行这样能见到效益的改善,就会获得团队信任。好多找我做咨询的人,容易关注一些表面现象,比如敏捷实施的各种方法。在我看来,表面的东西只占20%,真正想做好过程改进,必须花很多时间做基础工作。比如上面提到的对团队工作时间的测量,对你的改善目标,提供了强有力的数据支撑,是非常基础的改进工作。敏捷是一个方法论,在团队内功真正得到提升之前,那些方法没有任何用处,而且高深莫测的方法,会让大家感觉到不确定,容易对此起反抗。实际工作中,许多咨询顾问不会花精力,去做看上去没有科技含量、很琐碎、不为人知的事情。就像刚刚谈到的大数据行业现状,大家在会上讨论着大数据的建模、分析、如何出漂亮报表,但80%的脏活累活,是要把数据有效地进行搜集和整理,它是简单的体力活,但做不好的话,根本没有后面这些故事。过程改进也类似,绝大部分工作就是普通工作,没有太多技术含量,也没什么值得可说的,但必须把这些基础打好,才会有后面的故事。国外谈论敏捷的,都是有20多年工作经验的人,敏捷宣言发起者,都是业界大牛。而平时工作中,我常接触到一些许多没什么工程经验的人在实施敏捷,并且在各种业界大会上,沾沾自喜地分享他们的经验,所以我后来也很少参加敏捷的这些会了。我怀着一颗敬畏的心,去读大师的作品,思考我工作中的不足。我感觉自己做的工作都很普通,都是大师们说过的,很普通的那些事情,值得分享的不太多,失败倒是有很多。技术人攻略:你从什么时候成为技术圈的交际花?你工作跨的圈子很多,是否会影响知识的积累?我也不知道从什么时候开始成为交际花,大概是2011年初,我翻译了《MongoDB权威指南》那本书之后,参加了很多技术交流活动。在这些活动上,遇到了不少志同道合、真正热爱技术的人,让我感觉很踏实,于是就更愿意参加社区活动。客观地说,许多活动的内容和组织都还有很大的提升空间。大家感觉日本的技术做得应该不怎么好,但我最近看了一本日本的技术刊物,发现他们的技术讨论很深入,国内罕有。我之所以会去各个技术会议当出品人和主持人,是因为不想作为批评者旁观,而是主动推动这些事情的发展,促成技术交流的气氛。离开上一家公司之后,许多做互联网金融的公司都给我打电话。我会问他们一个问题:技术能给你们公司带来什么?在我看来,大部分互联网金融公司处在初期阶段,还远远没到拼技术的时候。他们拼的都还是业务,业务做得好,技术外包一个,都能撑过去。现在加入的这家公司做APM应用性能监控,提供的是纯技术产品。我个人更希望在一家不浮躁,纯粹以技术为价值导向的公司工作。云计算快速发展,已经到了踏踏实实给大家创造价值的阶段,我希望通过公司提供的SaaS,让大家用得更舒服、更省钱。我一直很喜欢跨领域学习,对很多东西都有好奇心。大学本来是航天工程力学系的,却因为研究工业自动化系统,获得了电气工程学院的Rockwell奖学金。尝试新东西在我看来不是障碍,而是乐趣。工作以后,在不同圈子认识了不同的人,在互联网金融圈认识的人,如果一直待在广告圈,是无论如何也遇不上的。在各个圈子有朋友之后,可以做一些融合的事,比如想知道金融里面安全怎么做,就会有很多安全圈的朋友给我出主意。当然,在不同圈子太多,单一的业务上说不上特别精通,但我个人积累的重心一直放在技术上,一直在认真研究和探讨自己感兴趣的东西,从来没有放弃过对积累的追求。技术人攻略访谈是关于技术人生活和成长的系列访问,由独立媒体人Gracia创立和维护。联系邮箱:;微博: @技术人攻略;微信:技术人攻略(dev-levelup)。
虎嗅个人微信号huxiu302,欢迎勾搭,勾搭时注明工作背景(如创业者、营销人)哦
点此全站设置为大字体
本设置保留在浏览器内
分享到朋友圈
分享到微信朋友圈,炫耀你的微信影响力!~
您可能感兴趣的文章
要评论?请先
没有帐号?点击
认真读了一遍,感觉程显峰还是很有态度的,我们一直都疑问自己为什么成不了大树,那是因为我们的根在飘。虽然真诚的做技术不容易,但总有个方向。
登录后可点评,点击登录
说如何做好不难,难点在于,如何证明做好后有价值。先解决生存问题,再解决发展问题。
临远哥哥,是你吗?
登录后可点评,点击登录
临远哥哥,是你吗?
骄奢淫逸的应该是那些个互联网公司的开发人员吧,实际做应用软件或者应用平台软件开发的都苦逼的不得了啊。
你想多了,互联网的开发人员一样苦逼
登录后可点评,点击登录
你想多了,互联网的开发人员一样苦逼
对于软件工程的学说至今只认可一句话:&没有银弹&。
登录后可点评,点击登录
不同的时代的确会有不同的价值观追求,当然,或者是没有追求。但总的来说踏实做事虽然无可指摘,但时代的主流毕竟不是内功深厚的大牛们能撑得起来的。你可以做一个有追求的人,好好去追求你的价值实现,但一定程度上也得接受现实,不然只会成为激进主义者,丧失内心的平衡。
登录后可点评,点击登录
只能说不明觉厉。一个行业的病态主要还是人的病态吧,做人做事少一份浮躁多一份认真吧。
登录后可点评,点击登录
我们生活在一个非常功利、信仰缺失的时代
登录后可点评,点击登录
我也觉得太多人过于浮躁,当然也包括我,不过我最近一直在反思,稍微好点了。
登录后可点评,点击登录
这都被你发现了,一个大骗局。
登录后可点评,点击登录
作者水平挺高,句句说到点上!
登录后可点评,点击登录
不明觉厉的群众路过,坐等看工科男掐架。
登录后可点评,点击登录
正在东升科技园出差。。。
登录后可点评,点击登录
这不是研发管理的问题,是整个中国社会普遍存在的问题
登录后可点评,点击登录
ta的文章(8878)
收录此文章的文集

我要回帖

更多关于 基础验槽需要哪些资料 的文章

 

随机推荐