由学习新东西引发的追忆和思考
刚刚写了一篇博客Intellij idea最常用快捷键, 是把一个视频教程中的一个文档照着视频写的, 为什么我要记下来这个呢?
- 最初用eclipse学习JAVA的时候就发现, 没有快捷键开发是很困难的, 快捷键就像是工具一样, 一个好的工具会大大的提高生产力
- 中学时候英语课文总是背不下来, 英语老师罚我抄10便, 还是背不下来, 再罚10遍. 慢慢的养成了"通过被一个东西刻骨铭心的折磨去强化关于它的记忆",
- 在没有形成深刻记忆前早晚会忘, 忘的时候有个地方去查阅
(我虽然用Android studio, 但是它默认的快捷键早被我忘干干净净)
我那非常争气的发散性思维把我带到了以前的面试题"如何从新学习一门技术", 我也曾自己写过一个"Flutter学习Roadmap"的PPT, 面试中谈了自己总结的如何学习一个新的编程语言, 以及新的平台框架, 当时并没有提到"熟练使用IDE的快捷键", 当我想起iOS的同事学习flutter的艰难, 我越发觉得, 对IDE的熟练度也是影响学习一门新的技术的, 其中就包括该IDE的快捷键.
讲真, 学习的新技术如果和以前用的是同一款或者同一个系列的IDE, 像Intellij idea和Android studio, 应该会加快"入门->熟悉"这一个过程, 像大牛那样Vim搞定所有编辑器的情况是普通人很难达到的
而如今, 我在对后端技术的选择上犹豫良久, 决定专心的学习JAVA Web, 也如同之前的一次又一次学习自己陌生的领域一样, 很多坑要爬, 幸运的是, 这次我不再像之前那样着急, 那么压力大. 也结束了我对PHP laveral的困惑, 对ruby on rail的迷茫, 和对Python django的坚持.
为了构造自己的技术体系, 曾经走过很多弯路, 作为移动端工程师, 思考过很多次以后的路怎么走.
- 深入了解Android? 以前在Android Framework厂商呆过, 主要工作是解决bug的常态让自己感觉人生在虚度.
- 考虑iOS? 边际递减的效应很明显
- 走大前端战略? 听起来不错, 对自身而言, 扩展知识的广度, 但是都是前端, 公司需要你擅长移动端前端的人去搞web 前端吗, 如果有项目驱动可能更好点
- 下手C++, 走Android NDK路线, 这条路个人最倾向, 毕竟C++是门槛较高并且很稳定的编程语言, 考虑到自己的产品梦, 不利于自己一个人可能做独立开发者的打算. 因为独立开发者是需要快速把需求转换为产品,
- 后端开发? 全栈工程师或者架构师也适合自己作为移动端工程师去进阶, 并且相应的工作在互联网领域里比较普遍
如果做后端技术, 应该从哪里切入呢?
- Ruby on rails 适合快速迭代, 但是市场占有不多
- PHP 市场占比较大, 自己尝试学习, 语法看着怪怪的, mac编程遇到一些坑, 解决起来也挺麻烦, 文档经常感觉看不懂
- Python Django 依托于Python, 以前曾经决心学习Python, 以后用一门语言通吃各种技术(人工智能, 测试开发, 工具脚本等), 但是真到用的时候发现, JAVA的习惯在Python上迁移的时候经常会出现问题, 并且, 一段时间不用Python, 语法很容易淡忘
- JAVA Web开发效率不如PHP, 也曾被JAVA啰嗦的语法搞到深恶痛绝, 有时候想想, 代码多几行甚至一倍就一定开发的慢吗?如果程序能够被很好的组织起来, 很多非业务代码应该是不需要重复写的, 理论上开发效率可以因此被提升, 同时JAVA出bug很容易调试, 这也有利于开发效率. 想想为什么设计模式总喜欢用JAVA去举例子, 大概也是觉得如果大家都用最合适的设计范式开发程序, 也能极大的提高开发效率. 而JAVA恰恰由于其规范的语言设计, 适合应用设计模式.
在此不免感慨, 如果职场上一直有一个技术高于自己的前辈, 可以探讨职业生涯, 探讨程序设计, 而不是靠自己一步一步的去悟, 那该多好啊.
以前的迷茫
历史总是惊人的相似, 最近我所面临的技术选择上的仿徨, 早在2015年以前就曾经那样面对过,
- 嵌入式开发
- Android开发
- C++开发
- Ruby on rails开发
尝试过很多弯路才知道, 平凡才是坦途, 如果因为喜欢选择, 以后也会换成别的自己更合适的. 最适合的莫过于平凡且大众
回想2017和2018, 也曾在职业生涯迷茫过, 平凡才是程序人生的坦途
更多推荐:
在职业生涯的仿徨中, 看了一篇这样的文章五年老Android,我决定学习后端开发了!, 这对我有些启发, 希望也能对读者有帮助.