How to be a Programmer
  • How to be a Programmer: Community Version
  • LANGS
  • How to be a Programmer: Community Version
    • Appendix A - Bibliography/Websiteography
    • Appendix B - History
    • Contributions
    • Glossary
    • Creative Commons Attribution Share-Alike
    • Summary
    • 1. Beginner
      • Personal-Skills
        • Learn to Debug
        • How to Debug by Splitting the Problem Space
        • How to Remove an Error
        • How to Debug Using a Log
        • How to Understand Performance Problems
        • How to Fix Performance Problems
        • How to Optimize Loops
        • How to Deal with I/O Expense
        • How to Manage Memory
        • How to Deal with Intermittent Bugs
        • How to Learn Design Skills
        • How to Conduct Experiments
      • Team-Skills
        • Why Estimation is Important
        • How to Estimate Programming Time
        • How to Find Out Information
        • How to Utilize People as Information Sources
        • How to Document Wisely
        • How to Work with Poor Code
        • How to Use Source Code Control
        • How to Unit Test
        • Take Breaks when Stumped
        • How to Recognize When to Go Home
        • How to Deal with Difficult People
    • 2. Intermediate
      • Judgment
        • How to Tradeoff Quality Against Development Time
        • How to Manage Software System Dependence
        • How to Decide if Software is Too Immature
        • How to Make a Buy vs. Build Decision
        • How to Grow Professionally
        • How to Evaluate Interviewees
        • How to Know When to Apply Fancy Computer Science
        • How to Talk to Non-Engineers
      • Mentoring
        • How to Be Mentored
        • How to Mentor Others
      • Personal-Skills
        • How to Stay Motivated
        • How to be Widely Trusted
        • How to Tradeoff Time vs. Space
        • How to Stress Test
        • How to Balance Brevity and Abstraction
        • How to Learn New Skills
        • Learn to Type
        • How to Do Integration Testing
        • Communication Languages
        • Heavy Tools
        • How to analyze data
      • Team-Skills
        • How to Manage Development Time
        • How to Manage Third-Party Software Risks
        • How to Manage Consultants
        • How to Communicate the Right Amount
        • How to Disagree Honestly and Get Away with It
    • 3. Advanced
      • Compromising-Wisely
        • How to Fight Schedule Pressure
        • How to Understand the User
        • How to Get a Promotion
      • Serving-Your-Team
        • How to Develop Talent
        • How to Choose What to Work On
        • How to Get the Most From Your Team-mates
        • How to Divide Problems Up
        • How to Handle Boring Tasks
        • How to Gather Support for a Project
        • How to Grow a System
        • How to Communicate Well
        • How to Tell People Things They Don't Want to Hear
        • How to Deal with Managerial Myths
        • How to Deal with Organizational Chaos
      • Technical-Judgment
        • How to Tell the Hard From the Impossible
        • How to Utilize Embedded Languages
        • Choosing Languages
  • Cómo ser un Programador: Versión Comunitaria
    • Apéndice A - Bibliografía/Sitografía
    • Apéndice B - Historia
    • Contribuciones
    • Glossary
    • Licencia Creative Commons Atribución-CompartirIgual
    • Resumen
    • 1. Principiante
      • Personal-Skills
        • Aprende a depurar
        • ¿Cómo depurar dividiendo el espacio del problema?
        • ¿Cómo eliminar un error?
        • ¿Cómo depurar utilizando un registro (Log)?
        • ¿Cómo entender problemas de rendimiento?
        • ¿Cómo solucionar problemas de rendimiento?
        • ¿Cómo optimizar bucles?
        • ¿Cómo manejar el costo de la entrada/salida (E/S)?
        • ¿Cómo gestionar la memoria?
        • ¿Cómo manejar errores intermitentes?
        • ¿Cómo aprender habilidades de diseño?
        • ¿Cómo realizar experimentos?
      • Team-Skills
        • ¿Por qué es importante la estimación?
        • ¿Cómo estimar el tiempo de programación?
        • ¿Cómo encontrar información?
        • ¿Cómo utilizar a las personas como fuentes de información?
        • ¿Cómo documentar de manera inteligente?
        • ¿Cómo trabajar con un código deficiente?
        • ¿Cómo Utilizar el Control de Código Fuente?
        • ¿Cómo realizar pruebas unitarias?
        • Tomarse descansos cuando te sientes bloqueado
        • ¿Cómo reconocer cuándo es hora de ir a casa?
        • ¿Cómo lidiar con personas difíciles?
    • 2. Intermedio
      • Judgment
        • ¿Cómo equilibrar la calidad contra el tiempo de desarrollo?
        • ¿Cómo gestionar la dependencia del sistema de software?
        • ¿Cómo decidir si el software es demasiado inmaduro?
        • ¿Cómo tomar una decisión de compra frente a desarrollo interno?
        • ¿Cómo crecer profesionalmente?
        • ¿Cómo evaluar a los candidatos en una entrevista?
        • ¿Cómo saber cuándo aplicar conceptos avanzados de ciencias de la computación?
        • ¿Cómo hablar con personas no ingenieras?
      • Personal-Skills
        • ¿Cómo mantenerse motivado?
        • ¿Cómo ser ampliamente confiado?
        • ¿Cómo hacer equilibrio entre tiempo y espacio?
        • ¿Cómo realizar pruebas de resistencia?
        • ¿Cómo equilibrar brevedad y abstracción?
        • ¿Cómo aprender nuevas habilidades?
        • Aprender a escribir
        • ¿Cómo hacer pruebas de integración?
        • Idiomas de comunicación
        • Herramientas pesadas
        • ¿Cómo analizar datos?
      • Team-Skills
        • ¿Cómo gestionar el tiempo de desarrollo?
        • ¿Cómo gestionar los riesgos del software de terceros?
        • ¿Cómo gestionar a los consultores?
        • ¿Cómo comunicar la cantidad adecuada?
        • ¿Cómo disentir honradamente y salir airosos?
    • 3. Avanzado
      • Compromising-Wisely
        • ¿Cómo Combatir la Presión del Cronograma?
        • ¿Cómo Entender al Usuario?
        • ¿Cómo Obtener un Ascenso?
      • Serving-Your-Team
        • ¿Cómo Desarrollar el Talento?
        • ¿Cómo Elegir en Qué Trabajar?
        • ¿Cómo Obtener lo Mejor de tus Compañeros de Equipo?
        • ¿Cómo Dividir Problemas?
        • ¿Cómo Manejar Tareas Aburridas?
        • ¿Cómo Obtener Apoyo para un Proyecto?
        • ¿Cómo Hacer Crecer un Sistema?
        • ¿Cómo Comunicarse Bien?
        • ¿Cómo Decir Cosas que la Gente no Quiere Escuchar?
        • ¿Cómo Lidiar con Mitos Gerenciales?
        • ¿Cómo Lidiar con el Caos Organizacional?
      • Technical-Judgment
        • ¿Cómo Distinguir lo Difícil de lo Imposible?
        • ¿Cómo Utilizar Lenguajes Incorporados?
        • Elección de Lenguajes
  • How to be a Programmer: Community Version
    • Appendix A - Bibliography/Websiteography
    • Appendix B - History
    • Contributions
    • Glossary
    • Creative Commons Attribution Share-Alike
    • Summary
    • 1. Beginner
      • Personal-Skills
        • Learn to Debug
        • How to Debug by Splitting the Problem Space
        • How to Remove an Error
        • How to Debug Using a Log
        • How to Understand Performance Problems
        • How to Fix Performance Problems
        • How to Optimize Loops
        • How to Deal with I/O Expense
        • How to Manage Memory
        • How to Deal with Intermittent Bugs
        • How to Learn Design Skills
        • How to Conduct Experiments
      • Team-Skills
        • Why Estimation is Important
        • How to Estimate Programming Time
        • How to Find Out Information
        • How to Utilize People as Information Sources
        • How to Document Wisely
        • How to Work with Poor Code
        • How to Use Source Code Control
        • How to Unit Test
        • Take Breaks when Stumped
        • How to Recognize When to Go Home
        • How to Deal with Difficult People
    • 2. Intermediate
      • Judgment
        • How to Tradeoff Quality Against Development Time
        • How to Manage Software System Dependence
        • How to Decide if Software is Too Immature
        • How to Make a Buy vs. Build Decision
        • How to Grow Professionally
        • How to Evaluate Interviewees
        • How to Know When to Apply Fancy Computer Science
        • How to Talk to Non-Engineers
      • Personal-Skills
        • How to Stay Motivated
        • How to be Widely Trusted
        • How to Tradeoff Time vs. Space
        • How to Stress Test
        • How to Balance Brevity and Abstraction
        • How to Learn New Skills
        • Learn to Type
        • How to Do Integration Testing
        • Communication Languages
        • Heavy Tools
        • How to analyze data
      • Team-Skills
        • How to Manage Development Time
        • How to Manage Third-Party Software Risks
        • How to Manage Consultants
        • How to Communicate the Right Amount
        • How to Disagree Honestly and Get Away with It
    • 3. Advanced
      • Compromising-Wisely
        • How to Fight Schedule Pressure
        • How to Understand the User
        • How to Get a Promotion
      • Serving-Your-Team
        • How to Develop Talent
        • How to Choose What to Work On
        • How to Get the Most From Your Team-mates
        • How to Divide Problems Up
        • How to Handle Boring Tasks
        • How to Gather Support for a Project
        • How to Grow a System
        • How to Communicate Well
        • How to Tell People Things They Don't Want to Hear
        • How to Tell People Things They Don't Want to Hear
        • How to Deal with Managerial Myths
        • How to Deal with Organizational Chaos
      • Technical-Judgment
        • How to Tell the Hard From the Impossible
        • How to Utilize Embedded Languages
        • Choosing Languages
  • Как быть программистом: Community Version
    • Приложение A - Библиография/Список сайтов
    • Приложение B - История
    • Участие в проекте
    • Глоссарий
    • Creative Commons Attribution Share-Alike
    • Содержание
    • 1. Начинающий программист
      • Personal-Skills
        • Научитесь отлаживать
        • Как отлаживать, разделяя пространство проблемы
        • Как устранять баги
        • Как отлаживать, используя логи
        • Как определять проблемы производительности
        • Как устранять проблемы производительности
        • Как оптимизировать циклы
        • Как справиться с расходами на операции чтения и записи
        • Как управлять памятью
        • Как устранять плавающие баги
        • Как научиться проектировать программы
        • Как экспериментировать
      • Team-Skills
        • Почему важно оценивать задачи
        • Как оценивать время на разработку
        • Как искать информацию
        • Как спрашивать людей
        • Как документировать правильно
        • Как работать с плохим кодом
        • Как использовать системы контроля версий
        • Как писать юнит-тесты
        • Делайте перерывы, когда вы в тупике
        • Как понять, когда идти домой
        • Как вести себя с трудными людьми
    • 2. Программист среднего уровня
      • Judgment
        • Как балансировать качество и время разработки
        • Как управлять зависимостями
        • Как оценивать стороннее программное обеспечение
        • Как решить: покупать программу или писать свою
        • Как расти профессионально
        • Как проводить собеседования
        • Как понять, когда применять высокие технологии
        • Как разговаривать с неинженерами
      • Personal-Skills
        • Как сохранять мотивацию
        • Как заслужить доверие
        • Как балансировать процессорное время и память
        • Как проводить стресс-тестирование
        • Как балансировать краткость и абстракцию
        • Как осваивать новые навыки
        • Научитесь печатать вслепую
        • Как проводить интеграционное тестирование
        • Языки взаимодействия систем
        • Стандартные технологии
        • Как анализировать данные
      • Team-Skills
        • Как управлять временем разработки
        • Как управлять рисками, связанными со сторонним программным обеспечением
        • Как руководить консультантами
        • Как соизмерять количество общения
        • Как честно выражать несогласие
    • 3. Продвинутый программист
      • Compromising-Wisely
        • Как справляться с давлением графика
        • Как понять пользователя
        • Как получить повышение
      • Serving-Your-Team
        • Как развивать таланты
        • Как выбрать, над чем работать
        • Как получить наибольшую отдачу от коллег
        • Как разделять задачи
        • Как распределять скучные задания
        • Как получить поддержку для проекта
        • Как развивать систему
        • Как качественно взаимодействовать
        • Как сообщать неприятное
        • Как справляться с менеджерскими мифами
        • Как справляться с организационным хаосом
      • Technical-Judgment
        • Как отличить сложное от невозможного
        • Как использовать встроенные языки
        • Выбор языка программирования
  • How to be a Programmer 中文版
    • 词汇表
    • 附录 A - 书目/网站目录
    • 附录 B - 历史
    • Contributions
    • Creative Commons Attribution Share-Alike
    • How to be a Programmer 正體中文版
    • 1. 入门
      • Personal-Skills
        • 學習除錯
        • 如何通过分割问题 Debug
        • 如何移除一个错误
        • 如何使用日志调试
        • 如何理解性能问题
        • 如何修复性能问题
        • 如何优化循环
        • 如何处理I/O代价
        • 如何管理内存
        • 如何处理偶现的 Bugs
        • 如何学习设计技能
        • 如何进行实验
      • Team-Skills
        • 为什么评估很重要
        • 如何评估编程时间
        • 如何发现信息
        • 如何把人们作为信息源
        • 如何睿智地写文档
        • 如何在糟糕的代码上工作
        • 如何使用源代码控制
        • 如何进行单元测试
        • 毫无头绪?,休息一下
        • 如何识别下班时间
        • 如何与不好相处的人相处
    • 2. 进阶
      • Judgment
        • 如何在开发质量与开发时间权衡
        • 如何管理软件系统依赖
        • 如何判断软件是否太不成熟了
        • 如何做购买还是构建的决定
        • 如何专业地成长
        • 如何评估面试者
        • 如何决定什么时候使用奇妙的计算机科学
        • 如何与非工程师交谈
      • Personal-Skills
        • 如何保持活力
        • 如何被广泛信任
        • 如何在时间与空间权衡
        • 如何进行压力测试
        • 如何在简洁与抽象间平衡
        • 如何学习新技能
        • 学会打字
        • 如何做集成测试
        • 交流语言
        • 重型工具
        • 如何分析数据
      • Team-Skills
        • 如何管理开发时间
        • 如何管理第三方软件危机
        • 如何管理咨询师
        • 如何适量交流
        • 如何直言异议以及如何避免
    • 3. 高级
      • Compromising-Wisely
        • 如何与时间压力做斗争
        • 如何理解用户
        • 如何获得晋升
      • Serving-Your-Team
        • 如何发展才能
        • 如何选择工作的内容
        • 如何让你队友的价值最大化
        • 如何划分问题
        • 如何处理无聊的任务
        • 如何为工程获取支持
        • 如何发展一个系统
        • 如何有效地沟通
        • 如何告诉人们他们不想听的东西
        • 如何处理管理神话
        • 如何处理组织混乱
      • Technical-Judgment
        • 如何从不可能中找到困难的部分
        • 如何使用嵌入型语言
        • 选择语言
  • How to be a Programmer 中文版
    • 词汇表
    • 附录 A - 书目/网站目录
    • 附录 B - 历史
    • Contributions
    • Creative Commons Attribution Share-Alike
    • How to be a Programmer 中文版
    • 1. 入门
      • Personal-Skills
        • 学会 Debug
        • 如何通过分割问题 Debug
        • 如何移除一个错误
        • 如何使用日志调试
        • 如何理解性能问题
        • 如何修复性能问题
        • 如何优化循环
        • 如何处理I/O代价
        • 如何管理内存
        • 如何处理偶现的 Bugs
        • 如何学习设计技能
        • 如何进行实验
      • Team-Skills
        • 为什么评估很重要
        • 如何评估编程时间
        • 如何发现信息
        • 如何把人们作为信息源
        • 如何睿智地写文档
        • 如何在糟糕的代码上工作
        • 如何使用源代码控制
        • 如何进行单元测试
        • 毫无头绪?,休息一下
        • 如何识别下班时间
        • 如何与不好相处的人相处
    • 2. 进阶
      • Judgment
        • 如何在开发质量与开发时间权衡
        • 如何管理软件系统依赖
        • 如何判断软件是否太不成熟了
        • 如何做购买还是构建的决定
        • 如何专业地成长
        • 如何评估面试者
        • 如何决定什么时候使用奇妙的计算机科学
        • 如何与非工程师交谈
      • Personal-Skills
        • 如何保持活力
        • 如何被广泛信任
        • 如何在时间与空间权衡
        • 如何进行压力测试
        • 如何在简洁与抽象间平衡
        • 如何学习新技能
        • 学会打字
        • 如何做集成测试
        • 交流语言
        • 重型工具
        • 如何分析数据
      • Team-Skills
        • 如何管理开发时间
        • 如何管理第三方软件危机
        • 如何管理咨询师
        • 如何适量交流
        • 如何直言异议以及如何避免
    • 3. 高级
      • Compromising-Wisely
        • 如何与时间压力做斗争
        • 如何理解用户
        • 如何获得晋升
      • Serving-Your-Team
        • 如何发展才能
        • 如何选择工作的内容
        • 如何让你队友的价值最大化
        • 如何划分问题
        • 如何处理无聊的任务
        • 如何为工程获取支持
        • 如何发展一个系统
        • 如何有效地沟通
        • 如何告诉人们他们不想听的东西
        • 如何处理管理神话
        • 如何处理组织混乱
      • Technical-Judgment
        • 如何从不可能中找到困难的部分
        • 如何使用嵌入型语言
        • 选择语言
  • 2-Intermediate
    • Judgment
      • Design Patterns
Powered by GitBook
On this page

Was this helpful?

  1. How to be a Programmer: Community Version
  2. 2. Intermediate
  3. Judgment

How to Talk to Non-Engineers

PreviousHow to Know When to Apply Fancy Computer ScienceNextPersonal-Skills

Last updated 5 years ago

Was this helpful?

���ɃG���W�j�A��v���O���}�[�́A��ʓI�ȕ����ɂ���āA���̐l�X�Ƃ͈قȂ�ƈ�ʂɔF�߂��Ă��܂��B����́A���̐l�X���������ƈقȂ邱�Ƃ��Ӗ����܂��B����́A�G���W�j�A�ȊO�̐l�ƃR�~���j�P�[�V�������Ƃ�Ƃ��ɂ͗��ӂ��鉿�l������܂��B���Ȃ��͏�Ɋϋq�𗝉�����K�v������܂��B

�m���G���W�j�A�̓X�}�[�g�ł����A�������̂悤�ɋZ�p�I�Ȃ��Ƃ��쐬���邱�Ƃɍ����������̂ł͂���܂���B�������͕��������B�ނ�͕����𔄂�A�����������A�����𐔂�����Ǘ������肵�܂����A�����������Ƃł͂���܂���B�G���W�j�A�̂悤�Ƀ�[���ňꏏ�Ɏd��������̂͂��܂�ǂ�����܂���i��O�͂���܂���j�B�ނ�̃\�[�V�����X�L���͈�ʂɁA��[���ȊO�̊‹��̃G���W�j�A�Ɠ���������ȏ�ł����A�e���ȁA���m�ȃR�~���j�P�[�V�����̎�ނƎ��������s���d���̐T�d�ȍו����B

�G���W�j�A�ȊO�̐l�͂��܂�ɂ����ł��邩������܂��񂵁A���Ȃ��ɋ�������邩������܂���B�������Ɠ����悤�ɁA�ނ�͖{���ɂ��Ȃ�����΂��邱�Ƃ��Ӗ�������̂ł��A���Ȃ��̂��Ƃ������|�����Ă���̂ł͂Ȃ��A���t�̔w��ɗ��‚��Ƃ�����܂���B

�v���O���}�[�ȊO�̐l�͋Z�p�I�Ȃ��Ƃ𗝉����邱�Ƃ��ł��܂����A�Z�p�I�Ȕ��f�ł����������ɂƂ��Ă���������Ƃ͂���܂���B�ނ�̓e�N�m���W�[�̎d�g�݂𗝉����Ă��܂����A�Ȃ�����̃A�v���[�`��3����������̂��A�����Ă���1�‚�3��������̂������ł��܂���B �i���ǂ̂Ƃ���A�v���O���}�[�͂��̎�̌��ς���ɂ����ٓI�Ȃ��Ƃ�����܂��B�j����́A�����Ƒ�����ʂ𔭊������D�̋@��ł��B

���Ȃ��̃�[���Ƙb������Ƃ��ɂ́A�v�l�����ɁA��ʓI�ȋZ�p����ɂ��Ȃ��̐��i�Ɋւ��鑽���̌o�������L���邽�߁A�Z�k���ꂽ���t���g�p���Č��ʓI�ł��B���̑��L���A���ɂ��Ȃ����g�̃�[���̃����o�[������Ƃ��ɁA���̌o�������L���Ă��Ȃ��l�ɂ͎g�p���Ȃ��悤�ɂ���ɂ́A�����̓w�͂��K�v�ł��B���̃{�L���u�����[�́A���Ȃ��Ƃ�������L���Ȃ��l�Ƃ̊Ԃɕǂ����A����Ɉ������ƂɁA�����̎��Ԃ𖳑ʂɂ��܂��B

�`�[���ł́A��{�I�ȑO��ƖڕW��p�ɂɍċL�q����K�v�͂Ȃ��A�قƂ�ǂ̉�b�͏ڍׂɏœ_�𓖂ĂĂ��܂��B���O�҂̏ꍇ�A����͋t�ɂȂ�܂��B�ނ�͂��Ȃ������R�̂��Ƃ𗝉����Ă��Ȃ���������܂���B���Ȃ��͂����𓖑R�󂯎��A�������J��Ԃ��Ȃ��̂ŁA�{���ɑ傫�Ȍ��������Ƃ��ɂ��݂��𗝉�����Ƃ����O���҂̍l���������āA��b���c�����Ƃ��ł��܂��B���Ȃ��́A���̌�����R�~���j�P�[�V���������‚��邽�߂ɁA�R�~���j�P�[�V����������ĐT�d�Ɍ��Ă���Ƒz�肵�Ă��������B���Ȃ����������Ă��邱�Ƃ��m�F���邽�߂ɂ��Ȃ��������Ă��邱�Ƃ�v�񂵂��茾���������肷��悤�ɂ��Ă��������B�p�ɂɉ�@�����ꍇ�́A���ʓI�ɃR�~���j�P�[�V����������Ă��邩�ǂ�����q�˂鎞�Ԃ�������₵�Ă��������B�R�~���j�P�[�V�����ɖ�肪����ꍇ�́A�����̊��s��ς��Ă���A�����ɕs�����点�Ă��������B

���͔�G���W�j�A�Ƃ̎d������D���ł��B����͊w�сA������傫�ȋ@���񋟂��܂��B���Ȃ��́A�R�~���j�P�[�V�����̖��m���̊ϓ_����A���΂��Η�������邱�Ƃ��ł��܂��B�G���W�j�A�́A�������璁���������o�����ƁA��������͂����肳���邱�ƁA�����Ă��̂悤�Ȕ�Z�p�҂͎������ɂ‚��ČP�����󂯂Ă��܂��B�������͋Z�p�I�Ȕ��f�������A�ʏ�̓r�W�l�X��̖��𗝉����邱�Ƃ��ł��邽�߁A�����ȒP�ɉ������邱�Ƃ��ł��܂��B

���΂��΋Z�p�҈ȊO�̐l�����́A���Ȃ��̋Z�p�I���f�ƊO���҂̌����𑊏悳���邱�Ƃɂ���Ă��������Ȃ��A���ǂ��S�̓I�ȉ����􂪑��݂���Ƃ��ɁA�D�������瓦��₷�����Đ��������Ƃ��������Ƃ�����]���ȒP�ɂ���\�����[�V�������Ă��邱�Ƃ�����܂��B���͌l�I�ɂ͋ɒ[�ȃv���O���~���O���D���ł��B�Ȃ��Ȃ�A���̔�������ɑΏ����邩��ł��B���ς����f�����A�C�f�A�Ɍ��ѕt���邱�ƂŁA�R�X�g�Ɨ��v�̍ŗǂ̑g�ݍ��킹�ł���A�C�f�A���ȒP�Ɍ��‚��邱�Ƃ��ł��܂��B

Next

Advanced skills