身为程序员写一百万行代码的感觉

原文链接:https://juejin.im/post/5b5fc4e2e51d4534b8584a0c

代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码。

作为程序开发者,让我写一万行的代码?!are you kidding me?(黑人问号脸)我估计写到20万的时候就会突然有个疑问—-“咦?我的头发呢?”

图0:身为程序员写一百万行代码的感觉

A同学:我写两千行代码功能都得琢磨个两三天,一百万行真的是好多啊,最多了五年写了也就 20-30万行代码左右,还是有任务在身的情况被逼着写的,让我写一百万行代码,恐怕这辈子得死在电脑前了…

图1:身为程序员写一百万行代码的感觉

B同学:我是觉得如果说你一个工作写了一百万行代码,那你在公司的地位应该算资深员工了。如果你一个项目写了一百万行,那你肯定是参与了一个比较大的项目了。如果你一个类写了一百万行,请问你用的是什么编辑器?如果你一个方法写了一百万行代码的话,请问你有没有被同事打死?

图2:身为程序员写一百万行代码的感觉

C同学:据说要从初学者成长为程序员,那个得需要10万行代码的积累才可以呢。不过话说回来这样说也很对,毕竟入门阶段嘛,确实需要多打代码才能积累经验。不过修炼一段时间之后再注重代码的量那就不对了这时候肯定是注重数学还有算法思维,按这样算的话,假如20万是修炼门槛真积累到了一百万行代码肯定代码质量越来越高了,估计是某个领域的小专家也说不定。至于真敲了一百万行低质量代码,听哥一句话,还是转行吧。程序员不适合你这种锲而不舍的精神。

图2:身为程序员写一百万行代码的感觉

D同学:切,一群渣渣。给你们看看一张网图就知道我连续熬夜写几千行代码是什么状态了。我感觉我快要窒息了,如果时间可以倒流,我希望我不做程序员!!!

图3:身为程序员写一百万行代码的感觉

E 同学:这简直就是一个送命题啊,哪有什么人能打一百万的代码,从业五六年的程序员,如果按正常工作量的话一天也就一百多行,这五六年估计也就五六万行吧。如果是外包公司代码量估计翻倍了,那就按五十万行来算。但是谁会那么拼命去奋斗在一线一天一千行的去工作啊。写五六十万行肯定都转行创业了,还继续下去不猝死估计也脱一层皮了。

最后

代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码。

所以,长征路还长,大家还是好好地做个务实的程序员吧。

来源代码湾 原文地址 : http://codebay.cn/post/1443.html

阅读更多

近3年BAT面试真题整理合集

一招教你读懂JVM和Dalvik之间的区别

金9银10的面试黄金季节,分享几个重要的面试题

kotlin学习笔记-异常好玩的list集合总结

相信自己,没有做不到的,只有想不到的

在这里获得的不仅仅是技术!

展开阅读全文

输出杨辉三角的前一百万,假设屏幕足够宽。

04-06

一直以为,杨辉三角只是一个很小儿科的问题……直到那一天,我遇见了它……[code=C/C++] 输出杨辉三角的前一百万行,假设屏幕足够宽。[/code]rnrnrnrn第一次初识它时,只觉得天空很蓝,云淡风清。后来叫了GCC和VC过来和它认识了一下以后,狂风大作,昏天黑地。rnrn在我所了解到的知识中,杨辉三角的输出算法比较简单的有两种,一种是需要申请数组的,用前一行的值计算出下一行的值;另一种是不需要申请数组的,直接根据行号来得出每一个数。输出10行的简单demo分别如下:rn[code=C/C++]rn //需要申请数组的rn int a[10] = 0;rnrn a[0] = 1;rn a[1] = 1;rn cout << “1″ << endl;rn cout << “1 1″ << endl;rnrn for(int i = 2; i < 10; i++)rn rn for(int j = i; j > 0; j–)rn rn a[j] = a[j] + a[j-1];rn cout << a[j] << ” “;rn rn cout << “1″ << endl;rn rn[/code]rn这是第一种,需要申请一个行号那么大的数组。rn[code=C/C++] rn //不需要申请数组的rn for(int i = 1; i <= 10; i++)rn rn int n = 1;rn cout << n << ” “;rn for(int j = 1; j < i; j++)rn rn n = n*(i-j)/j;rn cout << n << ” “;rn rn cout << endl;rn rn[/code]rn这种不需要申请数组,每次根据行号来计算每一个数,只需要存储个中间变量就行了。rnrn本来以为,我只要抛出上面两种方法中随便一种,就可以秒杀此题的,后来才发现,一切都不是那么简单的……rnrn分析:rnrn一、栈空间的限制。分配一个int[1000000]在栈中是不行的,经过我的测试,在GCC下,如果main函数里面除了这个数组和一个循环变量外什么其它变量都不申请,最多可以申请int[520635],否则将产生段错误;而在VC下,这个数字更是将减少到258651。这应该就是默认分配的一个函数的栈空间大小,估算一下GCC编译器下应该是2MB,而VC下应该是1MB。所以分配一个1000000的int至少需要扩容栈空间后才能做,或者,将其分配到堆空间或静态区。rnrn二、数据溢出。在杨辉三角计算到第31行时,int型数据就已经溢出,这样一样,就算我申请为__int64等类型,那也肯定是过不了百行的,数据用什么样的数据类型或结构存储很成问题。大数存储?比如使用vector向量容器来解决。rnrn显然面对这个数量级,申请一个数组来储存它是不明智的。。。那么比较好一点的处理方案会是从不需要申请数组的方案中生出来。以前也写过一点大数存储的东西,是用vector限制每个元素的位数然后进位,但又是乘又是除的,我没什么太好的思路……rnrnrnrn这是以前在笔试中遇到的一个问题,后来仔细想了想,还是没能把它干掉,问题老挂着会让人抑郁的,期待坛中的牛人们来点思路来点demo。。。 论坛

如何才能找到程序员感觉,最终成长为一个牛逼的程序员?万代码只是起步,且看一个老程序员的十年辛酸成长路

01-03

看了一个程序员长达数页的成长回顾,感慨万千,他的经历也许可以与我们共勉,很多问题都值得我们这些伏案写代码的程序员们深思。由于文章太长,我只摘取一二。rnrnrn到底如何开发软件?我个人可以用vb完成各种各样的功能,为什么凑在一起就会那么困难?更正一个bug为何那么难?为什么rnrn一个看似简单的软件,要拖半年的时间还看不到结束的日子?rnrn我开始反思!rnrn后来我总结vb程序员的三个境界: rnrn  (1)所有代码都只放在窗体文件中的,属于菜鸟级,他们只会从面板上拖控件,设置属性,然后再给事件编码 rnrn (2)工程中有bas模块的,属于中间级,他们已意识到有大量的代码是重复出现的,应该将其抽取出来作为公用模块 rnrn (3)工程中有cls模块的,属于高手,他们已掌握了面向对象的思想,并能应用这种思想来解决实际问题 rnrn 悲哀吗?一个中国的程序员要到29岁才可以真正自由地学习想学的东西! rnrn 在就业不景气的2002年,对我一个30岁的技术水平有限的老程序员如此看重,真叫我感动。虽然我最后还是没去,但我仍然对这个公司充满了好感。一个软件企业最重要的是什么?是对人的尊重,没有这点,可以断定,这个公司长不大。 rnrn 还有软件工程,我的感觉,一个人如果没写过一万行以上的程序,他看软件工程书就同看政治书差不多,每句都对,呵呵,就不知道为什么对。我完成了那个几万行的vb程序之后,再回过头看看理论,真是句句是真理!每个理论背后都是大量实践经验的总结。rnrn 作为一名软件开发者,只能脚踏实地,哪怕你只做一个小小的mis产品,也要尽力把它做好来。 rnrn 做软件开发很苦的,技术进步如此神速,每个软件开发者都得不断地学习以跟上发展的步伐。有时我常想,何苦呢?我现在在大学中混,怎么样不能混下去?为什么要做这些吃力不讨好的事?我投了十年的时间去学习电脑,却最终发现自己不过中人之资,离顶峰远之又远。rnrn 软件人的生活很苦,压力很大,我认为是拿青春赌明天。(http://www.weaseek.com/zhuanti/infovote/index.htm)rnrnrn 就是在这种恶劣的开发环境中,还有许多业外人士指手划脚说程序员如何如何,还有太多的公司只顾压榨程序员的劳动,缺乏对程序员基本的尊重,怎不叫人寒心? rnrn  “三十而衰”,这句本不应该流行的话居然成了中国软件人员的流行语。中国程序员的悲哀!rnrn 程序员原文链接可见:http://www.weaseek.com/zhuanti/infovote/index.htmrn 论坛

没有更多推荐了,返回首页