Author 04
ByBinyu·

关于培训机构(一)

14年5月份来北京参加培训,当时我去的线下培训机构是"智能社"(zhinengshe.com现在已经关门了), 同期还有比较热门的培训机构是"妙味课堂"(miaov.com). 目前这两家已经转为线上课或者直播课了.

目前不太清楚还有什么比较靠谱的培训机构,进入眼球比较多的是"珠峰培训"(zhufengpeixun.cn), 但是我不太清楚课程质量.

关于网页开发(一 程序员-我的职业)

以上三家是专门的前端开发培训机构, 开发人员(程序员)可以分为很多种, 下面会进行介绍.

我所从事的前端开发可以简单理解为网站的样式开发. 此工作一般情况下不包含(1)设计网站, 以及(2)生成网站上展示的数据. 但前端开发的工作就是将这两部分加工成浏览器能用的东西.

比如:

<button 
  style="background:pink;border-radius:4px" 
  onclick="alert('弹出一些内容')"
>按钮<button>

以上代码展示了一个按钮

  1. 其中style="background:pink;border-radius:4px"这段语义来自设计师产出的设计图( 按钮背景色是粉色的,有四个像素的圆角,此处意义不重要只是举例).一般是用 photoshop 之类的软件做出来的.
  2. onclick="alert('弹出一些内容')"中的文字弹出一些内容有可能来自另一类程序员后端开发, 他们会负责提供这些内容.

开发人员分类

是的,程序员有很多种.所以大概梳理一下目前的分类.

|- 客户端开发 (前端开发)
|   |- 硬件开发        传感器,电路板,单片机,物联网设备,智能音箱,手机,电脑 .etc
|   |- 网页开发        购物网站的页面,网页游戏,公司的后台管理系统的页面部分 .etc
|   |- iOS/Android    购物网站的APP,手机游戏, 手机版公司的后台管理系统 .etc
|   |- 游戏开发        手机游戏,电脑游戏
|
|- 服务端开发 (后端开发)
|   |- 云计算开发      读写数据库的数据,管理公司内部数据,为前端提供数据支持, 使用各种数据库, 数据读写性能 .etc
|   |- 人工智能开发     主要通过建立,训练数学模型识别行为模式. 无人驾驶,推荐算法,游戏AI .etc
|   |- 运维开发        维护保养公司各种系统. 保障公司各种软硬件正常运行. 容器技术 .etc
|   |                 
...

从不同角度会有很多种分法,而且不同的开发可能会有相互重叠的部分,你同时有可能成为云计算开发 + 网页开发.人工智能开发 + 游戏开发. 而这里只是从入行的角度进行分类.

关于职业分类, 整个生产线的上下游还有一些其他职业.

  • 销售
  • 运营
    • 产品运营
    • 游戏运营
    • 公关运营(微博,公众号 .etc)
  • 产品类
    • 游戏策划
    • 产品经理
  • 设计类
    • 游戏原画
    • 游戏动效
    • 软件UX/UI设计
    • 硬件工业设计

等等

关于职业选择

程序员的工作就是写代码驱动事物运行. 是需要耐心的职业, 因为事物本身一般不会主动告诉你出了什么问题. (需要多大的耐心, 就像我这样,为了解答邻居的问题写了这篇文章)编程工作的大部分内容就是: 从5种可能的代码中试出1种或几种解决方案(有时会试到半夜两三点).而那些比较华丽的东西,比如无人机在天上翻跟头,无人驾驶汽车漂移,游戏或网页上夸张的特效,使用各种流行的新技术。这些占我们职业生涯中的比例少之又少,并不是核心的工作内容。

另外编程知识更新很快,如果你想一直有稳定的工作机会,你可能需要一直学习下去.这是一个非常磨人的工作. 做时间久了你就会变得很谦逊,如果你看到一个做技术的总是夸夸其谈: “这个很简单,那个很容易”. 那他就是个新手(或者销售).

  • 如果你仍觉得有趣,就可以在上面的列表中找一个感兴趣的去了解一下.
  • 如果你是为了快速赚钱(这没毛病,但比这赚钱 的工作可能更多),可能硬件开发,服务端开发平均工资会高一些. 还要注意选择行业,不同行业对各个种类的开发人员重视程度不一样, 收入从高到低大概的曲线是下面这样

人工智能 > 硬件开发 > 云计算开发 > 游戏开发, 运维开发 > iOS, Android, 网页开发

不要听信别人说: “如果你精通网页开发照样能和人工智能开发拿一样的工资”. 这句话的前提是,你已经是一个前端开发了(比如我,抹泪). 因为有时间不如去精通人工智能开发.反正都是为了赚钱.

交互设计,工业设计,客户端开发技术在提高产值的方面的作用显而易见. 但是目前中国大部分公司没有这样的战略眼光.

它们喜欢跟着大公司走,喜欢追求商业模式,规模化,大批量,快速变现(所以我们现在是世界工厂而不是世界工坊). 在国内选择这些前岗位多考虑.另外国内互联网公司一般都是开放式办公, 好几十人都坐在大厅里, 一排一排的, 有的时候吵起来基本和菜市场一样. 我觉得这一点很重要所以提一下.

关于工作

工作就是帮公司赚钱,然后公司扣除运营的费用后再分给你. 可以发现,工作只是其中一种赚钱模式. 你还可以尝试投资,倒卖,办学校,创作文学作品等其他模式赚钱. 工作是细粒度的分工,可以更好的考量生产力.我的生产力是500,就会拿到500. 所以在工作中考虑问题时不要考虑太多形式问题, 挣钱和省钱是核心点.抓住它们.这不一定能帮你升职加薪,但这经常帮助我解决工作中的难题: 比如,老板的画的饼是真是假, 如何进行技术选型, 干多点还是干少点, 搬砖还是不搬砖等等.

关于网页开发(二)

由于上面的种种原因,网页开发(前端开发)目前的发展方向是全栈开发(可以理解为云计算开发 + 网页开发), 甚至有时你可能需要承担设计和产品经理的角色.

关于培训机构(二)

所以说了这么多, 还是有人要干前端开发的话, 并且类似职业编程经验的话. 建议至少脱产半年时间学习.学习能力差的话报个培训班省时省力(比如我),前端知识体系相当复杂. 但根据公司的业务不同,很多技术细节都可以 简单带过,量力而行. 大致的学习路线如下, 括号内是涉及到的名词:

基础:

  1. 网页的各种静态效果如何实现 (Photoshop, HTML, CSS)
  2. 各种静态效果的兼容性实现 (浏览器, HTML, CSS)
  3. 动态效果的实现 (JavaScript, HTML-DOM, CSS-CSSOM 设计模式)
  4. 动态效果的兼容与优化 (JavaScript, 浏览器-BOM, 计算机原理)
  5. 数据收发与表现 (网络通讯, 设计模式)

提高:

  1. 熟练专业领域的API
  2. 针对不同场景积累不同的技术选型
  3. 找到适合自己的开发模式(工具,环境), 积累技术细节, 把你遇到的麻烦事都记下来, 这一点对前端很重要, 前端开发闭环最后一环是视觉还原,调试特别困难,不像其他类型的开发有数据校准结果.

再之后就是职业规划了,可能成为技术专家,也可能转为技术经理,产品经理,也可能成为CEO. 这些不在我的能力范畴了.

附上一些学习网站,可以先尝试看一看.如果感兴趣再进一步学习,

熟能生巧, 以上