• #1楼 @eclipse_xu 这个写脚本能自动化的吧,之前不是有篇文章是反编译统计有哪些第三方sdk么,这应该是一回事

  • 我想很多人都忽略这样的问题。学习就是碰到什么吃什么,不成体系,往往遇到问题时才会觉得,天,我怎么那么多都不明白,真该好好学习的。

    可是,问题又来了,自己还是不知道学什么以及怎么学

    mark开源lib,资讯,这并没有什么卵用。仅仅是mark,很多时候想着有空了学习下,往往过段时间就忘了。即使你使用了,大部分也只是会调用而已。遇到问题了如何解决,扩展需求如何扩展?

    学习的根本,是如何处理信息的能力,也就是对现象的分析,归纳和延伸的能力。

    一开始,我们通过模仿来学习,收集的信息和得到的反馈多了之后就会通过思考来学习。

    这里Stay分享下适合自己学习的方法,大家也可以尝试下。

    如何在工作中学习

    1. 自己动手比什么方式都提升的迅速,哪怕仅仅是抄一遍(模仿)

    2. 分析需求(我们少有创新,大多算更新,所以所有的需求都有原型,以及延伸的雏形,找到它,试图理解它背后的逻辑,然后再考虑技术实现)

    3. 设计原型(来自于经验的累积,流程图会帮你从混乱的需求中清醒,即使是草图)

    4. 团队协作(了解每个人擅长做什么,出现状况时,做为旁观者,你要做的是帮他理清思绪,what when why how,同样适用于自身)

    5. 编码(随时随地都有big picture,别纠结于某个detail的实现而拖慢进度,伪代码的意义重大)

    6. 测试(宏观测试,确保架构稳定,局部测试,确保逻辑与性能,两者会交叉影响,debug时假设所有变量都存在问题然后一个个排除)

    7. 解决问题(what when why how不管是提问题,还是解决问题,都应组织好语言,这个问题是什么,什么情况下发生,为什么会这样发生,如何解决,提问是希望他人能给出提示,而不是解决方案)

    8. 记忆索引(想想搜索引擎的工作原理,记代码是不可能的,每个解决方案背后都对应着一个确定的需求,要记住的是生活化的需求,对这些需求分类建立索引,并用良好的代码规范存储,这是个漫长的过程,一旦存储,就不会忘记。当然可以用note来辅助记忆)

    这些同样也是高效开发的基准,倘若你觉得这些太理想化,那么请就记住一条准则:

    WHAT,WHEN,WHY,HOW

    它是什么?它在什么场景下发生?它为什么会是这样,有没有其他原因?它是怎么做到的?

    如果你觉得已经过了模仿的阶段,但是处理信息的能力又比较弱。不妨这样试试。做任何事情之前,有意识的让自己来一遍what, when, why, how。

    时间久了,你会发现逻辑变得严谨,不会钻牛角尖了,工作变得轻松,debug也不头痛了。

    衡量一个工程师是否优秀,不是他会多少API,做过多少项目。而是遇到问题时,会用更优雅的方式来解决它。

    有意识的学习,别让自己陷在终日的复制粘贴和漫无目的的debug里。共勉~

    转自我的简书文章方法论-有意识的学习

  • 创业这个词有点魔性,我更喜欢说另外一个词:尝试
    程序员的出路不只是创业或者改行,而是不断的去尝试不同的组合,在不断的自我变革中寻找新的契机,新的自我。

    我的尝试是在14年8月开始,历时16个月。然后重新工作咯。下面是我的一年多的经历。
    作为一个程序员,我是如何一年亏掉30w的

    最大的收获有两点:
    1. 不再单一的从技术角度看问题。
    2. 个人能力再强,不经过map,fn等一系列加成(团队,平台,营销)。终究是微不足道的。

  • 毕业到现在6年多了。相比给自己定目标,我倒是挺希望活在当下的。未来充满变数啊。

    大学学的是物理师范。大三时还在学BEC,希望能进外企。结果阴错阳差的学了Java,又命运般的转了Android。最终还是进了一家外企,去了趟瑞士。

    定的目标太具体,反而忽略了更多的可能性。
    定的目标太宽泛,没有适宜的反馈机制,容易放弃。

    我个人的感觉就是,选好当下每一步的最优解,未来自然会是美好的。

    最优解,一旦选择了,就要立即执行,不能拖沓。比方你想搞清楚MVP,那就集中精力在短期内攻克它。别把它列在todo task里,也不要因为老大让你搞MVVM而放弃。
    最优解,需要博弈,不能患得患失。选择了A语言,就不要想着B语言更能卖个好价钱。这些事情应该是在做选择之前就权衡清楚了。你可以在充分学会A之后,再去权衡B和C。

    其实每一步的最优解就是宏大目标中的每一个小元素。尽量去放大每一个元素的效力,为当下的每一步建立反馈机制。降低对长远目标的憧憬。不然远方永远是远方。

    明年要涨薪到30k,明年进BAT,明年买车买房,明年转管理。

    不如从当下的每一步开始,没准可以收获到更多呢:)

  • 理性点啊,市场经济本就该是波动的,哪有永远的J型增长曲线。稀缺才供不应求,大家都种植移动端技术,当然第二年卖不出去了。

    投机的人在什么市场都存在的,就看自己有没有底线以及会不会被拆穿。不过圈子很小的,以后不被拆穿的可能性会越来越低。

    未来的技术不再是单一的,指望一招鲜吃遍天是不现实了。会android再会iOS找工作会容易吗?会android再会jee找工作会加分吗?会android再会设计找工作会溢价吗?当你觉得市场饱和时,不妨给自己加分。

    每年会很多公司挂了,也有更多的新公司成立。只要郭嘉还是稳步高速发展,肯定不会找不到工作的,只是工作环境的好坏。如果觉得自己目前的公司不好,那就努力提升自己。找一个配得上自己,自己也配得上的好公司。

    大夏天的真心别裸辞找工作啊,拿不到offer都没啥,重要的是会湿身啊。

    祝好运。

    题外话:

    lz海投简历,收不到几个面试,很有可能是简历写的比那些培训生还渣。不妨检查下,给别人review下。

  • 10年物理系毕业。要不是大四时看同学培训java找到了工作,我现在就是名高中物理老师了,错过了那么多小萝莉😢

  • 最可悲的是,你的站点PR值,权重没这个站点高,搜索引擎会把你的原文站点放第二位,甚至第二页!!!

  • 没合适的角度表达自己的观点,只好看别人谈笑风生,点赞+1了。😂

  • 保证代码质量的前提是需求了解清楚,对未来可能的扩展提前并入。以下是我个人的开发流程:

    1. 先想清楚产品到底要一个什么样的功能,这个功能对产品来说是否真的那么重要,有没有什么更能放大这个效应的做法。 与产品讨论,理解他们通过APP想表达的诉求,将它们转化成真正的需求,并画出流程图与产品反复确认。
    2. 需求理解好了,可以先拆分调研相关技术点。先不要急着去表达这个功能实现不了,这个效果要花时间。不妨客观的分析下(反正都要实现,为什么不把它做的好一点呢)
    3. 有个大抵的了解之后,团队在一起讨论下,采用什么具体实现,谁来实现。(务必让每个人都对代码有整体上的认识,不要各自维护自己的小模块,不利于成长,也不利于团队)
    4. UI一般都要比业务逻辑改动的频繁,所以最好不要急着画UI,只要有一个大致的UI框架就可以了。先把业务逻辑完善(网络交互,cache,点击事件,跳转)如果有盈余,可以写unit test来测试C层或者P层逻辑的正确性。没问题了再写UI实现。
    5. 剩下的具体实现呢,如果没有现成的代码可以用,可以再拆分成几个task。先自己将tasks通过workflow串在一起,不管是流程图,还是TODO伪代码都行。再针对每个task来搜对应的解决方案。
    6. 所有技术问题不可能是无解,只要耐心,肯定能找到解决方案。别怕麻烦,别图省事,碰到的每一个问题都是你进步的阶梯。如果真不能解决,那就换个折中的解决方案嘛,沟通灰常重要的!

    摘录自个人简书除了技术,我们还能拼什么?

  • 666