1. 互联网前辈总是说“bug是改不完的”,新入职的程序员该怎样应对bug
互联网前辈总是说“bug是改不完的”,新入职的程序员应对bug:
2. Java程序员 刚进公司 项目经理分配给的bug 怎么样去着手改
首先,看看主要的开发文档。
第二,请教经理大概讲解些平台整体结构,
第三,请教同事帮你讲解一些怎样快速的寻找或定位到那个类和那个页面的方法。因为是他们开发的,所以他们熟识。最好让他给我演示一二回如何寻找页面和类。
第四。修改时多用一些输出语句,在JAVA用System.out.println()
在JS里有alert();在JSP页面用out.println()等。
第五。记得多问,切记,这是成长的途径,最适合新手了。
3. 程序员为什么要一直改bug,不能一次性写好吗
软件可能在使用过程中没有任何问题,但不符合产品的预期下图源自“How projects really work?”,很形象的突出了客户需要的产品和最终得到的产品不一致。
所以软件想要变得成熟,Bug收集和处理机制是非常有必要的,比如:会影响客户使用的优先级高的Bug要优先修复。Bug是软件的影子,也是程序员的噩梦实际上不能存在没有bug的软件,Bug和软件如影随形。就像我们使用的Windows,穷尽无数优秀的软件工程师来设计给用户优秀的桌面体验,但也有各种层出不穷的bug。
程序员对Bug有多爱就有多恨,Bug无处不在,即使再牛逼的程序员也逃脱不了Bug的魔掌。想要完全避免Bug几乎是不可能的,所以也不在一次性就写好的程序。以上个人浅见,欢迎批评指正。认同我的看法,请点个赞再走,感谢!喜欢我的,请关注我,再次感谢!
4. 如何向 程序员 描述 bug 笑话
1.程序员写出自认为没有Bug的代码。
2.软件测试,发现了20个Bug。
3.程序员修改了10个Bug,并告诉测试组另外10个不是Bug。
4.测试组发现其中5个改动根本无法工作,同时又发现了15个新Bug。
5.重复3次步骤3和步骤4。
6.鉴于市场方面的压力,为了配合当初制定的过分乐观的发布时间表,产品终于上市了。
7.用户发现了137个新Bug。
8.已经领了项目奖金的程序员不知跑到哪里去了。
9.新组建的项目组修正了差不多全部137个Bug,但又发现了456个新Bug。
10.最初那个程序员从斐济给饱受拖欠工资之苦的测试组寄来了一张明信片。整个测试组集体辞职。
11.公司被竞争对手恶意收购。收购时,软件的最终版本包含783个Bug。
12.新CEO走马上任。公司雇了一名新程序员重写该软件。
13.程序员写出自认为没有Bug的代码。
5. 程序员如何自己创业
30岁,对于每一个程序员来说都是尴尬的年龄,仿佛舞台上不知不觉间已经谢幕,而自己仍在独舞;创业,对于每一个程序员来说都是曾经或者正在憧憬的梦想,可是梦想与成功之间难以逾越的距离却也让多少人望而却步……以下是我为大家整理的程序员如何自己创业相关 文章 。
周鸿祎谈程序员创业
很多人都向往着有一天自己创业,程序员更是如此。如果你想创业,那么该怎样创业、需要有哪些准备、自己还有什么不足等等这些问题你考虑过吗?本文就跟大家分享周鸿祎在接受某媒体采访时给程序员上的创业课。
程序员创业的特别之处
关于程序员创业,我之所以愿意谈我的观点,是因为我是程序员出身,也是从小公司做起来的,我自认为对待很多程序员个人包括共享软件作者和一些小网站还是很好的。我希望和他们分享一些 经验 和体会。
首先,我想说的是聪明人不一定能成功,很多程序员很聪明,但我一看就知道他们不会成功。因为我看到了一些问题,而且现在太多程序员存在很多误解。因此,我希望把我的观点告诉程序员。或许有一些程序员能够清醒,某个人可能因为我的某一句话有了感觉,对他以后的成长产生了帮助,这就足够了。
要知道,程序员总是以为自己优秀所以就能成功,其实不是。中国的程序员大部分是盲目的:看看一些论坛就能够感觉到,要么有一群人自我感觉极端的良好,以专家自居,要么就是一群蓝领埋怨公司和社会环境不行,待遇不好。
应该说,中国程序员创业的成功率也是很低的。放眼望去,中国互联网成功的人士有几个是真正写过十年软件的。事实上,现状和我们所能听到的媒体宣传的 故事 很不一样。
很多程序员的最高理想就是写一个共享软件,一年可以挣几百万。但我希望谈的不是告诉程序员如何挣钱,挣钱很容易,而是要告诉程序员如何去创业。比如虽然FlashGet的作者收入很高,衣食无忧,但从创业的角度看,它并没有以商业公司的方式创业成功。
程序员在创业方面的欠缺
首先,我看到中国程序员的合作心态非常缺乏,我认为这是中国程序员最大的问题,当然这是有很多原因的。
大家经常说这句话:态度决定一切。但事实上好程序员基本上都比较傲气,因为程序员往往会觉得自己在做世界上一件十分伟大的事情,这就是驱动机器,修改一行代 码,机器就能够工作,可以产生各种不同的行为。这很容易会让程序员产生一种错觉,认为自己可以Control Everything。程序员的自信在编程上是非常需要的,但不是适合一切场合。如果我们不说这些,可能很多程序员到现在还不知道自己错在哪里,仍然认为 自己是King of the World。
事实上,程序员的能力只是控制了一个机器。但创业仅仅具备了和机器打交道这一种能力是绝 对不够的,他还需要和合作伙伴、竞争对手、投资人、员工甚至整个社会环境打交道。很多程序员因为已经习惯了和机器打交道,不善于也不愿意 其它 的工作。很多程序员会内心认为“营销不是很简单嘛,市场很简单啊,管理也很简单啊,”我认为这种心态是非常害人的。
程序员还是一个很固执的人群,他觉得自己是机器的统帅,因此不会灵活,不会妥协。我当时也喜欢写程序,但我知道如果自己沉迷于写程序,肯定没戏,所以是逼着自己改变角色。
优秀的程序员不要自负
这两天,我收到几封程序员的来信。有一封信中大意说“我是个如此优秀的程序员,为什么我就不能成功呢,请你指点。这里有我的blog地址,看完你就 会了解我了。”我想说的是:如果真的希望别人帮忙,就要把情况真实的说出来,而不是上来就说自己很优秀,这种语言就会让别人觉得很不舒服,不是很好的交流 方式。我还真看了那个blog,但看完之后,觉得这个程序员就是一个空想狂。
可以说,很多程序员实际上是优秀带来了自负,这种自负使得其不要说创业,可能在在公司中工作也会遇到问题。所以,我甚至认为程序员在创业方面遇到的困难比其它类型的人员更大。如果程序员希望主导一个创业,可能首先就要逼自己不是一个程序员。
程序员应持开放心态,寻求团队合作
程序员首先要学会和别人合作。提到这点,很多程序员都会说“我正在带着其他程序员写程序啊,我会合作啊。”但这种合作是片面的,我所谈的不仅仅是程序员和程序员之间的合作,而是包括了程序员和其它各种角色之间的合作。程序员相亲,他们的语言比较能够容易理解。但作为一个程序员,你能不能商业人员、销售人员很好的合作呢。
我这些年还看到很多这样的例子:程序员动不动就把目标定为比尔·盖茨。其实,比尔盖茨不应该成为程序员崇拜的目标对象,这会让程序员迷失方向,因为微软另外一个创始人保罗·艾伦才是真正的程序员。再看其它一些例子,Google的第20名 程序员都可以获得五亿美元。Adobe公司两个创始人也是一个精通技术,一个对商业精通,这样的搭配才能够更好的成功。因此,对于很多程序员来说,一定要找准真正的榜样,不要被外界的故事迷惑了头脑。如果剖开一些故事的外表,你会发现国外很多成功的程序员,背后一定有一个很强大的商业感觉的人或者一个团队。
程序员的商业感觉其实并 不是很好。即便有商业感觉,其实这只是一个灵感,一个创意,但要要做成、做大还需要一系列的管理、市场、运营,这些对于程序员是不可想象的。程序员要明 白,在自己不擅长的领域,找到一个可以弥补自己缺陷的合作团队才是出路。加入一个创业团队,可能个人占10%,但因为更容易成功,而且团队可以做100分 的事情。而如果只是一个人做,很可能就失败了。
这方面,国外的程序员对自己的长短比较清楚。在硅谷,很多程序员技术上都很牛,但他们 都非常知道自己只是在技术这个领域水平比较高,出了这个领域,自己什么都不是。正因为有了这种心态,他们特别懂得与人合作。我认为国外的程序员已经普遍意 识到了这点,他们很愿意成为创业团队中的一员而并非自己创业。
因此,程序员需要调整心态,不要把自己当作精英人物,要承认自己在编程方面是优秀的,但永远有人比自己更优秀,对于其它的领域,很可能自己很无知。要知道,其实程序员的选择其实是最少的,因此抱有开放的心态是最重要的。
程序员与创业要求还有哪些差距
我认为现在的很多程序员经验过于不足,他没有认真踏实做过很多工作就奢谈创业。如果一个程序员没有在编程方面深入过,没有积累,也就是半瓶子醋。这 样的程序员我接触过很多,他们自己也不清楚问题出在哪里,让人感觉又爱又恨。我认为程序员既然要凭借自己的技术,那就一定要踏实,要能够实现任何创意。
但现在一些程序员自己没有商业意识,却又很自负,不相信别人,不理解的事情就不做。我遇到过很多程序员,他们对公司做什么方向都质疑。他 们希望自己先想清楚,可是一想就浪费了很长时间。很多程序员就可悲在这里,积累的不多,看不到方向,但他也不相信自己的公司和老板,这是一个悖论,需要程 序员深刻反省。要知道,每个公司都有懂商业的人。
就这样,一些程序员极端自负,另外有一些程序员碰了很多钉子之后,感觉很自卑,于是便认为国内软件业不行,最后 出国 或者打工,很少有程序员能对自己能做公正的评价。
国内环境是否造成程序员浮躁的因素
我以前没有仔细考虑过这点。但我想,不管怎样,程序员需要先从自身找问题,因为大环境就是这样了。我承认一个现实:程序员生存状态并不是很好,但程序员很多报怨其实是一种不切实际的期望值和自身的缺陷产生的反差。
首先,产品没有大小,只有市场的大小。很多人总是觉得这也小,那也看不上。认为公司做的产品很无聊,要做就要像某些人宣扬的那样:做游戏一定要 做3D引擎,好像只有这样才够牛。这其实就是一种浮躁。很多程序员写软件总是很多bug,基础知识也不牢固,没有参加几个项目,没有写过十万行代码,就奢 谈做大项目,这有价值吗?
而且我还发现有些程序员特别愤青,骂环境,骂老板,其实这只能把自己的心态搞的很坏。很多人刚进公司时做的很差,虽然工资少,但他没有想到给公司增加了很多bug,公司实际上是在给他出学费。论坛上大家都在讨论哪里活干得少钱拿的多。甚至还有人列了一些黑名 单。这种做法的结果就是程序员自己将周围环境搞的乌烟瘴气了。
有的程序员还非常喜欢指点江山,指点公司。我个人觉得这不是不可以,但 指责别的公司对个人没有什么好处,因为存在就是合理的。如果看不到,恰恰证明是自己看不到。我看到很多程序员也写blog,技术交流的我认为非常好,但有 些人是写评论。我是觉得程序员不要做评论家,中国不缺评论家,最缺的是实干家。
总之,程序员一般过于自我。总生活在自我的世界中,就不可能真正了解世界是什么。我很早就意识到了这些问题,也努力的去客服。我的经验就是看别人如何做的好,为什么能够做的好,什么是我所不能理解。程序员要学会慢慢站在别人立场上看问题。
最后给希望创业的程序员一点建议
对程序员来说,现在要做的也很简单,这就是需要大量的实践,要慢慢培养对产品,对商业的感觉。我的建议说出来可能有些忠言逆耳。对绝大多数程序员来 说,自己一个人成功的机率是很小的,所以我认为加入一个创业的团队可能更为合适。现在有很多初期创业的公司,也需要很多优秀的程序员加盟。如果有理想,可 以选择加入一个团队,也有相应的股份,这方面我可以充当一个桥梁。
看看前网络程序员是如何创业的?找合伙人已经OUT了!
“来吧,做我的CTO,给你股份,咱自己当老板。”
因为同学的一句话,前网络研发工程师YK辞职创业。一群毛头小子,技术能力过硬,但毕竟资源不足,经验欠缺,不到半年,项目无疾而终。 互联网创业 盛行的现在,一个好的技术抵得过一支团队,更别说出身BAT了。
但很多人不知道的是,就是这一样一支技术实力超强的团队,最终竟然也输在了人上——过于强调技术,没有头脑足够清醒的团队成员及时制止。这也是为什么要选背景不同、经验不同的一群人一起创业了。曾经和YK聊过很久,项目失败的背后是他对创业更多的思考,特别是对于那些拥有好工作的人来说,抛下一切投身创业需要付出的成本太高,但如果只是给创业者打工,那还不如守着原有的工作,至少更体面、更有保障。
就在我以为他会重新安安稳稳工作的时候,却意外的在创业大街再次见到了他。细聊起来才知道,他并非辞职重新开始创业,而是用自己擅长的技术加入到新的创业团队中,以外部合伙人的身份帮助两个不同方向的项目解决技术开发问题。这次来到大街,是专门和一支团队开技术碰头会的。
他的这个选择意料之外,却又情理之中。意料之外的是他居然理智的没有辞职,情理之中的是他选择了成为外部合伙人,用业余时间一边做顾问、一边写代码,实现了时间、能力价值的最大化。
其实,说到外部合伙人就不得不提智筹平台。去年3月,正是看到了毛大庆宣布 离职 但依旧担任万科外部合伙人的新闻后,智筹将“外部合伙”作为创业者&人才之间对接的一种新的合作关系。现在,创业者来智筹发布任务,除了能与互联网高级人才建立长期顾问、短期兼职、驻场办公、远程协作等合作关系之外,也能通过部分现金+可回购股份的方式,与人才建立外部合伙关系。外部合伙人是一个没有行政职位,但依旧为企业、团队做贡献的人。
对于创业团队来说,外部合伙人解决了以下问题:
1.快速成长,度过难关。
按照原本的思路,YK服务的两支团队还陷在满世界寻找CTO、找程序猿的泥沼中,但有了外部合伙人,更低的参与门槛吸引了更多人才愿意加入,不仅解决了燃眉之急,更推动项目度过难关、快速前行。
2.满足了人才的多样性。
一个合伙人已经很难找了,更不用说基因不同、知识不同、经验不同的一群人。外部合伙人大大降低了对人才的束缚,而这样的一种合作模式,让越来越多的人才愿意加入到创业中来,组建这样一支多样化团队更容易。
3.更快找到,成本更低。
外部合伙人是通过股权激励撮合到一起的一群人,利用可回购股权让人才把创业者的事当做自己的事,目标、利益一致,做事更用心、更高效。股权支付的方式又可以降低初创的资金压力,创业者不用支付很高的现金,也能请到非常NB的人才来解决难题。
外部合伙人极大的缓解了创业找人难的窘境,但当创业者真正去寻找外部合伙人的时候,往往又会担心外部合伙人的时间、效率怎么保证?水平怎么衡量?什么人才适合做外部合伙人?
首先,时间自由是第一标准,至少是时间可控,能够拿出足够精力完成任务。否则,连时间都不能自由支配的外部合伙人也太不称职了,CEO找你开会,你却说你在公司加班,即耽误了创业者的时间,又降低了自己的口碑。
其次,独挡一面的能力绝对必不可少。做得了合伙人的,都是某方面十分擅长的专业人才,那么做的了外部合伙人的,需要更高的水平。从一开始我就强调,外部合伙人一定是高级人才,不然没资格帮助创业者解决问题,甚至指导方向。俗话说,没有金刚钻不揽瓷器活,想做外部合伙人,一定得先有过硬的水平。
第三个标准是认可股权模式。中国基金报曾发表评论称,未来十年,如果你与股权无缘,可能无法实现财务自由。在如今楼市低迷、股市重挫的时候,股权投资却异军突起,特别是在大众创业、万众创新的激励下,全国创业氛围浓厚,涌现了一大批优质有潜力的新兴企业、互联网企业。也许你不是土豪,没有钱参与众筹,而此时外部合伙人模式的出现,让普通人也能参与,只不过是用能力和时间参与创业、解决任务,换取股权。
智筹在帮助创业团队对接外部合伙人合作的过程中,通过实践 总结 出了最适合做外部合伙人的群体:自由职业者、大企业主管级以上在职人才、工作室、外包团队等等。这些人能够站在实战的高度,不只提供经验分享,更能够有针对的解决具体问题,融入到项目和团队中。
对于很多创业小伙伴来讲,找钱、找人是躲不开的两座大山,有钱了当然可以请NB的人才加入,有人了事儿干好了钱自然不愁,先有鸡还是先有蛋的问题永远都在,找到一方的突破口自然事半功倍。这时,外部合伙人就是打破这一死循环的关键钥匙,只是需要创业者用开放的心态接受、尝试,毕竟改变原有习惯肯定难受,甚至懒得尝试。但创业原本就是不破不立的事,只有打破旧有习惯,才能接受新鲜事物,才能有更多新的收获。
从另一个角度来看,参与创业的门槛降低,意味着越来越多的人能够将自己的智力换成股权,帮助推动创业的同时,也是对未来的投资。根据智筹平台的数据显示,当 创业项目 获得融资后,人才所持的可回购股权将会以最少3倍的价值兑现,这对于很多人来讲也是不小的吸引力。外部合伙人模式,降低初创资金成本的同时,也让越来越多的高级人才加入到创业中来,大大激发了创业活力,无论创业还是参与创业,用起来都是极好的。
6. 程序员改bug 问题是怎么改好的
其实程序员改bug也是有学问的。程序员改bug跟医生治病是一样一样的,无非一个是给机器看病,一个是给人看病。首先,一定要准确的定位引起bug的真正原因。定位问题,需要程序员去读代码,了解流程,弄明白来龙去脉。其次,定位bug源头之后,就需要去分析解决问题的方法。分析问题,需要综合相关知识,熟悉它所用到的一些机制,找到最佳解决方案。拿Android来说吧,比如修改wifi的bug,就需要弄清楚wifi的流程,stateMachine机制,消息机制,当然最基本的四大组建及其机制是必不可少的,哪里都有用到。然后,才是去coding。当然coding,也应该注意一些问题,比如,风格尽量和源码保持一致。Google那批程序员功底还是可以的。注释一定要清晰,包括作者,改动时间,以及原因。最后,要强调一点,改bug一定要彻底。不能改一个bug一起另外一个或者一堆bug。一定要避免这样的情况发生。我们公司就一个刚毕业没多久的程序员,改bug不彻底,只改了界面显示,弄的实际功能废掉。对于这样的代码,我只想说两个字:垃圾。另外,改bug要和相关模块的工程师讨论,因为他们或许就是这方面的专家,这样才能写出优秀的代码。
有的人改bug改了几个月,就会分开发的任务,或者层次更深一点的任务。有的人从进公司就一直改bug。不能否认公司方面有一定问题。但程序员也应该从自身方面找找问题。你写的代码是最高效的吗?你写的代码让别人很容易看懂吗?你写的bug让别人呲之以鼻还是赞叹不已?如果你做的不够好,就不要整天抱怨:“又让老子改bug,老子从进公司到现在都一直在改bug!”
7. 程序员如何让自己的程序少出BUG(转)
软件测试心得
,而且还经常写一些工作上的事,现在感觉自己老了似的,开始转型了,会选择写一些总结而不是琐碎,也许这是我以后当领导的征兆吧。
程序员是善于思考的一个职业,做过这行的都知道,写一个程序的过程都要经过构思、设计、写代码、测试到最后运行这几个步骤。慢慢地,这个习惯也被搬到了生活中,现在我才觉得,我平时做事这么的冷静善思考原来是工作影响的原因。
象我一样,大多程序员都有一个毛病,或者说一个习惯,自己编写过的代码都不愿意测试,他们凭着自己的习惯,理论上完成了代码的编写就认为自己的工作结束了,剩下的工作应该交给测试人员了。但实际上来讲,如果代码存在BUG,造成软件在运行期出错,那么测试人员和客户肯定会发现这些BUG的,再等到测试人员或者客户把BUG反馈回来的时候代价就已经很大了,不仅仅是时间的浪费,更重要的还有1、影响了客户对产品以及公司的信任度,2、影响了程序员自己的声誉,3、影响了代码的可读性以及质量,4、增加 了DEBUG的难度,5、对程序员的心理造成一定的影响。
首先,程序员应该克服自己身上的一些缺点,这是很重要的一点,因为每个程序员都有自己的编程习惯,而且每个程序员对自己刚刚完成的程序都会信心百倍的说“绝对没问题”,实际上这种想法很正常,因为每段代码都是通过程序员认真谨慎的思考和设计之后才写出来的,在设计时已经排除了很多问题,所以程序员不会将自己认为不正确的判断写到程序里,但这仅仅是理论上的想法,但人哪有不反错的时候。其实程序员在读其他人写的程序的时候,就会很谨慎,仔细找到程序上的错误,但对自己的代码就很难这样做,如果把这种谨慎应用到自己的代码上来,BUG会减少到最少。软件工程所说的各阶段工作想必大家都清楚,前期的设计以及需求分析才是一个软件工程的重点,这里也是花费时间最多的地方,当对要写的程序有了一个清晰的轮廓之后再动手编写代码。
第二,刚刚提到的前期设计,是指在编写代码之前所作的工作,这要求程序员对系统的整个结构以及逻辑有很清楚的理解,这也要求对系统的需求做到位。我没有写过文档,所以这里不谈文档了。思路清晰很重要,但每个人并不能将系统的整个设计思路都记在脑袋里,那最好就写下来,特别是一些复杂的逻辑结构关系还有复杂的算法。
第三,代码的编写,要尽量减少拼写的错误,严禁使用关键字作为变量来使用,要尽量做到代码模块化,并且保证其正确性和可重复使用性。因为是模块组成的,写过之后可以将每个模块部分单独测试,因为代码量少了质量自然提高了。对顺序执行要求很高的函数尽量不采用调用子函数的方法,让程序按顺序走吧。
第四:代码检查以及系统功能测试,这是保证代码质量的最后一步了,我们可以写一些代码模块或者小工具来进行测试工作,跟踪变量值的变化,使用一些小技巧在这个阶段都是必要的,这里和测试人员的测试不同之处在于:仍然让程序员的注意力放在其自己的代码范围内,减小了排错的难度。
按照如上步骤来走的话,那么我想你的系统应该足够健壮了。
把对待别人代码的态度放到自己的代码上来,也就是反复的Review自己的代码检查逻辑错误也是相当好的办法。别把自己辛苦写的代码看的很值钱,在团队中尽量与别人分享、Review代码这是实际工作的经验。
作为一个优秀的程序员要具备这些习惯,看自己的代码就象对待自己的一样,爱惜、呵护是必须的,同时也要象园丁一样及时修剪多于的树枝来让自己的代码走正确的道路。
8. 程序员遇到百度不出来的bug都是怎么解决的
笔者不同意下面网友的回答。程序员如果解决bug的水平停留在网络,那么本质上只是一个“面向搜索引擎的代码搬运工”,是不合格的程序员。
程序员对面bug,正确的“打开方式”是像福尔摩斯和柯南那样,寻找线索、运用逻辑推理来缩小问题可能的根因范围,最终精准定位。
常用的方法有:
1. 坏境上下文变换法
2. 工具调试法
3. 版本回溯对比法
4. 代码审计法
……
没有编程问题是stack overflow和Google解决不了的,假设你在编程中遇到了问题,你自己解决不了、你周围的的人都解决不了的时候,我觉得stack overflow、Google是你最好、也是最后的帮手。
作为一个程序员,我觉得Google、stack overflow是你必须要学会使用的两个工具,这两个工具本身并没有使用门槛,只不过因为一些众所周知的原因,很多人不能使用Google和stack overflow这两款工具。
Google主要还是方便,而且很多编程问题都需要用到英文搜索,当然现在网络在专业能力上也提升明显,不过跟Google也还是有比较大的差距,因此我还是强烈建议要学会使用Google,这会帮你在工作、学习上事半功倍。假设Google确实因为某些原因没办法很好的使用,我也建议你至少要会使用Bing搜索。
现在可以说stack overflow上没有你找不到的问题了,从IDE环境安装问题,到各类编程语言问题。算法问题,数据结构问题,调试,重构等等,几乎这里就没有你找不到的答案,可以说在stack overflow上你可以找到任何解决方案,并且上面的回答者基本上都是非常有经验,而且都是实际中遇到的问题分享出来的,这个工具一定要会使用。同理,除了stack overflow这个专业的垂直程序员问答社区,你也可以使用Quora这个综合问答社区,这上面也能找到很多问题的答案。
一些比较优秀的文本编辑器: Emacs/Vim,Visual Studio Code,Sublime Text,Atom,Ultraedit,Hbuilder等。
一些比较非常出色的IDE集成开发环境: visual studio,IntelliJ IDEA,PhpStorm,Haskell for Mac ,eclipse,WebStorm,GoLand,CLion,Android Studio,Xcode,QT等。
macOS平台比较好的第三方包管理工具: Fink,Macports,Homebrew等。
一些比较好的终端工具: Zoc7,iTerm2,Cmder,terminus,hyper等。
一些比较好的笔记软件、markdown工具、效率工具: Evernote,有道云笔记,为知笔记,Ulysses,MWeb,FileZilla,Snipaste,Kantu等。
虚拟机软件、容器软件: Parallels Desktop,VMWare Fusion,Virtual Box,Docker等。
我是个程序员,职务是linux底层驱动工程师。平时的主要工作是调试驱动,但产品遇到诸如死机、重启、不开机之类的问题时,也要参与查找原因。一部分问题,确实可以查看相关的log,然后网络这些log的关键字来解决;但更多的问题,牵扯的条件太多,并不是简单的网络就能解决的。
观察了周围同事们的做法,我总结出以下几种解决方法:
网络因为竞价排名的原因,搜索出来的结果有很多广告的成分,所以有时候要翻好几页才能看到一条相关的答案,有些甚至要翻几十页。
因为网络搜索使用的是SEO技术,即普通用户可以通过优化网站内容来提升关键词排名。
而这就会导致一个问题:你搜索关键词后展现出来的结果是有人想要让你看到的,并不是质量最好的。
也就是说,网络搜索结果被人为干预了。所以网络一直被网民所诟病。
但网络搜索不出结果,未必是网络的原因,也有可能是自己输入的搜索词不准确造成的。所以对于网络,我们要做到如下几点:
除此之外,网络搜索还有点小技巧,粥左罗《万字干货,彻底讲透搜索技巧,10倍提升你的搜索力(免费教程)》这篇文章写得非常好,我整理几点,仅供参考:
01 过滤目标内容
命令:“+”“-”
用法:通过“+”和“-”来对搜索结果进行过滤
比如在关键词后加上“-推广 -推广链接”就可以排除搜索结果中包含相应字样的链接。如果你发现广告还没有排除干净,你也可以再加上“-广告”通常就能彻底的消灭广告。
02 搜索包含某关键词的内容
命令:“intitle”
用法:通过“intitle”命令指定搜索结果中要包含的关键词,注意“intitle”后边连接的冒号是英文状态下的。
03 搜索某一个格式的文件
命令:“filetype”
用法:通过“filetype”命令可以限制我们要搜索文件的类型,注意“filetype”后边接的冒号也是英文状态下的。
04 搜索特定时间范围的内容
命令:“时间..时间”
用法:通过“时间..时间”命令可以限制我们要搜索的文件的时间,注意两个时间的中间顿号没有空格。
相对网络,谷歌、必应对于技术搜索,就相对准确许多,所以当你网络搜索不到时,尝试下别的搜索引擎,说不定会有新发现。
现在程序员使用的机器语言,都是国外的,更准确的说,都是美国的。所以很多论坛、资料等,都是英文。如果你只会用中文来搜索,某些小众的问题,当然搜不到啦。
所以,要学会使用英文关键字来搜索。
有时候甚至要去国外的一些论坛来搜索想要的答案,这就要求要有一定的英语阅读能力,不能一看到英文帖就放弃。
有时候不管你如何搜索,都找不到自己想要的答案,该怎么办呢?这种情况下,就只能硬着头皮尝试自己解决了。
或者,寻求同事或朋友的帮助,寻求大脑风暴,说不定就会有思路。
如果有些问题是因为新器件带来的,还可以找到器件供应商,让他们安排技术支持帮忙查找原因。
除此之外,还可以把问题整理好,写清发生的条件、复现步骤、测试方法、相关的LOG截图等资料,去一些技术论坛发求助帖,寻找大牛的帮助。
做技术时间久了,发现有些问题确实无解,根本没有办法去解决它。
这时候,我一般会尝试把它绕过,就是说,想办法让它无法复现,虽然问题还是存在,但是能把它掩盖过去。
比如有些驱动在开机启动时会加载不正常,那么就让它晚点启动,或者手动加载。这也不失为一种解决问题的方法。
以上就是我的建立,希望对你有帮助。
首先作为一个程序员,一个优秀的程序员最最最重要的能力就是解决问题的能力。这里解决问题的能力当然就包含了解决 bug 能力了
毕竟,程序员这一生,可能会写无数个 bug ,没有说哪个程序员敢保证自己写的程序没有 bug 。 所以,写了 bug ,遇到 bug 并不可怕,可怕的是你没有解决 bug 的能力 。
作为一个程序员,解决 bug 的途径有哪些呢?我们来一起聊一聊!
其实,每个程序员在学习编程的时候,都会使用编程工具,而现在的开发工具,其实功能都很强大。如果你自己合理利用编程工具,都了解和懂得开发工具的一些技巧,其实不仅仅能够提高开发效率,而且还能够帮助你解决很多编程中的实际问题。
debug 调试,大部分你常用的开发工具,都会有调试模式的,简而言之,就是你编程的时候,遇到了不是自己所想的结果的时候,你可以使用 debug 模式,来一步一步的调试,在调试模式下一般每一步都会显示所执行的结果,你可以看看在哪一步出错了,执行的结果与你预想的结果不对,那么你就能够找到问题所在了。
还有就是,开发工具的控制台,都会提示出报错信息的,现在的开发工具,都会直接告诉你哪一行,报了什么错。其实,很容易定位到错误的。你只需要在编程的过程中积累经验,知道报什么错,用什么方法来解决就行啦。
可是,提示的报错信息,我不知道用什么方法来解决的时候,该怎么办呢?这就是你需要积累的,也是问题中所描述的,就是通过搜索引擎来找答案。
不对,这里不应该是合理使用搜索引擎,应该是学会正确使用搜索引擎。比如:网络,你就不要用了,搜出一堆重复的信息,而且广告也多。作为程序员,建议你使用谷歌搜索。
其实,你在编程中所遇到的几乎所有的问题和 bug ,别人也同样遇到过,因为不管是经验丰富的老程序员,他技术再牛逼,也是初学者过来的,也都踩过你踩的坑。所以,互联网是个好地方,里面包含了你想要的问题的答案。
你只要把报错信息往搜索引擎上一放,回车一下,很多关于这个 bug 的答案就出来很多,你只需要找到跟你一样的 bug ,就能找到答案了。
在这里必须提一下这个网站,所有的程序员有必要学会使用这个网站,其实,你编程中所遇到的问题,这个网站上几乎都是由解答的。
Stack Overflow 可以说是最好的软件程序类问答网站了,给软件开发人员工作和学习提供了非常大的便利,以至于像小白,离了 Stack Overflow 简直都不会写程序了。
所以,建议大家一定要学会使用这个网站,对你编程肯定会有非常大的帮助的。
通过上面的方法,几乎应该能够解决到你所遇到的问题,但是,实在找不到答案的话,你可以问经验比你丰富的老程序员,实在解决不了,那就换种方法吧!
网络,谷歌,debug,断点调试,业务上的bug就需要问下同事或者产品。如果能知道大致范围,哪一部分错了,就换一种方法呗,一般都不会只有一种方法。
1.reload
2.restart
3.rewrite and then goto 2 or 4
4.reboot
5.rm -rf /
6.原谅我编不下去了[捂脸][捂脸][捂脸][捂脸][捂脸][捂脸][捂脸]
找bug跟医生看病的思路是一样的,要对症下药。得先把问题的根源找到,找到根源以后问题就容易处理了。搜索引擎找不到的问题,说明这个问题不是一个常见的问题,具有独特性,那么从bug出现的路径上一步一步去排查。必要时可以用排除法,尽可能的缩小排查范围。另外,当软件的业务逻辑比较繁多复杂的时候,一个结构清晰的架构能为你节省不少找bug的时间。还有,充分的单元测试能够帮你减少出bug的机会。以上均为个人看法,欢迎讨论!
一般程序员能碰到的bug无外乎其他上游程序员写库时手抖留下些不匹配或者容易溢出的问题,搜一下差不多能解决问题。如果是自己写的,那无非就是时序错误类型错误之类的,用break point一行行的调就好了。
再复杂点的bug就是程序员拿高薪的根本了,只可意会,不可言传~
仅仅靠搜索引擎、其他网站那必然无法解决大量问题,因为很多问题是跟业务逻辑相关的,是没有直接答案的。比如 游戏 开发有个界面一直无法显示,这个问题就不是网络可以解决的。问题需要调试分析,这和破案非常像,但在开发过程中更有利的是问题有机会可以重现。破案是逆向工程,需要反推。解决代码问题不仅仅可以反推,也可以通过阅读代码正向分析。下面说说如何debug一个业务逻辑问题。回到刚刚的例子,有个界面一直出不来,我们如何快速去定位:
1.思考这个问题发生的可能性。比如 游戏 内大量界面都是正常的,那么可以对比正常界面代码和异常界面代码的区别,这是对比法。
2.假设创建正常界面和这个异常界面的逻辑代码是一样的,那么问题就落到了这两个界面内部,继续在内部重复上面的对比法进行判断,直到锁定最终位置。
上面说的方法基本上可以杜绝卡在一个简单问题上,这是摆脱新手的一个过程。选择使用对比法或者其他方法的前提都是基于观察和对项目的认识,所以,搜集“案发现场”是最关键的。
其他的问题,不属于逻辑的,像其他网友说的那样,有些通过到github、stackoverflow等地方解决的。这些问题也不是直接就去查找的,它通常也有个分析过程。比如你使用了一个库,但是目前它不支持你的模块。对于新手,就是直接网络或者google了。实际上这样的问题也是有“案发现场”的。对于作者提供的api接口的统一性和便捷程度去推断作者在相关支持模块的位置以及命名以及拓展,再尝试在文件夹中搜索。如果都找不到,再去Google上获取更多的信息。重复推断、分析,决定如何拓展或者绕过。
综合上面的几种问题,可以看到的是都离不开对现场的观察和推理分析。这种能力也被称为经验。但是一般情况下你看不到它们这个分析过程,你能做的就是在实际环境中反复逼迫自己去思考,去训练。这个推理的培养,不仅仅是对事情,也是对人。
我在入行 游戏 开发的前期,也是类似的情况。卡在不同种类的问题上,有些在简单逻辑,有些在别人的代码支持上。后面解决的问题多了,就会发现里面共通的思维方式。常用的一些方法如下:
1.对比法,比较正常与异常代码区别
2.二分查找法。分段注释找问题,也会用在很多方面。比如最近版本突然出了一个奇怪bug,可以通过svn还原来定位。这个还原不是一个一个版本还原,而是用二分法去还原。
3.增加信息。在怀疑的位置或者过程添加日志或者打断点辅助自己更好的推理。
4.相似推理。比如一个引擎在api、性能使用程度上都非常友好,那么它在别的地方也有可能相对表现比较好。这时候如果有个功能我们的实现需要很复杂才能完成,那么就有可能是我们用错了。相似推理不一定都能正确,但会提供一些帮助。
以上。
9. c++程序员如何创业案例
程序员,是一个很累的行业,经常要熬夜赶代码。以下是我为大家整理的c++程序员如何创业案例相关 文章 。
c++程序员如何创业案例:
这是我多年来招聘培训游戏程序员的一点想法。一直想汇总一下。主要目的是为了更好的对公司新进C++程序员进行培训,并且建立起游戏程序员培训,发展,成才,成为核心骨干,管理层,期权收益人等一整套体系。因为对于MMO游戏制作来讲,解决好C++技术队伍,是保证合格软件的基础之一。
我在的H3D Studio核心技术人员和游戏制作管理人员全部是SMTH BBS游戏制作版成员。从99年开始截止BEGINER的历任版主都在H3D STUDIO里工作过。在这里我把具体的培训以及技术队伍组建的内容去掉,只和大家聊聊关于游戏程序员切身利益相关的事。
另外这不是居高临下来评判什么事情。我本人也不是多么高级的技术人员或者管理人员。只是坚持做一件事情年头很长教训很多而已。所以有些体验。文中所有评判其他结构或人水平低,并不是说我本人水平有多高。不要误会。
一、C++游戏程序员现状
中国C++程序员100%都是自学的。因为中国几乎没有象样的C++培训机构。大家都知道社会培训是赚钱为主要目的。能在那里成才是个大运气。也不象JAVA有SUN公司一手推行。中国大学 教育 里也根本没有C++教学。关于C/C++基础课的知识,只是让学生入门。但对于实际的C++软件工程应用,大学课本知识实践意义不大。最重要的是,大学里没有合格的C++老师。编程是门技术,叫手艺也行。而大学是搞科研的,多的是科学家,靠出PAPER教科凭职称为生。并不是技术员。没有10万行以上代码 经验 和成功软件项目经验的人,很难教出中高级C++程序员。
游戏制作业对C++程序员的要求是比较高的。比一般行业软件高很多。因为任何一个MMO都是个中大型软件项目。日使用人次达到几十万上百万,同时使用人数几十万在线的大型网络多人交互软件,集成了超过十几项专业领域编程技术的软件,想不大都不行。
另外,中高级C++程序员能力一般都很强。因为都是自学成才,这需要较高智商,很强的自学能力,解决问题能力,和克服困难的毅力。但是这种人才在游戏行业里人数并不多。抛开凤毛麟角具备整体大型软件架构能力的高级人才不谈。能够承担独立模块开发,具备独立解决问题的能力,写出在空间,性能,可维护性等几个方面达到要求的C++程序员,也是很难找到的。而具备这些能力,同时又具备一些专业领域技术的人(图形引擎,网络引擎,等),更加稀少。
所以,即便是大游戏公司,对于C++游戏程序员的需求,也是永远不能够得到满足。而已经在公司工作的C++程序员,不经过短则3个月,长达1年的锻炼,也无法真正胜任独当一面的C++游戏程序开发工作。
二、MMO游戏开发对C++游戏程序员要求
前面提到,所有MMO游戏都是中大型软件。软件占用空间,稳定性,性能,可维护性等各项衡量软件质量的指标,对MMO游戏软件的要求都非常严格。远大于普通行业软件。这种规模和银行系统类似。而客户端和软件逻辑比一般的商业软件又要复杂很多倍。这就要求软件编写人员具备较高的程序编写素质。
游戏软件中,解决好软件工程部分,只是项目的1/3。另外两部分是策划和美术/音频。从经验来看,需求变更对于MMO游戏软件,不是偶然事件,而是一种MMO游戏软件开发的基本属性。游戏软件投入大,周期长,风险高。MMO市场变化也大,交互电子游戏发展迅速。游戏软件必须面对外界变动。又因为开发周期长,所以软件需求变动成为了软件开发的一种基本属性。犹如复杂性是软件工程的一项基本属性一样。
这导致游戏软件的开发充满了不确定性。交互娱乐不同于商业应用。娱乐是属于理性和感性之间的领域。而C++开发面对就是0和1的二元世界逻辑。这两个领域存在着不可调和的矛盾。这种情况,对C++游戏程序员提出了更高的要求。
首先,基本C++知识,C/C++运用技能,必须极其扎实。并不是游戏软件开发用到什么平时书本上很难得到的知识点或者技能点。游戏C++开发的知识体系和技能体系,利用现有C++书籍就可以满足。比如《C++ PAORGRAMMING LANGUAGE》《C++ PRIMER》《EFFECT C++》《MORE EFFECT C++》等。但是在开始游戏编程之前,把这些书本吃透并且实践熟练的人,非常难遇到。当然能够真做到这点的人,已经是个中高级C++程序员了。我曾经遇到过一个, 毕业 工作不久就去了GOOGLE
其次,对于面向对象的深入理解。是非常重要的。熟练掌握C/C++语法,编程技巧,只是满足了C++游戏程序员一部分要求。而面向对象观念的深刻理解,会为大型C++项目开发带来翻天覆地的变化。 有时候,在一个10人以上并行开发的C++游戏项目中,面向对象 方法 会成为救命稻草。《设计模式》以及《设计模式解析》相关的书籍,也是必修课。
最后,好技术人员的本质是自大的。这属于正常。但是如果这种习性影响了自身继续提高和团队合作。以及影响了其成为技术管理者和项目技术核心时,那么这种技术人员的自身价值会大打折扣。 如果早日越过自命不凡这一关,扩大眼界,继续在综合素质上提高。在技术管理能力,架构能力上提高,其自身价值才会继续增长。落到实处,就是待遇和身家增长。
由于游戏开发的本质是团队开发。任何时候,只有对一个团队有价值的技术人员,其本身的价值才有可能得以体现。
三、成长和技术发展路线
一般技术人员发展有几个阶段
1 、具备独立开发局部功能的能力
比如为某个UI编写逻辑接口函数。为某个LOGIN对话框编写自绘制控件等。
2 、具备独立开发和攻关某个功能模块的能力
比如为游戏增加一个小型逻辑功能模块。
3 、具备独立设计并开发某个系统的能力
比如设计和开发AUTOPATCH 系统
4 、具备解决技术难题,设计架构的能力
比如开发网络同步仿真系统,开发一个中大型游戏制作工具
5 、具备整体架构,管理,协调其他人共同开发一个大系统的能力
客户端主程,服务器主程,引擎主程等
6 、技术director
制定技术发展方向,技术团队建立,技术管理等
在迈向每个阶段的过程中,伴随的都是巨大的工作量和工程压力。有时候是跨越1年的失败等等。在公司项目不成功时转换单位,重新开始,或者继续做为核心团队留在公司继续从新的机会做起,都是好的办法。但关键是吸取经验教训,尽量多学多练。并且结合自身长处发展。当然,游戏制作人员,最好还是依靠一个核心团队。成为核心团队的一员。
能够达到第三档的程序,已经是公司不可缺少的人才了。但往往程序员自身对自己的认识,和公司对其的认识,有时候会有差异。我碰到过一些人,脑子好用,写东西很快。各种技术都有涉猎。但总是不放心让他独立开发设计某个系统。哪怕是相对独立的工具。也会被搞得一塌糊涂。要后面人不停擦屁股。可自己还觉着自己水平很高。这种人浮躁,眼高手低,不愿意细致周全的做好一件完整的事。所以就可以看到他不停的跳来跳去,可在新公司的职位也没有见多么提高。公司非常重视交给一个程序员一件事,他是否能完整,考虑周全的把事情做完。哪怕时间长一点,也不能不做完。这会给工程带来致命的后果。
四、发展待遇
从自身经验出发谈一下公司是怎么考虑技术员工待遇的。
前面提到的6档,粗略了划分了待遇水平。其实到了第三档,你的待遇已经是这个行业所决定的了。而不是某个公司决定的。因为游戏业大量缺乏这样的C++程序员。如果具备这个水平,在几个大城市游戏公司找到工作并不难。大公司提升慢,还有我这种不到百人规模的公司要。所以行业价格才是公司要考虑的。如果给少了,软件项目的C++程序员流失会带来较大影响。但给的多,其实是 C++程序员自己的价值增长瓶颈。如果几年下来一直以为自己水平就该拿这么高,结果到了一家整体技术水平比较高的企业,就会彻底傻眼。这个时候再放低心态去重新开始,对技术员来讲就是件很艰难的事了。
在目前游戏行业技术水平普遍较低的情况下,哄抬程序员工资水平对程序员自身好处也不会很大。就算一个新手本来拿几千的水平,给他1万。他根本就不会知道自己到底有多少水。一年下来也就多拿了3-4万人民币。可耽误的是学习,影响了心态。而那些心态好,知道努力方向的技术人员,干个3-5年后如果有拿期权和股权的机会,比那些一开始虚高的人,身家就不知道高多少倍了。
c++程序员如何创业案例:Visual C++程序员 职业规划
有很多的程序员刚毕业时充满活力,经过几年的工作之后,激情就会慢慢消失,现在软件行业环境变化很快,一旦无法跟上行业发展的步伐,工作上就更难有所进境了。对于应届生,以前只要考得一个资格认证,会受到很多企业的青睐,现在证书满天飞,企业更加注重求职者的能力。应届生的第一份工作也是越来越难把握。很多人在求职的过程中开始转行。对于读者你,是否有职业的危机感呢?
对于应届生或者经验不多的程序员,或许有很完备的理论知识,但是公司衡量员工的标准是效益,谁能创造效益,就会收到重视。应届生往往很难找到一份满意的工作。第一份工作是职业生涯的开始,是需要慎重的,然而,究竟用怎样的标准选择工作呢?由于实践经验的缺乏,应届生不必关注第一份工作的薪水,时常听到一些人为找不到工作而发愁,他们已经接收到了几个公司的录取通知,但是因为薪水的原因,选择了放弃。其实没有必要攀比第一份工作的薪水,这在刚刚走出校园的大学生中是很常见的,然而必须明白,我们的工作经历可能要持续到60岁左右,是一场 马拉松 长跑 。起跑最快的未必是最后的胜者。刚踏足社会,在500强公司一个月大概能拿到4000左右的工资,有些特别才能的人会拿到8000左右,而5年以后,工资水平也就5000到10000了,增幅也是有限的。后面的年轻人追赶的压力却愈来愈大。所以第一份工作找一个符合自己专业的或者能力的公司去,你的开端会低点,但是你会有很持久的耐力。
在工作了一段时间后,有时会发觉自己的工作和想象相去甚远,甚至会觉得自己入错了行业。为自己的待遇没想象的好感到委屈。这时候需要冷静的思考一下自己的处境,看是否是因为自己过于理想化的结果。如果是,就有必要对当前行业的现状进行深入的了解,搞明白当前的行业发展在向什么方向前进,由于环境的突变,这点有时很难做到,但是适当的理性分析是很必要的。如果一味的埋怨下去,工作没有做好,还耽误了自己的职业发展。如果原因出在自己身上,比如说个人习惯等问题,就要看能不能改正一下自己的习惯,慢慢的适应当前的环境。
程序员在一个发展良好的工作上做久了,就会积累丰富的技术经验,再往后发展的途径有很多。到底该如何选择?要结合自己的兴趣和当前的技术水平。在做了几年的技术之后,对于程序员来说,可有几种基本的职业规划:技术专家、软件架构师、高级顾问销售或自主创业。程序员毕竟是偏重技术的职业,主要的发展方向会是资深技术专家。无论是那种领域,都要努力让自己成为专家,然后在发展为架构师。有些人当架构师工作一生,有很好的待遇,然而这种工作很有限,而且,在中国,架构师的需求量比较少。
我们想要达到的目标,往往就在起初确定了,而且注定了我们职业的目标不是一蹴而就的,相对于我们所能工作的年限来说,职业生涯可能要终其一生。然而我们在不同的职业阶段有阶段性的目标,应届生希望在工作上积累经验,经验达到了自己当初的所想,我们就离自己的最终目标近了一步。职业规划并不是一成不变的,会有很多的机遇和经历改变你的思想。但是不论你会有怎么的规划,都要把社会条件考虑进去。我们进入一个阶段,思想认识更加深刻,眼界更加开阔。有时会对自己未来的职业进行更加深入的思考。这时候是需要慎重的。我们都需要过一个阶段点评一下自己。看自己是否在进步,下一步又该如何做。我们发现现在的环境不能满足自己的发展要求,就要考虑换个合适的环境,或者考虑从自己的目标是不是过于理想化,适当的贴近现
实考虑一下。不论会作出怎样的决定,都要保证你在向进步的方向前进。不要因为一时的放松而断送了即将到来的目标。
工作是一件需要理智的事情,不要因为自己懂的多而在工作上耍个性,现在公司注重员工的团队意识,大型软件的开发过程,需要一队人的共同参与,自己耍个性并不能帮助提升你的工资,也可能阻碍你的职业发展。所以工作中要谦虚学习,努力的学习新技术,从别人身上学习优点,会帮助你发展的更好。
每个人依照自己的兴趣会有不同的职业规划,不要偏求自己的目标多么伟大。也不要轻视任何一个努力工作的人。职业规划不是一成不变的,很多人在不同的人生经历后会改变自己发展方向。但是有一条,不要希望奇迹的出现,勤勤恳恳工作是成功的基本法则。
追求目标的实现更多的是为了享受成功带来的欢乐,不要因为一时的攀比搞乱了自己的职业发展。如果你做好了自己的职业规划,那么,不要等待明天,从现在开始,行动起来吧!
c++程序员如何创业案例:
1.什么是创业
关于“创业”二字有必要重新学习一下,找了两个相对权威定义:
创业就是创业者对自己拥有的资源或通过努力能够拥有的资源进行优化整合,从而创造出更大经济或社会价值的过程。——网络 网络
创业是一种思考、推理和行为方式,它为机会所驱动,需要在方法上全盘考虑并拥有和谐的领导能力。创业必须要贡献出时间、付出努力,承担相应的财务的、精神的和社会的风险,并获得金钱的回报、个人的满足和独立自主。——互动网络
两者都给出了明确的创业定义,这里想着重想强调一下创业的目的:物质目的和精神目的,现代社会唯金主义人群不乏少数,提到创业自然而然想到“赚钱”,其实创业的目的不仅是“收入大于成本”,还有精神丰收。按照网络+互动网络的说法,最终极的创业应该是个人物质精神、社会物质精神四丰收。
当然,不是人人创业都追求“四丰收”,完全可以只追求个人金钱丰收,或是追求其中的任何一项或几项,但要注意——千万不要损害未选的,比如为个人赚钱损害社会或他人利益。
2.怎么才算创业成功?
创业的成功(这里定义为达到创业初级制定目标)一定是依赖于合理的目标+个人的努力+合适的方法+良好的运气+主动把握机遇,各个条件没有顺序也没有主次,但这五点缺一不可,相互有机结合才有可能成功。
成功的创业往往在最初一两年甚至五年或更长时间收入会低于预想,亏本很正常,只要目标坚定,不断改善,因为独立自主,上升空间会很大。
当然每个人的想法、定位都不一样。你想创业,那你想创个什么规模的事业?什么才算得上事业有所成?
如果你认为腾讯、阿里巴巴这样的才算“业”,那么我建议你最好别轻易去“创业”,即使你比马云、马化腾等人更聪明,也未必能成就这样的业,因为机遇不同。
如果你只是想比一般打工的更强一些、更自由一些,收入比打工要高一些,能养家糊口同时还有点闲钱,那你随时都可以去创业!
3.创业的方法、步骤都有哪些?
每个人都有适合自己的路子,不能说通用,只能算是一点个人心得吧。
(1).必须建立一个网站,这是你在网络上的“门面”,可以展示你的作品,也可以让别人通过这个网站找到你。
无论是否程序员创业,都应该有个网站。网站的传统主要目的是为了宣传,现代网站还可能有互动、管理、实验等多种功能。需要注意的是,无论哪种功能,当没有积累到一定程度,即不知道网站上放什么内容的时候,不要建网站,更不要抄袭别人的内容,切忌打肿脸充胖子,金玉其外败絮其中。和字如其人一样,网站也反映企业的 文化 底蕴;
(2).早期,猪八戒之类威客,作为你早期练手和积累人气还是可以的;
(3).真没客户找的话,可以开个淘宝店,接软件定制(我认识有几个网友都是这样干,并且干得还不错);
(4).也可以主动出击,去一些外包网站寻找客户,比如GAF、Elance、GetACoder、ScriptLance等站上有很多外包的信息,大家可以自己上去看看;
(5).最好的方式还是自己定位一个产品,用心把这个产品做好,然后努力去推广,推广好了的话,以后卖注册码、卖授权就够了。
4.产品该如何定位,什么样的软件才能写?
这个问题,有很多网友都问过我,他们总在担心,现在几乎各种软件都有现成的了,都被占领了市场,这时候自己该写什么软件呢?
我觉得,首先该问问自己,你的软件、产品,需要达到什么样的程度、占有多少市场才行?要超越那些成熟的软件吗?那是很难的,不仅仅是技术层面,还有用户的积累这都是很难超越的。
这些成熟的产品,都是通用的,适合大多数用户,但总是有部分用户的需求是不同的。那么你的产品,未必要超越谁,只要能满足这些不同需求的用户、能做出一些特色功能,那你就能占有一定市场、拥有一定用户。
5.创业应该注意的一些事情
注意积累、项目的成功和失败都要积累,每个项目都要 总结 ,为下一个更大项目更省时省力地完成做准备。
无论是守株待兔或主动出击,首先不应接违法、违背道德的单子,其次无论单子大小,都应该当做一个正规项目完成,即(按具体情况)需求分析、签订合同、设计、编码、测试、写文档等步骤逐一完成。比如完整项目一共有十五个步骤(有国标),小单子可以选关键五个步骤,大一点的单子相应增加。若不会,可以自学软件工程师、IT项目管理的相关课程。
这里想着重强调一下“烂笔头”的重要性。虽然设计、编码、测试、文档等都可以用计算机完成,但是往往不及白纸黑字的效率。因为其一:计算机屏幕容纳的信息量不及纸张,即屏幕大小往往会限制你的思路。其二:大脑思考的速度快于手写速度,而手写速度要快于敲键盘、点鼠标的速度,也就是说,手写更能跟上思考速度。
想要做大做强,不可能一直单干。这时就需要组团了,就需要学习新知识,变为新身份、进入新领域。而主动出击一般需要一个团队。
所谓创业难守业更难,何来守业——创新。好的产品、代表作,或是好的服务固然需要,但是如何保持?这时要不断创新,或者说是一如既往的创新,围绕主要产品不断改进,不断与时俱进,不断挖掘潜能,不断比竞争对手稍好一点。
起初仅是学技术的阶段,无需注重写什么软件,哪怕是一无所用的工具,或是已被写烂的“通讯录”、“记事本”、“快捷启动”,都可以,着重积累。附带一句,无论学什么语言也无所谓。
多使用其他成品软件,善于发现优缺点,归类整理,着重对其他软件的缺点思考,并结合实际用户的需求,用户的不方便就是商机。
6.经典案例
(1).外贸公司边打工边创业
一位在外贸公司打工的网友,因为自己工作上经常要做一些重复的工作,就自己编写了一个工具软件,自动完成这些工作,提高工作效率。一开始在同事之间使用,经过同事们提意见之后逐步完善、增加功能,成为了一款功能比较完善、操作比较方便的软件。然后他想,既然自己公司工作上用得上,其他同类公司应该也有需求吧?就开始在附近的同类公司里推广、销售这款软件,慢慢的积累了一定的客户,这名网友就辞职了,专门销售软件,收入颇丰。
(2).小网管成立软件公司
一位在网吧工作的网管,平常工作比较轻松,很多时间自己操作电脑、学习编程,偶尔到网络上接点小软件定制,赚点外快。越做自己技术越好、客户也积累越多,最后辞职,自己在家接软件定制,后来自己做不过来就成立公司,专做外包。
(3).发现真空市场的创业历程
某网友,一直都想创业,但苦于没找到适合的项目,无从开始。一次偶然的机会,在一个IT交流群里,另一个网友发给他一个软件(单机版),问是否可以做,当然可以做,一个简单的单机版办公软件嘛,这有何难?但是这个网友并不想长期做外包,于是去调查使用这个软件的行业,发现这一行业居然还处于信息化真空状态。世面上基本上没有一套该行业的管理系统。
之后去 拜访 网络上的那位朋友,联系系统的需求方,是政府部门里的人。开始调研这套系统的需求,发现需要做的不仅仅是一个单机版,是一套基于广域网的协同办公系统。开始谈价格,价格分为研发费用,安装费用,以及维护费用。仔细评估下来,客户给的研发费用实在是太少。价格陷入僵局,为了能拿下这套系统,为了占据这个行业,这名网友决定自己垫资进去,开发出这套系统。
不管怎样,开始着手做吧,不为别的,只为梦想!开始组建团队,租场地,买设备。一个月后,经过大家的努力,终于把Demo开发出来了,开始与客户一起到各政府部门、各个企业去演示。效果还挺不错,客户反馈说,很多企业需要安装。
这就表明,最初垫资进去开发是正确的,安装的企业一多,自然就开始盈利了。创业的第一步算是成功了。