程序员的自我修养

从知乎整理的如何转行称为程序员的一些要点

  • 成为程序员之前
    1. 多种方案实现一个功能,不要停在原地
    2. 敏捷开发流程
    3. 编码规范
    4. 不局限于一种语言
    5. 好程序员是好产品经理
    6. 不断重构
    7. 好开源框架是最好的老师
    8. 保持行业敏感度
    9. 算法、数据结构、计算机组成原理、一致性哈希、垃圾回收算法很重要
    10. 重复的事情变自动
    11. 不熬夜
    12. 提前想好三年内的目标
    13. 学会定位错误
    14. 想办法薪水过2w
    15. 保持谦逊,不必羡慕,做好自己该做的
    16. 喜欢上自己写的程序,喜欢上自己的产品
    17. 造轮子,标准库、os、编译器、网络库
  • 自己是否适合做程序员
    1. 专注眼下:逻辑、谨慎、细心
    2. 思考力和推动力:定位复杂条件下的核心问题、分析问题潜在原因、排除干扰还原最小可验证场景、抓住关键数据验证猜测与实验、思考力比经验更重要;【任务卡住了】,可以检查试验别的任务,排除自身代码原因、web UI检查异常、排查主机日志或者删除缓存、提高任务id和控制台日志。好程序员不会等事情前进,而是用尽一切方法让事情前进。
    3. Nerver say no:不给自己滋生暮气的机会,不合理需求可以给出时间成本,曲线救国方案
    4. 投资未来:给未来趋势投入时间
    5. 善用工具:
      - 搜索引擎:善用google,获取最新知识最新技术
      - 不相信重复:DRY,简洁和规范,维护成本低
      - 代码片段:把灵光闪现的代码、脚本、配置和经验短片段保存
      - 自动化
    6. 管理时间:高度脑力工作集中4-5个小时来应对就足够,需要安排时间学习,留点放空和放送时间,往前想往后想
  • 自学成开发
    1. 哈佛大学公开课:计算机科学cs50;
    2. 麻省理工公开课:计算机科学和 Python 编程导论;
    3. 斯坦福大学公开课:编程范式;
    4. 麻省理工学院公开课:算法导论;(1-4都可以在网易公开课找到)
    5. 结合SICP 解题集阅读了《计算机程序的构造和解释》;(只看了前三章)结合The Hardware/Software Interface公开课阅读《深入理解计算机系统》(时间不够,没做习题)CSAPP偏硬件角度,学习操作系统看的是《现代操作系统》;
    6. 结合算法公开课学习了《算法导论》;(学得很吃力)
    7. 学习《算法》红宝书,书上的数据结构与算法代码都手动敲了一遍,结合VisuAlgo,效果拔群;
    8. 在语言层面上,学习了《C语言编程》,《C++Prime》,《笨方法学Python》;(只是阅读书籍,没有去做题实践,学习效果很不理想)
    9. 学习《Flask web开发》动物书,利用PyCharm一步一步搭建网站;
    10. 在慕课网上完成了“Linux运维工程师”系列课程学习,自己装了个虚拟机熟悉Linux的常用操作与命令;
    11. 学习《计算机网络自顶向下方法》,《TCP/IP》核心卷一,熟悉计算机网络基础
    12. 学习《SQL必知必会》,《高性能MySQL》(由于水平不够,没太看懂);
    13. 开始用git管理自己的代码,学习github上的优秀源代码;
    14. 学习markdown,用hexo搭建个人博客,记录自己的学习过程;
    15. 结合《深入理解Nginx》学习Nginx源码;
    16. 深入学习Java:阅读《Thinking in java》(太厚没看完),熟悉SSM框架,阅读《深入理解Java虚拟机》;
    17. 牛客网上的专项练习:Java、计算机基础、Linux等1000多道选择题都刷了一遍,记录错题与答案,导入到印象笔记,每天复习;
    18. 在线编程中的:《程序员面试金典》、leetcode(easy/medium)都刷了一遍,《剑指offer》书看了一遍,题刷了两遍;
    19. 各大互联网公司的历年真题都做了一遍;
    20. 针对各个公司的面经进行准备;

你可能感兴趣的:(找工作)