建立档案袋
可以像个人博客那样简单,自己做的每个项目都有1个帖子,最好能有
- 自己可公开的代码(托管到github或码云上)
- 自己遇到的问题及最后的解决方法
- 自己的感想,总结
合适的交流平台与工具
- 可以尝试LaTex,Markdown记录
- 选择自己喜欢的编辑器,小白可以先使用IDE
学会看官方文档
一项技术,最权威的文档一定是它的官方文档
选择合适的编程语言
学习第n种语言的难度是第(n-1)种语言的难度的一半
有能力的尝试实现1个解释器,更好地去理解语言是如何运转的
选择:不一定非要专一门语言,多种使用 纵向发展
可以尝试: java:笨重但严谨、工作机会多 +python(PHP) 一动一静
不同的语言有其不同的特点,及相关职业路线,建议先了解,有个全面的了解
能力提升
技术提升需要复杂业务的提升,最好是去一线公司(也要考虑城市、国家政策)
在自制力面前少看方法论
多任务驱动、踏踏实实优化
以解决目的为目标,遇到不会的,去看权威的书及解读
可以语言看书、框架看视频,整正厉害的都去看书
综合素质:交流能力、管理能力、认知、学习、任务规划能力
了解学习路线,对应差缺补漏
多看技术网站、博客
提升自己的英语水平
思维
点型思维——线性思维:演绎法(大前提、小前提、结论)、归纳法、类比法
构建体系——入门书、顶级书填充知识库——知识之间连接、运用
了解技术架构->了解开发流程->补强基础知识->从微小的改善入手(比如关掉几个 issue)->学会写文档
核心能力
算法和数据结构、设计模式很重要!要打好基础,不要过多去追求广度
大体内容包括:
- 语言本身的特点
- 数据结构及算法
-计算机网络
-设计模式
-数据库- 项目管理工具
- 中间件技术
- 分布式管理
-虚拟化,容器化
-关注源码
思考几个小问题
1.你为什么开发软件?
2.去年你读了几本技术书籍?
3.去年你最喜欢的技术书籍是哪本?你从中学到了什么?
4.平时你经常访问哪些编程类网站?
5.你有自己的开源项目吗?
6.业余时间你编程吗?
7.对于你来说,编程是一种爱好,还是一种谋生手段?
8.你的职业生涯之中有什么重要的成就?它是你主导的吗?
9.什么事情会让你很有成就感?
10.你最喜欢的编程语言是哪种?为什么?
11.如果允许你为这种语言加一种功能,你会加什么功能?为什么?
12.如果允许你取消一种功能,会是什么功能?为什么?
几个工作建议
- 跑马拉松,而不是短跑
工作路程很长,不要急于求成 - 要谦虚,但不要愚蠢
- 与自己而不是别人比较
- 尊重人而不是头衔
- 选择挑战而不是安慰
最好的事情经常发生在舒适区之外 - 先思考在敲代码
- 提供价值而不是代码
避免浪费时间重复造轮子,合理使用前人创造 - 选择生活,而不是工作
- 采用标准化工作流程,增强可持续能力
- 懂得如何包装成绩
- 利用多种方式改变他人的感受(人会有偏好)
其他
现金流很重要
不要忘记读书
各行各业都有相关书籍
佛教哲学
西方管理 制衡
自强不息 厚德载物
参考来源:
1.阮一峰的网络日志
http://www.ruanyifeng.com/blog/2010/12/how_to_interview_a_programmer.html
2.florio.dev 给我作为新软件工程师的一封信
https://www.florio.dev/20200328-letter-to-myself/