+
+
Posts List
  1. 编程语言的选择与特点
    1. 一些Tips
    2. 根据行业选择编程语言
  2. 发展方向
    1. 前端or服务器
    2. 要不要成为全栈
    3. 在校学生的选择
    4. 关于跳槽
      1. 什么时候跳槽
  3. 正确认识程序员职业
    1. 程序员的价值到底是什么?
    2. 高效学习的方法
    3. 综合素质
      1. 技术太多怎么办
      2. 推荐书单
    4. 有关工作和提问
  4. Severless

程序员的自我修养

看七月老师6月15日《程序员的自我修养》做的一些笔记,有些琐碎。

编程语言的选择与特点

  • C
  • Delphi
  • C#:用最好的语法,写最土的项目。学C#找不到工作,互联网公司都不用,路会越来越窄
  • JavaScript:JS随着ES越来越像Python,选择JS是因为没有选择,没有选择可能是最好的选择
  • Java(淘宝、京东):经典工业型语言、面向对象、笨重但严谨;适合入门,再学习其他语言很快(Go除外);工作机会多
  • Lua(游戏插件)
  • PHP(淘宝早期、小公司):世界上最好的语言,却非常尴尬,不是初学者的首选语言,适合找工作但Java范围更广。有一种变态的美。用PHP的公司越来越少。
  • Python:如果你会Python,你一定能找到工作,如果你找不到,这说明你只会Python。适合作为第二语言,适合做的东西门槛太高(数据分析、深度学习等等)外部的市场最大,门槛最低。
    适合独立/自由/有情怀的开发者,一个语言覆盖除底层外的所有场景。不适合以找工作为目的的同学。

一些Tips

  1. 程序员要有快速切入一个新的语言的能力,综合性项目里肯定不止一个语言。
  2. 选择入门编程语言的话,喜欢什么选什么,但要是主流的。
  3. 动态语言比较灵活和取巧,可能会影响编程思维。
  4. 反对什么编程语言都学,不要横向扩展要纵向深入。

根据行业选择编程语言

在编程语言方面,国内国外差距很大。国外以实用为主,根据项目的大小选择不同的语言,比如小型网站求快,用动态语言开发。而国内受大厂影响的风气较重。

  • 已入行服务端:一动一静,PHP+Java或Java+Python,还可以扩展JS和CSS
  • 已入行前端:JavaScript+服务端语言(Node.js/Python),前端不适合学Java,实用性不高

发展方向

前端or服务器

  1. 先让自己吃饱,给自己缓冲时间
  2. 综合素质高的做什么事情都相对要容易很多,但很多人综合素质并不高
  3. 服务端学习成本较低,前端要学的比较多
  4. 前端工作需求量大,岗位是服务端好几倍。前端变化快,工作量大。需要有一定的审美能力,必须有极强的耐心,适合女孩子。
  5. 服务端必须要有一定的大局观和架构能力。
  6. 举棋不定的话,选服务端。因为前端变化快,但服务端稳定,相对轻松,很多在前端的新模式,都来源于服务端思想。而且服务端编程思维更通用,更接近本质,而前端会将大量的时间浪费在UI上。

要不要成为全栈

  1. 先搞清楚什么是全栈
  2. 要有全栈思维
  3. 起码要会写API,很多大厂都要求前端写API
  4. 服务端写微服务,主要提供数据
  5. 前后分离削弱了程序员的成长力
  6. 前端非常有必要进阶服务端
  7. 服务端只多了数据库
  8. 前端很容易原地打转
  9. 前端要有居安思危的思想,因为前端进入工程化时间太短,发展路线不明确
  10. CTO、技术总监少有纯前端
  11. 掌握服务端、更容易统领全局
  12. 谁离数据更近,谁更有话语权,用自己的能力辐射整个公司
  13. 前端主要负责人机交互,易受UI终端影响
  14. 能把一件事情做到极致的人很少

杞人忧天的设想:当终端发生了改变,前端会面临巨大的打击。以及服务端转型(机器学习、NLP)。

在校学生的选择

选择公司:

  • 985:目标只有一个,进入一线互联网公司,否则就是失败
  • 211:能进一线就进一线,进不了,选择小而美的公司,不要偏国企或者外包
  • 普通高校:进一线难度较大,薪资不是首要,必须选择“有人用”的产品,不选择外包和传统软件
    技术的提升,必须有复杂业务的驱动,没人用或者要求不高就无法提升技术。

在校学习的侧重:

  • 985:优先数学、英语、算法、数据结构、高等数学、统计与概率论、线性代数、复变函数、计算机原理
    重理论,轻业务
  • 211:同985,偏向一点业务,动手实践做项目
  • 普通高校:同985,必须大量实践项目,轻理论,重点是做出成品高质量的项目,把校招当社招

少玩游戏,要玩玩单机游戏,3A大作,培养审美

关于跳槽

习惯是最可怕的杀猪刀
环境可以湮灭一个优秀的人
安逸可以磨灭一个人的上进心
勇敢一点,走出舒适区

什么时候跳槽

程序员:当遇到技术陈旧、没有用户没有高要求的公司。
多跳跳,不是坏事儿,但要更上一层楼
程序员的收入比较稳定,一条直线。
产品的收入有很大的上升空间。

要对自己有高要求。

正确认识程序员职业

特点:

  • 薪水略高
  • 门槛低,好入门
  • 很少有高光时刻,女朋友难找
  • 代码没有视觉冲击力,很难吸引人
  • 技术变迁太快,很难有打磨和积淀的感觉
  • 甘于平淡,耐得住寂寞

程序员的价值到底是什么?

做出有人用的产品
程序员需要成就感去维持他的动力。

高效学习的方法

没有
看视频最好的方法是不看,先自己实现,用业务驱动自己。互联网到处都是优秀的项目,完全可以1:1实现,如果能复现一个大厂APP的功能,中小公司企业随便找。

综合素质

开源团队留下的都是兴趣广泛的人
能力不错的都是兴趣广泛的
程序员最容易忽视综合素质,技术能力是基础,综合素质(交流沟通、管理、认知、学习、任务规划等)能帮助突破瓶颈。

  1. 综合素质短期影响每个细小的选择和思维。
  2. 30岁的程序员的性价比低,很难一条技术路走到黑,要转型产品或管理。
  3. 少盯着技术不妨,少学习各种功能雷同的框架。
  4. 人的自我意识会帮助你进化
  5. 不要带着太强的目的性学习
  6. 培养一个兴趣
  7. 程序员的抽象能力和逻辑思维能力不错,但是欠缺观察能力和审美能力
  8. 注意细节
  9. 不能用考试的思维去学习编程,要以解决问题为目标

技术太多怎么办

要懂得舍弃
太新的东西不用太着急去尝试

推荐书单

  • 《代码大全2》
  • 《JavaScript高级编程》
  • 《流畅的Python》
  • 《Java核心技术/Java编程思想》
  • 《算法图解》

建议:语言看书,框架看视频

有关工作和提问

工作必须主动
不要玻璃心:大部分批评都是善意
提问,但能自己解决的绝对不要麻烦别人(80% debug 19% search 1% ask)
编程必须要有自我解决问题的能力。好的问题是答者和问者共同构建的,提问者也要有说明问题的能力。

Severless

  • IaaS:基础设施即服务
  • PaaS:平台即服务
  • SaaS:产品即服务
  • FaaS:功能即服务

Serverless和传统开发不应该是对立和取代的关系,而是结合的,Serverless适合微服务。
云开发因小程序而引起重视。适合个人/独立开发者。

本文作者: rhinoc

本文链接: https://www.rhinoc.top/programmer-self-cultivation/

版权声明: 本博客所有文章除特别声明外,均采用BY-NC-SA 4.0国际许可协议,转载请注明。

打赏
Love U 3000
  • Through WeChat
  • Through Alipay