794 ℉

14.10.23

高效程序员的修炼-蝙蝠洞

蝙蝠洞:程序员的高效工作场所

  • 程序员的《权利法案》
    • 每个程序员都应该有两台显示器
    • 快速的电脑
    • 自己选择鼠标和键盘的权利
    • 舒适的椅子
    • 快速的互联网
    • 安静的工作环境
  • 电脑工作站的人体工学
    • 显示器的顶端应该与眼睛平行
    • 桌子的表面应该与肚脐眼基本持平
    • 叫应该在地板上平放,并且与膝关节成90度
    • 当打字的时候,手腕应该与前臂成一条直线,不要弯曲
  • 多显示器能提高生产力吗
    • 多显示器很重要
  • 购置优质的电脑椅
    • 选一个牛逼的椅子
  • 背景光的功效
    • 背光很有效缓解眼睛疲劳

jack.zh 标签:高效程序员的修炼 继续阅读

755 ℉

14.10.23

高效程序员的修炼-促使团队紧密合作

促使团队紧密合作

  • 不管怎么说,那总是人的问题
    • 你喜欢你的工作环境和同事吗?人是项目成功的最关键
  • 领导须以身作则
    • 团队纪律
    • 团队的纪律需要一个以身作则的领导:最有效的一种技术领导就是以身作则
      • 保持谦虚
      • 提出建设性的批评时要小心
      • 想要赢得信誉和尊重,最好的方法就是通过努力工作并取得实实在在的成绩
      • 百说不如一干
      • 没有一个通用的建议可以适用所有情况
    • 让一堆程序员呆在一个房间,不是领导力
    • 书籍推荐:
      • 《成为技术领导者》
      • 《应在影响力:人际交往的学问》
  • 程序员与系统管理员的黑夜传说(读者注:一篇废话)
    • 系统管理员和程序员都拥有不同寻常的超自然能力
    • 程序员是吸血鬼,认为自己是不朽的
    • 系统程序猿是狼人,刀枪不入,奇异变形
    • 吸血鬼与狼人合作
  • 结对编程与代码评审
    • 结对编程对于互相学习是有利的
    • 结对编程对代码质量是有利的
    • 结对编程可以坚持每天8小时吗?不会累死吧!
    • 结对编程是打过兴奋剂的代码审查?哈哈
    • 结对编程的优势是它的即时性
    • 保证超过一双眼睛看过你的代码
  • 会议是浪费工作时间的最佳去处
    • 用怀疑的态度看待会议,把它当做降低工作效率的风险
    • 原则:
      • 会议不超过一个小时,否则判死刑
      • 每个会议目标清晰
      • 在开会之前做好功课
      • 把会议变为可选的
      • 会议结束的时候,概括一下待办事宜
  • 处理坏苹果
    • 与团队为敌是坏苹果
    • 学会接受现状,清晰地审视
    • 不容忍坏苹果
    • 坏苹果的味道:
      • 掩饰无知,不向团队学习,比如:
      • 我不知道怎么解释我的设计,我只知道他能工作
      • 我的代码太复杂了,没办法测试
      • 他们对个人隐私有着过度的渴望
      • 他们很在意自己的地盘
      • 他们抱怨团队的决定
      • 所有其它成员都在传说关于同一个人的俏皮话或者抱怨他
      • 他们不会积极的投入团队的行动
  • 坏苹果是团队的毒药
    • 坏苹果:
      • 沮丧 悲观主义者
      • 混球
      • 懒鬼
    • 坏苹果的坏处:
      • 托团队后腿
      • 影响其他人成为坏苹果
      • 木桶的最低点
    • 除掉害群之马
  • 关于远程办公
    • 远程团队最少两个人(废话)
    • 程序员,团队成员很重要,要很热爱这个岗位
    • 自制能力强
    • 工具:
      • 实时交谈
      • 固定邮件列表
      • 语音和视频聊天
    • 工具2:
      • 周一的团队状态报告:
        • 上周做了什么
        • 这周干嘛
        • 障碍和担忧?
      • 会议纪要

jack.zh 标签:高效程序员的修炼 继续阅读

836 ℉

14.10.23

高效程序员的修炼-招聘程序员须得其法

招聘程序员须得其法

  • 为什么程序员不会编程
  • 也许我该加强的:
    • 数据结构,算法
    • 正则表达式
    • 编码问题,补码 原码 反码等等
    • 软件架构 模式 UML 各种图
  • 怎样招聘程序员
    • 通过“helloworld”在线测试
    • 提出要看他们的文件夹(github,其他代码,原来写的代码,博客等等)
    • 只雇用认同公司文化的人
    • 进行周详的结构化电话面试,比如:
      • 做一点即兴编码,比如“在一个证型数组里面找出一个最大的整型”
      • 做一个基本的设计,比如“设计一个表示法,用于HTML的建模”
      • 脚本编程和正则表达式
      • 数据结构“你在什么时候使用哈希表,而不是数组”
      • 位于字节
    • 给他们一个“视镜”项目
    • 找个房间面谈,最后定夺,着重考虑:
      • 这个人对他正在做的事情是否有热情
      • 它能有效地将来的小组沟通吗?
      • 他对她的专业领域是否有好的认识
      • 我的团队是否会喜欢这个人
    • 上面没有一条是保证奏效的
  • 如何做好电话面试
    • 不要让候选人主导面试过程
    • 小心只会一招的“小马驹”,考他:
      • 编程语言的掌握,写一小段代码
      • 面向对象的简单掌握
      • 脚本语言和正则表达式
      • 数据结构的基本理解
      • 位与字节的掌握
    • 测试用例:
      • 面向过程:
        • 写一个函数把字符串反转
        • 写一个函数计算N个斐波那契数
        • 打印九九乘法表
        • 写一个函数把文本文件里的所有整数加起来
        • 写一个函数把1-99的所有奇数打印出来
        • 在一个整型数组里找出一个最大的整型数
        • 把一个RGB格式化成六位数字的16进制字符串
      • 面相对象:
      • 设计一组卡片,使他们可以用于不同的卡片游戏程序
      • 用一系列类为动物王国建模,并用于一个“虚拟动物园”程序
      • 设计一些类表现文件系统
      • 设计一个OO表示法来为HTML建模
      • 脚本编程和正则表达式:
      • 匹配电话号码
      • N网页寻找电话
      • VIM替换,查找,快捷键
      • 数据结构
      • java.util里面的又哪些数据结构最为常用
      • 你在什么情况下使用linked list而不是vector
      • 你能用tree来实现一个map吗?list呢?
      • 你能打印一棵树的各个节点吗?(一级二级三级。。。)
      • 哈希表(hash-table)的插入操作在最坏的情况下性能怎样?二叉树(binary-tree)呢?
      • 实现一个优先队列(priority queue)有哪些方法?
      • 位与字节:
      • 告诉我怎样测试一个字节的最高位是否为1
      • 写一个函数,计算一个给定整数值有多少个二进制位,也就是怎样实现函数:int countBits(int x)
      • 写一个函数,对于一个给定的整数,如果他的二进制模式从正向看和反响看是一样的,那就返回true:boolean isPalindrome(int x)
  • 工作经验年之神话
    • 不要完全相信工作经验
    • 雇佣聪明的人
  • 与程序猿面谈
    • 建议1:
      • 专业领域的深度
      • 评论一件事情,或者人
      • 解决一个问题(不是谜题)
      • 查看TA的代码
      • 询问读书情况
      • 问一个关于人的问题
      • 试用
    • 建议2:
      • 自我介绍
      • 最近项目的提问
      • 提一个难题
      • 写几个C函数
      • 给一点代码,问是否满意
      • 设计问题
      • 难题治他
      • 问他有什么问题
    • 20分钟演讲:
      • 是否有热情?
      • 是否可以跟我的人有效沟通
      • 专业领域的见解深度
      • 团队是否喜欢与他合作
  • 史上最难谜题(kao)

jack.zh 标签:高效程序员的修炼 继续阅读

850 ℉

14.10.23

高效程序员的修炼-高效编程之原则

高效编程之原则

  • 永远都是你的错
    • 你写的代码在任何时候出了错,那一定是你的错
    • select问题(程序员修炼之道,从小工到专家)
  • 大道至简
    • 你永远都有简化的空间
    • 代码是你的敌人,随着代码的增长,隐藏的bug会增多
    • coder才是你的敌人,
    • 代码的维度:
      • 代码简洁度
      • 功能完整性
      • 执行速度
      • 编码花费时间
      • 健壮性
      • 灵活性
    • 写代码,简洁开始,惜字如金
  • 避免写注释
    • 命名,封装的重要性
  • 学会读源码
    • 为了解决自己软件的问题
    • 提高自己的技能
    • 骇客精神(运行在我的机子上,就是我的软件,我要搞懂他)
  • 向橡皮鸭求助
    • how to ask
    • 当我自己解决自己的问题的时候,怎样感谢社区
    • 适当的组织自己的问题,会帮助自己找到答案
    • 提出问题足食我们解决这个问题
    • 向橡皮鸭求助
  • 创新以人为本
    • good idea is shit
    • 执行远大于创意
  • 你的团队能通过电梯测试吗?
    • 解决客户问题才是重点
    • 抓住重点,抓住关键
    • 不要被缠住,关注远景
  • 性能注致胜
    • 虔诚的遵循雅虎的指导原则(查一下)
      • 利用CDN的把静态网页分散部署
    • 改善匿名用户和注册用户(并且为他们优化)
    • 使性能成为一种骄傲

jack.zh 标签:高效程序员的修炼 继续阅读

801 ℉

14.10.23

高效程序员的修炼-把一堆烂事搞定的艺术

把一堆烂事搞定的艺术

  • 学海无边
    • 给奖励,鼓励。不要指望又想马儿跑又想马儿不吃草
    • 奖励鼓励,不一定是金钱,违背出良心与初衷
    • 有干劲的水手和造船工人,都渴望无边无际的大海
  • 磨刀不误砍柴工
    • 磨快你的锯子,不要低头据
    • 不要无边界的烂磨
    • 不磨句子的砍柴工,是不快乐的,也是低效的
    • 推荐网站Hackers news(Paul Graham),programming reddit
  • 一路向前冲
    • 快速比质量更重要
    • 开火前进
  • 多任务神话
    • 多任务切换,耗时严重
    • 外界干扰,影响效率
    • 程序员总是很乐观,(kao, 说我吗?)
    • 把低优先级的东西忘掉

jack.zh 标签:高效程序员的修炼 继续阅读

874 ℉

14.10.23

高效程序员的修炼-入门须知

入门须知

  • 你想成为一名程序员
    • 没有银弹
    • 你确定要成为一名程序员吗?
    • code不是全部,沟通才是最重要的
  • 程序员的八种境界
    • 不朽的程序员Dijkstra,Knuth,Kay
    • 成功的程序员比尔盖茨,Carmack,DHH
    • 知名的程序员
    • 胜任的程序员
    • 普通程序猿
    • 业余程序员
    • 低调程序员
    • 烂程序员
  • 如何培养写作计划
    • 能否顺利表达想法是程序员高下的重要标准之一

jack.zh 标签:高效程序员的修炼 继续阅读

801 ℉

14.10.23

绝句两首

学贵精气习在神
挖空潜能掘尽门
机会抓紧哪里跑
家是港湾强后盾

学富五车机会难
习得手艺哪梦圆
挖渠治水家难进
掘得名声强是咱

jack.zh 标签:joke蓝翔 继续阅读

1 2 3 4 5 6 7 8 9 10
Fork me on GitHub