前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >聊个程序员的话题

聊个程序员的话题

作者头像
icepy
发布2019-12-18 11:37:36
5540
发布2019-12-18 11:37:36
举报
文章被收录于专栏:子曰五溪子曰五溪子曰五溪

最近看几个微信群的气氛很不对,大家也不要气馁,我们聊个程序员的话题,这是我对程序员的认识,希望对找工作的朋友或即将从事这一行的朋友,有所启发。

回顾自省,从2011年开始工作到如今已有八个年头,前两年一直在做企业级开发系统,使用的还是jQuery和Java,中间四年赶上了移动端蓬勃发展的末班车,一直在从事跨平台的基础研发,从基础的Hybrid架构到复杂的小程序体系,最近两年则是在研究密码学和区块链相关的技术,业务层面也是在做一些小众领域的事情,比如Chrome扩展,Go写的服务端和Desktop软件。

为什么要说说这些经历?其实从这些经历来看,我做的事情基本上不是那么的连贯,除了移动端跨平台技术的积累。

我想说的是我们应该把自己定义成工程师,其次才是前端工程师,Java工程师,Go工程师。我们应该具备这样一个能力,快速的找到每一个领域的技术脉络,这从本质上改变了一个人的思维局限。

深度的本质都是业务的沉淀,当我们在做任何的性能优化,链路复用,架构设计,都是在根据公司业务的真实情况去做推断与规划,推动所在小组往前走。

编程这个事情,很多情况都是相通的,就说 react ,这个周末我花了一天时间阅读了 Dan 的文章,他讲了一些设计精髓,业务层面说了很多如何共享逻辑代码的设计(HOC render props hooks),巧用顶层APIs(如cloneElement),框架上其实还是深度优先,数据结构其实就是通过createElement创建对象然后组合起来的一棵树(Vitual DOM,Fiber,Diff),这里面有思想的设计和具体的实现,大体脉络很清晰,这一点非常重要。

那么,平时我们掌握到什么程度才是最好的呢?我个人很推崇“认识”的理论,所谓的认识是指我们一定很清楚这可以解决什么问题,采用什么方式是最优的,不一定说我立马就能写出来很清晰程序算法。我们可以想想,算法提炼出来,就是数据结构和步骤的组合,而我们则是在利用这些去解决业务问题。

走到深水区,我们就应该想一想,我们的能力可不可以给公司创造价值,说白了就是深挖业务并且能赚钱,这种价值不管是短期还是长期。我们需要主动的思考,寻找到一个共点,职场上也是一样,对于你的老板,交代的任务,一定自己先思考一下,怎么做才是最好,然后这个价值能不能体现,因为有时候你的老板都不一定清楚这个有没有价值以及能不能做,当你思考清楚了反复沟通聚焦共识,这真的很重要(埋头做事,一杆子下去很容易坏事)。

对于面试来说,我们应该尊重每一个机会,并有所准备。

想当年我为了去大厂,leetcode刷了200多道题,《算法导论》,《操作系统精髓和设计原理》,《TCP/IP协议》三本书粗略的看完,研究并吃透jQuery源码,require.js源码,backbone源码,以及Grunt源码,横向扩展了早期iOS开发,主导并设计早期Hybrid架构来实现跨平台,现在回过头来看,这些东西随着时代发展少了些价值意义,至少在面试上。不过唯一的价值是早期从中吸取到不少有意思的设计思想,指明了当时的发展脉络,并延续到了现在。

现在这些刷题的事情,我就不想做了(而且很厌恶),因为我已经具备了认识,以及敏锐的感知外部世界的发展轨迹,剩下的事情,就像马老师说的,跟个好老板比找好公司更重要

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 子曰五溪 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档