0
高效程序员的修炼 Jeff Atwood 美国
@newblue • 4年201天前 • 557
0
@newblue • 4年201天前 • 557
0
@newblue • 4年201天前
假如你想成为一名程序员你应该先思考一件事情,你是不是真的对编程这件事情非常的感兴趣,愿意与其厮守一生?愿意将一份兴趣变成一份工作,愿意冒着中年秃头的风险进入这个行业,赚钱的工作有很多,完全没必要在一棵树吊死。
当编程是一份兴趣时,你的行为就像偷情,当编程变成一份工作,你每天行为就会是在公司加班完回家还要交公粮的白领。
0
@newblue • 4年201天前
程序员的八种境界
0
@newblue • 4年201天前
作为一名程序员需要学习很多的技能,但沟通为其中最为重要的一项,良好的沟通降低了与他人合作的成本,能让成员之间更好的协作,去完成工作。
通过写作可以更好的锻炼沟通技能,让自己的表达更加清晰,方便其他人理解,降低沟通成本。
0
@newblue • 4年200天前
金钱可以让人努力工作,但兴趣可以让人激发创新的火花。
多花时间提升自己的技艺,而不是埋头苦干,跟一头牛一样。
如果你有一个目标,最容易成功的路径就是记好路线,然后向目标冲过去,如果遇到障碍物就绕过它,千里之行,始于足下,无论多平凡的目标,你踏出的第一步,才让它开始有实现的可能,只有走出去,你才能知道前面有什么困难在等着你,不要停留在自己主观的意淫里,爱她就主动去追求,主动至少有二分之一的机会,不主动,你连机会都没有。
不要让一个技术人员进入多任务模式,人类天生就没有进化出多任务模式,社会才会发展出分工合作这种工作模式,让技术人员使用多任务模式意味着低效率、低产出。其实就算是血汗工厂也会考虑单一工种互相配合来提高效率,虽然整个流程比编程重复枯燥,但分工带来了效率的提高。
0
@newblue • 4年199天前
做一名合格的程序猿要学会谦逊与自省,遇到Bug要现在自己的代码里找问题,对自己的代码负起应有的责任,确定自己的代码正确的描述了自己的想法和调用了其他API,排除掉自己代码的问题,然后才是寻找其他发生问题的可能性。
凡事有利必有弊,好的代码应该浅显易懂,这不当是善待他人也是善待自己的最佳方式,任何故弄玄虚的代码都将会给他人和自己带来灾难。
好的代码离不开适当的注释,但过多注释的代码绝对会散发着迷人的臭味,如果你无法在一两句话里说明一段代码到底做了什么、能做什么,这段代码就需要你重写,如果你需要用大量的注释来说明你的代码做了什么,说明这段代码别人绝对看不懂你到底写了什么。请给其他同行看代码,而不是看注释。
学会阅读代码,文档不是代码的全貌,通过文档理解代码就像盲人摸象,对你解决问题,未必有多少帮助,如果文档都无法帮你解决问题,考虑到代码里了解你所调用的代码是怎么做的,会让你更清楚要怎么处理问题。如你调用的代码是闭源的,请忽略这一条,愿你所信仰的神保佑你!
向你的小黄鸭详细描述你的代码做了什么,以及你想做什么,在描述的过程中,可以让你重新审视自己的问题、代码、设计。其实这更像是一个自省的过程。
创意可能就像一辆车,不同的驾驶员拥有不同的驾驭能力,也基本决定了这辆车的表现。
设法将你的产品或目标用最简洁的语言介绍个一个普通人,让其明白你的努力之价值所在。
不断打磨优化你的产品,使其更加的紧致和优秀。
0
@newblue • 4年193天前
Fizz-Buzz sample code
(define ((%zero?% y) x)
(zero? (modulo x y)))
(define (fizz-buzz limit)
(define zero?.%5 (%zero?% 5))
(define zero?.%3 (%zero?% 3))
(define (main n limit)
(if (< n limit)
(let ([x (zero?.%5 n)]
[y (zero?.%3 n)])
(cond
[(and x y) (cons `FizzBuzz (main (add1 n) limit))]
[x (cons `Fizz (main (add1 n) limit))]
[y (cons `Buzz (main (add1 n) limit))]
[else (cons n (main (add1 n) limit))]))
`()))
(main 1 (add1 limit)))
(display
(time
(fizz-buzz 100)))
(newline)