⑴ 计算机程序设计员应注意什么
虽然我没有学过计算机程序设计,但是我以我目前所知道的注意事项来跟你说几点吧。
程序运行的时候必须要保证运行期间的稳定性
C++代码不能出错
使用顺序、选择、循环等有限的基本结构表示程序逻辑。
选用的控制结构只准许有一个入口和一个出口
程序语句组成容易识别的块,每块只有一个入口和一个出口。
复杂结构应该用基本控制结构进行组合或嵌套来实现。
程序设计语言中没有的控制结构,可用一段等价的程序段模拟,但要求改程序段在整个系统中应前后一致。
严格控制GOTO语句。
1.2为我目前所知道的观点,3-8为网络内容,仅供参考
⑵ 程序员要具备什么技能
一名合格的程序员需要掌握哪些技能呢?
熟练掌握开发工具
做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVA One很可能会成为未来的主流开发工具之一。其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C Builder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
熟知数据库
为什么数据库是如此重要?作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL, Postgres等。
对操作系统有一定的了解
当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。只有对操作系统有一定的了解后,你会发现自己上了一个新的台阶。
懂得网络协议TCP/IP
在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEB Services,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,所以,深入掌握TCP/IP协议是非常必要的。至少,你需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。
明白DCOM/CORBA/XML/WEB Services存在的意义
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。程序员需要做的不仅仅是利用商业的开发平台来开发软件,而是要理解这些技术的初衷,即为什么需要这项技术,如果你能理解了这一点,再回头看这些技术的具体实现,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布计算的基石之一。
不要将软件工程与CMM分开
现代大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。一句话可以概括我的看法:“创意无限,流程保证”。
拥有强烈的好奇心
什么才是一个程序员的终极武器呢,那就是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了,它是程序员们永攀高峰的源泉和动力所在。
⑶ 作为一个程序员,参加一个项目,会接触到哪些流程
首先看你去的什么公司,如果去大公司,有一套规范的话。那么你只需要,找项目经理或者产品经理要需求文档,找架构币要表结构,找同事问问实现好的utils,然后开发充毕进行单元测试,与前端工程师联调,之后就可以提交测试了,如果去了一家小公司,那么上面的所有工作都有你来做。
⑷ 北大青鸟分享程序员面试有什么注意事项
面试是每个普通程序员面前的一座大山,给了大家无尽的苦恼和困惑。程序员面试很难吗?难!正常的,要经过两轮技术面试以及一轮经理面试,也有不少顶尖公司甚至需要三到五轮的技术面试。
几轮面试下来,能熬到最后,这绝对是真正意义上的“过五关斩六将”了。很多优秀的程序员业务能力很过硬,但都因为在面试的时候发挥失常,从而屡屡与大厂失之交臂。所以,每一个面试成功者,都算是勇士。要给自己点个赞!
那么面试时,我们究竟需要注意什么呢?今天,北大青鸟http://www.kmbdqn.com/就教给大家几个面试成功的技巧。
1、首先,要确保你理解了面试官的问题。
许多问题都是故意措辞模糊或者模棱两可,这个时候你可以请面试官把问题说清楚,从而确保你真正回答面试官的问题。你的提问同时还有一个好处,就是它能给你自己一些时间,让你的脑子转起来。
2、用一到两个例子来确定问题的限制条件和要求(在现场面试时在白板上完成这个过程,在电话面试时在笔记本上完成)。
尝试用中等规模的例子,以便覆盖到一些特殊情况。如果你能想到可能相关的表格,就把它画出来。事实上,把你想到的任何东西都写下来是会有帮助的,因为它能为你提供一个视觉锚点,从而让你在走不通时或者思考过程中随时返回某一个点。
3、把话说清楚,这可能是最重要的一步。
要试着让面试尽可能有更多的互动,面试官不知道你在想什么,而让他们参与到你的思考过程里,会让她给你一些有用的提示,防止你偏向错误的方向。你的目标就是要先和面试官确证你的答案,然后再去写代码,而且你考虑答案越清晰、越高效,你得到的即时反馈也就越好。
4、通过应用以下技巧来找到答案
回想一下你遇到的类似问题,再想想它们是如何被解决的,尝试各种不同的算法(分治算法、贪心算法、递归、排序,等等),把问题分解成更小的、可处理的小问题(这样你就能得到相应部分的分数),最后再通览一遍你列出的数据结构,因为有时候,只要想到了正确的数据结构,就能给出正确的答案。
5、当你向面试官问清楚了问题、并向她解释了你的答案之后,就可以开始写代码了。
在共享文档里写代码的时候,你可以复制粘贴、写评论,而且能回过头来完成骨架算法和功能。但在白板上写代码就不一样了,它需要你的头脑很清醒,而且需要你具备管理白板空间的技能。
⑸ 程序员接私活完整攻略
接私活 对程序员这个圈子来说是一个既公开又隐私的话题,不说全部,应该大多数程序员都有过想要接私活的想法,当然,也有部分得道成仙的不主张接私活。但是很少有人在公开场合讨论私活的问题,似乎都在避嫌。就跟有人下班后跑滴滴一样,程序员私有时间接点活挣点钱不也很正常么,不过不要在上班时间就行,就跟你上班期间出去跑滴滴一样。
当你竭尽全力想要去接私活的时候一定做过这样的事,网络搜索“程序员如何接私活”或者“程序员到哪接外包”之类的问题,那么相信你也一定看到过让你不要接私活的帖子,观点大概就是:
把有限的时间花在提升自己的能力上,技术深度,技术广度,或者多阅读书籍,丰富自己,这样有可能比做外包收益大。
这里就不跟大家讨论该不该接的问题了,很明显,我接了。首先跟大家分享几个项目案例。
案例1
大概是13年14年左右的样子,谈到一个项目,做一个APP连接甩脂机,通过蓝牙模块传输数据,便于手机上观察,大概这样。依稀记得跟甲方项目经理沟通需求时,他拿了一个 Android 2.x 系统的手机给我演示了QQ的一些功能,我一本正经的跟他说,“你放心,这个肯定做不了”,他当时就懵了...因为我并不想兼容2.x版本的系统。后来进入签合同阶段,这家公司不大,事儿倒是不少,又是身份证复印件,又是按指纹。这个项目是我外包生涯中的一次滑铁卢,为什么呢,因为我竟然同意了不用付定金,等项目开发中期再支付第一笔费用。带着一个他们提供的蓝牙硬件模块,回去了。后端开始编写API,Android iOS 开始研究蓝牙数据传输,噼里啪啦直接把项目做完了。测试包发过去了,结果大家能想到,不给钱!
我至今都记得这家公司的名字,不知道倒闭了没有,我们整个团队一分钱没得到,项目以失败告终。
案例2
一个汽车后市场项目。当时市场上有一款APP,养车点点,后来已经改名,叫典典养车,我们当时要做的就是抄袭它,功能类似,整个项目差不多十几万。甲方是做汽车零配件的,在上海有很多家店,每次交流的地址在一家咖啡馆。两个多月后,项目上线,经营一段时间后,甲方意欲挖我们过去,毕竟项目是我们做的,他想把原班人马招过去,婉拒。
案例3
一个海外社交项目。这个项目比较小,只做 Android 一个端,原因是甲方招聘的 Android 人员离职了,时间紧急,就让我接了。比较顺利,对方提供视觉稿、API,我开发 Android 即可,项目也没啥难度,我闲着无聊,特地给他们做了一些交互动画,甲方验收的时候非常高兴,直言比他们自己员工做得都好。
还有很多其它项目就不一一介绍了,小到做一个控件,几百块,千把块,大到几十万的项目,从整理需求到设计到开发。当然,也不是什么项目都接,举个例子,以APP为例,在甲方提供API和视觉稿的前提下,一个端低于2万的项目从来不接。
做私活挣钱吗?不挣钱是脑子进水了吗。尤其对于刚入场的选手,外包收入可以说抵你一年的工资都可以。不仅挣钱,还特别积累经验,外包项目五花八门,搞地图的,搞语音的,搞视频的,搞蓝牙的,能帮助初级选手快速成长。
做私活累吗?相当累。白天黑夜,从无周末。项目一旦接下来,从此进入心事重重的生活,不到最后交付那一刻,不会停缓。周末是最佳的工作时间,平时下班晚的话还做不了,所以几乎没有休息时间。
重点来了,到哪里接呢?
初级选手自己乱七八糟找项目,高级选手项目找上门。做私活一定要找到最佳状态,不然就是受罪。什么是最佳状态,就是当项目找上门时, 想做就做,不想做又想赚就转。 那么到底有哪些方法可以接到私活呢?不管黑猫白猫,抓到老鼠就是好猫,有哪些方法我一一说来。
方法1
各个众包平台。这是入门级的手段,也是最容易做的方法。有哪些众包平台就不用我一一细说了吧,猪八戒,威客网,CSDN 也有外包频道,一些技术论坛,海外的 Freelance 网站等等,每个都注册一遍,前期比较麻烦,各种资料需要填写,团队介绍,历史案例。注册之后理论上就可以投标项目了,不过如果需要认证的话,还需要继续花钱,很多项目只有花钱之后才有机会投标,这个就自己评估吧,我没花钱。通常没啥好项目,钱哪有那么容易赚,都是些边边角角稀奇古怪的项目。当然,即便是被别人挑剩下来的项目,也不排除有好项目,你要一一去沟通才知道。
方法2
主动联系各个外包公司,成为他们的备选开发人员。外包公司接单子的手段肯定比我们个人高明多了,他们就靠这个吃饭的,当他们出现人员紧缺、项目过剩、员工离职等情况时,不排除他们会考虑找临时替补人员,甚至把项目整包转出去。如果你身边有朋友开外包公司的,那很好,先天优势,长期互助。但是大部分人也许并没有这样的资源,那么这就是个体力活了,在方法1的基础上,部分平台会留下甲方的联系方式,比如猪八戒,你直接搜索软件外包服务商,他们的介绍页面上通常会有他们的手机号码和邮箱等信息,或者当你点击“在线咨询”“与我联系”等类似按钮的时候,他们的自动回复也会出现一些QQ号、手机号、邮箱等联系信息。
这边我只是以其中一个平台为例,只要你用心,各个平台你都能扒到一些有用的信息。拿到这些信息之后你就可以把你编辑好的话术发给他们,也可以直接加他们微信,通常手机号码就是微信,不要怂,直接跟他们联系,打电话、发邮件、发QQ,发微信,把你想要做外包的意图告诉他们即可,然后就静静的躺在他们的朋友圈里,或者被遗忘,一两个月问一次好打个招呼,不要太频繁,这也算是人际关系的维护,看你本领了,多认识点人没坏处,剩下的就是平淡的等待了,如果他们会联系你的话。
方法3
跟身边的开发人员灰度交流。你没有项目,不代表别人都没有,如果别人愿意带着你的话,这也算是一个渠道。什么是灰度交流,就是半含蓄状态,文章开始我说了,程序员接私活是一个既公开又隐私的话题,不过这个度大家自己把握好,搞不好丢饭碗,把握不好的还是放弃这个方法吧。
方法4
人脉资源。除了从网络上接项目,或者吃外包公司的残羹冷炙,还有另外一个类别的项目,那就是创业者。在这个互联网、移动互联网、物联网盛行的时代,创业者也是一波接着一波,虽然热度有高有低,但是从不缺。组建一个公司,组建一个技术团队需要一笔不菲的费用,尤其软件开发人员的工资,将成为一个创业公司的沉重负担。种子投资,或者天使轮投资能有多少,对大多数创业项目来说,几十万,一百万,两百万,或者五百万,基本顶天了,这些钱能维持一个团队多久,何况还有很多创业者并没有拿到融资,他们等着先开发一个上线项目,再拿项目去找投资。如果你能接到这样的项目,那也是很爽的,不过通常这类项目靠熟人介绍,但是你千万要注意,一定要营造良好的口碑。有条件的话,也可以做套名片,几十块钱,够发好久的。
做私活没有稳定的渠道,你可能一直找不到项目,也可能一年一个项目,重点是心态,不然你将陷入困扰的情绪当中。有更好,没有拉倒,找到最舒服的状态。
当项目来临时,该如何报价?
价值都是相对的,一定要有自己的心理预期,有些人觉得五千很值,有些人觉得一万很值。不要饥不择食,不管多廉价都接;也不要人心不足,吃着碗里看着锅里,或者觊觎别人的高价。跟对方交谈时,一定要快速判断彼此是否是目标客户,不要啰嗦太多,你的心理预期是几万,对方的心理预算是几千,这样的项目还谈个啥,务必在最短的时间内确定大家是否可以继续谈下去,否则浪费不必要的时间。如果大家心理预期差不多,对方不是那种想三千块钱做个淘宝的,则继续往下进行。有的甲方要求不多,很爽快,这样最好,有的甲方需要出报价单,那么就详细沟通需求,整理报价,整理报价是一个费时的过程,不要嫌麻烦,我们不是服务商,我们是抢食的个体,一定要不怕付出,哪怕一无所获。
甲方有可能只是来询价,也可能等你出完报价单再回去比价,还是那句话,不要怕吃亏。如果甲方是个体的话,通常很好弄,但是甲方是商家的话就麻烦一点,一定要问清楚是否要开票,开票是要税的,不过羊毛出在羊身上,告诉他我们的报价是不含税的,如果要开票的话要加上税钱,20万的话,差不多几千块钱,看对方要求开什么类型的票。开票的话可以自己去税务局开,不过我没去过,如果自己认识几个开公司的朋友的话那是最好,让他们帮忙开张票,把税钱贴给他们。
如果你觉的开票你对来说很难实施的话,那么有三个方案,一是放弃,这样的单子直接不要接了,继续寻找下一个单子;二是先接下来再转包,转给其它的外包公司做,不过你要估摸好有公司接,有朋友做外包公司那是最好的,相互帮忙,但是这种方案并不推荐,原因是不好把控项目进度和质量,还担风险;三是把项目介绍给认识的公司去谈,谈好了你拿提成,这样你既不担风险,还赚点快钱。
付款方式该如何确定呢?
切记,必须付定金,越多越好。通常我的付款方式是442,即预付40%的定金,项目提测再付40%,项目上线付清余款20%,这套方式针对个人比较好用,针对公司不好用,公司通常会留一笔费用在上线后一个月两个月三个月再付清,所以付款方式可以改成5311,即预付50%的定金,提测30%,上线10%,上线运营一个月后10%,坚持一个原则,前期付的钱越多越好。
接下来就是签合同了
一般只有个人才可能不要求签合同,大多数情况还是要签合同的。合同尽量你来拟定,不会写的话上网抄,一定要保护好自己的权益,重点是防止被对方坑。比如在合同中一定要写好适配哪些系统哪些浏览器,基于哪个版本开发等等,做得到的就写,做不到的别乱写,合同这东西,在心情好的时候怎么写都无所谓,心情不好的时候大家只能拿合同说话,你可别赔个十万二十万的,吓死你。
整个接私活的过程差不多就是这样了,最后,我再强调几点 注意事项 :
end
⑹ hr面试程序员问什么问题,程序员在面试的时候的注意事项
01 和优秀开发者沟通
如果你本身没有编程背景,那就尽量找到一些优秀的开发人员给你指点迷津。
02 问专业的问题
1. 简要介绍一下你自己以及你最近在做的项目吗?
作用:这个问题可以让你更好地了解你的候选人,而谈论近期工作能了解他对工作的热情和奉献。
2. 其他时间有别的项目要做吗
作用:鉴于你的项目的时间长短和工作复杂程度,你可能只想找一个能完全投入到这个项目的人。但是很多程序员都会同时兼顾好几个项目,你要确保彼此双方的需求是什么。
3. 你是怎么看待自己的身份的?开发?产品经理?还是二者都是?
作用:理想的回答一般是‘二者都是’, 但是你要认真评估每个候选人可能给你团队带来的有利和不利影响。产品经理可以帮助设计新的功能和交互,但是你也需要足够的开发才能跟上方向从而建构你想要的内容。
4. 你会如何管理一个程序员团队?
作用:这个问题可以帮你了解候选人的领导能力和风格。
5. 告诉他们公司想要的人是怎样的。
作用:直截了当地告诉对方你的期望。像工作时间,项目长短,目标等等,这些都是对方很想知道的。就像你评价他是否适合公司一样,对方也会评价你的公司是否适合他。
03 去合适的地方招聘
你不能指望天上会掉下个好程序员给你,微软和谷歌的优秀程序员也不会自己蹦到你跟前。你的机会在于,很多这样的程序员都拥有或追求商业想法。
你可以多去一些网站、活动大赛等地方探索发掘,这比你在社交网站上找到他们的运气要大得多。
· 编程大赛
编程大赛就是程序员高手们云集在一起,合作共同完成一个软件的开发。
猿圈会定期举办此类招聘编程大赛,帮助企业挑选优质人才,提高企业品牌雇主形象。
· 开放性源代码贡献者
一些网站比如GitHub,提供在线代码存储库, 程序员可以自由对开源项目贡献自己的代码。
所以,在招聘之前,你可以先去这种网站上找一找有潜力的候选人。
· 大学
· 软件开发大会
尽可能多的去参加一些和你的产品相关的软件开发大会。
· 技术博客
你能根据他们的博客判断他们的技术技能、解决问题的能力以及写作和沟通能力。
04 没通过编程测试,坚决不录用
你只能记住一条原则,那必须是,没有让候选人参加编程测试之前,千万不能决定录用与否。
通常情况下,出于项目的紧迫,我们会倾向于选择看起来靠谱的第一个程序员,但是不拿到他的编程测试结果,不要冲动地下offer。
我也是个不懂代码的HR,但是我善于利用各种各样的工具,前段时间发现了一个猿圈测评的工具,我用它测试程序员候选人,通过测试结果判断是否值得邀约来面试,这个我觉得很赞,你可以试试看