挂羊头卖犬肉 挂羊头卖犬肉
挂羊头卖狗肉的人
关注数: 104 粉丝数: 398 发帖数: 4,246 关注贴吧数: 63
专业程序员和业余程序员的区别 《转》 转自:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fblog.csdn.net%2Fbrook0344%2Farticle%2Fdetails%2F6006650&urlrefer=6ab325e6793b177ac04836cccd83351e 专业程序员的程序给别人使用,使用结果影响程序员的收入。 业余程序员的程序给自己使用,使用结果对程序员的收入无关。 专业程序员编程是职业生涯的中无数程序中的一个,是他不断提高自己的编程能力的过程,以应付更复杂或者陌生的问题。 业余程序员编程时为了娱乐或者解决一个小问题,或者为了向其他人炫耀,积累茶余饭后的谈资,或者为了学术论文或课程设计。 专业程序员在高强度的工作后,一般只讨论程序以外的事情,这是一种调节情绪和放松 业余程序员在业余时间编程后,喜欢与别人讨论这次编程的所有细节,以及各种联想,然后分享对整个业界的历史和未来的看法,这也是一种放松。 当专业程序员编写了一个只为自己使用的小工具程序时,这时他其实是一个业余程序员,可能没有明确的开发流程和文档,也可能不备份代码,甚至对指针不判断,允许输入参数错误时程序崩溃。 当业余程序员编写了一个要分享给其他人的程序时,这时他其实是个专业程序员,他要备份代码,不断收集用户反馈,修改BUG,避免程序在任何时候崩溃。 专业程序员很反感业余程序员与他们讨论技术,其实并不是担心无法与他们沟通,而是担心自己花了大量时间获得的知识,那些业余程序员看了几天书竟然也和自己知道得一样多。最担心的就是,专业和业余程序员之间无明显区别,如果自己和业余程序员懂得一样多,那自己可能仍然是一个业余程序员,或者自己能做的事情业余程序员也能做,这样就彻底否定了自己的职业价值。 业余程序员很喜欢和专业程序员讨论技术,最喜欢确认自己的知识和专业程序员的知识一样多,甚至自己的某项技术连专业程序员都不懂,这样就得出“专业程序员不过如此”,“我通过两周的培训就能具有和专业程序员一样的水平”之类的结论。公司中的非技术管理人员、战略决策人员、市场运作人员里很多这样的业余程序员,经常打断专业程序员的工作,然后验证自己是否知道得和他们一样多,或者更多。 程序员要明确自己编程时是属于那种状态,确定对程序应该投入的时间和精力。 更业余的程序员说“编程用什么软件?VC吗?难吗?以前人家说EXCEL也很难,至少要学一个月,但是我一天就学会了。VC估计比EXCEL要难,我打算用一个星期掌握它。到时候我就可以帮你的忙了”。程序员听这些后到究竟恼火什么呢?害怕他学会或者学不会吗?其实都不是。程序员最害怕这种言论在周围迅速传播,造成别人(占大多数)对“编程只不过是一周业余时间自学就能学会”的普遍音响。长期下去,公司必然对程序员重视程度降低,影响自己的收入和职业规划,到时候也只有辞职一条路可走了。所以公司的同事来请教编程问题,最好让他去网上问,因为全国学编程的远不只他一个,大部分问题网上已经有人回答过了,我们再说一遍实在太辛苦了。
求大神帮跑下这个循环解八皇后问题问什么只得到了32个解 #include <iostream> using namespace std; bool judge(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2); int main() { cout<<"hello world"<<endl; int count=0; //使用y1,y2,y3,y4,y5,y6,y7,y8来代表1-8行的元素列号 for(unsigned int y1=1;y1!=9;y1++) { for(unsigned int y2=1;y2!=9;y2++) { if( judge(1,y1,2,y2)) continue; for(unsigned int y3=1;y3 !=9;y3++) { if( judge(1,y1,3,y3)|| judge(2,y2,3,y3)) continue; for(unsigned int y4=1;y4 !=9;y4++) { if( judge(1,y1,4,y4)|| judge(2,y2,4,y4)|| judge(3,y3,4,y4)) continue; for(unsigned int y5=1;y5 !=9;y5++) { if( judge(1,y1,5,y5)|| judge(2,y2,5,y5)|| judge(3,y3,5,y5)|| judge(4,y4,5,y5)) continue; for(unsigned int y6=1;y6 !=9;y6++) { if( judge(1,y1,6,y6)|| judge(2,y2,6,y6)|| judge(3,y3,6,y6)|| judge(4,y4,6,y6)|| judge(5,y5,6,y6)) continue; for(unsigned int y7=1;y7 !=9;y7++) { if( judge(1,y1,7,y7)|| judge(2,y2,7,y7)|| judge(3,y3,7,y7)|| judge(4,y4,7,y7)|| judge(5,y5,7,y7)|| judge(6,y6,7,y7)) continue; for(unsigned int y8=1;y8 !=9;y8++) { if( judge(1,y1,8,y8)|| judge(2,y2,8,y8)|| judge(3,y3,8,y8)|| judge(4,y4,8,y8)|| judge(5,y5,8,y8)|| judge(6,y6,8,y8)|| judge(7,y7,8,y8)) continue; else { cout<<y1<<" "<<y2<<" "<<y3<<" "<<y4<<" "<<y5<<" "<<y6<<" "<<y7<<" "<<y8<<" "<<endl; count++; } } } } } } } } } cout<<"一共有"<<count<<"个解"<<endl; return 0; } bool judge(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2)//无冲突返回false,有冲突返回true { if(y1==y2) return true;//判断是否同列 if(y1-x1==y2-x2) return true;//判断是否在同一正对角线 if(y1-x1==x2-y2) return true;//判断是否在同一反对角线 return false;//上面条件都满足时,返回false; }
1 下一页